Finish subjective

pull/197/head
Elham Rababah 5 years ago
parent 8eb912af9e
commit bb651478a0

@ -61,7 +61,8 @@ class BaseAppClient {
body['SessionID'] = SESSION_ID; body['SessionID'] = SESSION_ID;
body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP; body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP;
body['PatientOutSA'] = 0; // PATIENT_OUT_SA; body['PatientOutSA'] = 0; // PATIENT_OUT_SA;
body['VidaAuthTokenID'] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAyIiwianRpIjoiZjcwMTUyYzktMjAwNy00Y2FjLTkzMWUtOGI0MDlhMWFkNjc4IiwiZW1haWwiOiIiLCJpZCI6IjEwMDIiLCJOYW1lIjoiVEVNUCAtIERPQ1RPUiIsIkVtcGxveWVlSWQiOiI0NzA5IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiI0NzA5IiwiU0VTU0lPTklEIjoiMjE1ODU1MzAiLCJDbGluaWNJZCI6IjE3Iiwicm9sZSI6IkRPQ1RPUlMiLCJuYmYiOjE2MDg1NTMxMDAsImV4cCI6MTYwOTQxNzEwMCwiaWF0IjoxNjA4NTUzMTAwfQ.lydDI-nsHlmb4Z4vesnckCU1i3hnNayoWVacc3E5_XM"; body['VidaAuthTokenID'] =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAyIiwianRpIjoiOGUxMWI1ZGItNTE5Mi00NmIzLWIzMDAtNDMwYjZmNDI4YWExIiwiZW1haWwiOiIiLCJpZCI6IjEwMDIiLCJOYW1lIjoiVEVNUCAtIERPQ1RPUiIsIkVtcGxveWVlSWQiOiI0NzA5IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiI0NzA5IiwiU0VTU0lPTklEIjoiMjE1OTU3MjgiLCJDbGluaWNJZCI6IjEiLCJyb2xlIjpbIkRPQ1RPUlMiLCJIRUFEIERPQ1RPUlMiLCJBRE1JTklTVFJBVE9SUyIsIlJFQ0VQVElPTklTVCIsIkVSIE5VUlNFIiwiRVIgUkVDRVBUSU9OSVNUIiwiUEhBUk1BQ1kgQUNDT1VOVCBTVEFGRiIsIlBIQVJNQUNZIE5VUlNFIiwiSU5QQVRJRU5UIFBIQVJNQUNJU1QiLCJBRE1JU1NJT04gU1RBRkYiLCJBUFBST1ZBTCBTVEFGRiIsIkNPTlNFTlQgIiwiTUVESUNBTCBSRVBPUlQgLSBTSUNLIExFQVZFIE1BTkFHRVIiXSwibmJmIjoxNjA4ODE0MDcyLCJleHAiOjE2MDk2NzgwNzIsImlhdCI6MTYwODgxNDA3Mn0.u23f3ifrNMQrK0ReTZWs9olaZCEYuf06ZZZJsBWJ5LI";
print("URL : $url"); print("URL : $url");
print("Body : ${json.encode(body)}"); print("Body : ${json.encode(body)}");
@ -78,25 +79,27 @@ class BaseAppClient {
onFailure('Error While Fetching data', statusCode); onFailure('Error While Fetching data', statusCode);
} else { } else {
var parsed = json.decode(response.body.toString()); var parsed = json.decode(response.body.toString());
if (!parsed['IsAuthenticated']) { // if (!parsed['IsAuthenticated']) {
await helpers.logout(); // await helpers.logout();
//
helpers.showErrorToast('Your session expired Please login agian'); // helpers.showErrorToast('Your session expired Please login agian');
} else // } else
if (parsed['MessageStatus'] == 1) { if (parsed['MessageStatus'] == 1) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else { } else {
String error = String error =
parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage']; parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'];
if (parsed["ValidationErrors"] != null) { if (parsed["ValidationErrors"] != null) {
error =
parsed["ValidationErrors"]["StatusMessage"].toString() + "\n";
if (parsed["ValidationErrors"]["ValidationErrors"] != null && if (parsed["ValidationErrors"]["ValidationErrors"] != null &&
parsed["ValidationErrors"]["ValidationErrors"].length != 0) { parsed["ValidationErrors"]["ValidationErrors"].length != 0) {
error ='';
for (var i = 0; for (var i = 0;
i < parsed["ValidationErrors"]["ValidationErrors"].length; i < parsed["ValidationErrors"]["ValidationErrors"].length;
i++) { i++) {
error = error +parsed["ValidationErrors"]["ValidationErrors"][i]["Messages"][0] +"\n"; error = error +parsed["ValidationErrors"]["ValidationErrors"][i]["Messages"][0] +"\n";
} }
} }
} }

@ -86,6 +86,8 @@ const END_CALL_WITH_CHARGE = 'LiveCareApi/DoctorApp/CompleteCallWithCharge';
const GET_ALLERGIES = 'Services/DoctorApplication.svc/REST/GetAllergies'; const GET_ALLERGIES = 'Services/DoctorApplication.svc/REST/GetAllergies';
const GET_MASTER_LOOKUP_LIST = 'Services/DoctorApplication.svc/REST/GetMasterLookUpList'; const GET_MASTER_LOOKUP_LIST = 'Services/DoctorApplication.svc/REST/GetMasterLookUpList';
const POST_ALLERGY = 'Services/DoctorApplication.svc/REST/PostAllergies'; const POST_ALLERGY = 'Services/DoctorApplication.svc/REST/PostAllergies';
const POST_HISTORY = 'Services/DoctorApplication.svc/REST/PostHistory';
const POST_CHIEF_COMPLAINT = 'Services/DoctorApplication.svc/REST/PostChiefcomplaint';
var selectedPatientType = 1; var selectedPatientType = 1;

@ -280,7 +280,10 @@ const Map<String, Map<String, String>> localizedValues = {
'clinicSelect': {'en': "Select Clinic", 'ar': 'اختار عيادة'}, 'clinicSelect': {'en': "Select Clinic", 'ar': 'اختار عيادة'},
'doctorSelect': {'en': "Select Doctor", 'ar': 'اختار طبيب'}, 'doctorSelect': {'en': "Select Doctor", 'ar': 'اختار طبيب'},
"empty-message": { "empty-message": {
"en": "Please enter message", "en": "Please enter Value",
"ar": "يرجى ادخال الموضوع" "ar": "يرجى ادخال القيمه"
},"chiefComplaintLength": {
"en": "Chief Complaint length should be greater than 25",
"ar": "يجب أن يكون طول شكوى الرئيس أكبر من 25"
}, },
}; };

@ -1,14 +1,13 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/SOAP/get_Allergies_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/get_Allergies_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_chief_complaint_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_histories_request_model.dart';
import 'base/lookup-service.dart'; import 'base/lookup-service.dart';
class SOAPService extends LookupService { class SOAPService extends LookupService {
Future getAllergies(GetAllergiesRequestModel getAllergiesRequestModel) async { Future getAllergies(GetAllergiesRequestModel getAllergiesRequestModel) async {
await baseAppClient.post( await baseAppClient.post(
GET_ALLERGIES, GET_ALLERGIES,
@ -27,13 +26,38 @@ class SOAPService extends LookupService {
} }
Future postAllergy(PostAllergyRequestModel postAllergyRequestModel) async { Future postAllergy(PostAllergyRequestModel postAllergyRequestModel) async {
hasError = false;
await baseAppClient.post(POST_ALLERGY, await baseAppClient.post(POST_ALLERGY,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
print("Success"); print("Success");
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
super.error = error; super.error = error;
}, body: postAllergyRequestModel.toJson()); }, body: postAllergyRequestModel.toJson());
} }
Future postHistories(
PostHistoriesRequestModel postHistoriesRequestModel) async {
hasError = false;
await baseAppClient.post(POST_HISTORY,
onSuccess: (dynamic response, int statusCode) {
print("Success");
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: postHistoriesRequestModel.toJson());
}
Future postChiefComplaint(
PostChiefComplaintRequestModel postChiefComplaintRequestModel) async {
hasError = false;
await baseAppClient.post(POST_CHIEF_COMPLAINT,
onSuccess: (dynamic response, int statusCode) {
print("Success");
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: postChiefComplaintRequestModel.toJson());
}
} }

@ -27,6 +27,7 @@ class LookupService extends BaseService {
List<MasterKeyModel> _historySurgicalList = []; List<MasterKeyModel> _historySurgicalList = [];
Future getMasterLookup(MasterKeysService masterKeys) async { Future getMasterLookup(MasterKeysService masterKeys) async {
hasError = false;
Map<String, dynamic> body = { Map<String, dynamic> body = {
"MasterInput": masterKeys.getMasterKeyService() "MasterInput": masterKeys.getMasterKeyService()
}; };

@ -5,6 +5,8 @@ import 'package:doctor_app_flutter/models/SOAP/Allergy_model.dart';
import 'package:doctor_app_flutter/models/SOAP/get_Allergies_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/get_Allergies_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_chief_complaint_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_histories_request_model.dart';
import '../../locator.dart'; import '../../locator.dart';
import 'base_view_model.dart'; import 'base_view_model.dart';
@ -60,5 +62,25 @@ class SOAPViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future postHistories(PostHistoriesRequestModel postHistoriesRequestModel) async {
setState(ViewState.BusyLocal);
await _SOAPService.postHistories(postHistoriesRequestModel);
if (_SOAPService.hasError) {
error = _SOAPService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future postChiefComplaint(PostChiefComplaintRequestModel postChiefComplaintRequestModel) async {
setState(ViewState.BusyLocal);
await _SOAPService.postChiefComplaint(postChiefComplaintRequestModel);
if (_SOAPService.hasError) {
error = _SOAPService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
} }

@ -0,0 +1,48 @@
class PostChiefComplaintRequestModel {
int appointmentNo;
int episodeID;
int patientMRN;
String chiefComplaint;
String hopi;
String currentMedication;
bool ispregnant;
bool isLactation;
int numberOfWeeks;
PostChiefComplaintRequestModel(
{this.appointmentNo,
this.episodeID,
this.patientMRN,
this.chiefComplaint,
this.hopi,
this.currentMedication,
this.ispregnant,
this.isLactation,
this.numberOfWeeks});
PostChiefComplaintRequestModel.fromJson(Map<String, dynamic> json) {
appointmentNo = json['AppointmentNo'];
episodeID = json['EpisodeID'];
patientMRN = json['PatientMRN'];
chiefComplaint = json['chiefComplaint'];
hopi = json['Hopi'];
currentMedication = json['CurrentMedication'];
ispregnant = json['ispregnant'];
isLactation = json['isLactation'];
numberOfWeeks = json['numberOfWeeks'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['AppointmentNo'] = this.appointmentNo;
data['EpisodeID'] = this.episodeID;
data['PatientMRN'] = this.patientMRN;
data['chiefComplaint'] = this.chiefComplaint;
data['Hopi'] = this.hopi;
data['CurrentMedication'] = this.currentMedication;
data['ispregnant'] = this.ispregnant;
data['isLactation'] = this.isLactation;
data['numberOfWeeks'] = this.numberOfWeeks;
return data;
}
}

@ -0,0 +1,64 @@
class PostHistoriesRequestModel {
List<ListMedicalHistoryVM> listMedicalHistoryVM;
PostHistoriesRequestModel({this.listMedicalHistoryVM});
PostHistoriesRequestModel.fromJson(Map<String, dynamic> json) {
if (json['listMedicalHistoryVM'] != null) {
listMedicalHistoryVM = new List<ListMedicalHistoryVM>();
json['listMedicalHistoryVM'].forEach((v) {
listMedicalHistoryVM.add(new ListMedicalHistoryVM.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.listMedicalHistoryVM != null) {
data['listMedicalHistoryVM'] =
this.listMedicalHistoryVM.map((v) => v.toJson()).toList();
}
return data;
}
}
class ListMedicalHistoryVM {
int patientMRN;
int historyType;
int historyId;
int episodeId;
int appointmentNo;
bool isChecked;
String remarks;
ListMedicalHistoryVM(
{this.patientMRN,
this.historyType,
this.historyId,
this.episodeId,
this.appointmentNo,
this.isChecked,
this.remarks});
ListMedicalHistoryVM.fromJson(Map<String, dynamic> json) {
patientMRN = json['patientMRN'];
historyType = json['historyType'];
historyId = json['historyId'];
episodeId = json['episodeId'];
appointmentNo = json['appointmentNo'];
isChecked = json['isChecked'];
remarks = json['remarks'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['patientMRN'] = this.patientMRN;
data['historyType'] = this.historyType;
data['historyId'] = this.historyId;
data['episodeId'] = this.episodeId;
data['appointmentNo'] = this.appointmentNo;
data['isChecked'] = this.isChecked;
data['remarks'] = this.remarks;
return data;
}
}

@ -300,6 +300,7 @@ class TranslationBase {
String get next => localizedValues['next'][locale.languageCode]; String get next => localizedValues['next'][locale.languageCode];
String get healthRecordInformation => localizedValues['healthRecordInformation'][locale.languageCode]; String get healthRecordInformation => localizedValues['healthRecordInformation'][locale.languageCode];
String get emptyMessage => localizedValues['empty-message'][locale.languageCode]; String get emptyMessage => localizedValues['empty-message'][locale.languageCode];
String get chiefComplaintLength => localizedValues['chiefComplaintLength'][locale.languageCode];
} }

@ -5,6 +5,8 @@ import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/models/SOAP/my_selected_allergy.dart'; import 'package:doctor_app_flutter/models/SOAP/my_selected_allergy.dart';
import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_chief_complaint_request_model.dart';
import 'package:doctor_app_flutter/models/SOAP/post_histories_request_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/SOAP/subjective/add_allergies_widget.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/SOAP/subjective/add_allergies_widget.dart';
@ -34,9 +36,9 @@ class _SubjectivePageState extends State<SubjectivePage> {
bool isChiefExpand = false; bool isChiefExpand = false;
bool isHistoryExpand = false; bool isHistoryExpand = false;
bool isAllergiesExpand = false; bool isAllergiesExpand = false;
List<MasterKeyModel> myHistoryList = List();
TextEditingController illnessController = TextEditingController(); TextEditingController illnessController = TextEditingController();
TextEditingController complaintsController = TextEditingController(); TextEditingController complaintsController = TextEditingController();
final formKey = GlobalKey<FormState>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -83,56 +85,64 @@ class _SubjectivePageState extends State<SubjectivePage> {
isChiefExpand ? EvaIcons.minus : EvaIcons.plus)) isChiefExpand ? EvaIcons.minus : EvaIcons.plus))
], ],
), ),
bodyWidget: Column(children: [ bodyWidget: Form(
SizedBox( key: formKey,
height: 20, child: Column(children: [
), SizedBox(
Container( height: 20,
margin: EdgeInsets.only(left: 10, right: 10, top: 15), ),
child: TextFields( Container(
hintText: "Add Chief Complaints", margin: EdgeInsets.only(left: 10, right: 10, top: 15),
fontSize: 13.5, child: TextFields(
// hintColor: Colors.black, hintText: "Add Chief Complaints",
fontWeight: FontWeight.w600, fontSize: 13.5,
maxLines: 25, // hintColor: Colors.black,
minLines: 13, fontWeight: FontWeight.w600,
controller: complaintsController, maxLines: 25,
validator: (value) { minLines: 13,
if (value == null) controller: complaintsController,
return TranslationBase validator: (value) {
.of(context) if (value == null || value =="")
.emptyMessage; return TranslationBase
else .of(context)
return null; .emptyMessage;
}), else if (value.length < 25)
), return TranslationBase
SizedBox( .of(context)
height: 20, .chiefComplaintLength;
), //"";
Container( else
margin: EdgeInsets.only(left: 10, right: 10, top: 15), return null;
child: TextFields( }),
hintText: "History of Present Illness", ),
fontSize: 13.5, SizedBox(
// hintColor: Colors.black, height: 20,
fontWeight: FontWeight.w600, ),
maxLines: 25, Container(
minLines: 13, margin: EdgeInsets.only(left: 10, right: 10, top: 15),
controller: illnessController, child: TextFields(
validator: (value) { hintText: "History of Present Illness",
if (value == null) fontSize: 13.5,
return TranslationBase // hintColor: Colors.black,
.of(context) fontWeight: FontWeight.w600,
.emptyMessage; maxLines: 25,
else minLines: 13,
return null; controller: illnessController,
}), validator: (value) {
), if (value == null || value =="")
SizedBox( return TranslationBase
height: 20, .of(context)
), .emptyMessage;
AddMedication(), else
]), return null;
}),
),
SizedBox(
height: 20,
),
AddMedication(),
]),
),
isExpand: isChiefExpand, isExpand: isChiefExpand,
), ),
@ -177,7 +187,7 @@ class _SubjectivePageState extends State<SubjectivePage> {
), ),
bodyWidget: Column( bodyWidget: Column(
children: [ children: [
AddHistoryWidget(myHistoryList: myHistoryList) AddHistoryWidget(myHistoryList: widget.myHistoryList)
], ],
), ),
isExpand: isHistoryExpand, isExpand: isHistoryExpand,
@ -243,58 +253,118 @@ class _SubjectivePageState extends State<SubjectivePage> {
SizedBox( SizedBox(
height: 30, height: 30,
), ),
AppButton( AppButton(
title: TranslationBase title: TranslationBase.of(context).next,
.of(context) loading: model.state == ViewState.BusyLocal,
.next, onPressed: () async {
addSubjectiveInfo(
onPressed: () async { model: model,
addSubjectiveInfo(model: model, myAllergiesList: widget.myAllergiesList,
myAllergiesList: widget.myAllergiesList, myHistoryList: widget.myHistoryList);
myHistoryList: myHistoryList); },
),
},
),
], ],
), ),
), ),
), ),
),),); ),
),
);
} }
addSubjectiveInfo( addSubjectiveInfo(
{SOAPViewModel model, List<MySelectedAllergy> myAllergiesList, List< {SOAPViewModel model,
MasterKeyModel> myHistoryList }) async { List<MySelectedAllergy> myAllergiesList,
PostAllergyRequestModel postAllergyRequestModel = new PostAllergyRequestModel(); List<MasterKeyModel> myHistoryList}) async {
await postChiefComplaint(model: model);
if (myHistoryList.length != 0)
await postHistories(model: model, myHistoryList: myHistoryList);
if (myAllergiesList.length != 0)
await postAllergy(myAllergiesList: myAllergiesList, model: model);
widget.changePageViewIndex(1);
}
postAllergy(
{List<MySelectedAllergy> myAllergiesList, SOAPViewModel model}) async {
PostAllergyRequestModel postAllergyRequestModel =
new PostAllergyRequestModel();
widget.myAllergiesList.forEach((allergy) { widget.myAllergiesList.forEach((allergy) {
if(postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM ==null) if (postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM ==
null)
postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM = []; postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM = [];
postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM.add( //TODO: make static value dynamic
ListHisProgNotePatientAllergyDiseaseVM( postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM
allergyDiseaseId: allergy.selectedAllergy.id, .add(ListHisProgNotePatientAllergyDiseaseVM(
allergyDiseaseType: allergy.selectedAllergy.typeId, allergyDiseaseId: allergy.selectedAllergy.id,
patientMRN: 2500477, allergyDiseaseType: allergy.selectedAllergy.typeId,
episodeId: 200011502, patientMRN: 3120690,
appointmentNo: 2016053271, episodeId: 200012117,
severity: allergy.selectedAllergySeverity.id, appointmentNo: 2016054573,
remarks: allergy.remark, severity: allergy.selectedAllergySeverity.id,
createdBy: 1485, remarks: allergy.remark,
createdOn: "2020-08-14T20:37:22.780Z", createdBy: 1485,
editedBy: 1485, //
editedOn: "2020-08-14T20:37:22.780Z", createdOn: "2020-08-14T20:37:22.780Z",
isChecked: false, editedBy: 1485,
isUpdatedByNurse: false editedOn: "2020-08-14T20:37:22.780Z",
)); isChecked: false,
isUpdatedByNurse: false));
}); });
await model.postAllergy(postAllergyRequestModel); await model.postAllergy(postAllergyRequestModel);
if(model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error); helpers.showErrorToast(model.error);
} }
widget.changePageViewIndex(1); }
print(postAllergyRequestModel); postHistories(
{List<MasterKeyModel> myHistoryList, SOAPViewModel model}) async {
PostHistoriesRequestModel postHistoriesRequestModel =
new PostHistoriesRequestModel();
widget.myHistoryList.forEach((history) {
if (postHistoriesRequestModel.listMedicalHistoryVM == null)
postHistoriesRequestModel.listMedicalHistoryVM = [];
//TODO: make static value dynamic
postHistoriesRequestModel.listMedicalHistoryVM.add(ListMedicalHistoryVM(
patientMRN: 3120690,
episodeId: 200012117,
appointmentNo: 2016054573,
remarks: "",
historyId: history.id,
historyType: history.typeId,
isChecked: false,
));
});
await model.postHistories(postHistoriesRequestModel);
if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error);
}
} }
postChiefComplaint({SOAPViewModel model}) async {
formKey.currentState.save();
if(formKey.currentState.validate()){
PostChiefComplaintRequestModel postChiefComplaintRequestModel =
//TODO: make static value dynamic
new PostChiefComplaintRequestModel(
patientMRN: 3120690,
episodeID: 200012117,
appointmentNo: 2016054573,
chiefComplaint: complaintsController.text,
currentMedication: "currentMedication",
hopi: illnessController.text,
isLactation: false,
ispregnant: false,
numberOfWeeks: 22);
await model.postChiefComplaint(postChiefComplaintRequestModel);
if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error);
}
}
}
} }

@ -157,7 +157,7 @@ class _TextFieldsState extends State<TextFields> {
: :
Icon(EvaIcons.search, size: 20.0, color: Colors.grey[500]), Icon(EvaIcons.search, size: 20.0, color: Colors.grey[500]),
errorStyle: TextStyle(fontSize: 14.0, fontWeight: widget.fontWeight, height: widget.borderOnlyError ? 0.0 : null), errorStyle: TextStyle(fontSize: 12.0, fontWeight: widget.fontWeight, height: widget.borderOnlyError ? 0.0 : null),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
borderSide: BorderSide(color: Theme.of(context).errorColor.withOpacity(widget.bare ? 0.0 : 0.5 ), width: 2.0), borderSide: BorderSide(color: Theme.of(context).errorColor.withOpacity(widget.bare ? 0.0 : 0.5 ), width: 2.0),
borderRadius: BorderRadius.circular(widget.bare ? 0.0 : 8.0) borderRadius: BorderRadius.circular(widget.bare ? 0.0 : 8.0)

@ -14,50 +14,78 @@ class AppButton extends StatefulWidget {
final Color color; final Color color;
final double fontSize; final double fontSize;
final double padding; final double padding;
final bool loading;
final bool disabled;
AppButton({@required this.onPressed, this.title, this.icon, this.color, this.fontSize = 2, this.padding = 13}); AppButton(
{@required this.onPressed,
this.title,
this.icon,
this.color,
this.fontSize = 2,
this.padding = 13,
this.loading = false,
this.disabled = false});
_AppButtonState createState() => _AppButtonState(); _AppButtonState createState() => _AppButtonState();
} }
class _AppButtonState extends State<AppButton>{ class _AppButtonState extends State<AppButton>{
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return return
RawMaterialButton( IgnorePointer(
fillColor: widget.color != null ? widget.color : HexColor("#B8382C"), ignoring: widget.loading,
splashColor: widget.color, child: RawMaterialButton(
child: Padding( fillColor: widget.color != null ? widget.color : HexColor("#B8382C"),
padding: EdgeInsets.only( splashColor: widget.color,
top: widget.padding, child: Padding(
bottom: widget.padding, padding: EdgeInsets.only(
//right: SizeConfig.widthMultiplier * widget.padding, top: widget.padding,
//left: SizeConfig.widthMultiplier * widget.padding bottom: widget.padding,
), //right: SizeConfig.widthMultiplier * widget.padding,
child: Row( //left: SizeConfig.widthMultiplier * widget.padding
mainAxisSize: MainAxisSize.max, ),
mainAxisAlignment: MainAxisAlignment.center, child: Row(
children: <Widget>[ mainAxisSize: MainAxisSize.max,
if (widget.icon != null) mainAxisAlignment: MainAxisAlignment.center,
Icon( children: <Widget>[
widget.icon, if (widget.icon != null)
color: Colors.white, Icon(
), widget.icon,
if (widget.icon != null) color: Colors.white,
SizedBox( ),
width: 5.0, if (widget.icon != null)
), SizedBox(
AppText( width: 5.0,
widget.title.toUpperCase(), ),
color: Colors.white, widget.loading
fontSize: SizeConfig.textMultiplier * widget.fontSize , ? Padding(
), padding: EdgeInsets.all(2.6),
], child: SizedBox(
height: 19.0,
width: 19.0,
child: CircularProgressIndicator(
backgroundColor: Colors.white,
valueColor:
AlwaysStoppedAnimation<Color>(
Colors.grey[300],
),
),
),
)
: AppText(
widget.title.toUpperCase(),
color: Colors.white,
fontSize: SizeConfig.textMultiplier * widget.fontSize,
),
],
),
), ),
onPressed: widget.onPressed,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(6))),
), ),
onPressed: widget.onPressed, );
shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(6))),
);
} }
} }
Loading…
Cancel
Save