Merge branch 'fix-issues' into 'development'

changeing add prescription behovior

See merge request Cloud_Solution/doctor_app_flutter!483
merge-requests/484/merge
Mohammad Aljammal 5 years ago
commit 277f36cdb5

@ -112,9 +112,9 @@ class PrescriptionService extends LookupService {
}, body: _drugRequestModel.toJson()); }, body: _drugRequestModel.toJson());
} }
Future getMedicationList() async { Future getMedicationList({String drug}) async {
hasError = false; hasError = false;
_drugRequestModel.search = [""]; _drugRequestModel.search = ["$drug"];
await baseAppClient.post(SEARCH_DRUG, await baseAppClient.post(SEARCH_DRUG,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
allMedicationList = []; allMedicationList = [];

@ -15,7 +15,7 @@ class MedicineViewModel extends BaseViewModel {
PrescriptionService _prescriptionService = locator<PrescriptionService>(); PrescriptionService _prescriptionService = locator<PrescriptionService>();
get pharmacyItemsList => _medicineService.pharmacyItemsList; get pharmacyItemsList => _medicineService.pharmacyItemsList;
get searchText=>_medicineService.searchText; get searchText => _medicineService.searchText;
get pharmaciesList => _medicineService.pharmaciesList; get pharmaciesList => _medicineService.pharmaciesList;
get medicationStrengthList => _prescriptionService.medicationStrengthList; get medicationStrengthList => _prescriptionService.medicationStrengthList;
@ -34,7 +34,6 @@ class MedicineViewModel extends BaseViewModel {
List<GetAssessmentResModel> get patientAssessmentList => List<GetAssessmentResModel> get patientAssessmentList =>
_prescriptionService.patientAssessmentList; _prescriptionService.patientAssessmentList;
List<GetMedicationResponseModel> get allMedicationList => List<GetMedicationResponseModel> get allMedicationList =>
_prescriptionService.allMedicationList; _prescriptionService.allMedicationList;
List<dynamic> get itemMedicineList => _prescriptionService.itemMedicineList; List<dynamic> get itemMedicineList => _prescriptionService.itemMedicineList;
@ -55,6 +54,18 @@ class MedicineViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getPrescription({int mrn}) async {
//hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _prescriptionService.getPrescription(mrn: mrn);
if (_prescriptionService.hasError) {
error = _prescriptionService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future getMedicineItem(String itemName) async { Future getMedicineItem(String itemName) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _medicineService.getMedicineItem(itemName); await _medicineService.getMedicineItem(itemName);
@ -65,9 +76,9 @@ class MedicineViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getMedicationList() async { Future getMedicationList({String drug}) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _prescriptionService.getMedicationList(); await _prescriptionService.getMedicationList(drug: drug);
if (_prescriptionService.hasError) { if (_prescriptionService.hasError) {
error = _prescriptionService.error; error = _prescriptionService.error;
setState(ViewState.Error); setState(ViewState.Error);

@ -95,9 +95,9 @@ class PrescriptionViewModel extends BaseViewModel {
} }
} }
Future getMedicationList() async { Future getMedicationList({String drug}) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _prescriptionService.getMedicationList(); await _prescriptionService.getMedicationList(drug: drug);
if (_prescriptionService.hasError) { if (_prescriptionService.hasError) {
error = _prescriptionService.error; error = _prescriptionService.error;
setState(ViewState.Error); setState(ViewState.Error);
@ -249,7 +249,7 @@ class PrescriptionViewModel extends BaseViewModel {
await _prescriptionsService.getPrescriptions(patient); await _prescriptionsService.getPrescriptions(patient);
if (_prescriptionsService.hasError) { if (_prescriptionsService.hasError) {
error = _prescriptionsService.error; error = _prescriptionsService.error;
if(patientType=="7") if (patientType == "7")
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
else else
setState(ViewState.Error); setState(ViewState.Error);

@ -115,13 +115,11 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<MedicineViewModel>( return BaseView<MedicineViewModel>(onModelReady: (model) async {
onModelReady: (model) async {
// if (model.allMedicationList.length == 0) // if (model.allMedicationList.length == 0)
// await model.getMedicationList(); // await model.getMedicationList();
}, }, builder: (_, model, w) {
builder: (_, model, w) { myController.text = model.searchText;
myController.text =model.searchText;
return AppScaffold( return AppScaffold(
// baseViewModel: model, // baseViewModel: model,
isShowAppBar: false, isShowAppBar: false,
@ -142,15 +140,14 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
widthFactor: 0.9, widthFactor: 0.9,
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: borderRadius: BorderRadius.all(Radius.circular(6.0)),
BorderRadius.all(Radius.circular(6.0)),
border: Border.all( border: Border.all(
width: 1.0, color: HexColor("#CCCCCC"))), width: 1.0, color: HexColor("#CCCCCC"))),
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: AppTextFormField( child: AppTextFormField(
borderColor: Colors.white, borderColor: Colors.white,
hintText: TranslationBase.of(context) hintText:
.searchMedicineNameHere, TranslationBase.of(context).searchMedicineNameHere,
controller: myController, controller: myController,
onSaved: (value) {}, onSaved: (value) {},
onFieldSubmitted: (value) { onFieldSubmitted: (value) {
@ -169,80 +166,63 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
// TODO change it secondary button and add loading // TODO change it secondary button and add loading
AppButton( AppButton(
title: TranslationBase.of(context).search, title: TranslationBase.of(context).search,
onPressed: () async{ onPressed: () async {
await searchMedicine(context, model); await searchMedicine(context, model);
}, },
), ),
], ],
), ),
), ),
), ),
Container( Container(
margin: EdgeInsets.only( margin:
left: SizeConfig.heightMultiplier * 2), EdgeInsets.only(left: SizeConfig.heightMultiplier * 2),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText( AppText(
TranslationBase TranslationBase.of(context).youCanFind +
.of(context) (myController.text != ''
.youCanFind + ? model.pharmacyItemsList.length.toString()
(myController.text !=''?model.pharmacyItemsList.length : '0') +
.toString():'0' )+
" " + " " +
TranslationBase TranslationBase.of(context).itemsInSearch,
.of(context)
.itemsInSearch,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
], ],
), ),
), ),
SizedBox( SizedBox(
height:10, height: 10,
), ),
if(myController.text !='') if (myController.text != '')
Container( Container(
height: MediaQuery height: MediaQuery.of(context).size.height * 0.5,
.of(context)
.size
.height * 0.5,
child: ListView.builder( child: ListView.builder(
padding: const EdgeInsets.only(top:20), padding: const EdgeInsets.only(top: 20),
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
// shrinkWrap: true, // shrinkWrap: true,
itemCount: itemCount: model.pharmacyItemsList == null
model.pharmacyItemsList ==
null
? 0 ? 0
: model : model.pharmacyItemsList.length,
.pharmacyItemsList.length, itemBuilder: (BuildContext context, int index) {
itemBuilder:
(BuildContext context, int index) {
return InkWell( return InkWell(
child: MedicineItemWidget( child: MedicineItemWidget(
label: model label: model.pharmacyItemsList[index]
.pharmacyItemsList[index]
["ItemDescription"], ["ItemDescription"],
url: model url: model.pharmacyItemsList[index]
.pharmacyItemsList[index]
["ImageSRCUrl"], ["ImageSRCUrl"],
), ),
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) => PharmaciesListScreen(
PharmaciesListScreen( itemID: model.pharmacyItemsList[index]
itemID: model ["ItemID"],
.pharmacyItemsList[ url: model.pharmacyItemsList[index]
index]["ItemID"], ["ImageSRCUrl"]),
url: model
.pharmacyItemsList[
index]["ImageSRCUrl"]),
), ),
); );
}, },
@ -255,24 +235,19 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
)), )),
), ),
), ),
);}
); );
});
} }
searchMedicine(context, MedicineViewModel model) async { searchMedicine(context, MedicineViewModel model) async {
FocusScope.of(context).unfocus(); FocusScope.of(context).unfocus();
if (myController.text.isNullOrEmpty()) { if (myController.text.isNullOrEmpty()) {
helpers.showErrorToast(TranslationBase helpers.showErrorToast(TranslationBase.of(context).typeMedicineName);
.of(context)
.typeMedicineName);
//"Type Medicine Name") //"Type Medicine Name")
return; return;
} }
if (myController.text.length < 3) { if (myController.text.length < 3) {
helpers.showErrorToast(TranslationBase helpers.showErrorToast(TranslationBase.of(context).moreThan3Letter);
.of(context)
.moreThan3Letter);
return; return;
} }

@ -1,5 +1,6 @@
import 'package:autocomplete_textfield/autocomplete_textfield.dart'; 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/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/get_medication_response_model.dart';
@ -15,11 +16,14 @@ import 'package:doctor_app_flutter/util/date-utils.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/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/medicine/medicine_item_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.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_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:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
@ -49,7 +53,8 @@ postProcedure(
DateTime doseTime, DateTime doseTime,
String doseUnit, String doseUnit,
String icdCode, String icdCode,
PatiantInformtion patient,String patientType}) async { PatiantInformtion patient,
String patientType}) async {
PostPrescriptionReqModel postProcedureReqModel = PostPrescriptionReqModel postProcedureReqModel =
new PostPrescriptionReqModel(); new PostPrescriptionReqModel();
List<PrescriptionRequestModel> sss = List(); List<PrescriptionRequestModel> sss = List();
@ -103,6 +108,11 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
TextEditingController frequencyController = TextEditingController(); TextEditingController frequencyController = TextEditingController();
TextEditingController indicationController = TextEditingController(); TextEditingController indicationController = TextEditingController();
TextEditingController instructionController = TextEditingController(); TextEditingController instructionController = TextEditingController();
bool visbiltyPrescriptionForm = false;
bool visbiltySearch = true;
final myController = TextEditingController();
DateTime selectedDate; DateTime selectedDate;
dynamic selectedDrug; dynamic selectedDrug;
int strengthChar; int strengthChar;
@ -198,9 +208,10 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
appointmentNo: widget.patient.appointmentNo); appointmentNo: widget.patient.appointmentNo);
await model.getMedicationList(); await model.getMedicationList();
await model.getMedicationStrength(); await model.getMedicationStrength();
await model.getPrescription(mrn: widget.patient.patientMRN);
await model.getMedicationDuration(); await model.getMedicationDuration();
await model.getMedicationRoute(); //await model.getMedicationRoute();
await model.getMedicationFrequency(); //await model.getMedicationFrequency();
await model.getMedicationDoseTime(); await model.getMedicationDoseTime();
//await model.getMedicationIndications(); //await model.getMedicationIndications();
await model.getPatientAssessment(getAssessmentReqModel); await model.getPatientAssessment(getAssessmentReqModel);
@ -231,14 +242,17 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: 12.0, vertical: 10.0), horizontal: 12.0, vertical: 10.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, //crossAxisAlignment: CrossAxisAlignment.start,
//mainAxisAlignment: MainAxisAlignment.spaceEvenly, //mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Column( Column(
children: [ children: [
SizedBox(height: 15,), SizedBox(
height: 15,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [ children: [
AppText( AppText(
'New Prescription Order', 'New Prescription Order',
@ -267,115 +281,225 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: Column( child: Column(
//mainAxisAlignment: MainAxisAlignment.end, //mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Container( // Container(
height: MediaQuery.of(context).size.height * // height: MediaQuery.of(context).size.height *
0.070, // 0.070,
color: Colors.white, // color: Colors.white,
child: InkWell( // child: InkWell(
onTap: model.allMedicationList != null // onTap: model.allMedicationList != null
? () { // ? () {
Helpers.hideKeyboard(context); // Helpers.hideKeyboard(context);
setState(() { // setState(() {
_selectedMedication = null; // _selectedMedication = null;
model.getItem( // model.getItem(
itemID: _selectedMedication // itemID: _selectedMedication
.itemId); // .itemId);
}); // });
} // }
: null, // : null,
child: _selectedMedication == null // child: _selectedMedication == null
? AutoCompleteTextField< // ? AutoCompleteTextField<
GetMedicationResponseModel>( // GetMedicationResponseModel>(
onFocusChanged: (__) { // onFocusChanged: (__) {
if (_selectedMedication != // if (_selectedMedication !=
null) { // null) {
model.getItem( // model.getItem(
itemID: // itemID:
_selectedMedication // _selectedMedication
.itemId); // .itemId);
uom = _selectedMedication.uom; // uom = _selectedMedication.uom;
} else { // } else {
null; // null;
} // }
if (_selectedMedication != // if (_selectedMedication !=
null && // null &&
duration != null && // duration != null &&
frequency != null && // frequency != null &&
strengthController.text != // strengthController.text !=
null) { // null) {
model.getBoxQuantity( // model.getBoxQuantity(
freq: frequency[ // freq: frequency[
'parameterCode'], // 'parameterCode'],
duration: duration['id'], // duration: duration['id'],
itemCode: // itemCode:
_selectedMedication // _selectedMedication
.itemId, // .itemId,
strength: double.parse( // strength: double.parse(
strengthController // strengthController
.text)); // .text));
box = model.boxQuintity; // box = model.boxQuintity;
//
return; // return;
} // }
// },
// decoration:
// textFieldSelectorDecoration(
// TranslationBase.of(context)
// .searchMedicineNameHere,
// _selectedMedication != null
// ? _selectedMedication
// .genericName
// : null,
// true,
// ),
// itemSubmitted: (item) => setState(
// () => _selectedMedication =
// item),
// key: key,
// suggestions:
// model.allMedicationList,
// itemBuilder: (context,
// suggestion) =>
// new Padding(
// child: Texts(suggestion
// .description +
// '/' +
// suggestion
// .genericName),
// padding:
// EdgeInsets.all(15.0)),
// itemSorter: (a, b) => 1,
// suggestionsAmount: 7,
// itemFilter: (suggestion, input) =>
// suggestion.genericName.toLowerCase().startsWith(
// input.toLowerCase()) ||
// suggestion.description
// .toLowerCase()
// .startsWith(input
// .toLowerCase()) ||
// suggestion.keywords
// .toLowerCase()
// .startsWith(
// input.toLowerCase()),
// )
// : TextField(
// onEditingComplete: () {
// model.getItem(
// itemID: _selectedMedication
// .itemId);
// },
// decoration: textFieldSelectorDecoration(
// TranslationBase.of(context)
// .searchMedicineNameHere,
// _selectedMedication != null
// ? _selectedMedication
// .description +
// ('${_selectedMedication.genericName}')
// : null,
// false,
// suffixIcon:
// Icon(Icons.search)),
// enabled: false,
// ),
// ),
// ),
FractionallySizedBox(
widthFactor: 0.9,
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(6.0)),
border: Border.all(
width: 1.0,
color: HexColor("#CCCCCC"))),
padding: EdgeInsets.all(10),
child: AppTextFormField(
onTap: () {
visbiltyPrescriptionForm = false;
visbiltySearch = true;
}, },
decoration: borderColor: Colors.white,
textFieldSelectorDecoration( hintText: TranslationBase.of(context)
TranslationBase.of(context)
.searchMedicineNameHere, .searchMedicineNameHere,
_selectedMedication != null controller: myController,
? _selectedMedication onSaved: (value) {},
.genericName onFieldSubmitted: (value) {
: null, searchMedicine(context, model);
true, },
inputFormatter: ONLY_LETTERS,
), ),
itemSubmitted: (item) => setState( ),
() => _selectedMedication = ),
item), SizedBox(
key: key, height: 15.0,
suggestions: ),
model.allMedicationList, Visibility(
itemBuilder: (context, visible: visbiltySearch,
suggestion) => child: Container(
new Padding( child: Column(
child: Texts(suggestion children: [
.description + FractionallySizedBox(
'/' + widthFactor: 0.8,
suggestion child: Container(
.genericName), child: Wrap(
padding: alignment: WrapAlignment.center,
EdgeInsets.all(15.0)), children: <Widget>[
itemSorter: (a, b) => 1, // TODO change it secondary button and add loading
suggestionsAmount: 7, AppButton(
itemFilter: (suggestion, input) => title: TranslationBase.of(
suggestion.genericName.toLowerCase().startsWith( context)
input.toLowerCase()) || .search,
suggestion.description onPressed: () async {
.toLowerCase() await searchMedicine(
.startsWith(input context, model);
.toLowerCase()) || },
suggestion.keywords ),
.toLowerCase() ],
.startsWith( ),
input.toLowerCase()), ),
) ),
: TextField( if (myController.text != '')
onEditingComplete: () { Container(
height: MediaQuery.of(context)
.size
.height *
0.5,
child: ListView.builder(
padding: const EdgeInsets.only(
top: 20),
scrollDirection: Axis.vertical,
// shrinkWrap: true,
itemCount:
model.allMedicationList ==
null
? 0
: model
.allMedicationList
.length,
itemBuilder:
(BuildContext context,
int index) {
return InkWell(
child: MedicineItemWidget(
label: model
.allMedicationList[
index]
.description
// url: model
// .pharmacyItemsList[
// index]["ImageSRCUrl"],
),
onTap: () {
model.getItem( model.getItem(
itemID: _selectedMedication itemID: model
.allMedicationList[
index]
.itemId); .itemId);
visbiltyPrescriptionForm =
true;
visbiltySearch = false;
_selectedMedication =
model.allMedicationList[
index];
uom = _selectedMedication
.uom;
}, },
decoration: textFieldSelectorDecoration( );
TranslationBase.of(context) },
.searchMedicineNameHere, ),
_selectedMedication != null ),
? _selectedMedication ],
.description +
('${_selectedMedication.genericName}')
: null,
false,
suffixIcon:
Icon(Icons.search)),
enabled: false,
), ),
), ),
), ),
@ -383,9 +507,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
height: spaceBetweenTextFileds, height: spaceBetweenTextFileds,
), ),
Visibility( Visibility(
visible: _selectedMedication == null visible: visbiltyPrescriptionForm,
? false
: true,
child: Container( child: Container(
child: Column( child: Column(
children: [ children: [
@ -1142,9 +1264,9 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
if (formKey.currentState if (formKey.currentState
.validate()) { .validate()) {
Navigator.pop(context); Navigator.pop(context);
openDrugToDrug(model); //openDrugToDrug(model);
{ {
/*// var x = model // var x = model
// .patientAssessmentList // .patientAssessmentList
// .map((value) => // .map((value) =>
// value.icdCode10ID) // value.icdCode10ID)
@ -1166,7 +1288,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
0] 0]
.icdCode10ID .icdCode10ID
.toString() .toString()
: "TEST", : "test",
// icdCode: model // icdCode: model
// .patientAssessmentList // .patientAssessmentList
// .map((value) => value // .map((value) => value
@ -1174,34 +1296,43 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
// .trim()) // .trim())
// .toList() // .toList()
// .join(' '), // .join(' '),
dose: strengthController.text, dose:
doseUnit: strengthController
units['parameterCode'] .text,
doseUnit: units[
'parameterCode']
.toString(), .toString(),
patient: widget.patient, patient:
widget.patient,
doseTimeIn: doseTimeIn:
doseTime['id'].toString(), doseTime['id']
.toString(),
model: widget.model, model: widget.model,
duration: duration:
duration['id'].toString(), duration['id']
frequency:
frequency['parameterCode']
.toString(), .toString(),
route: route['parameterCode'] frequency: frequency[
'parameterCode']
.toString(), .toString(),
drugId: _selectedMedication route: route[
'parameterCode']
.toString(),
drugId:
_selectedMedication
.itemId .itemId
.toString(), .toString(),
strength: strength:
strengthController.text, strengthController
.text,
indication: indication:
indicationController.text, indicationController
.text,
instruction: instruction:
instructionController instructionController
.text, .text,
doseTime: selectedDate, doseTime:
selectedDate,
); );
*/
} }
} }
@ -1389,4 +1520,22 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
} }
return prescriptionDetails; return prescriptionDetails;
} }
searchMedicine(context, MedicineViewModel model) async {
FocusScope.of(context).unfocus();
// if (myController.text.isEmpty()) {
// helpers.showErrorToast(TranslationBase.of(context).typeMedicineName);
// //"Type Medicine Name")
// return;
// }
if (myController.text.length < 3) {
helpers.showErrorToast(TranslationBase.of(context).moreThan3Letter);
return;
}
//GifLoaderDialogUtils.showMyDialog(context);
await model.getMedicationList(drug: myController.text);
//GifLoaderDialogUtils.hideDialog(context);
}
} }

@ -12,6 +12,7 @@ import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.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_scaffold_widget.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/network_base_view.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
@ -141,13 +142,16 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
return BaseView<ProcedureViewModel>( return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getCategory(), onModelReady: (model) => model.getCategory(),
builder: (BuildContext context, ProcedureViewModel model, Widget child) => builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
NetworkBaseView( AppScaffold(
isShowAppBar: false,
body: NetworkBaseView(
baseViewModel: model, baseViewModel: model,
child: DraggableScrollableSheet( child: DraggableScrollableSheet(
minChildSize: 0.90, minChildSize: 0.90,
initialChildSize: 0.95, initialChildSize: 0.95,
maxChildSize: 1.0, maxChildSize: 1.0,
builder: (BuildContext context, ScrollController scrollController) { builder:
(BuildContext context, ScrollController scrollController) {
return SingleChildScrollView( return SingleChildScrollView(
child: Container( child: Container(
height: MediaQuery.of(context).size.height * 1.20, height: MediaQuery.of(context).size.height * 1.20,
@ -155,11 +159,17 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
padding: EdgeInsets.all(12.0), padding: EdgeInsets.all(12.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
children: [ children: [
Row( Row(
children: [ children: [
AppText(
'Please Select Category',
fontWeight: FontWeight.w700,
fontSize: 20,
),
SizedBox(
width: MediaQuery.of(context).size.width * 0.29,
),
InkWell( InkWell(
child: Icon( child: Icon(
Icons.close, Icons.close,
@ -171,17 +181,6 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
), ),
], ],
), ),
Row(
children: [
AppText(
'Please Select Category',
fontWeight: FontWeight.w700,
fontSize: 20,
),
],
),
],
),
SizedBox( SizedBox(
height: 10.0, height: 10.0,
), ),
@ -191,7 +190,8 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
onTap: model.categoryList != null && onTap: model.categoryList != null &&
model.categoryList.length > 0 model.categoryList.length > 0
? () { ? () {
ListSelectDialog dialog = ListSelectDialog( ListSelectDialog dialog =
ListSelectDialog(
list: model.categoryList, list: model.categoryList,
attributeName: 'categoryName', attributeName: 'categoryName',
attributeValueId: 'categoryId', attributeValueId: 'categoryId',
@ -334,15 +334,22 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
SizedBox( SizedBox(
height: 100.0, height: 100.0,
), ),
Container( ],
margin: EdgeInsets.all( )
SizeConfig.widthMultiplier * 5), ],
),
),
),
);
}),
),
bottomSheet: Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Wrap( child: Wrap(
alignment: WrapAlignment.center, alignment: WrapAlignment.center,
children: <Widget>[ children: <Widget>[
AppButton( AppButton(
title: TranslationBase.of(context) title: TranslationBase.of(context).addSelectedProcedures,
.addSelectedProcedures,
color: Color(0xff359846), color: Color(0xff359846),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
onPressed: () { onPressed: () {
@ -366,14 +373,6 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
], ],
), ),
), ),
],
)
],
),
),
),
);
}),
), ),
); );
} }

@ -209,15 +209,20 @@ class _AddSelectedLabOrderState extends State<AddSelectedLabOrder> {
isEntityListSelected: (master) => isEntityListSelected: (master) =>
isEntityListSelected(master), isEntityListSelected(master),
)), )),
Container( ],
margin: EdgeInsets.all( ),
SizeConfig.widthMultiplier * 5), ),
),
);
}),
),
bottomSheet: Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Wrap( child: Wrap(
alignment: WrapAlignment.center, alignment: WrapAlignment.center,
children: <Widget>[ children: <Widget>[
AppButton( AppButton(
title: title: "Add Lab Order", //TranslationBase.of(context)
"Add Lab Order", //TranslationBase.of(context)
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
//.addSelectedProcedures, //.addSelectedProcedures,
color: Color(0xff359846), color: Color(0xff359846),
@ -242,13 +247,6 @@ class _AddSelectedLabOrderState extends State<AddSelectedLabOrder> {
], ],
), ),
), ),
],
),
),
),
);
}),
),
), ),
); );
} }

@ -169,7 +169,6 @@ class _AddSelectedRadiologyOrderState extends State<AddSelectedRadiologyOrder> {
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontSize: 20, fontSize: 20,
), ),
InkWell( InkWell(
child: Icon( child: Icon(
Icons.close, Icons.close,
@ -208,9 +207,15 @@ class _AddSelectedRadiologyOrderState extends State<AddSelectedRadiologyOrder> {
isEntityListSelected: (master) => isEntityListSelected: (master) =>
isEntityListSelected(master), isEntityListSelected(master),
)), )),
Container( ],
margin: EdgeInsets.all( ),
SizeConfig.widthMultiplier * 5), ),
),
);
}),
),
bottomSheet: Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Wrap( child: Wrap(
alignment: WrapAlignment.center, alignment: WrapAlignment.center,
children: <Widget>[ children: <Widget>[
@ -238,13 +243,6 @@ class _AddSelectedRadiologyOrderState extends State<AddSelectedRadiologyOrder> {
), ),
], ],
), ),
)
],
),
),
),
);
}),
), ),
), ),
); );

@ -25,7 +25,8 @@ class ProcedureScreen extends StatelessWidget {
String patientType = routeArgs['patientType']; String patientType = routeArgs['patientType'];
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
return BaseView<ProcedureViewModel>( return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getProcedure(mrn: patient.patientId,patientType: patientType), onModelReady: (model) =>
model.getProcedure(mrn: patient.patientId, patientType: patientType),
builder: (BuildContext context, ProcedureViewModel model, Widget child) => builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold( AppScaffold(
isShowAppBar: true, isShowAppBar: true,
@ -41,7 +42,8 @@ class ProcedureScreen extends StatelessWidget {
SizedBox( SizedBox(
height: 12, height: 12,
), ),
if(model.procedureList.length==0 && patient.patientStatusType != 43) if (model.procedureList.length == 0 &&
patient.patientStatusType != 43)
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
@ -61,7 +63,7 @@ class ProcedureScreen extends StatelessWidget {
], ],
), ),
), ),
if( patient.patientStatusType == 43) if (patient.patientStatusType == 43)
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
@ -81,10 +83,19 @@ class ProcedureScreen extends StatelessWidget {
], ],
), ),
), ),
if (patientType != null && patientType == '7' && patient.patientStatusType == 43) if (patientType != null &&
patientType == '7' &&
patient.patientStatusType == 43)
InkWell( InkWell(
onTap: () { onTap: () {
addSelectedProcedure(context, model, patient); Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddSelectedProcedure(
patient: patient,
model: model,
)),
);
}, },
child: Container( child: Container(
width: double.maxFinite, width: double.maxFinite,
@ -143,38 +154,40 @@ class ProcedureScreen extends StatelessWidget {
patient: patient, patient: patient,
remarks: model remarks: model
.procedureList[0].entityList[index].remarks, .procedureList[0].entityList[index].remarks,
orderType: model.procedureList[0] orderType: model
.entityList[index].orderType .procedureList[0].entityList[index].orderType
.toString(), .toString(),
orderNo: model orderNo: model
.procedureList[0].entityList[index].orderNo, .procedureList[0].entityList[index].orderNo,
procedureName: model.procedureList[0] procedureName: model.procedureList[0]
.entityList[index].procedureName, .entityList[index].procedureName,
categoreId: model.procedureList[0] categoreId: model
.entityList[index].categoryID .procedureList[0].entityList[index].categoryID
.toString(), .toString(),
procedureId: model.procedureList[0] procedureId: model.procedureList[0]
.entityList[index].procedureId, .entityList[index].procedureId,
limetNo: model.procedureList[0] limetNo: model.procedureList[0].entityList[index]
.entityList[index].lineItemNo); .lineItemNo);
// } else // } else
// helpers.showErrorToast( // helpers.showErrorToast(
// 'You Cant Update This Procedure'); // 'You Cant Update This Procedure');
}, },
), ),
), ),
if (model.procedureList.length!=0 && patient.patientStatusType != 43) if (model.procedureList.length != 0 &&
patient.patientStatusType != 43)
Center( Center(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
SizedBox(height: 100,), SizedBox(
height: 100,
),
Image.asset('assets/images/no-data.png'), Image.asset('assets/images/no-data.png'),
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Texts('No Procedure Found'), child: Texts('No Procedure Found'),
) )
], ],
), ),
) )

Loading…
Cancel
Save