merge-requests/270/head
Sultan Khan 5 years ago
commit d5d7ea6c49

Binary file not shown.

@ -7,7 +7,7 @@ const Map<String, Map<String, String>> localizedValues = {
'theDoctor': {'en': 'Doctor', 'ar': 'الطبيب'}, 'theDoctor': {'en': 'Doctor', 'ar': 'الطبيب'},
'reply': {'en': 'Reply', 'ar': 'رد'}, 'reply': {'en': 'Reply', 'ar': 'رد'},
'time': {'en': 'Time', 'ar': 'الوقت'}, 'time': {'en': 'Time', 'ar': 'الوقت'},
'fileNo': {'en': 'File No:', 'ar': 'رقم الملف:'}, 'fileNo': {'en': 'File No : ', 'ar': 'رقم الملف :'},
'mobileNo': {'en': 'Mobile No', 'ar': 'رقم الموبايل'}, 'mobileNo': {'en': 'Mobile No', 'ar': 'رقم الموبايل'},
'messagesScreenToolbarTitle': {'en': 'Messages', 'ar': 'الرسائل'}, 'messagesScreenToolbarTitle': {'en': 'Messages', 'ar': 'الرسائل'},
'mySchedule': {'en': 'Schedule', 'ar': 'جدولي'}, 'mySchedule': {'en': 'Schedule', 'ar': 'جدولي'},
@ -329,7 +329,7 @@ const Map<String, Map<String, String>> localizedValues = {
'referredFrom': {'en': "Referred From", 'ar': 'محال من'}, 'referredFrom': {'en': "Referred From", 'ar': 'محال من'},
'branch': {'en': "Branch", 'ar': 'الفرع'}, 'branch': {'en': "Branch", 'ar': 'الفرع'},
'chooseAppointment': {'en': "Choose Appointment", 'ar': 'اختر موعد'}, 'chooseAppointment': {'en': "Choose Appointment", 'ar': 'اختر موعد'},
'appointmentNo': {'en': "Appointment #:", 'ar': '# الموعد:'}, 'appointmentNo': {'en': "Appointment # : ", 'ar': '# الموعد:'},
'refer': {'en': "REFER", 'ar': 'إحالة'}, 'refer': {'en': "REFER", 'ar': 'إحالة'},
'rejected': {'en': "Rejected", 'ar': 'مرفوض'}, 'rejected': {'en': "Rejected", 'ar': 'مرفوض'},
'sameBranch': {'en': "Same Branch", 'ar': 'نفس الفرع'}, 'sameBranch': {'en': "Same Branch", 'ar': 'نفس الفرع'},
@ -582,7 +582,7 @@ const Map<String, Map<String, String>> localizedValues = {
}, },
'searchExamination': {'en': "Search Examination", 'ar': "فحص البحث"}, 'searchExamination': {'en': "Search Examination", 'ar': "فحص البحث"},
'addExamination': {'en': "Add Examination", 'ar': "اضافه"}, 'addExamination': {'en': "Add Examination", 'ar': "اضافه"},
'doc': {'en': "Doc :", 'ar': " د: "}, 'doc': {'en': "Doc : ", 'ar': " د : "},
'patientNoDetailErrMsg': { 'patientNoDetailErrMsg': {
'en': "There is no detail for this patient", 'en': "There is no detail for this patient",
'ar': "لا توجد تفاصيل لهذا المريض" 'ar': "لا توجد تفاصيل لهذا المريض"

@ -217,7 +217,9 @@ class SOAPService extends LookupService {
await baseAppClient.post (GET_ALLERGY, await baseAppClient.post (GET_ALLERGY,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
print("Success");
patientAllergiesList.clear(); patientAllergiesList.clear();
response['List_Allergies']['entityList'].forEach((v) { response['List_Allergies']['entityList'].forEach((v) {
patientAllergiesList.add(GetAllergiesResModel.fromJson(v)); patientAllergiesList.add(GetAllergiesResModel.fromJson(v));
}); });

@ -48,7 +48,9 @@ class PrescriptionService extends BaseService {
}, body: _prescriptionReqModel.toJson()); }, body: _prescriptionReqModel.toJson());
} }
Future getDrugs() async { Future getDrugs({String drugName}) async {
_drugRequestModel = SearchDrugRequestModel(search: [drugName]);
hasError = false; hasError = false;
await baseAppClient.post(SEARCH_DRUG, await baseAppClient.post(SEARCH_DRUG,
@ -63,7 +65,7 @@ class PrescriptionService extends BaseService {
Future getMedicationList() async { Future getMedicationList() async {
hasError = false; hasError = false;
_drugRequestModel.search =[""]; _drugRequestModel.search = [""];
await baseAppClient.post(SEARCH_DRUG, await baseAppClient.post(SEARCH_DRUG,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
allMedicationList = []; allMedicationList = [];

@ -237,13 +237,18 @@ class SOAPViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getPatientAllergy(GeneralGetReqForSOAP generalGetReqForSOAP,
Future getPatientAllergy(GeneralGetReqForSOAP generalGetReqForSOAP) async { {isLocalBusy = false}) async {
if (isLocalBusy) {
setState(ViewState.BusyLocal);
} else
setState(ViewState.Busy); setState(ViewState.Busy);
await _SOAPService.getPatientAllergy(generalGetReqForSOAP); await _SOAPService.getPatientAllergy(generalGetReqForSOAP);
if (_SOAPService.hasError) { if (_SOAPService.hasError) {
error = _SOAPService.error; error = _SOAPService.error;
if (isLocalBusy) {
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Error); setState(ViewState.Error);
} else } else
setState(ViewState.Idle); setState(ViewState.Idle);

@ -12,8 +12,8 @@ class MedicineViewModel extends BaseViewModel {
get pharmaciesList => _medicineService.pharmaciesList; get pharmaciesList => _medicineService.pharmaciesList;
PrescriptionService _prescriptionService = locator<PrescriptionService>(); PrescriptionService _prescriptionService = locator<PrescriptionService>();
List<GetMedicationResponseModel> get allMedicationList => _prescriptionService.allMedicationList; List<GetMedicationResponseModel> get allMedicationList =>
_prescriptionService.allMedicationList;
Future getMedicineItem(String itemName) async { Future getMedicineItem(String itemName) async {
setState(ViewState.Busy); setState(ViewState.Busy);
@ -24,6 +24,7 @@ class MedicineViewModel extends BaseViewModel {
} else } else
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getMedicationList() async { Future getMedicationList() async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _prescriptionService.getMedicationList(); await _prescriptionService.getMedicationList();

@ -2,7 +2,6 @@ import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/service/patient_service.dart'; import 'package:doctor_app_flutter/core/service/patient_service.dart';
import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart'; import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart';
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart'; import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart';
import 'package:doctor_app_flutter/models/patient/patient_model.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report.dart'; import 'package:doctor_app_flutter/models/patient/prescription/prescription_report.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report_for_in_patient.dart'; import 'package:doctor_app_flutter/models/patient/prescription/prescription_report_for_in_patient.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_res_model.dart'; import 'package:doctor_app_flutter/models/patient/prescription/prescription_res_model.dart';
@ -56,16 +55,13 @@ class PatientViewModel extends BaseViewModel {
} else { } else {
setState(ViewState.Busy); setState(ViewState.Busy);
} }
return _patientService.getPatientList(patient, patientType);
if (_patientService.hasError) { if (_patientService.hasError) {
error = _patientService.error; error = _patientService.error;
if (isBusyLocal) {
setState(ViewState.ErrorLocal);
} else {
setState(ViewState.Error); setState(ViewState.Error);
} }
} else return _patientService.getPatientList(patient, patientType);
setState(ViewState.Idle);
} }
Future getPatientVitalSign(patient) async { Future getPatientVitalSign(patient) async {

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/Prescription_model.dart'; import 'package:doctor_app_flutter/core/model/Prescription_model.dart';
import 'package:doctor_app_flutter/core/model/get_medication_response_model.dart';
import 'package:doctor_app_flutter/core/model/post_prescrition_req_model.dart'; import 'package:doctor_app_flutter/core/model/post_prescrition_req_model.dart';
import 'package:doctor_app_flutter/core/model/search_drug_model.dart'; import 'package:doctor_app_flutter/core/model/search_drug_model.dart';
import 'package:doctor_app_flutter/core/service/prescription_service.dart'; import 'package:doctor_app_flutter/core/service/prescription_service.dart';
@ -13,11 +14,13 @@ import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-
class PrescriptionViewModel extends BaseViewModel { class PrescriptionViewModel extends BaseViewModel {
bool hasError = false; bool hasError = false;
PrescriptionService _prescriptionService = locator<PrescriptionService>(); PrescriptionService _prescriptionService = locator<PrescriptionService>();
List<GetMedicationResponseModel> get allMedicationList =>
_prescriptionService.allMedicationList;
List<PrescriptionModel> get prescriptionList => List<PrescriptionModel> get prescriptionList =>
_prescriptionService.prescriptionList; _prescriptionService.prescriptionList;
List<dynamic> get drugsList => _prescriptionService.doctorsList; List<dynamic> get drugsList => _prescriptionService.doctorsList;
List<dynamic> get allMedicationList => _prescriptionService.allMedicationList; //List<dynamic> get allMedicationList => _prescriptionService.allMedicationList;
Future getPrescription({int mrn}) async { Future getPrescription({int mrn}) async {
hasError = false; hasError = false;
@ -46,6 +49,16 @@ class PrescriptionViewModel extends BaseViewModel {
} }
} }
Future getMedicationList() async {
setState(ViewState.Busy);
await _prescriptionService.getMedicationList();
if (_prescriptionService.hasError) {
error = _prescriptionService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
Future updatePrescription( Future updatePrescription(
PostPrescriptionReqModel updatePrescriptionReqModel, int mrn) async { PostPrescriptionReqModel updatePrescriptionReqModel, int mrn) async {
hasError = false; hasError = false;
@ -61,11 +74,11 @@ class PrescriptionViewModel extends BaseViewModel {
} }
} }
Future getDrugs() async { Future getDrugs({String drugName}) async {
hasError = false; hasError = false;
//_insuranceCardService.clearInsuranceCard(); //_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy); setState(ViewState.BusyLocal);
await _prescriptionService.getDrugs(); await _prescriptionService.getDrugs(drugName: drugName);
if (_prescriptionService.hasError) { if (_prescriptionService.hasError) {
error = _prescriptionService.error; error = _prescriptionService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);

@ -61,6 +61,7 @@ class ProcedureViewModel extends BaseViewModel {
if (_procedureService.hasError) { if (_procedureService.hasError) {
error = _procedureService.error; error = _procedureService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
await getProcedure(mrn: mrn);
} else { } else {
await getProcedure(mrn: mrn); await getProcedure(mrn: mrn);
setState(ViewState.Idle); setState(ViewState.Idle);
@ -68,7 +69,7 @@ class ProcedureViewModel extends BaseViewModel {
} }
Future updateProcedure( Future updateProcedure(
PostProcedureReqModel postProcedureReqModel, int mrn) async { {PostProcedureReqModel postProcedureReqModel, int mrn}) async {
hasError = false; hasError = false;
//_insuranceCardService.clearInsuranceCard(); //_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy); setState(ViewState.Busy);

@ -412,6 +412,20 @@
"leaves" "leaves"
] ]
}, },
{
"uid": "4477771717c5280f9030b8e410040eda",
"css": "search_patient-1",
"code": 59465,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M1142.7 436.8A165.2 165.2 0 1 0 1307.8 601.9 165.4 165.4 0 0 0 1142.7 436.8ZM1142.7 748.8A146.9 146.9 0 1 1 1289.5 601.9 147 147 0 0 1 1142.7 748.8ZM1023.4 611.1H1041.7A110.3 110.3 0 0 1 1151.8 500.9V482.7A128.5 128.5 0 0 0 1023.4 611.1ZM1476.4 883.8L1489.3 870.9 1357.9 739.4 1345 752.4 1322 729.4A219.8 219.8 0 1 0 1270.1 781.5L1293.1 804.5 1280.2 817.4 1411.4 948.7 1424.4 935.7 1306 817.3 1357.9 765.4ZM1142.6 803.9A201.9 201.9 0 1 1 1344.4 602 202.2 202.2 0 0 1 1142.6 803.9ZM1306 791.3L1284.7 770.1A220.1 220.1 0 0 0 1310.7 744.1L1332.1 765.5ZM48.4 483.9H301.4A96.4 96.4 0 0 1 276.7 346.5 305.1 305.1 0 0 1 257.9 242V201.9A201.8 201.8 0 0 1 564.5 29.2 201.8 201.8 0 0 1 871 201.8V205.4L887 177.2 957.1 299.9A80.6 80.6 0 0 1 869.7 417.5 96.9 96.9 0 0 1 785.1 499.2 226.4 226.4 0 0 1 645.1 662.2V696.2L780.4 720.8A267.4 267.4 0 0 1 999.9 983.9V999.9H129V983.9A267.4 267.4 0 0 1 348.6 720.8L483.9 696.2V662.3A224.6 224.6 0 0 1 396.8 602.3C396 602.6 395.1 602.8 394.3 603.1A92.8 92.8 0 0 1 352.9 612.9H48.4A48.4 48.4 0 0 1 0 564.5V532.3A48.4 48.4 0 0 1 48.4 483.9ZM339.5 465.8C339.3 461.1 338.7 456.4 338.7 451.7V341A64.2 64.2 0 0 0 339.5 465.7ZM838.7 242V201.9A169.6 169.6 0 0 0 575.1 60.8L564.5 67.8 554 60.8A169.6 169.6 0 0 0 290.3 201.9V242A273.2 273.2 0 0 0 302.3 322.2 96.2 96.2 0 0 1 338.7 308.1V282.4L403.2 234V193.5A32.3 32.3 0 0 1 435.5 161.3H693.5A32.3 32.3 0 0 1 725.8 193.5V233.9L790.3 282.3V307.8A95.4 95.4 0 0 1 810.8 313.9 78.8 78.8 0 0 1 817 299.9L837.7 263.6C838.3 256.4 838.7 249.2 838.7 242ZM435.5 290.4H693.6V193.5H435.5ZM887.9 387.2A47.6 47.6 0 0 0 929.3 316L887.1 242.2 844.9 315.9A47.6 47.6 0 0 0 887.6 387.1ZM838.8 403.2A79.4 79.4 0 0 1 807.4 348.1 63.2 63.2 0 0 0 790.4 340.9V451.6C790.4 456.4 790 461 789.7 465.7A64.5 64.5 0 0 0 838.7 403.2ZM758.1 451.6V298.4L725.9 274.3V290.4A32.3 32.3 0 0 1 693.6 322.6H435.5A32.3 32.3 0 0 1 403.2 290.4V274.3L370.9 298.4V451.6A195.2 195.2 0 0 0 374.4 486.4 92.8 92.8 0 0 1 394.3 493.6 60.6 60.6 0 0 0 421.2 500H532.2A48.4 48.4 0 1 1 532.2 596.7H436.9A193.2 193.2 0 0 0 758.1 451.6ZM532.3 564.5A16 16 0 1 0 532.3 532.2H516.3V564.5ZM637.4 727.6A80.7 80.7 0 0 1 583.6 771.6 64.5 64.5 0 0 0 645.1 806.4C680.7 806.4 709.6 784.7 709.6 758A36.4 36.4 0 0 0 704.4 739.7ZM161.8 967.8H967.2A235 235 0 0 0 774.7 752.6L740.8 746.5A64.8 64.8 0 0 1 742 758.2C742 802.6 698.6 838.8 645.2 838.8A102.9 102.9 0 0 1 564.6 802.6 102.9 102.9 0 0 1 483.9 838.7C430.4 838.7 387.1 802.5 387.1 758.1A65.9 65.9 0 0 1 388.2 746.4L354.4 752.6A235 235 0 0 0 161.8 967.8ZM424.5 739.9A36.4 36.4 0 0 0 419.4 758.2C419.4 784.9 448.3 806.6 483.9 806.6A64.5 64.5 0 0 0 545.4 771.8 80.6 80.6 0 0 1 491.6 727.7ZM516 677.4V693.4A48.4 48.4 0 1 0 612.8 693.4V672.1A222.6 222.6 0 0 1 516 672.1ZM379.6 574.3A92.9 92.9 0 0 1 421 564.5H483.9V532.3H421.2A93.1 93.1 0 0 1 379.9 522.5 60.6 60.6 0 0 0 352.9 516H129V580.5H352.9A60.6 60.6 0 0 0 379.9 574.3ZM32.1 564.5A16 16 0 0 0 48.1 580.5H96.8V516H48.4A16 16 0 0 0 32.4 532ZM524.9 368.4L507 341.5 410.3 406.1 428.2 432.9ZM718.5 405.8L621.8 341.3 603.9 368.1 700.6 432.7Z",
"width": 1489
},
"search": [
"search_patient"
]
},
{ {
"uid": "740f78c2b53c8cc100a8b0d283bbd34f", "uid": "740f78c2b53c8cc100a8b0d283bbd34f",
"css": "home_icon-1", "css": "home_icon-1",

@ -1,5 +1,5 @@
/// Flutter icons DoctorApp /// Flutter icons DoctorApp
/// Copyright (C) 2020 by original authors @ fluttericon.com, fontello.com /// Copyright (C) 2021 by original authors @ fluttericon.com, fontello.com
/// This font was generated by FlutterIcon.com, which is derived from Fontello. /// This font was generated by FlutterIcon.com, which is derived from Fontello.
/// ///
/// To use this font, place it in your fonts/ directory and include the /// To use this font, place it in your fonts/ directory and include the
@ -19,64 +19,36 @@ class DoctorApp {
DoctorApp._(); DoctorApp._();
static const _kFontFam = 'DoctorApp'; static const _kFontFam = 'DoctorApp';
static const String _kFontPkg = null; static const _kFontPkg = null;
static const IconData female_icon = static const IconData female_icon = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData male = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male = static const IconData reject_icon = IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData home_icon_active = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reject_icon = static const IconData menu_icon = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData menu_icon_active = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon_active = static const IconData message_icon = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData message_icon_active = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon = static const IconData scdedule_icon_active = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData schedule_icon = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon_active = static const IconData discharge_patient = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData approved_icon = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon = static const IconData pending_icon = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData in_patient_white = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon_active = static const IconData lab_results = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData home_icon = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData scdedule_icon_active = static const IconData operations = IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData out_patient = IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_icon = static const IconData patient = IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData qr_code = IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData discharge_patient = static const IconData radiology = IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData referral = IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData approved_icon = static const IconData search_patient = IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData mail = IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData pending_icon = static const IconData medicine_search = IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData referred = IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData in_patient_white = static const IconData sync_icon = IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData drawer_icon = IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData lab_results = static const IconData leaves = IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData search_patient_1 = IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon =
IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData operations =
IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData out_patient =
IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData patient =
IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code =
IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData radiology =
IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral =
IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_patient =
IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData mail =
IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData medicine_search =
IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referred =
IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData sync_icon =
IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData drawer_icon =
IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData leaves =
IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
} }

@ -11,6 +11,7 @@ class GetAllergiesResModel {
bool isUpdatedByNurse; bool isUpdatedByNurse;
int severity; int severity;
String severityName; String severityName;
String remarks;
GetAllergiesResModel( GetAllergiesResModel(
{this.allergyDiseaseId, {this.allergyDiseaseId,
@ -24,7 +25,7 @@ class GetAllergiesResModel {
this.isChecked, this.isChecked,
this.isUpdatedByNurse, this.isUpdatedByNurse,
this.severity, this.severity,
this.severityName}); this.severityName, this.remarks=''});
GetAllergiesResModel.fromJson(Map<String, dynamic> json) { GetAllergiesResModel.fromJson(Map<String, dynamic> json) {
allergyDiseaseId = json['allergyDiseaseId']; allergyDiseaseId = json['allergyDiseaseId'];
@ -39,6 +40,7 @@ class GetAllergiesResModel {
isUpdatedByNurse = json['isUpdatedByNurse']; isUpdatedByNurse = json['isUpdatedByNurse'];
severity = json['severity']; severity = json['severity'];
severityName = json['severityName']; severityName = json['severityName'];
remarks = json['remarks'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -55,6 +57,7 @@ class GetAllergiesResModel {
data['isUpdatedByNurse'] = this.isUpdatedByNurse; data['isUpdatedByNurse'] = this.isUpdatedByNurse;
data['severity'] = this.severity; data['severity'] = this.severity;
data['severityName'] = this.severityName; data['severityName'] = this.severityName;
data['remarks'] = this.remarks;
return data; return data;
} }
} }

@ -42,6 +42,7 @@ class PatiantInformtion {
int patientMRN; int patientMRN;
String admissionNo; String admissionNo;
String admissionDate; String admissionDate;
String createdOn;
String roomId; String roomId;
String bedId; String bedId;
String nursingStationId; String nursingStationId;
@ -77,6 +78,7 @@ class PatiantInformtion {
this.patientType, this.patientType,
this.admissionNo, this.admissionNo,
this.admissionDate, this.admissionDate,
this.createdOn,
this.roomId, this.roomId,
this.bedId, this.bedId,
this.nursingStationId, this.nursingStationId,
@ -129,6 +131,7 @@ class PatiantInformtion {
patientType: json["PatientType"]?? json["patientType"], patientType: json["PatientType"]?? json["patientType"],
admissionNo: json["AdmissionNo"]?? json["admissionNo"], admissionNo: json["AdmissionNo"]?? json["admissionNo"],
admissionDate: json["AdmissionDate"]?? json["admissionDate"], admissionDate: json["AdmissionDate"]?? json["admissionDate"],
createdOn: json["CreatedOn"]?? json["CreatedOn"],
roomId: json["RoomID"]?? json["roomID"], roomId: json["RoomID"]?? json["roomID"],
bedId: json["BedID"]?? json["bedID"], bedId: json["BedID"]?? json["bedID"],
nursingStationId: json["NursingStationID"]?? json["nursingStationID"], nursingStationId: json["NursingStationID"]?? json["nursingStationID"],
@ -158,10 +161,4 @@ class PatiantInformtion {
patientMRN :json['patientMRN'] ?? json['PatientMRN'], patientMRN :json['patientMRN'] ?? json['PatientMRN'],
); );
} }

@ -6,6 +6,7 @@ class GetPatientArrivalListRequestModel {
int pageIndex; int pageIndex;
int pageSize; int pageSize;
int clinicID; int clinicID;
int patientMRN;
GetPatientArrivalListRequestModel( GetPatientArrivalListRequestModel(
{this.vidaAuthTokenID, {this.vidaAuthTokenID,
@ -14,7 +15,8 @@ class GetPatientArrivalListRequestModel {
this.doctorID, this.doctorID,
this.pageIndex, this.pageIndex,
this.pageSize, this.pageSize,
this.clinicID}); this.clinicID,
this.patientMRN});
GetPatientArrivalListRequestModel.fromJson(Map<String, dynamic> json) { GetPatientArrivalListRequestModel.fromJson(Map<String, dynamic> json) {
vidaAuthTokenID = json['VidaAuthTokenID']; vidaAuthTokenID = json['VidaAuthTokenID'];
@ -24,6 +26,7 @@ class GetPatientArrivalListRequestModel {
pageIndex = json['PageIndex']; pageIndex = json['PageIndex'];
pageSize = json['PageSize']; pageSize = json['PageSize'];
clinicID = json['ClinicID']; clinicID = json['ClinicID'];
patientMRN = json['PatientMRN'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -35,6 +38,8 @@ class GetPatientArrivalListRequestModel {
data['PageSize'] = this.pageSize; data['PageSize'] = this.pageSize;
data['ClinicID'] = this.clinicID; data['ClinicID'] = this.clinicID;
data['VidaAuthTokenID'] = this.vidaAuthTokenID; data['VidaAuthTokenID'] = this.vidaAuthTokenID;
data['PatientMRN'] = this.patientMRN;
return data; return data;
} }

@ -804,7 +804,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
children: <Widget>[ children: <Widget>[
Center( Center(
child: Icon( child: Icon(
DoctorApp.search_patient, DoctorApp.search_patient_1,
size: 50, size: 50,
color: Colors.black, color: Colors.black,
), ),

@ -638,7 +638,8 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
.medicalFileList[ .medicalFileList[
0] 0]
.entityList[0] .entityList[0]
.timelines[0] .timelines[
encounterNumber]
.timeLineEvents[0] .timeLineEvents[0]
.consulations[0] .consulations[0]
.lstProcedure[ .lstProcedure[

@ -117,7 +117,7 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<MedicineViewModel>( return BaseView<MedicineViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
if(model.allMedicationList.isNotEmpty) if(model.allMedicationList.length == 0)
await model.getMedicationList(); await model.getMedicationList();
}, },
builder: (_, model, w) => builder: (_, model, w) =>
@ -214,13 +214,15 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
.startsWith(input.toLowerCase()), .startsWith(input.toLowerCase()),
) )
: TextField( : TextField(
minLines: 2,
maxLines: 2,
decoration: textFieldSelectorDecoration( decoration: textFieldSelectorDecoration(
TranslationBase TranslationBase
.of(context) .of(context)
.searchMedicineNameHere, .searchMedicineNameHere,
_selectedMedication != null _selectedMedication != null
? _selectedMedication.description + ? _selectedMedication.description +
('${_selectedMedication.genericName}') (' (${_selectedMedication.genericName} )')
: null, : null,
true, true,
icon: EvaIcons.search), icon: EvaIcons.search),
@ -245,72 +247,6 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
], ],
), ),
), ),
Column(
children: [
Container(
margin: EdgeInsets.only(
left: SizeConfig.heightMultiplier * 2),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase
.of(context)
.youCanFind +
model.pharmacyItemsList.length
.toString() +
" " +
TranslationBase
.of(context)
.itemsInSearch,
fontWeight: FontWeight.bold,
),
],
),
),
Container(
height: MediaQuery
.of(context)
.size
.height * 0.35,
child: Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: model.pharmacyItemsList == null
? 0
: model.pharmacyItemsList.length,
itemBuilder: (BuildContext context,
int index) {
return InkWell(
child: MedicineItemWidget(
label: model.pharmacyItemsList[index]
["ItemDescription"],
url: model.pharmacyItemsList[index]
["ImageSRCUrl"],
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PharmaciesListScreen(
itemID:
model.pharmacyItemsList[
index]["ItemID"],
url: model
.pharmacyItemsList[
index]["ImageSRCUrl"]),
),
);
},
);
},
),
),
),
],
),
], ],
), ),
), ),
@ -337,10 +273,19 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
return; return;
} }
GifLoaderDialogUtils.showMyDialog(context); // GifLoaderDialogUtils.showMyDialog(context);
Navigator.push(
await model.getMedicineItem(_selectedMedication.description); context,
GifLoaderDialogUtils.hideDialog(context); MaterialPageRoute(
builder: (context) =>
PharmaciesListScreen(
itemID:_selectedMedication.itemId,
selectedMedication: _selectedMedication,
),
),
);
// await model.getMedicineItem(_selectedMedication.description);
// GifLoaderDialogUtils.hideDialog(context);
} }

@ -2,6 +2,7 @@ import 'dart:convert';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/get_medication_response_model.dart';
import 'package:doctor_app_flutter/core/viewModel/medicine_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/medicine_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart';
@ -22,9 +23,11 @@ class PharmaciesListScreen extends StatefulWidget {
final int itemID; final int itemID;
final String url; final String url;
final GetMedicationResponseModel selectedMedication;
// In the constructor, require a item id. // In the constructor, require a item id.
PharmaciesListScreen({Key key, @required this.itemID, this.url}) PharmaciesListScreen(
{Key key, @required this.itemID, this.url, this.selectedMedication})
: super(key: key); : super(key: key);
@override @override
@ -49,10 +52,17 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectsProvider = Provider.of(context); projectsProvider = Provider.of(context);
return BaseView<MedicineViewModel>( return BaseView<MedicineViewModel>(
onModelReady: (model) => model.getPharmaciesList(widget.itemID), onModelReady: (model) async {
builder: (_, model, w) => AppScaffold( await model.getPharmaciesList(widget.selectedMedication.itemId);
await model.getMedicineItem(widget.selectedMedication.description);
},
builder: (_, model, w) =>
AppScaffold(
baseViewModel: model, baseViewModel: model,
appBarTitle: TranslationBase.of(context).pharmaciesList, appBarTitle: TranslationBase
.of(context)
.pharmaciesList,
body: Container( body: Container(
height: SizeConfig.screenHeight, height: SizeConfig.screenHeight,
child: ListView( child: ListView(
@ -60,7 +70,7 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
physics: const AlwaysScrollableScrollPhysics(), physics: const AlwaysScrollableScrollPhysics(),
children: <Widget>[ children: <Widget>[
model.pharmaciesList.length > 0 model.pharmaciesList.length > 0 && model.pharmacyItemsList.length > 0
? RoundedContainer( ? RoundedContainer(
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
@ -69,9 +79,10 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
child: ClipRRect( child: ClipRRect(
borderRadius: borderRadius:
BorderRadius.all(Radius.circular(7)), BorderRadius.all(Radius.circular(7)),
child: widget.url != null child: model.pharmacyItemsList[0]
["ImageSRCUrl"]!= null
? Image.network( ? Image.network(
widget.url, model.pharmacyItemsList[0]["ImageSRCUrl"],
height: height:
SizeConfig.imageSizeMultiplier * SizeConfig.imageSizeMultiplier *
21, 21,

@ -262,7 +262,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
GetPatientArrivalListRequestModel getPatientArrivalListRequestModel; GetPatientArrivalListRequestModel getPatientArrivalListRequestModel;
if (val2 == 7) { if (val2 == 7) {
getPatientArrivalListRequestModel = GetPatientArrivalListRequestModel( getPatientArrivalListRequestModel = GetPatientArrivalListRequestModel(
from: patient.From, to: patient.To, pageIndex: 0, pageSize: 0); from: patient.From, to: patient.To, pageIndex: 0, pageSize: 0,patientMRN: patient.getPatientID);
} }
model model

@ -1,9 +1,12 @@
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/get_medication_response_model.dart';
import 'package:doctor_app_flutter/core/model/post_prescrition_req_model.dart'; import 'package:doctor_app_flutter/core/model/post_prescrition_req_model.dart';
import 'package:doctor_app_flutter/core/model/Prescription_model.dart'; import 'package:doctor_app_flutter/core/model/Prescription_model.dart';
import 'package:doctor_app_flutter/core/viewModel/medicine_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/models/livecare/transfer_to_admin.dart'; import 'package:doctor_app_flutter/models/livecare/transfer_to_admin.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
@ -16,12 +19,15 @@ import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.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/dynamic_elements.dart'; import 'package:doctor_app_flutter/widgets/patients/dynamic_elements.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart'; import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart'; import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@ -104,9 +110,18 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
TextEditingController instructionController = TextEditingController(); TextEditingController instructionController = TextEditingController();
DateTime selectedDate; DateTime selectedDate;
dynamic selectedDrug; dynamic selectedDrug;
GetMedicationResponseModel _selectedMedication;
GlobalKey key =
new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
TextEditingController drugIdController = TextEditingController(); TextEditingController drugIdController = TextEditingController();
TextEditingController doseController = TextEditingController(); TextEditingController doseController = TextEditingController();
final searchController = TextEditingController();
var notesList;
var filteredNotesList;
String textSeartch = "Amoxicillin";
final GlobalKey<FormState> formKey = GlobalKey<FormState>(); final GlobalKey<FormState> formKey = GlobalKey<FormState>();
final double spaceBetweenTextFileds = 12; final double spaceBetweenTextFileds = 12;
List<dynamic> referToList; List<dynamic> referToList;
@ -165,6 +180,24 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
dynamic route7 = {"id": 27, "name": "In Both EYES"}; dynamic route7 = {"id": 27, "name": "In Both EYES"};
dynamic route8 = {"id": 28, "name": "In Both Ears"}; dynamic route8 = {"id": 28, "name": "In Both Ears"};
dynamic route9 = {"id": 32, "name": "Intramuscular"}; dynamic route9 = {"id": 32, "name": "Intramuscular"};
dynamic route10 = {"id": 60, "name": "TRANSDERMAL"};
dynamic route11 = {"id": 59, "name": "OROPHARYNGEAL"};
dynamic route12 = {"id": 15, "name": "for INJECTION"};
dynamic route13 = {"id": 58, "name": "SUBCUTANEOUS"};
dynamic route14 = {"id": 57, "name": "NASOGASTRIC"};
dynamic route15 = {"id": 56, "name": "IRRIGATION"};
dynamic route16 = {"id": 55, "name": "INTRAVITREAL"};
dynamic route17 = {"id": 54, "name": "INTRAVENOUS BOLUS"};
dynamic route18 = {"id": 51, "name": "EPIDURAL"};
dynamic route19 = {"id": 47, "name": "Parenteral"};
dynamic route20 = {"id": 43, "name": "IM"};
dynamic route21 = {"id": 42, "name": "IV"};
dynamic route22 = {"id": 41, "name": "Sublingual"};
dynamic route23 = {"id": 40, "name": "For Nebulization"};
dynamic route24 = {"id": 39, "name": "Nasal"};
dynamic route25 = {"id": 37, "name": "Inserted into Vagina"};
dynamic route26 = {"id": 36, "name": "Inserted into Rectum"};
dynamic route27 = {"id": 31, "name": "In Each Nostril"};
dynamic frequency1 = {"id": 1, "name": "2 Times a day"}; dynamic frequency1 = {"id": 1, "name": "2 Times a day"};
dynamic frequency2 = {"id": 2, "name": "3 Times a day"}; dynamic frequency2 = {"id": 2, "name": "3 Times a day"};
dynamic frequency3 = {"id": 3, "name": "4 Times a day"}; dynamic frequency3 = {"id": 3, "name": "4 Times a day"};
@ -258,6 +291,24 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
routeList.add(route7); routeList.add(route7);
routeList.add(route8); routeList.add(route8);
routeList.add(route9); routeList.add(route9);
routeList.add(route10);
routeList.add(route11);
routeList.add(route12);
routeList.add(route13);
routeList.add(route14);
routeList.add(route15);
routeList.add(route16);
routeList.add(route17);
routeList.add(route18);
routeList.add(route19);
routeList.add(route20);
routeList.add(route21);
routeList.add(route22);
routeList.add(route23);
routeList.add(route24);
routeList.add(route25);
routeList.add(route26);
routeList.add(route27);
strengthList.add(strength1); strengthList.add(strength1);
strengthList.add(strength2); strengthList.add(strength2);
strengthList.add(strength3); strengthList.add(strength3);
@ -295,14 +346,16 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ListSelectDialog drugDialog;
final screenSize = MediaQuery.of(context).size; final screenSize = MediaQuery.of(context).size;
// final routeArgs = ModalRoute.of(context).settings.arguments as Map; // final routeArgs = ModalRoute.of(context).settings.arguments as Map;
// patient = routeArgs['patient']; // patient = routeArgs['patient'];
return BaseView<PrescriptionViewModel>( return BaseView<MedicineViewModel>(
onModelReady: (model) => model.getDrugs(), onModelReady: (model) async {
builder: await model.getMedicationList();
(BuildContext context, PrescriptionViewModel model, Widget child) => },
builder: (BuildContext context, MedicineViewModel model, Widget child) =>
NetworkBaseView( NetworkBaseView(
baseViewModel: model, baseViewModel: model,
child: DraggableScrollableSheet( child: DraggableScrollableSheet(
@ -334,46 +387,71 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
//mainAxisAlignment: MainAxisAlignment.end, //mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Container( Container(
height: screenSize.height * 0.070, height: MediaQuery.of(context).size.height *
0.070,
child: InkWell( child: InkWell(
onTap: model.drugsList != null && onTap: model.allMedicationList != null
model.drugsList.length > 0
? () { ? () {
ListSelectDialog dialog =
ListSelectDialog(
list: model.drugsList,
attributeName: 'GenericName',
attributeValueId: 'ItemId',
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() { setState(() {
selectedDrug = selectedValue; _selectedMedication = null;
}); });
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
} }
: null, : null,
child: TextField( child: _selectedMedication == null
decoration: textFieldSelectorDecoration( ? AutoCompleteTextField<
GetMedicationResponseModel>(
decoration:
textFieldSelectorDecoration(
TranslationBase.of(context) TranslationBase.of(context)
.searchMedicine, .searchMedicineNameHere,
selectedDrug != null _selectedMedication != null
? selectedDrug['GenericName'] ? _selectedMedication
.genericName
: null, : null,
true, true,
suffixIcon: Icon( ),
Icons.search, itemSubmitted: (item) => setState(
color: Colors.black, () =>
)), _selectedMedication = item),
key: key,
suggestions:
model.allMedicationList,
itemBuilder: (context,
suggestion) =>
new Padding(
child: Texts(suggestion
.description +
'/' +
suggestion.genericName),
padding:
EdgeInsets.all(8.0)),
itemSorter: (a, b) => 1,
itemFilter: (suggestion, input) =>
suggestion.genericName
.toLowerCase()
.startsWith(
input.toLowerCase()) ||
suggestion.description
.toLowerCase()
.startsWith(
input.toLowerCase()) ||
suggestion.keywords
.toLowerCase()
.startsWith(
input.toLowerCase()),
)
: TextField(
decoration:
textFieldSelectorDecoration(
TranslationBase.of(context)
.searchMedicineNameHere,
_selectedMedication != null
? _selectedMedication
.description +
('${_selectedMedication.genericName}')
: null,
true,
),
enabled: false, enabled: false,
), ),
), ),
@ -455,47 +533,21 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
Container( Container(
width: width:
MediaQuery.of(context).size.width * MediaQuery.of(context).size.width *
0.5, 0.650,
child: InkWell( child: TextFields(
onTap: strengthList != null hintText: TranslationBase.of(context)
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: strengthList,
attributeName: 'name',
attributeValueId: 'id',
okText: TranslationBase.of(
context)
.ok,
okFunction:
(selectedValue) {
setState(() {
strength =
selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder:
(BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration:
textFieldSelectorDecoration(
TranslationBase.of(context)
.strength, .strength,
strength != null controller: strengthController,
? strength['name'] keyboardType: TextInputType.number,
: null, validator: (value) {
true), if (value.isEmpty &&
enabled: false, strengthController.text.length >
), 4)
return TranslationBase.of(context)
.emptyMessage;
else
return null;
},
), ),
), ),
SizedBox( SizedBox(
@ -504,7 +556,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
Container( Container(
width: width:
MediaQuery.of(context).size.width * MediaQuery.of(context).size.width *
0.40, 0.250,
child: InkWell( child: InkWell(
onTap: unitsList != null onTap: unitsList != null
? () { ? () {
@ -817,8 +869,9 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
indication == null || indication == null ||
doseTime == null || doseTime == null ||
duration == null || duration == null ||
selectedDrug == null || selectedDate == null ||
selectedDate == null) { units == null ||
_selectedMedication == null) {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
"Please Fill All Fields"); "Please Fill All Fields");
return; return;
@ -826,7 +879,32 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
if (formKey.currentState.validate()) { if (formKey.currentState.validate()) {
Navigator.pop(context); Navigator.pop(context);
openDrugToDrug(); {
postProcedure(
dose: strengthController.text,
doseUnit:
units['id'].toString(),
patient: widget.patient,
doseTimeIn:
doseTime['id'].toString(),
model: widget.model,
duration:
duration['id'].toString(),
frequency: frequency['id']
.toString(),
route: route['id'].toString(),
drugId: _selectedMedication
.itemId
.toString(),
strength:
strengthController.text,
indication:
indicationController.text,
instruction:
instructionController
.text,
doseTime: selectedDate);
}
} }
{ {
// Navigator.push( // Navigator.push(
@ -922,7 +1000,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
title: TranslationBase.of(context).addMedication, title: TranslationBase.of(context).addMedication,
onPressed: () { onPressed: () {
postProcedure( postProcedure(
dose: strength['id'].toString(), dose: strengthController.text,
doseUnit: units['id'].toString(), doseUnit: units['id'].toString(),
patient: widget.patient, patient: widget.patient,
doseTimeIn: doseTime['id'].toString(), doseTimeIn: doseTime['id'].toString(),
@ -931,7 +1009,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
frequency: frequency['id'].toString(), frequency: frequency['id'].toString(),
route: route['id'].toString(), route: route['id'].toString(),
drugId: selectedDrug['ItemId'].toString(), drugId: selectedDrug['ItemId'].toString(),
strength: strength['id'].toString(), strength: strengthController.text,
indication: indicationController.text, indication: indicationController.text,
instruction: instructionController.text, instruction: instructionController.text,
doseTime: selectedDate); doseTime: selectedDate);
@ -945,4 +1023,41 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
); );
}); });
} }
// searchData(String str, PrescriptionViewModel model) {
// var strExist = str.length > 0 ? true : false;
//
// if (strExist) {
// filteredNotesList = null;
// filteredNotesList = model.drugsList
// .where((note) =>
// note["GenericName"].toString().contains(str.toUpperCase()))
// .toList();
// setState(() {
// notesList = filteredNotesList;
// });
// } else {
// setState(() {
// notesList = model.drugsList;
// });
// }
// }
searchMedicine(context, PrescriptionViewModel model, String str) async {
FocusScope.of(context).unfocus();
// if (searchController.text.isEmpty()) {
// helpers.showErrorToast(TranslationBase.of(context).typeMedicineName);
// //"Type Medicine Name")
// return;
// }
if (searchController.text.length < 0) {
helpers.showErrorToast(TranslationBase.of(context).moreThan3Letter);
return;
}
GifLoaderDialogUtils.showMyDialog(context);
await model.getDrugs(drugName: searchController.text);
GifLoaderDialogUtils.hideDialog(context);
}
} }

@ -9,6 +9,7 @@ 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/base/base_view.dart';
import 'package:doctor_app_flutter/screens/prescription/add_prescription_form.dart'; import 'package:doctor_app_flutter/screens/prescription/add_prescription_form.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.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/patient_profile_widget.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_widget.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/profile_medical_info_widget.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/profile_medical_info_widget.dart';
@ -337,7 +338,25 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
child: Column( child: Column(
children: [ children: [
AppText( AppText(
'8\nDEC', DateTime.parse(model
.prescriptionList[
0]
.entityList[
index]
.startDate)
.day
.toString(),
color: Colors
.green,
),
AppText(
Helpers.getMonth(model.prescriptionList[0].entityList[index].startDate !=
null
? (DateTime.parse(model.prescriptionList[0].entityList[index].startDate)
.month)
: DateTime.now()
.month)
.toUpperCase(),
color: Colors color: Colors
.green, .green,
) )
@ -735,8 +754,7 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
route = selectedValue; route = selectedValue;
}); });
if (route == null) { if (route == null) {
helpers route = route['id'];
.showErrorToast('plase fill');
} }
}, },
); );
@ -885,10 +903,15 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
model: model, model: model,
drugId: drugId, drugId: drugId,
remarks: remarksController.text, remarks: remarksController.text,
route: route['id'].toString(), route: route != null
frequency: ? route['id'].toString()
frequencyUpdate['id'].toString(), : rouat,
dose: doseTime['id'].toString(), frequency: frequencyUpdate != null
? frequencyUpdate['id'].toString()
: frequency,
dose: doseTime != null
? doseTime['id'].toString()
: dose,
enteredRemarks: enteredRemarks); enteredRemarks: enteredRemarks);
Navigator.pop(context); Navigator.pop(context);
}, },

@ -11,6 +11,7 @@ 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/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_checkbox_search_widget.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.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/patient_profile_widget.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart';
@ -271,7 +272,36 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
child: Column( child: Column(
children: [ children: [
AppText( AppText(
'8\nDEC', DateTime.parse(model
.procedureList[
0]
.entityList[
index]
.orderDate)
.day
.toString(),
color:
Colors.green,
),
AppText(
Helpers.getMonth(model
.procedureList[
0]
.entityList[
index]
.orderDate !=
null
? (DateTime.parse(model
.procedureList[
0]
.entityList[
index]
.orderDate)
.month)
: DateTime
.now()
.month)
.toUpperCase(),
color: color:
Colors.green, Colors.green,
) )
@ -421,6 +451,8 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
child: Icon( child: Icon(
Icons.edit), Icons.edit),
onTap: () { onTap: () {
// model
// .updateProcedure();
updateProcedureForm( updateProcedureForm(
context, context,
remarks: model remarks: model
@ -691,7 +723,8 @@ updateProcedure(
category: categorieId, procedure: procedureId, controls: controls)); category: categorieId, procedure: procedureId, controls: controls));
updateProcedureReqModel.procedures = controlsProcedure; updateProcedureReqModel.procedures = controlsProcedure;
await model.updateProcedure(updateProcedureReqModel, patient.patientMRN); await model.updateProcedure(
postProcedureReqModel: updateProcedureReqModel, mrn: patient.patientMRN);
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error); helpers.showErrorToast(model.error);

@ -91,7 +91,7 @@ class PatientPageHeaderWidget extends StatelessWidget {
), ),
], ],
), ),
model.patientAllergiesList.isNotEmpty ?AppText( model.patientAllergiesList.isNotEmpty && model.getAllergicNames(projectViewModel.isArabic)!='' ?AppText(
TranslationBase.of(context).allergicTO +" : "+model.getAllergicNames(projectViewModel.isArabic), TranslationBase.of(context).allergicTO +" : "+model.getAllergicNames(projectViewModel.isArabic),
color: Color(0xFFB9382C), color: Color(0xFFB9382C),
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,

@ -94,7 +94,7 @@ class PatientProfileWidget extends StatelessWidget {
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox( SizedBox(
width: 20, width: 4,
), ),
AppText( AppText(
patient.patientId.toString(), patient.patientId.toString(),
@ -254,8 +254,8 @@ class PatientProfileWidget extends StatelessWidget {
), ),
Expanded( Expanded(
child: AppText( child: AppText(
patient.admissionDate != null patient.createdOn != null
? "${DateUtils.convertDateFromServerFormat(patient.admissionDate, 'EEEE dd, MMMM yyyy hh:mm a')}" ? "${DateUtils.convertDateFromServerFormat(patient.createdOn, 'EEEE dd, MMMM yyyy hh:mm a')}"
: "", : "",
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
@ -310,10 +310,10 @@ class PatientProfileWidget extends StatelessWidget {
), ),
), ),
AppText( AppText(
patient.admissionDate != null patient.createdOn != null
? DateUtils ? DateUtils
.differenceBetweenServerDateAndCurrent( .differenceBetweenServerDateAndCurrent(
patient.admissionDate) patient.createdOn)
: "", : "",
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,

@ -116,6 +116,7 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
nameLine1: TranslationBase.of(context).admission, nameLine1: TranslationBase.of(context).admission,
nameLine2: TranslationBase.of(context).request, nameLine2: TranslationBase.of(context).request,
icon: 'heartbeat.png'), icon: 'heartbeat.png'),
if (int.parse(patientType) == 7 || int.parse(patientType) == 6)
PatientProfileButton( PatientProfileButton(
key: key, key: key,
patient: patient, patient: patient,
@ -123,6 +124,7 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
nameLine1: TranslationBase.of(context).orders, nameLine1: TranslationBase.of(context).orders,
nameLine2: TranslationBase.of(context).prescription, nameLine2: TranslationBase.of(context).prescription,
icon: 'lab.png'), icon: 'lab.png'),
if (int.parse(patientType) == 7 || int.parse(patientType) == 6)
PatientProfileButton( PatientProfileButton(
key: key, key: key,
patient: patient, patient: patient,

@ -181,6 +181,7 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
selectedAllergy: selectedAllergy, selectedAllergy: selectedAllergy,
isChecked: element.isChecked, isChecked: element.isChecked,
createdBy: element.createdBy, createdBy: element.createdBy,
remark: element.remarks,
selectedAllergySeverity: selectedAllergySeverity); selectedAllergySeverity: selectedAllergySeverity);
if (selectedAllergy != null && selectedAllergySeverity != null) if (selectedAllergy != null && selectedAllergySeverity != null)
widget.myAllergiesList.add(mySelectedAllergy); widget.myAllergiesList.add(mySelectedAllergy);
@ -522,7 +523,6 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
if (postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM == if (postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM ==
null) null)
postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM = []; postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM = [];
//TODO: make static value dynamic
postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM.add( postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM.add(
ListHisProgNotePatientAllergyDiseaseVM( ListHisProgNotePatientAllergyDiseaseVM(
allergyDiseaseId: allergy.selectedAllergy.id, allergyDiseaseId: allergy.selectedAllergy.id,
@ -545,6 +545,14 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
await model.patchAllergy(postAllergyRequestModel); await model.patchAllergy(postAllergyRequestModel);
} }
GeneralGetReqForSOAP generalGetReqForSOAP = GeneralGetReqForSOAP(
patientMRN: widget.patientInfo.patientMRN,
episodeId: widget.patientInfo.episodeNo,
appointmentNo: widget.patientInfo.appointmentNo,
doctorID: '',
editedBy: '');
await model.getPatientAllergy(generalGetReqForSOAP, isLocalBusy : true);
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error); helpers.showErrorToast(model.error);
} }

@ -1,5 +1,6 @@
import 'package:autocomplete_textfield/autocomplete_textfield.dart'; import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart'; import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
@ -8,6 +9,7 @@ import 'package:doctor_app_flutter/models/SOAP/GetAssessmentReqModel.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_assement.dart'; import 'package:doctor_app_flutter/models/SOAP/my_selected_assement.dart';
import 'package:doctor_app_flutter/models/SOAP/post_assessment_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_assessment_request_model.dart';
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; 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/base/base_view.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
@ -263,7 +265,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
MainAxisAlignment.start, MainAxisAlignment.start,
children: [ children: [
AppText( AppText(
TranslationBase.of(context).dType+':', TranslationBase.of(context).dType+' : ',
fontWeight: FontWeight fontWeight: FontWeight
.bold, .bold,
fontSize: 16, fontSize: 16,
@ -330,7 +332,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
children: [ children: [
AppText( AppText(
"ICD: ".toUpperCase(), "ICD : ".toUpperCase(),
fontWeight: FontWeight fontWeight: FontWeight
.bold, .bold,
fontSize: 16, fontSize: 16,
@ -788,7 +790,11 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
helpers helpers
.showErrorToast(model.error); .showErrorToast(model.error);
} else { } else {
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
mySelectedAssessment.icdCode10ID = mySelectedAssessment.selectedICD.code; mySelectedAssessment.icdCode10ID = mySelectedAssessment.selectedICD.code;
mySelectedAssessment.doctorName = doctorProfile.doctorName;
if (!isUpdate) { if (!isUpdate) {
// widget.mySelectedAssessmentList.add(mySelectedAssessment); // widget.mySelectedAssessmentList.add(mySelectedAssessment);

@ -132,7 +132,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
), ),
Column( Column(
children: [ children: [
if(widget.patientProgressNote==null) if(widget.patientProgressNote.planNote == null)
Container( Container(
margin: margin:
EdgeInsets.only(left: 10, right: 10, top: 15), EdgeInsets.only(left: 10, right: 10, top: 15),
@ -161,7 +161,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
SizedBox( SizedBox(
height: 20, height: 20,
), ),
if (progressNoteController.text !='') if ( widget.patientProgressNote.planNote != null)
Container( Container(
margin: margin:
EdgeInsets.only(left: 5, right: 5, top: 15), EdgeInsets.only(left: 5, right: 5, top: 15),
@ -308,12 +308,16 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
patientMRN: widget.patientInfo.patientMRN, patientMRN: widget.patientInfo.patientMRN,
episodeId: widget.patientInfo.episodeNo, episodeId: widget.patientInfo.episodeNo,
appointmentNo: widget.patientInfo.appointmentNo, appointmentNo: widget.patientInfo.appointmentNo,
planNote: progressNoteController.text, doctorID: '', editedBy: ''); planNote: widget.patientProgressNote.planNote, doctorID: '', editedBy: '');
if(model.patientProgressNoteList.isEmpty){ if(model.patientProgressNoteList.isEmpty){
await model.postProgressNote(postProgressNoteRequestModel); await model.postProgressNote(postProgressNoteRequestModel);
}else { }else {
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
postProgressNoteRequestModel.editedBy =doctorProfile.doctorID;
await model.patchProgressNote(postProgressNoteRequestModel); await model.patchProgressNote(postProgressNoteRequestModel);
} }
@ -335,12 +339,12 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
context: context, context: context,
builder: (context) { builder: (context) {
return FractionallySizedBox( return FractionallySizedBox(
heightFactor: 0.5, heightFactor: 0.6,
child: Container( child: Container(
child: FractionallySizedBox( child: FractionallySizedBox(
widthFactor: 0.9, widthFactor: 0.9,
child: Column( child: ListView(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox( SizedBox(
height: 16, height: 16,
@ -355,6 +359,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
), ),
Container( Container(
margin: EdgeInsets.only(left: 0, right: 0, top: 15), margin: EdgeInsets.only(left: 0, right: 0, top: 15),
child: TextFields( child: TextFields(
hintText: TranslationBase.of(context).addProgressNote, hintText: TranslationBase.of(context).addProgressNote,
fontSize: 13.5, fontSize: 13.5,
@ -383,6 +388,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
widget.patientProgressNote.createdByName = widget.patientProgressNote.createdByName??doctorProfile.doctorName; widget.patientProgressNote.createdByName = widget.patientProgressNote.createdByName??doctorProfile.doctorName;
widget.patientProgressNote.editedByName=doctorProfile.doctorName; widget.patientProgressNote.editedByName=doctorProfile.doctorName;
widget.patientProgressNote.createdOn= DateTime.now().toString() ; widget.patientProgressNote.createdOn= DateTime.now().toString() ;
widget.patientProgressNote.planNote = progressNoteController.text;
setState(() { setState(() {
print(progressNoteController.text); print(progressNoteController.text);
}); });

@ -37,6 +37,7 @@ class _UpdateSoapIndexState extends State<UpdateSoapIndex>
GetPatientProgressNoteResModel patientProgressNote = GetPatientProgressNoteResModel(); GetPatientProgressNoteResModel patientProgressNote = GetPatientProgressNoteResModel();
changePageViewIndex(pageIndex) { changePageViewIndex(pageIndex) {
changeLoadingState(true);
_controller.jumpToPage(pageIndex); _controller.jumpToPage(pageIndex);
} }

@ -1,11 +1,12 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/routes.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import '../../widgets/shared/app_loader_widget.dart'; import '../../widgets/shared/app_loader_widget.dart';
import 'app_texts_widget.dart'; import 'app_texts_widget.dart';
import 'network_base_view.dart'; import 'network_base_view.dart';
@ -74,10 +75,11 @@ class AppScaffold extends StatelessWidget {
AppText('No Internet Connection') AppText('No Internet Connection')
], ],
), ),
)); ),
);
} }
Widget buildAppLoaderWidget(bool isloading) { Widget buildAppLoaderWidget(bool isLoading) {
return isloading ? AppLoaderWidget() : Container(); return isLoading ? AppLoaderWidget() : Container();
} }
} }

@ -1,3 +1,6 @@
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -8,13 +11,15 @@ class ListSelectDialog extends StatefulWidget {
final okText; final okText;
final Function(dynamic) okFunction; final Function(dynamic) okFunction;
dynamic selectedValue; dynamic selectedValue;
final Widget searchWidget;
ListSelectDialog( ListSelectDialog(
{@required this.list, {@required this.list,
@required this.attributeName, @required this.attributeName,
@required this.attributeValueId, @required this.attributeValueId,
@required this.okText, @required this.okText,
@required this.okFunction}); @required this.okFunction,
this.searchWidget});
@override @override
_ListSelectDialogState createState() => _ListSelectDialogState(); _ListSelectDialogState createState() => _ListSelectDialogState();
@ -63,6 +68,7 @@ class _ListSelectDialogState extends State<ListSelectDialog> {
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
if (widget.searchWidget != null) widget.searchWidget,
...widget.list ...widget.list
.map((item) => RadioListTile( .map((item) => RadioListTile(
title: Text("${item[widget.attributeName].toString()}"), title: Text("${item[widget.attributeName].toString()}"),

@ -0,0 +1,92 @@
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:flutter/material.dart';
class ListSelectDialog extends StatefulWidget {
final List<dynamic> list;
final String attributeName;
final String attributeValueId;
final okText;
final Function(dynamic) okFunction;
dynamic selectedValue;
ListSelectDialog(
{@required this.list,
@required this.attributeName,
@required this.attributeValueId,
@required this.okText,
@required this.okFunction});
@override
_ListSelectDialogState createState() => _ListSelectDialogState();
}
class _ListSelectDialogState extends State<ListSelectDialog> {
@override
void initState() {
super.initState();
widget.selectedValue = widget.selectedValue ?? widget.list[0];
}
@override
Widget build(BuildContext context) {
return showAlertDialog(context);
}
showAlertDialog(BuildContext context) {
// set up the buttons
Widget cancelButton = FlatButton(
child: Text(TranslationBase.of(context).cancel),
onPressed: () {
Navigator.of(context).pop();
});
Widget continueButton = FlatButton(
child: Text(this.widget.okText),
onPressed: () {
this.widget.okFunction(widget.selectedValue);
Navigator.of(context).pop();
});
// set up the AlertDialog
AlertDialog alert = AlertDialog(
// title: Text(widget.title),
content: createDialogList(),
actions: [
cancelButton,
continueButton,
],
);
return alert;
}
Widget createDialogList() {
return Container(
height: MediaQuery.of(context).size.height * 0.5,
child: SingleChildScrollView(
child: Column(
children: [
...widget.list
.map((item) => RadioListTile(
title: Text("${item[widget.attributeName].toString()}"),
groupValue: widget.selectedValue[widget.attributeValueId]
.toString(),
value: item[widget.attributeValueId].toString(),
activeColor: Colors.blue.shade700,
selected: item[widget.attributeValueId].toString() ==
widget.selectedValue[widget.attributeValueId]
.toString(),
onChanged: (val) {
setState(() {
widget.selectedValue = item;
});
},
))
.toList()
],
),
),
);
}
static closeAlertDialog(BuildContext context) {
Navigator.of(context).pop();
}
}
Loading…
Cancel
Save