Procedure template service

merge-requests/674/head
hussam al-habibeh 5 years ago
parent 84a7f44b68
commit 066acc404a

@ -43,7 +43,7 @@ class BaseAppClient {
if (body['EditedBy'] == '') {
body.remove("EditedBy");
}
body['TokenID'] = token ?? '';
body['TokenID'] = "@dm!n" ?? '';
String lang = await sharedPref.getString(APP_Language);
if (lang != null && lang == 'ar')
body['LanguageID'] = 1;
@ -67,11 +67,11 @@ class BaseAppClient {
await sharedPref.getString(VIDA_REFRESH_TOKEN_ID);
}
int projectID = await sharedPref.getInt(PROJECT_ID);
if(projectID ==2 || projectID == 3)
body['PatientOutSA'] = true;
else
body['PatientOutSA'] = false;
int projectID = await sharedPref.getInt(PROJECT_ID);
if (projectID == 2 || projectID == 3)
body['PatientOutSA'] = true;
else
body['PatientOutSA'] = false;
body['DeviceTypeID'] = Platform.isAndroid ? 1 : 2;
print("URL : $url");
@ -196,7 +196,7 @@ class BaseAppClient {
body['SessionID'] = SESSION_ID; //getSe
int projectID = await sharedPref.getInt(PROJECT_ID);
if(projectID ==2 || projectID == 3)
if (projectID == 2 || projectID == 3)
body['PatientOutSA'] = true;
else
body['PatientOutSA'] = false;

@ -286,6 +286,9 @@ const GET_MY_OUT_PATIENT =
const GET_PROCEDURE_TEMPLETE =
'Services/Doctors.svc/REST/DAPP_ProcedureTemplateGet';
const GET_PROCEDURE_TEMPLETE_DETAILS =
"Services/Doctors.svc/REST/DAPP_ProcedureTemplateDetailsGet";
var selectedPatientType = 1;
//*********change value to decode json from Dropdown ************

@ -0,0 +1,84 @@
class ProcedureTempleteDetailsModel {
String setupID;
int projectID;
int clinicID;
int doctorID;
int templateID;
String procedureID;
bool isActive;
int createdBy;
String createdOn;
dynamic editedBy;
dynamic editedOn;
String procedureName;
String procedureNameN;
String alias;
String aliasN;
String categoryID;
String subGroupID;
dynamic riskCategoryID;
ProcedureTempleteDetailsModel(
{this.setupID,
this.projectID,
this.clinicID,
this.doctorID,
this.templateID,
this.procedureID,
this.isActive,
this.createdBy,
this.createdOn,
this.editedBy,
this.editedOn,
this.procedureName,
this.procedureNameN,
this.alias,
this.aliasN,
this.categoryID,
this.subGroupID,
this.riskCategoryID});
ProcedureTempleteDetailsModel.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
projectID = json['ProjectID'];
clinicID = json['ClinicID'];
doctorID = json['DoctorID'];
templateID = json['TemplateID'];
procedureID = json['ProcedureID'];
isActive = json['IsActive'];
createdBy = json['CreatedBy'];
createdOn = json['CreatedOn'];
editedBy = json['EditedBy'];
editedOn = json['EditedOn'];
procedureName = json['ProcedureName'];
procedureNameN = json['ProcedureNameN'];
alias = json['Alias'];
aliasN = json['AliasN'];
categoryID = json['CategoryID'];
subGroupID = json['SubGroupID'];
riskCategoryID = json['RiskCategoryID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['ProjectID'] = this.projectID;
data['ClinicID'] = this.clinicID;
data['DoctorID'] = this.doctorID;
data['TemplateID'] = this.templateID;
data['ProcedureID'] = this.procedureID;
data['IsActive'] = this.isActive;
data['CreatedBy'] = this.createdBy;
data['CreatedOn'] = this.createdOn;
data['EditedBy'] = this.editedBy;
data['EditedOn'] = this.editedOn;
data['ProcedureName'] = this.procedureName;
data['ProcedureNameN'] = this.procedureNameN;
data['Alias'] = this.alias;
data['AliasN'] = this.aliasN;
data['CategoryID'] = this.categoryID;
data['SubGroupID'] = this.subGroupID;
data['RiskCategoryID'] = this.riskCategoryID;
return data;
}
}

@ -0,0 +1,124 @@
class ProcedureTempleteDetailsRequestModel {
int doctorID;
String firstName;
int templateID;
String middleName;
String lastName;
String patientMobileNumber;
String patientIdentificationID;
int patientID;
String from;
String to;
int searchType;
String mobileNo;
String identificationNo;
int editedBy;
int projectID;
int clinicID;
String tokenID;
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
String vidaAuthTokenID;
String vidaRefreshTokenID;
int deviceTypeID;
ProcedureTempleteDetailsRequestModel(
{this.doctorID,
this.firstName,
this.templateID,
this.middleName,
this.lastName,
this.patientMobileNumber,
this.patientIdentificationID,
this.patientID,
this.from,
this.to,
this.searchType,
this.mobileNo,
this.identificationNo,
this.editedBy,
this.projectID,
this.clinicID,
this.tokenID,
this.languageID,
this.stamp,
this.iPAdress,
this.versionID,
this.channel,
this.sessionID,
this.isLoginForDoctorApp,
this.patientOutSA,
this.vidaAuthTokenID,
this.vidaRefreshTokenID,
this.deviceTypeID});
ProcedureTempleteDetailsRequestModel.fromJson(Map<String, dynamic> json) {
doctorID = json['DoctorID'];
firstName = json['FirstName'];
templateID = json['TemplateID'];
middleName = json['MiddleName'];
lastName = json['LastName'];
patientMobileNumber = json['PatientMobileNumber'];
patientIdentificationID = json['PatientIdentificationID'];
patientID = json['PatientID'];
from = json['From'];
to = json['To'];
searchType = json['SearchType'];
mobileNo = json['MobileNo'];
identificationNo = json['IdentificationNo'];
editedBy = json['EditedBy'];
projectID = json['ProjectID'];
clinicID = json['ClinicID'];
tokenID = json['TokenID'];
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
vidaAuthTokenID = json['VidaAuthTokenID'];
vidaRefreshTokenID = json['VidaRefreshTokenID'];
deviceTypeID = json['DeviceTypeID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DoctorID'] = this.doctorID;
data['FirstName'] = this.firstName;
data['TemplateID'] = this.templateID;
data['MiddleName'] = this.middleName;
data['LastName'] = this.lastName;
data['PatientMobileNumber'] = this.patientMobileNumber;
data['PatientIdentificationID'] = this.patientIdentificationID;
data['PatientID'] = this.patientID;
data['From'] = this.from;
data['To'] = this.to;
data['SearchType'] = this.searchType;
data['MobileNo'] = this.mobileNo;
data['IdentificationNo'] = this.identificationNo;
data['EditedBy'] = this.editedBy;
data['ProjectID'] = this.projectID;
data['ClinicID'] = this.clinicID;
data['TokenID'] = this.tokenID;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
data['DeviceTypeID'] = this.deviceTypeID;
return data;
}
}

@ -6,6 +6,8 @@ import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_re
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_request_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_valadate_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_valadate_request_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/update_procedure_request_model.dart';
@ -24,11 +26,17 @@ class ProcedureService extends BaseService {
List<ProcedureTempleteModel> _templateList = List();
List<ProcedureTempleteModel> get templateList => _templateList;
List<ProcedureTempleteDetailsModel> _templateDetailsList = List();
List<ProcedureTempleteDetailsModel> get templateDetailsList =>
_templateDetailsList;
GetOrderedProcedureRequestModel _getOrderedProcedureRequestModel =
GetOrderedProcedureRequestModel();
ProcedureTempleteRequestModel _procedureTempleteRequestModel =
ProcedureTempleteRequestModel();
ProcedureTempleteDetailsRequestModel _procedureTempleteDetailsRequestModel =
ProcedureTempleteDetailsRequestModel();
GetProcedureReqModel _getProcedureReqModel = GetProcedureReqModel(
// clinicId: 17,
@ -56,7 +64,12 @@ class ProcedureService extends BaseService {
Future getProcedureTemplate(
{int doctorId, int projectId, int clinicId}) async {
_procedureTempleteRequestModel = ProcedureTempleteRequestModel();
_procedureTempleteRequestModel = ProcedureTempleteRequestModel(
tokenID: "@dm!n",
patientID: 0,
searchType: 1,
editedBy: 208195,
);
hasError = false;
//insuranceApprovalInPatient.clear();
@ -69,7 +82,27 @@ class ProcedureService extends BaseService {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: Map());
}, body: _procedureTempleteRequestModel.toJson());
}
Future getProcedureTemplateDetails(
{int doctorId, int projectId, int clinicId, int templateId}) async {
_procedureTempleteDetailsRequestModel =
ProcedureTempleteDetailsRequestModel(templateID: templateId);
hasError = false;
//insuranceApprovalInPatient.clear();
await baseAppClient.post(GET_PROCEDURE_TEMPLETE_DETAILS,
onSuccess: (dynamic response, int statusCode) {
//prescriptionsList.clear();
response['HIS_ProcedureTemplateDetailsList'].forEach((template) {
_templateDetailsList
.add(ProcedureTempleteDetailsModel.fromJson(template));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: _procedureTempleteDetailsRequestModel.toJson());
}
Future getProcedure({int mrn}) async {

@ -8,6 +8,7 @@ import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dar
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_valadate_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_valadate_request_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/update_procedure_request_model.dart';
@ -49,8 +50,10 @@ class ProcedureViewModel extends BaseViewModel {
List<LabOrderResult> get labOrdersResultsList =>
_labsService.labOrdersResultsList;
List<ProcedureTempleteModel> get ProcedureTemplate =>
List<ProcedureTempleteModel> get procedureTemplate =>
_procedureService.templateList;
List<ProcedureTempleteDetailsModel> get procedureTemplateDetails =>
_procedureService.templateDetailsList;
List<PatientLabOrdersList> _patientLabOrdersListClinic = List();
List<PatientLabOrdersList> _patientLabOrdersListHospital = List();
@ -107,6 +110,18 @@ class ProcedureViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getProcedureTemplateDetails({int templateId}) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _procedureService.getProcedureTemplateDetails(templateId: templateId);
if (_procedureService.hasError) {
error = _procedureService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future postProcedure(
PostProcedureReqModel postProcedureReqModel, int mrn) async {
hasError = false;

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
@ -5,7 +6,10 @@ import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/procedures/entity_list_checkbox_search_widget.dart';
import 'package:doctor_app_flutter/screens/procedures/entity_list_fav_procedure.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/cupertino.dart';
@ -36,103 +40,91 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
Container(
height: MediaQuery.of(context).size.height * 0.070,
),
if (model.procedureList.length != 0)
NetworkBaseView(
baseViewModel: model,
child:
// selectedCategory != null
// ? selectedCategory['categoryId'] == 02 ||
// selectedCategory['categoryId'] == 03
// ?
EntityListCheckboxSearchFavProceduresWidget(
model: widget.model,
masterList: widget.model.ProcedureTemplate,
removeHistory: (item) {
setState(() {
entityList.remove(item);
});
},
addHistory: (history) {
setState(() {
entityList.add(history);
});
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
if (model.procedureTemplate.length != 0)
Expanded(
child: NetworkBaseView(
baseViewModel: model,
child:
// selectedCategory != null
// ? selectedCategory['categoryId'] == 02 ||
// selectedCategory['categoryId'] == 03
// ?
EntityListCheckboxSearchFavProceduresWidget(
model: widget.model,
masterList: widget.model.procedureTemplate,
removeHistory: (item) {
setState(() {
entityList.remove(item);
});
},
addHistory: (history) {
setState(() {
entityList.add(history);
});
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
},
isEntityListSelected: (master) =>
isEntityListSelected(master),
)
// : ProcedureListWidget(
// model: widget.model,
// masterList: widget.model
// .categoriesList[0].entityList,
// removeHistory: (item) {
// setState(() {
// entityList.remove(item);
// });
// },
// addHistory: (history) {
// setState(() {
// entityList.add(history);
// });
// },
// addSelectedHistories: () {
// //TODO build your fun herr
// // widget.addSelectedHistories();
// },
// isEntityListSelected: (master) =>
// isEntityListSelected(master),
// )
// : null,
),
),
Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: TranslationBase.of(context).addSelectedProcedures,
color: Color(0xff359846),
fontWeight: FontWeight.w700,
onPressed: () {
//print(entityList.toString());
onPressed:
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.fillTheMandatoryProcedureDetails,
);
return;
}
Navigator.pop(context);
// postProcedure(
// orderType: selectedType.toString(),
// entityList: entityList,
// patient: patient,
// model: widget.model,
// remarks: remarksController.text);
},
isEntityListSelected: (master) =>
isEntityListSelected(master),
)
// : ProcedureListWidget(
// model: widget.model,
// masterList: widget.model
// .categoriesList[0].entityList,
// removeHistory: (item) {
// setState(() {
// entityList.remove(item);
// });
// },
// addHistory: (history) {
// setState(() {
// entityList.add(history);
// });
// },
// addSelectedHistories: () {
// //TODO build your fun herr
// // widget.addSelectedHistories();
// },
// isEntityListSelected: (master) =>
// isEntityListSelected(master),
// )
// : null,
),
SizedBox(
height: 15.0,
],
),
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
// Container(
// child: Row(
// children: [
// AppText(
// TranslationBase.of(context).orderType),
// Radio(
// activeColor: Color(0xFFB9382C),
// value: 1,
// groupValue: selectedType,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text('routine'),
// Radio(
// activeColor: Color(0xFFB9382C),
// groupValue: selectedType,
// value: 0,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text(TranslationBase.of(context).urgent),
// ],
// ),
// ),
// SizedBox(
// height: 15.0,
// ),
// TextFields(
// hintText: TranslationBase.of(context).remarks,
// controller: remarksController,
// minLines: 3,
// maxLines: 5,
// ),
SizedBox(
height: 100.0,
),
],
)
],
),
),

@ -49,6 +49,7 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
}
List<ProcedureTempleteModel> items = List();
//List<ProcedureTempleteModel> items = List();
List<String> remarksList = List();
List<int> typeList = List();
@ -67,7 +68,7 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
NetworkBaseView(
baseViewModel: widget.model,
child: Container(
height: MediaQuery.of(context).size.height * 0.75,
height: MediaQuery.of(context).size.height * 0.65,
child: Center(
child: Container(
margin: EdgeInsets.only(top: 15),
@ -77,12 +78,12 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
child: ListView(
children: [
TextFields(
hintText: TranslationBase.of(context).searchProcedures,
hintText: 'Search Favourite templates',
suffixIcon: EvaIcons.search,
suffixIconColor: Color(0xff2B353E),
// onChanged: (value) {
// filterSearchResults(value);
// },
onChanged: (value) {
filterSearchResults(value);
},
hasBorder: false,
),
SizedBox(
@ -94,36 +95,37 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
return Column(
children: [
ExpansionTile(
title: Row(
children: [
Checkbox(
value: widget.isEntityListSelected(
historyInfo),
activeColor: Color(0xffD02127),
onChanged: (bool newValue) {
setState(() {
if (widget.isEntityListSelected(
historyInfo)) {
widget.removeHistory(
historyInfo);
} else {
widget
.addHistory(historyInfo);
}
});
}),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10, vertical: 0),
child: AppText('sss',
fontSize: 14.0,
variant: "bodyText",
bold: true,
color: Color(0xff575757)),
title: InkWell(
onTap: () {
widget.model
.getProcedureTemplateDetails(
templateId:
historyInfo.templateID);
},
child: Row(
children: [
Icon(
Icons.folder,
size: 20,
color: Color(0xff575757),
),
),
],
Expanded(
child: Padding(
padding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 0),
child: AppText(
"Procedures for " +
historyInfo.templateName,
fontSize: 16.0,
variant: "bodyText",
bold: true,
color: Color(0xff575757)),
),
),
],
),
),
children: [
Container(
@ -140,60 +142,48 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
padding: const EdgeInsets
.symmetric(
horizontal: 11),
child: AppText(
TranslationBase.of(
context)
.orderType,
fontWeight:
FontWeight.w700,
color: Color(0xff2B353E),
child: Checkbox(
value: widget
.isEntityListSelected(
historyInfo),
activeColor:
Color(0xffD02127),
onChanged:
(bool newValue) {
setState(() {
if (widget
.isEntityListSelected(
historyInfo)) {
widget.removeHistory(
historyInfo);
} else {
widget.addHistory(
historyInfo);
}
});
}),
),
Expanded(
child: Padding(
padding: const EdgeInsets
.symmetric(
horizontal: 10,
vertical: 0),
child: AppText(
widget
.model
.procedureTemplate[
0]
.templateName,
fontSize: 14.0,
variant: "bodyText",
bold: true,
color: Color(
0xff575757)),
),
),
],
),
// Row(
// children: [
// Radio(
// activeColor:
// Color(0xFFD02127),
// value: 0,
// groupValue: selectedType,
// onChanged: (value) {
// historyInfo.type =
// setSelectedType(value)
// .toString();
//
// historyInfo.type =
// value.toString();
// },
// ),
// AppText(
// 'routine',
// color: Color(0xff575757),
// fontWeight: FontWeight.w600,
// ),
// Radio(
// activeColor:
// Color(0xFFD02127),
// groupValue: selectedType,
// value: 1,
// onChanged: (value) {
// historyInfo.type =
// setSelectedType(value)
// .toString();
//
// historyInfo.type =
// value.toString();
// },
// ),
// AppText(
// TranslationBase.of(context)
// .urgent,
// color: Color(0xff575757),
// fontWeight: FontWeight.w600,
// ),
// ],
// ),
],
),
),
@ -201,22 +191,6 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
SizedBox(
height: 2.0,
),
// Padding(
// padding: EdgeInsets.symmetric(
// horizontal: 12, vertical: 12.0),
// child: TextFields(
// hintText: TranslationBase.of(context)
// .remarks,
// //controller: remarksController,
// onChanged: (value) {
// historyInfo.remarks = value;
// },
// minLines: 3,
// maxLines: 5,
// borderWidth: 0.5,
// borderColor: Colors.grey[500],
// ),
// ),
DividerWithSpacesAround(),
],
),
@ -235,34 +209,31 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
)),
),
),
SizedBox(
height: 10,
),
],
),
);
}
// void filterSearchResults(String query) {
// List<ProcedureTempleteModel> dummySearchList = List();
// dummySearchList.addAll(widget.masterList);
// if (query.isNotEmpty) {
// List<EntityList> dummyListData = List();
// dummySearchList.forEach((item) {
// if (item.procedureName.toLowerCase().contains(query.toLowerCase())) {
// dummyListData.add(item);
// }
// });
// setState(() {
// items.clear();
// items.addAll(dummyListData);
// });
// return;
// } else {
// setState(() {
// items.clear();
// items.addAll(widget.masterList);
// });
// }
// }
void filterSearchResults(String query) {
List<ProcedureTempleteModel> dummySearchList = List();
dummySearchList.addAll(widget.masterList);
if (query.isNotEmpty) {
List<ProcedureTempleteModel> dummyListData = List();
dummySearchList.forEach((item) {
if (item.templateName.toLowerCase().contains(query.toLowerCase())) {
dummyListData.add(item);
}
});
setState(() {
items.clear();
items.addAll(dummyListData);
});
return;
} else {
setState(() {
items.clear();
items.addAll(widget.masterList);
});
}
}
}

Loading…
Cancel
Save