import 'package:doctor_app_flutter/core/viewModel/procedure_View_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/procedures/add-procedure-form.dart'; import 'package:doctor_app_flutter/screens/procedures/update-procedure.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-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/network_base_view.dart'; import 'package:flutter/material.dart'; class ProcedureScreen extends StatefulWidget { @override _ProcedureScreenState createState() => _ProcedureScreenState(); } class _ProcedureScreenState extends State { int selectedType = 0; int testNum = 1; PatiantInformtion patient; setSelectedType(int val) { setState(() { selectedType = val; }); } TextEditingController procedureController = TextEditingController(); @override Widget build(BuildContext context) { final routeArgs = ModalRoute.of(context).settings.arguments as Map; patient = routeArgs['patient']; return BaseView( onModelReady: (model) => model.getProcedure(mrn: patient.patientMRN), builder: (BuildContext context, ProcedureViewModel model, Widget child) => AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).orderProcedure, body: NetworkBaseView( baseViewModel: model, child: SingleChildScrollView( child: Container( child: Column( children: [ PatientPageHeaderWidget(patient), Divider( height: 1.0, thickness: 1.0, color: Colors.grey, ), (model.procedureList.length != 0) ? SizedBox( height: model.procedureList[0].rowcount == 0 ? 200.0 : 10.0) : SizedBox(height: 200.0), //model.prescriptionList == null (model.procedureList.length != 0) ? model.procedureList[0].rowcount == 0 ? Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ InkWell( onTap: () { model .getProcedureCategory() .then((value) { addSelectedProcedure( context, model, patient); }); //model.postPrescription(); }, child: CircleAvatar( radius: 65, backgroundColor: Color(0XFFB8382C), child: CircleAvatar( radius: 60, backgroundColor: Colors.white, child: Icon( Icons.add, color: Colors.black, size: 45.0, ), ), ), ), SizedBox( height: 15.0, ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( 'NO ORDER FOR PROCEDURE LISTED', color: Colors.black, fontWeight: FontWeight.w900, ), ], ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( TranslationBase.of(context).addNow, color: Color(0XFFB8382C), fontWeight: FontWeight.w700, ), ], ), ], ) : Padding( padding: EdgeInsets.all(16.0), child: NetworkBaseView( baseViewModel: model, child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ InkWell( child: Container( height: 50.0, width: 450.0, decoration: BoxDecoration( border: Border.all( color: Colors.grey), borderRadius: BorderRadius.circular(10.0), ), child: Padding( padding: EdgeInsets.all(8.0), child: Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ AppText( TranslationBase.of( context) .addMoreProcedure, fontWeight: FontWeight.w100, fontSize: 12.5, ), Icon( Icons.add, color: Color(0XFFB8382C), ) ], ), ), ), onTap: () { model .getProcedureCategory() .then((value) { addSelectedProcedure( context, model, patient); }); //model.postPrescription(); }, ), // Container( // decoration: BoxDecoration( // borderRadius: BorderRadius.all( // Radius.circular(6.0)), // border: Border.all( // width: 1.0, // color: HexColor("#CCCCCC"))), // child: AppTextFormField( // labelText: 'Add more procedure', // borderColor: Colors.white, // //suffixIcon: Icons.search, // // //textInputType: TextInputType.number, // inputFormatter: ONLY_NUMBERS, // onTap: () { // addSelectedProcedure(context); // }, // ), // ), SizedBox( height: 35.0, ), ...List.generate( model.procedureList[0].rowcount, (index) => Container( child: Column( children: [ SizedBox( height: MediaQuery.of(context) .size .height * 0.022, ), Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Container( height: MediaQuery.of( context) .size .height * 0.18, width: MediaQuery.of( context) .size .width * 0.135, child: Column( children: [ AppText( 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: Colors.green, ) ], ), ), Expanded( child: Container( // height: MediaQuery.of( // context) // .size // .height * // 0.21, width: MediaQuery.of( context) .size .width * 0.05, child: Column( children: [ Row( children: [ AppText( TranslationBase.of(context) .codeNo + " : ", fontWeight: FontWeight .w700, fontSize: 13.0, ), AppText( model .procedureList[ 0] .entityList[ index] .procedureId .toString(), fontSize: 12.0, ), SizedBox( width: 12.0, ), AppText( TranslationBase.of(context) .orderType + " : ", fontWeight: FontWeight .w700, fontSize: 13.0, ), Expanded( child: AppText( model.procedureList[0].entityList[index].orderType == 1 ? 'Routine' : 'Urgent', fontSize: 11.5, color: Color( 0xFFB9382C), ), ), ], ), Row( children: [ AppText( 'Order.NO' + " : ", fontWeight: FontWeight .w700, fontSize: 15.0, ), AppText( model .procedureList[ 0] .entityList[ index] .orderNo .toString(), fontSize: 13.0, ), ], ), Row( children: [ Container( child: Expanded( child: AppText( model .procedureList[0] .entityList[index] .procedureName, fontWeight: FontWeight.w800, ), ), ) ], ), Row( children: [ AppText( TranslationBase.of(context) .price + " : ", fontWeight: FontWeight .w700, ), // Expanded( // child: AppText( // model // .procedureList[ // 0] // .entityList[ // index] // .price // .toString(), // fontSize: // 13.0), // ) ], ), SizedBox( height: 10.0, ), Row( children: [ Expanded( child: Container( height: MediaQuery.of(context) .size .height * 0.047, width: MediaQuery.of(context) .size .width * 0.10, child: AppText( model.procedureList[0].entityList[index].remarks != null ? model.procedureList[0].entityList[index].remarks.toString() : "", fontSize: 11.5, ), ), ), ], ), SizedBox( height: 20.0, ), // SizedBox( // height: 40, // ), ], ), ), ), Container( child: Column( children: [ InkWell( child: Icon( Icons.edit), onTap: () { // model // .updateProcedure(); updateProcedureForm( context, model: model, orderNo: model .procedureList[ 0] .entityList[ index] .orderNo, remarks: model .procedureList[ 0] .entityList[ index] .remarks, procedureName: model .procedureList[ 0] .entityList[ index] .procedureName, patient: patient, procedureId: model .procedureList[ 0] .entityList[ index] .procedureId, categoreId: model .procedureList[ 0] .entityList[ index] .categoryID .toString()); }, ) ], ), ), ], ), Divider( height: 1.0, thickness: 1.0, color: Colors.grey, ), ], ), ), ), ], ), ), ) : Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ InkWell( onTap: () { model .getProcedureCategory() .then((value) { addSelectedProcedure( context, model, patient); }); //model.postPrescription(); }, child: CircleAvatar( radius: 65, backgroundColor: Color(0XFFB8382C), child: CircleAvatar( radius: 60, backgroundColor: Colors.white, child: Icon( Icons.add, color: Colors.black, size: 45.0, ), ), ), ), SizedBox( height: 15.0, ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( 'NO ORDER FOR PROCEDURE LISTED', color: Colors.black, fontWeight: FontWeight.w900, ), ], ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( TranslationBase.of(context).addNow, color: Color(0XFFB8382C), fontWeight: FontWeight.w700, ), ], ), ], ) ], ), ), ), )), ); } }