fix all the screenshots

dev_v2.8_reverting
Elham Rababh 4 years ago
parent f097005b8c
commit 94a699a58f

@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

@ -70,6 +70,7 @@ class _DischargedPatientState extends State<DischargedPatient> {
},
marginTop: 0,
suffixIcon: IconButton(
onPressed: () {},
icon: Icon(
DoctorApp.filter_1,
color: Colors.black,
@ -170,14 +171,14 @@ class _DischargedPatientState extends State<DischargedPatient> {
? model
.filterData[
index]
.nationalityName
.nationalityName!
.trim()
: model.filterData[index].nationality !=
null
? model
.filterData[
index]
.nationality
.nationality!
.trim()
: model.filterData[index].nationalityId !=
null
@ -203,7 +204,7 @@ class _DischargedPatientState extends State<DischargedPatient> {
.network(
model.filterData[index].nationalityFlagURL !=
null
? model.filterData[index].nationalityFlagURL
? model.filterData[index].nationalityFlagURL!
: '',
height:
25,
@ -320,7 +321,7 @@ class _DischargedPatientState extends State<DischargedPatient> {
text: model.filterData[index].admissionDate ==
null
? ""
: TranslationBase.of(context).admissionDate +
: TranslationBase.of(context).admissionDate! +
" : ",
style: TextStyle(
fontSize:
@ -385,7 +386,7 @@ class _DischargedPatientState extends State<DischargedPatient> {
.w300,
),
AppText(
"${AppDateUtils.convertStringToDate(model.filterData[index].dischargeDate).difference(AppDateUtils.getDateTimeFromServerFormat(model.filterData[index].admissionDate)).inDays + 1}",
"${AppDateUtils.convertStringToDate(model.filterData[index].dischargeDate!).difference(AppDateUtils.getDateTimeFromServerFormat(model.filterData[index].admissionDate!)).inDays + 1}",
fontSize:
15,
fontWeight:

@ -3,6 +3,7 @@ import 'package:doctor_app_flutter/core/viewModel/PatientMuseViewModel.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/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/profile/patient_profile_app_bar_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@ -17,21 +18,20 @@ import 'package:url_launcher/url_launcher.dart';
class ECGPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
String patientType = routeArgs['patient-type'];
String arrivalType = routeArgs['arrival-type'];
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PatientMuseViewModel>(
onModelReady: (model) => model.getECGPatient(
patientType: patient.patientType,
patientOutSA: 0,
patientID: patient.patientId),
onModelReady: (model) =>
model.getECGPatient(patientType: patient.patientType, patientOutSA: 0, patientID: patient.patientId),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Color(0xffF8F8F8),
appBar: PatientProfileAppBar(patient),
patientProfileAppBarModel: PatientProfileAppBarModel(
patient:patient),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(8.0),
@ -46,7 +46,7 @@ class ECGPage extends StatelessWidget {
...List.generate(model.patientMuseResultsModelList.length, (index) => InkWell(
onTap: () async {
await launch(
model.patientMuseResultsModelList[index].imageURL);
model.patientMuseResultsModelList[index]!.imageURL!);
},
child: Container(
width: double.infinity,
@ -100,8 +100,8 @@ class ECGPage extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
AppText('${AppDateUtils.getDayMonthYearDateFormatted(model.patientMuseResultsModelList[index].createdOnDateTime,isArabic: projectViewModel.isArabic)}',color: Colors.black,fontWeight: FontWeight.w600,fontSize: 14,),
AppText('${AppDateUtils.getHour(model.patientMuseResultsModelList[index].createdOnDateTime)}',fontWeight: FontWeight.w600,color: Colors.grey[700],fontSize: 14,),
AppText('${AppDateUtils.getDayMonthYearDateFormatted(model.patientMuseResultsModelList[index].createdOnDateTime!,isArabic: projectViewModel.isArabic)}',color: Colors.black,fontWeight: FontWeight.w600,fontSize: 14,),
AppText('${AppDateUtils.getHour(model.patientMuseResultsModelList[index]!.createdOnDateTime!)}',fontWeight: FontWeight.w600,color: Colors.grey[700],fontSize: 14,),
],
),
),

@ -116,7 +116,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
MainAxisAlignment.spaceBetween,
children: [
AppText(
"${model.getReferralStatusNameByCode(referredPatient.referralStatus, context)}",
"${model.getReferralStatusNameByCode(referredPatient.referralStatus!, context)}",
fontFamily: 'Poppins',
fontSize: 1.9 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w700,
@ -128,7 +128,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
),
AppText(
AppDateUtils.getDayMonthYearDateFormatted(
referredPatient.referralDate,
referredPatient.referralDate!,
),
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
@ -151,8 +151,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
Expanded(
child: AppText(
AppDateUtils.convertDateFromServerFormat(
referredPatient.admissionDate,
"dd MMM,yyyy"),
referredPatient.admissionDate ?? "", "dd MMM,yyyy"),
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize:
@ -176,8 +175,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
Expanded(
child: AppText(
AppDateUtils.convertDateFromServerFormat(
referredPatient.dischargeDate,
"dd MMM,yyyy"),
referredPatient.dischargeDate ?? "", "dd MMM,yyyy"),
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize:
@ -200,7 +198,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
),
Expanded(
child: AppText(
"${AppDateUtils.convertStringToDate(referredPatient.dischargeDate).difference(AppDateUtils.convertStringToDate(referredPatient.admissionDate)).inDays + 1}",
"${AppDateUtils.convertStringToDate(referredPatient.dischargeDate ?? "").difference(AppDateUtils.convertStringToDate(referredPatient.admissionDate ?? "")).inDays + 1}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize:
@ -301,7 +299,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
children: [
AppText(
TranslationBase.of(context)
.frequency +
.frequency! +
": ",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
@ -332,7 +330,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).priority +
TranslationBase.of(context).priority! +
": ",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
@ -427,7 +425,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
children: [
AppText(
TranslationBase.of(context)
.maxResponseTime +
.maxResponseTime! +
": ",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
@ -437,7 +435,7 @@ class ReferralDischargedPatientDetails extends StatelessWidget {
Expanded(
child: AppText(
AppDateUtils.convertDateFromServerFormat(
referredPatient.mAXResponseTime,
referredPatient.mAXResponseTime!,
"dd MMM,yyyy"),
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,

@ -63,12 +63,12 @@ class _ReferralDischargedPatientPageState extends State<ReferralDischargedPatien
);
},
child: PatientReferralItemWidget(
referralStatus: model.getReferralStatusNameByCode(model.myDischargeReferralPatient[index].referralStatus,context),
referralStatus: model.getReferralStatusNameByCode(model.myDischargeReferralPatient[index].referralStatus!,context),
referralStatusCode: model.myDischargeReferralPatient[index].referralStatus,
patientName: model.myDischargeReferralPatient[index].firstName+" "+model.myDischargeReferralPatient[index].lastName,
patientName: model.myDischargeReferralPatient[index].firstName!+" "+model.myDischargeReferralPatient[index]!.lastName!,
patientGender: model.myDischargeReferralPatient[index].gender,
referredDate: AppDateUtils.getDayMonthYearDateFormatted(model.myDischargeReferralPatient[index].referralDate),
referredTime: AppDateUtils.getTimeHHMMA(model.myDischargeReferralPatient[index].referralDate),
referredDate: AppDateUtils.getDayMonthYearDateFormatted(model.myDischargeReferralPatient[index].referralDate!),
referredTime: AppDateUtils.getTimeHHMMA(model.myDischargeReferralPatient[index]!.referralDate!),
patientID: "${model.myDischargeReferralPatient[index].patientID}",
isSameBranch: false,
isReferral: true,

@ -2,6 +2,7 @@ import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/InsuranceViewModel.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/profile/patient_profile_app_bar_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@ -19,14 +20,10 @@ class InsuranceApprovalsDetails extends StatefulWidget {
int indexInsurance;
String patientType;
InsuranceApprovalsDetails(
{this.patient, this.indexInsurance, this.patientType});
InsuranceApprovalsDetails({required this.patient, required this.indexInsurance, required this.patientType});
@override
_InsuranceApprovalsDetailsState createState() =>
_InsuranceApprovalsDetailsState(
patient: patient,
indexInsurance: indexInsurance,
patientType: patientType);
_InsuranceApprovalsDetailsState(patient: patient, indexInsurance: indexInsurance, patientType: patientType);
}
class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
@ -34,13 +31,12 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
int indexInsurance;
String patientType;
_InsuranceApprovalsDetailsState(
{this.patient, this.indexInsurance, this.patientType});
_InsuranceApprovalsDetailsState({required this.patient, required this.indexInsurance, required this.patientType});
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
return BaseView<InsuranceViewModel>(
onModelReady: (model) => model.insuranceApprovalInPatient.length == 0
@ -48,24 +44,43 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
? (model) => model.getInsuranceInPatient(mrn: patient.patientId)
: patient.appointmentNo != null
? (model) => model.getInsuranceApproval(patient,
appointmentNo: patient.appointmentNo,
projectId: patient.projectId)
appointmentNo: patient.appointmentNo, projectId: patient.projectId)
: (model) => model.getInsuranceApproval(patient)
: null,
builder: (BuildContext context, InsuranceViewModel model, Widget child) =>
AppScaffold(
builder: (BuildContext? context, InsuranceViewModel? model, Widget? child) => AppScaffold(
isShowAppBar: true,
baseViewModel: model,
appBar: PatientProfileAppBar(patient),
patientProfileAppBarModel: PatientProfileAppBarModel(patient: patient),
body: patient.admissionNo != null
? SingleChildScrollView(
child: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ServiceTitle(
title: TranslationBase.of(context).insurance22,
subTitle: TranslationBase.of(context).approvals22,
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Row(
children: [
AppText(
TranslationBase.of(context!).insurance22,
fontSize: 15.0,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context).approvals22,
fontSize: 30.0,
fontWeight: FontWeight.w700,
),
],
),
],
),
),
Container(
margin: EdgeInsets.all(10),
@ -85,21 +100,11 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
Row(
children: [
AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
.approvalStatusDescption !=
null
? model
.insuranceApprovalInPatient[
indexInsurance]
.approvalStatusDescption ??
model!.insuranceApprovalInPatient[indexInsurance].approvalStatusDescption != null
? model.insuranceApprovalInPatient[indexInsurance].approvalStatusDescption ??
""
: "",
color: model
.insuranceApprovalInPatient[
indexInsurance]
.approvalStatusDescption !=
color: model.insuranceApprovalInPatient[indexInsurance].approvalStatusDescption !=
null
? "${model.insuranceApprovalInPatient[indexInsurance].approvalStatusDescption}" ==
"Approved" ||
@ -108,102 +113,89 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
? Color(0xff359846)
: Color(0xffD02127)
: Color(0xffD02127),
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
2.7,
),
],
),
Row(
children: [
AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
.doctorName
.toUpperCase(),
color: Color(0xff2E303A),
fontSize: 16,
letterSpacing: -0.64,
fontWeight: FontWeight.w600,
model.insuranceApprovalInPatient[indexInsurance].doctorName!.toUpperCase(),
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.bold,
)
],
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8.0),
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Row(
children: [
Column(
children: [
Container(
height: MediaQuery.of(context)
.size
.height *
0.065,
width: MediaQuery.of(context)
.size
.height *
0.065,
height: 85.0,
width: 85.0,
child: CircleAvatar(
radius: SizeConfig
.imageSizeMultiplier *
12,
radius: SizeConfig.imageSizeMultiplier * 12,
// radius: (52)
child: ClipRRect(
borderRadius:
BorderRadius.circular(
50),
borderRadius: BorderRadius.circular(50),
child: Image.network(
model
.insuranceApprovalInPatient[
indexInsurance]
.doctorImage,
model.insuranceApprovalInPatient[indexInsurance].doctorImage!,
fit: BoxFit.fill,
width: 700,
),
),
backgroundColor:
Colors.transparent,
backgroundColor: Colors.transparent,
),
),
],
),
Expanded(
child: Padding(
padding:
const EdgeInsets.symmetric(
horizontal: 8.0),
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
//mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
height: 25.0,
),
CustomRow(
label: TranslationBase.of(
context)
.clinic +
": ",
value: model
.insuranceApprovalInPatient[
indexInsurance]
.clinicName,
Row(
children: [
AppText(
TranslationBase.of(context).clinic! + ": ",
color: Colors.grey[500],
fontSize: 14,
),
CustomRow(
label: TranslationBase.of(
context)
.approvalNo +
": ",
value: model
.insuranceApprovalInPatient[
indexInsurance]
.approvalNo
Expanded(
child: AppText(
model.insuranceApprovalInPatient[indexInsurance].clinicName,
fontSize: 14,
),
)
],
),
Row(
children: <Widget>[
AppText(
TranslationBase.of(context).approvalNo! + ": ",
color: Colors.grey[500],
fontSize: 14,
),
AppText(
model.insuranceApprovalInPatient[indexInsurance].approvalNo
.toString(),
fontSize: 14,
)
],
),
Row(
children: <Widget>[
AppText(
'Unused Count:',
color: Colors.grey[500],
fontSize: 14,
),
CustomRow(
label: 'Unused Count:',
@ -216,26 +208,26 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
CustomRow(
label: TranslationBase.of(
context)
.companyName +
.companyName! +
": ",
value: 'Sample'),
CustomRow(
label: TranslationBase.of(
context)
.receiptOn +
.receiptOn! +
": ",
value:
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(model.insuranceApprovalInPatient[indexInsurance].receiptOn ?? ""), isArabic: projectViewModel.isArabic)}'),
CustomRow(
label: TranslationBase.of(
context)
.expiryDate +
.expiryDate! +
": ",
value:
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(model.insuranceApprovalInPatient[indexInsurance].expiryDate ?? ""), isArabic: projectViewModel.isArabic)}'),
],
),
),
),]
),)
),
],
),
@ -302,7 +294,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
itemCount: model
.insuranceApprovalInPatient[
indexInsurance]
.apporvalDetails
.apporvalDetails!
.length,
itemBuilder:
(BuildContext context,
@ -318,8 +310,8 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
model
.insuranceApprovalInPatient[
indexInsurance]
?.apporvalDetails[
index]
?.apporvalDetails![
index]!
?.procedureName ??
"",
textAlign:
@ -345,7 +337,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
model
.insuranceApprovalInPatient[
indexInsurance]
?.apporvalDetails[
?.apporvalDetails![
index]
?.status ??
"",
@ -372,7 +364,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
model
.insuranceApprovalInPatient[
indexInsurance]
?.apporvalDetails[
?.apporvalDetails![
index]
?.isInvoicedDesc ??
"",
@ -428,7 +420,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
Row(
children: [
AppText(
TranslationBase.of(context).insurance22,
TranslationBase.of(context!).insurance22,
fontSize: 15.0,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
@ -465,8 +457,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
Row(
children: [
AppText(
model
.insuranceApproval[
model!.insuranceApproval[
indexInsurance]
.approvalStatusDescption !=
null
@ -476,12 +467,12 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
.approvalStatusDescption ??
""
: "",
color: model
color: model!
.insuranceApproval[
indexInsurance]
indexInsurance]!
.approvalStatusDescption !=
null
? "${model.insuranceApproval[indexInsurance].approvalStatusDescption}" ==
? "${model!.insuranceApproval[indexInsurance]!.approvalStatusDescption}" ==
"Approved"
? Color(0xff359846)
: Color(0xffD02127)
@ -492,9 +483,9 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
Row(
children: [
AppText(
model
.insuranceApproval[indexInsurance]
.doctorName
model!
.insuranceApproval[indexInsurance]!
.doctorName!
.toUpperCase(),
color: Colors.black,
fontSize: 18,
@ -522,10 +513,10 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
BorderRadius.circular(
50),
child: Image.network(
model
.insuranceApproval[
model!
.insuranceApproval![
indexInsurance]
.doctorImage,
.doctorImage!,
fit: BoxFit.fill,
width: 700,
),
@ -554,7 +545,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText(
TranslationBase.of(
context)
.clinic +
.clinic! +
": ",
color: Colors.grey[500],
fontSize: 14,
@ -575,7 +566,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText(
TranslationBase.of(
context)
.approvalNo +
.approvalNo! +
": ",
color: Colors.grey[500],
fontSize: 14,
@ -595,7 +586,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText(
TranslationBase.of(
context)
.unusedCount +
.unusedCount! +
": ",
color: Colors.grey[500],
fontSize: 14,
@ -615,7 +606,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText(
TranslationBase.of(
context)
.companyName +
.companyName! +
": ",
color: Colors.grey[500],
),
@ -627,13 +618,13 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText(
TranslationBase.of(
context)
.receiptOn +
.receiptOn! +
": ",
color: Colors.grey[500],
),
Expanded(
child: AppText(
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].rceiptOn), isArabic: projectViewModel.isArabic)}',
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(model!.insuranceApproval![indexInsurance]!.rceiptOn!), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight:
FontWeight.w600,
@ -646,7 +637,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText(
TranslationBase.of(
context)
.expiryDate +
.expiryDate! +
": ",
color: Colors.grey[500],
),
@ -656,7 +647,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
.expiryDate !=
null)
AppText(
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].expiryDate), isArabic: projectViewModel.isArabic)}',
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(model!.insuranceApproval[indexInsurance]!.expiryDate!), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight:
FontWeight.w600,
@ -683,7 +674,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
children: [
Expanded(
child: AppText(
TranslationBase.of(context)
TranslationBase.of(context!)
.procedure,
fontWeight: FontWeight.w700,
),
@ -717,7 +708,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
itemCount: model
.insuranceApproval[
indexInsurance]
.apporvalDetails
.apporvalDetails!
.length,
itemBuilder:
(BuildContext context,
@ -733,7 +724,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
model
.insuranceApproval[
indexInsurance]
?.apporvalDetails[
?.apporvalDetails![
index]
?.procedureName ??
"",
@ -749,7 +740,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
model
.insuranceApproval[
indexInsurance]
?.apporvalDetails[
?.apporvalDetails![
index]
?.status ??
"",
@ -765,7 +756,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
model
.insuranceApproval[
indexInsurance]
?.apporvalDetails[
?.apporvalDetails![
index]
?.isInvoicedDesc ??
"",

@ -12,7 +12,7 @@ import 'package:flutter/material.dart';
class OutPatientPrescriptionDetailsScreen extends StatefulWidget {
final PrescriptionResModel prescriptionResModel;
OutPatientPrescriptionDetailsScreen({Key ? key, this.prescriptionResModel});
OutPatientPrescriptionDetailsScreen({Key? key, required this.prescriptionResModel});
@override
_OutPatientPrescriptionDetailsScreenState createState() =>
@ -37,7 +37,7 @@ class _OutPatientPrescriptionDetailsScreenState
return BaseView<PatientViewModel>(
onModelReady: (model) => getPrescriptionReport(context, model),
builder: (_, model, w) => AppScaffold(
appBarTitle: TranslationBase.of(context).prescriptionDetails,
appBarTitle: TranslationBase.of(context).prescriptionDetails!,
body: CardWithBgWidgetNew(
widget: ListView.builder(
itemCount: model.prescriptionReport.length,

@ -7,7 +7,7 @@ import 'package:flutter/material.dart';
class CustomEditableText extends StatefulWidget {
CustomEditableText({
Key? key,
@required this.controller,
required this.controller,
this.hint,
this.isEditable = false,
required this.isSubmitted,
@ -37,7 +37,7 @@ class _CustomEditableTextState extends State<CustomEditableText> {
borderRadius: BorderRadius.all(Radius.circular(20)),
border: Border.fromBorderSide(
BorderSide(
color: Colors.grey[300],
color: Colors.grey[300]!,
width: 2,
),
),

@ -14,7 +14,7 @@ import 'package:hexcolor/hexcolor.dart';
import 'RegisterSearchPatientPage.dart';
class RegisterPatientPage extends StatefulWidget {
const RegisterPatientPage({Key key}) : super(key: key);
const RegisterPatientPage({Key? key}) : super(key: key);
@override
_RegisterPatientPageState createState() => _RegisterPatientPageState();
@ -82,9 +82,9 @@ class _RegisterPatientPageState extends State<RegisterPatientPage>
currentStepIndex: _currentIndex + 1,
screenSize: screenSize,
stepsTitles: [
TranslationBase.of(context).search,
TranslationBase.of(context).activation,
TranslationBase.of(context).confirmation,
TranslationBase.of(context).search!,
TranslationBase.of(context).activation!,
TranslationBase.of(context).confirmation!,
],
),
SizedBox(

@ -6,7 +6,7 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/material.dart';
class VerifyActivationCodePage extends StatefulWidget {
const VerifyActivationCodePage({Key key}) : super(key: key);
const VerifyActivationCodePage({Key? key}) : super(key: key);
@override
_VerifyActivationCodePageState createState() =>

@ -506,15 +506,15 @@ class _ActivationPageState extends State<ActivationPage> {
counterText: " ",
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10)),
borderSide: BorderSide(color: Colors.grey[300]),
borderSide: BorderSide(color: Colors.grey[300]!),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Colors.grey[300]),
borderSide: BorderSide(color: Colors.grey[300]!),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Colors.grey[300]),
borderSide: BorderSide(color: Colors.grey[300]!),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),

@ -21,7 +21,7 @@ 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/widgets/medicine/medicine_item_widget.dart';
import '../../widgets/shared/text_fields/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';

@ -33,6 +33,8 @@ class _DrugToDrug extends State<DrugToDrug> {
{'name': 'LOW', 'level': 'LEVEL_1'},
{'name': 'INFO', 'level': 'INFO'},
];
///TODO Elham* Check this it seem something wrong
GeneralGetReqForSOAP generalGetReqForSOAP = GeneralGetReqForSOAP(
patientMRN: 2954208, //widget.patient.patientMRN,
episodeId: 210011002, //widget.patient.episodeNo,
@ -54,15 +56,9 @@ class _DrugToDrug extends State<DrugToDrug> {
Widget build(BuildContext context) {
return isLoaded == true
? BaseView<PrescriptionViewModel>(
onModelReady: (model3) => model3.getDrugToDrug(
model.patientVitalSigns,
widget.listAssessment,
model2.patientAllergiesList,
widget.patient,
widget.prescription),
builder: (BuildContext context, PrescriptionViewModel model3,
Widget child) =>
NetworkBaseView(
onModelReady: (model3) => model3.getDrugToDrug(model.patientVitalSigns!, widget.listAssessment,
model2.patientAllergiesList, widget.patient, widget.prescription),
builder: (BuildContext context, PrescriptionViewModel model3, Widget? child) => NetworkBaseView(
baseViewModel: model3,
child: Container(
height: SizeConfig.realScreenHeight * .4,
@ -74,17 +70,12 @@ class _DrugToDrug extends State<DrugToDrug> {
expandableList[i]['name'] +
' ' +
'(' +
getDrugInfo(expandableList[i]['level'],
model3)
.length
.toString() +
getDrugInfo(expandableList[i]['level'], model3).length.toString() +
')',
fontSize: 20,
fontWeight: FontWeight.bold,
),
children: getDrugInfo(
expandableList[i]['level'], model3)
.map((item) {
children: getDrugInfo(expandableList[i]['level'], model3).map((item) {
return Container(
padding: EdgeInsets.all(10),
child: AppText(

@ -32,12 +32,12 @@ import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
class PrescriptionCheckOutScreen extends StatefulWidget {
final PrescriptionViewModel model;
final PatiantInformtion patient;
final List<PrescriptionModel> prescriptionList;
final ProcedureTempleteDetailsModel groupProcedures;
final PrescriptionViewModel? model;
final PatiantInformtion? patient;
final List<PrescriptionModel>? prescriptionList;
final ProcedureTempleteDetailsModel? groupProcedures;
const PrescriptionCheckOutScreen({Key ? key, this.model, this.patient, this.prescriptionList, this.groupProcedures})
const PrescriptionCheckOutScreen({Key? key, this.model, this.patient, this.prescriptionList, this.groupProcedures})
: super(key: key);
@override
@ -46,44 +46,44 @@ class PrescriptionCheckOutScreen extends StatefulWidget {
class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen> {
postPrescription(
{String duration,
String doseTimeIn,
String dose,
String drugId,
String strength,
String route,
String frequency,
String indication,
String instruction,
PrescriptionViewModel model,
DateTime doseTime,
String doseUnit,
String icdCode,
PatiantInformtion patient,
String patientType}) async {
{String? duration,
String? doseTimeIn,
String? dose,
String? drugId,
String? strength,
String? route,
String? frequency,
String? indication,
String? instruction,
PrescriptionViewModel? model,
DateTime? doseTime,
String? doseUnit,
String? icdCode,
PatiantInformtion? patient,
String? patientType}) async {
PostPrescriptionReqModel postProcedureReqModel = new PostPrescriptionReqModel();
List<PrescriptionRequestModel> prescriptionList = [];
postProcedureReqModel.appointmentNo = patient.appointmentNo;
postProcedureReqModel.appointmentNo = patient!.appointmentNo;
postProcedureReqModel.clinicID = patient.clinicId;
postProcedureReqModel.episodeID = patient.episodeNo;
postProcedureReqModel.patientMRN = patient.patientMRN;
prescriptionList.add(PrescriptionRequestModel(
covered: true,
dose: double.parse(dose),
itemId: drugId.isEmpty ? 1 : int.parse(drugId),
doseUnitId: int.parse(doseUnit),
route: route.isEmpty ? 1 : int.parse(route),
frequency: frequency.isEmpty ? 1 : int.parse(frequency),
dose: double.parse(dose!),
itemId: drugId!.isEmpty ? 1 : int.parse(drugId),
doseUnitId: int.parse(doseUnit!),
route: route!.isEmpty ? 1 : int.parse(route),
frequency: frequency!.isEmpty ? 1 : int.parse(frequency),
remarks: instruction,
approvalRequired: true,
icdcode10Id: icdCode.toString(),
doseTime: doseTimeIn.isEmpty ? 1 : int.parse(doseTimeIn),
duration: duration.isEmpty ? 1 : int.parse(duration),
doseStartDate: doseTime.toIso8601String()));
doseTime: doseTimeIn!.isEmpty ? 1 : int.parse(doseTimeIn),
duration: duration!.isEmpty ? 1 : int.parse(duration),
doseStartDate: doseTime!.toIso8601String()));
postProcedureReqModel.prescriptionRequestModel = prescriptionList;
await model.postPrescription(postProcedureReqModel, patient.patientMRN);
await model!.postPrescription(postProcedureReqModel, patient.patientMRN!);
if (model.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(model.error);
@ -93,14 +93,14 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
}
}
String routeError;
String frequencyError;
String doseTimeError;
String durationError;
String unitError;
String strengthError;
String? routeError;
String? frequencyError;
String? doseTimeError;
String? durationError;
String? unitError;
String? strengthError;
int selectedType;
late int selectedType;
TextEditingController strengthController = TextEditingController();
TextEditingController indicationController = TextEditingController();
@ -110,10 +110,10 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
bool visbiltySearch = true;
final myController = TextEditingController();
DateTime selectedDate;
int strengthChar;
GetMedicationResponseModel _selectedMedication;
GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
late DateTime selectedDate;
late int strengthChar;
late GetMedicationResponseModel _selectedMedication;
late GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
TextEditingController drugIdController = TextEditingController();
TextEditingController doseController = TextEditingController();
@ -210,17 +210,17 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
final screenSize = MediaQuery.of(context).size;
return BaseView<MedicineViewModel>(
onModelReady: (model) async {
model.getItem(itemID: int.parse(widget.groupProcedures.aliasN.replaceAll("item code ;", "")));
model.getItem(itemID: int.parse(widget.groupProcedures!.aliasN!.replaceAll("item code ;", "")));
x = model.patientAssessmentList.map((element) {
return element.icdCode10ID;
});
GetAssessmentReqModel getAssessmentReqModel = GetAssessmentReqModel(
patientMRN: widget.patient.patientMRN,
episodeID: widget.patient.episodeNo.toString(),
patientMRN: widget.patient!.patientMRN,
episodeID: widget.patient!.episodeNo.toString(),
editedBy: '',
doctorID: '',
appointmentNo: widget.patient.appointmentNo);
appointmentNo: widget.patient!.appointmentNo);
if (model.medicationStrengthList.length == 0) {
await model.getMedicationStrength();
}
@ -235,7 +235,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
builder: (
BuildContext context,
MedicineViewModel model,
Widget child,
Widget? child,
) =>
AppScaffold(
backgroundColor: Color(0xffF8F8F8).withOpacity(0.9),
@ -309,7 +309,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
child: Column(
children: [
AppText(
widget.groupProcedures.procedureName ?? "",
widget.groupProcedures!.procedureName ?? "",
bold: true,
),
Container(
@ -323,11 +323,11 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
activeColor: Color(0xFFB9382C),
value: 1,
groupValue: selectedType,
onChanged: (value) {
setSelectedType(value);
onChanged: (int? value) {
setSelectedType(value!);
},
),
Text(TranslationBase.of(context).regular),
Text(TranslationBase.of(context).regular!),
],
),
),
@ -366,7 +366,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
PrescriptionTextFiled(
width: MediaQuery.of(context).size.width * 0.560,
element: units,
elementError: unitError,
elementError: unitError ?? "",
keyName: 'description',
keyId: 'parameterCode',
hintText: 'Select',
@ -385,7 +385,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
PrescriptionTextFiled(
elementList: model.itemMedicineListRoute,
element: route,
elementError: routeError,
elementError: routeError ?? "",
keyId: 'parameterCode',
keyName: 'description',
okFunction: (selectedValue) {
@ -394,12 +394,12 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
route['isDefault'] = true;
});
},
hintText: TranslationBase.of(context).route,
hintText: TranslationBase.of(context).route!,
),
SizedBox(height: spaceBetweenTextFileds),
PrescriptionTextFiled(
hintText: TranslationBase.of(context).frequency,
elementError: frequencyError,
hintText: TranslationBase.of(context).frequency!,
elementError: frequencyError ?? "",
element: frequency,
elementList: model.itemMedicineList,
keyId: 'parameterCode',
@ -415,7 +415,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
model.getBoxQuantity(
freq: frequency['parameterCode'],
duration: duration['id'],
itemCode: _selectedMedication.itemId,
itemCode: _selectedMedication.itemId!,
strength: double.parse(strengthController.text));
return;
@ -424,8 +424,8 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
}),
SizedBox(height: spaceBetweenTextFileds),
PrescriptionTextFiled(
hintText: TranslationBase.of(context).doseTime,
elementError: doseTimeError,
hintText: TranslationBase.of(context).doseTime! ?? "",
elementError: doseTimeError!,
element: doseTime,
elementList: model.medicationDoseTimeList,
keyId: 'id',
@ -475,13 +475,13 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
height: screenSize.height * 0.070,
color: Colors.white,
child: InkWell(
onTap: () => selectDate(context, widget.model),
onTap: () => selectDate(context, widget.model!),
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).date,
TranslationBase.of(context).date!,
selectedDate != null
? "${AppDateUtils.convertStringToDateFormat(selectedDate.toString(), "yyyy-MM-dd")}"
: null,
: '',
true,
suffixIcon: Icon(
Icons.calendar_today,
@ -494,8 +494,8 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
SizedBox(height: spaceBetweenTextFileds),
PrescriptionTextFiled(
element: duration,
elementError: durationError,
hintText: TranslationBase.of(context).duration,
elementError: durationError ?? "",
hintText: TranslationBase.of(context).duration!,
elementList: model.medicationDurationList,
keyName: 'nameEn',
keyId: 'id',
@ -509,7 +509,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
model.getBoxQuantity(
freq: frequency['parameterCode'],
duration: duration['id'],
itemCode: _selectedMedication.itemId,
itemCode: _selectedMedication.itemId!,
strength: double.parse(strengthController.text),
);
box = model.boxQuintity;
@ -531,7 +531,7 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
TextFields(
maxLines: 6,
minLines: 4,
hintText: TranslationBase.of(context).instruction,
hintText: TranslationBase.of(context).instruction!,
controller: instructionController,
//keyboardType: TextInputType.number,
),
@ -586,13 +586,13 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
return;
}
if (formKey.currentState.validate()) {
if (formKey.currentState!.validate()) {
Navigator.pop(context);
// openDrugToDrug(model);
{
postPrescription(
icdCode: model.patientAssessmentList.isNotEmpty
? model.patientAssessmentList[0].icdCode10ID.isEmpty
? model.patientAssessmentList[0].icdCode10ID!.isEmpty
? "test"
: model.patientAssessmentList[0].icdCode10ID.toString()
: "test",
@ -607,9 +607,9 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
doseUnit: model.itemMedicineListUnit.length == 1
? model.itemMedicineListUnit[0]['parameterCode'].toString()
: units['parameterCode'].toString(),
patient: widget.patient,
patient: widget.patient!,
doseTimeIn: doseTime['id'].toString(),
model: widget.model,
model: widget.model!,
duration: duration['id'].toString(),
frequency: model.itemMedicineList.length == 1
? model.itemMedicineList[0]['parameterCode'].toString()
@ -617,8 +617,8 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
route: model.itemMedicineListRoute.length == 1
? model.itemMedicineListRoute[0]['parameterCode'].toString()
: route['parameterCode'].toString(),
drugId: (widget.groupProcedures.aliasN
.replaceAll("item code ;", "")),
drugId: (widget.groupProcedures!.aliasN!
.replaceAll!("item code ;", "")),
strength: strengthController.text,
indication: indicationController.text,
instruction: instructionController.text,
@ -649,19 +649,19 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
frequencyError = null;
}
if (units == null) {
unitError = TranslationBase.of(context).fieldRequired;
unitError = TranslationBase.of(context).fieldRequired!;
} else {
unitError = null;
}
if (strengthController.text == "") {
strengthError = TranslationBase.of(context).fieldRequired;
strengthError = TranslationBase.of(context).fieldRequired!;
} else {
strengthError = null;
}
});
}
formKey.currentState.save();
formKey.currentState!.save();
},
),
],
@ -690,12 +690,12 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
Helpers.hideKeyboard(context);
DateTime selectedDate;
selectedDate = DateTime.now();
final DateTime picked = await showDatePicker(
final DateTime? picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime.now(),
lastDate: DateTime(2040),
initialEntryMode: DatePickerEntryMode.calendar,
initialEntryMode: DatePickerEntryMode.calendar!,
);
if (picked != null && picked != selectedDate) {
setState(() {
@ -704,8 +704,8 @@ class _PrescriptionCheckOutScreenState extends State<PrescriptionCheckOutScreen>
}
}
InputDecoration textFieldSelectorDecoration(String hintText, String selectedText, bool isDropDown,
{Icon suffixIcon}) {
InputDecoration textFieldSelectorDecoration(String hintText, String? selectedText, bool isDropDown,
{Icon? suffixIcon}) {
return InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),

@ -8,13 +8,13 @@ import 'package:flutter/material.dart';
class PrescriptionDetailsPage extends StatelessWidget {
final PrescriptionReport prescriptionReport;
PrescriptionDetailsPage({Key ? key, this.prescriptionReport});
PrescriptionDetailsPage({required Key key, required this.prescriptionReport});
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).prescriptions,
appBarTitle: TranslationBase.of(context).prescriptions!,
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -28,14 +28,14 @@ class PrescriptionDetailsPage extends StatelessWidget {
borderRadius: BorderRadius.all(
Radius.circular(10.0),
),
border: Border.all(color: Colors.grey[200], width: 0.5),
border: Border.all(color: Colors.grey[200]!, width: 0.5),
),
child: Row(
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(5)),
child: Image.network(
prescriptionReport.imageSRCUrl,
prescriptionReport!.imageSRCUrl!,
fit: BoxFit.cover,
width: 60,
height: 70,
@ -46,7 +46,7 @@ class PrescriptionDetailsPage extends StatelessWidget {
padding: const EdgeInsets.all(8.0),
child: Center(
child: AppText(
prescriptionReport.itemDescription.isNotEmpty
prescriptionReport.itemDescription!.isNotEmpty!
? prescriptionReport.itemDescription
: prescriptionReport.itemDescriptionN),
),
@ -109,28 +109,22 @@ class PrescriptionDetailsPage extends StatelessWidget {
color: Colors.white,
height: 50,
width: double.infinity,
child:
Center(child: Text(prescriptionReport.routeN))),
child: Center(child: Text(prescriptionReport.routeN ?? ""))),
Container(
color: Colors.white,
height: 50,
width: double.infinity,
child: Center(
child:
Text(prescriptionReport.frequencyN ?? ''))),
child: Center(child: Text(prescriptionReport.frequencyN ?? ''))),
Container(
color: Colors.white,
height: 50,
width: double.infinity,
child: Center(
child: Text(
'${prescriptionReport.doseDailyQuantity}'))),
child: Center(child: Text('${prescriptionReport.doseDailyQuantity}'))),
Container(
color: Colors.white,
height: 50,
width: double.infinity,
child:
Center(child: Text('${prescriptionReport.days}')))
child: Center(child: Text('${prescriptionReport.days}')))
],
),
],

@ -3,6 +3,7 @@ import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_in_pati
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/profile/patient_profile_app_bar_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@ -23,14 +24,14 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
final int prescriptionIndex;
PrescriptionItemsInPatientPage(
{Key ? key,
this.prescriptions,
this.patient,
this.patientType,
this.arrivalType,
this.stopOn,
this.startOn,
this.prescriptionIndex});
{Key? key,
required this.prescriptions,
required this.patient,
required this.patientType,
required this.arrivalType,
required this.stopOn,
required this.startOn,
required this.prescriptionIndex});
@override
Widget build(BuildContext context) {
@ -43,9 +44,9 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
},
builder: (_, model, widget) => AppScaffold(
isShowAppBar: true,
backgroundColor: Colors.grey[100],
backgroundColor: Colors.grey[100]!,
baseViewModel: model,
appBar: PatientProfileAppBar(patient),
patientProfileAppBarModel: PatientProfileAppBarModel(patient: patient),
body: SingleChildScrollView(
child: Container(
child: Column(
@ -101,7 +102,7 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
TranslationBase.of(context).route,
color: Colors.grey,
),
AppText(" " + prescriptions.routeDescription.toString() ?? ''),
AppText(" " + prescriptions.routeDescription.toString()),
],
),
Row(
@ -169,7 +170,9 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
TranslationBase.of(context).status,
color: Colors.grey,
),
AppText(" " + prescriptions.statusDescription.toString() ?? ''),
AppText(
" " + prescriptions.statusDescription.toString(),
),
],
),
Row(

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/core/model/Prescriptions/Prescriptions.dart';
import 'package:doctor_app_flutter/core/viewModel/prescriptions_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/profile/patient_profile_app_bar_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@ -17,7 +18,12 @@ class PrescriptionItemsPage extends StatelessWidget {
final PatiantInformtion patient;
final String patientType;
final String arrivalType;
PrescriptionItemsPage({Key ? key, this.prescriptions, this.patient, this.patientType, this.arrivalType});
PrescriptionItemsPage(
{Key? key,
required this.prescriptions,
required this.patient,
required this.patientType,
required this.arrivalType});
@override
Widget build(BuildContext context) {
@ -26,24 +32,23 @@ class PrescriptionItemsPage extends StatelessWidget {
model.getPrescriptionReport(prescriptions: prescriptions,patient: patient),
builder: (_, model, widget) => AppScaffold(
isShowAppBar: true,
backgroundColor: Colors.grey[100],
backgroundColor: Colors.grey[100]!,
baseViewModel: model,
appBar: PatientProfileAppBar(
patient,
clinic: prescriptions.clinicDescription,
branch: prescriptions.name,
patientProfileAppBarModel: PatientProfileAppBarModel(
patient: patient,
clinic: prescriptions.clinicDescription!,
branch: prescriptions.name!,
isPrescriptions: true,
appointmentDate: AppDateUtils.getDateTimeFromServerFormat(prescriptions.appointmentDate),
doctorName: prescriptions.doctorName,
profileUrl: prescriptions.doctorImageURL,
appointmentDate: AppDateUtils.getDateTimeFromServerFormat(prescriptions.appointmentDate!),
doctorName: prescriptions.doctorName!,
profileUrl: prescriptions.doctorImageURL!,
isAppointmentHeader: true,
),
body: SingleChildScrollView(
child: Container(
child: Column(
children: [
if (!prescriptions.isInOutPatient)
if (!prescriptions.isInOutPatient!)
...List.generate(
model.prescriptionReportList.length,
(index) => Container(
@ -59,7 +64,7 @@ class PrescriptionItemsPage extends StatelessWidget {
children: [
Container(
margin: EdgeInsets.only(left: 18,right: 18),
child: AppText(model.prescriptionReportList[index].itemDescription.isNotEmpty ? model.prescriptionReportList[index].itemDescription : model.prescriptionReportList[index].itemDescriptionN,bold: true,)),
child: AppText(model.prescriptionReportList[index].itemDescription!.isNotEmpty! ? model.prescriptionReportList[index].itemDescription : model.prescriptionReportList[index].itemDescriptionN,bold: true,)),
SizedBox(height: 12,),
Row(
children: [
@ -76,14 +81,14 @@ class PrescriptionItemsPage extends StatelessWidget {
showDialog(
context: context,
builder: (ctx) => ShowImageDialog(
imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl,
)
);
imageUrl:
model.prescriptionReportEnhList[index].imageSRCUrl ?? "",
));
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Image.network(
model.prescriptionReportList[index].imageSRCUrl,
model.prescriptionReportList[index].imageSRCUrl ?? "",
fit: BoxFit.cover,
),
),
@ -96,13 +101,13 @@ class PrescriptionItemsPage extends StatelessWidget {
Row(
children: [
AppText(TranslationBase.of(context).route,color: Colors.grey,),
Expanded(child: AppText(" "+model.prescriptionReportList[index].routeN)),
Expanded(child: AppText(" "+model.prescriptionReportList[index].routeN!)),
],
),
Row(
children: [
AppText(TranslationBase.of(context).frequency,color: Colors.grey,),
AppText(" "+model.prescriptionReportList[index].frequencyN ?? ''),
AppText(" "+model.prescriptionReportList[index].frequencyN! ?? ''),
],
),
Row(
@ -165,7 +170,7 @@ class PrescriptionItemsPage extends StatelessWidget {
showDialog(
context: context,
builder: (ctx) => ShowImageDialog(
imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl,
imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl!,
)
);
},
@ -174,7 +179,7 @@ class PrescriptionItemsPage extends StatelessWidget {
Padding(
padding: const EdgeInsets.all(8.0),
child: Image.network(
model.prescriptionReportEnhList[index].imageSRCUrl,
model.prescriptionReportEnhList[index].imageSRCUrl!,
fit: BoxFit.cover,
),
@ -194,13 +199,13 @@ class PrescriptionItemsPage extends StatelessWidget {
Row(
children: [
AppText(TranslationBase.of(context).route,color: Colors.grey,),
Expanded(child: AppText(" "+model.prescriptionReportEnhList[index].route??'')),
Expanded(child: AppText(" "+model.prescriptionReportEnhList[index].route!??'')),
],
),
Row(
children: [
AppText(TranslationBase.of(context).frequency,color: Colors.grey,),
AppText(" "+model.prescriptionReportEnhList[index].frequency ?? ''),
AppText(" "+model.prescriptionReportEnhList[index].frequency! ?? ''),
],
),
Row(

@ -8,6 +8,7 @@ import 'package:flutter/material.dart';
class PrescriptionTextFiled extends StatefulWidget {
dynamic element;
final String? elementError;
final bool? isSubmitted;
final List<dynamic> elementList;
final String keyName;
final String keyId;

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/profile/patient_profile_app_bar_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/prescription/prescription_item_in_patient_page.dart';
import 'package:doctor_app_flutter/screens/prescription/prescription_items_page.dart';
@ -23,7 +24,7 @@ import 'package:flutter/material.dart';
class PrescriptionsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
String patientType = routeArgs['patientType'];
String arrivalType = routeArgs['arrivalType'];
@ -38,10 +39,8 @@ class PrescriptionsPage extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Colors.grey[100],
appBar: PatientProfileAppBar(
patient,
isInpatient: isInpatient,
),
patientProfileAppBarModel: PatientProfileAppBarModel(
patient: patient, isInpatient:isInpatient,),
body: patient.admissionNo == null
? FractionallySizedBox(
widthFactor: 1.0,
@ -59,9 +58,9 @@ class PrescriptionsPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ServiceTitle(
title: TranslationBase.of(context).orders,
title: TranslationBase.of(context).orders!,
subTitle:
TranslationBase.of(context).prescriptions,
TranslationBase.of(context).prescriptions!,
),
],
),
@ -74,9 +73,9 @@ class PrescriptionsPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ServiceTitle(
title: TranslationBase.of(context).orders,
title: TranslationBase.of(context).orders!,
subTitle:
TranslationBase.of(context).prescriptions,
TranslationBase.of(context)!.prescriptions!,
),
],
),
@ -97,8 +96,8 @@ class PrescriptionsPage extends StatelessWidget {
settingRoute: 'AddProcedureTabPage'),
);
},
label: TranslationBase.of(context)
.applyForNewPrescriptionsOrder,
label: TranslationBase.of(context)!
.applyForNewPrescriptionsOrder!,
),
...List.generate(
model.prescriptionsList.length,
@ -117,17 +116,17 @@ class PrescriptionsPage extends StatelessWidget {
),
child: DoctorCard(
doctorName:
model.prescriptionsList[index].doctorName,
model.prescriptionsList[index].doctorName ?? "",
profileUrl: model
.prescriptionsList[index].doctorImageURL,
branch: model.prescriptionsList[index].name,
.prescriptionsList[index].doctorImageURL ?? "",
branch: model.prescriptionsList[index].name ?? "",
clinic: model.prescriptionsList[index]
.clinicDescription,
.clinicDescription ?? "",
isPrescriptions: true,
appointmentDate:
AppDateUtils.getDateTimeFromServerFormat(
model.prescriptionsList[index]
.appointmentDate,
model.prescriptionsList[index]!
.appointmentDate ?? "",
),
))),
if (model.prescriptionsList.isEmpty &&
@ -183,14 +182,14 @@ class PrescriptionsPage extends StatelessWidget {
model
.medicationForInPatient[
index]
.startDatetime,
.startDatetime ?? "",
),
stopOn: AppDateUtils
.getDateTimeFromServerFormat(
model
.medicationForInPatient[
index]
.stopDatetime,
.stopDatetime ?? "",
),
),
),
@ -205,8 +204,8 @@ class PrescriptionsPage extends StatelessWidget {
isPrescriptions: true,
appointmentDate: AppDateUtils
.getDateTimeFromServerFormat(
model.medicationForInPatient[index]
.prescriptionDatetime,
model.medicationForInPatient[index]!
.prescriptionDatetime ?? "",
),
createdBy: model
.medicationForInPatient[index]

@ -15,24 +15,24 @@ class ExpansionProcedure extends StatefulWidget {
final ProcedureViewModel model;
final Function(ProcedureTempleteDetailsModel) removeFavProcedure;
final Function(ProcedureTempleteDetailsModel) addFavProcedure;
final Function(ProcedureTempleteDetailsModel) selectProcedures;
final Function(ProcedureTempleteDetailsModel)? selectProcedures;
final bool Function(ProcedureTempleteModel) isEntityListSelected;
final bool Function(ProcedureTempleteDetailsModel) isEntityFavListSelected;
final bool Function(ProcedureTempleteModel)? isEntityListSelected;
final bool Function(ProcedureTempleteDetailsModel)? isEntityFavListSelected;
final bool isProcedure;
final ProcedureTempleteDetailsModel groupProcedures;
const ExpansionProcedure(
{Key ? key,
this.procedureTempleteModel,
this.model,
this.removeFavProcedure,
this.addFavProcedure,
{Key? key,
required this.procedureTempleteModel,
required this.model,
required this.removeFavProcedure,
required this.addFavProcedure,
this.selectProcedures,
this.isEntityListSelected,
this.isEntityFavListSelected,
this.isProcedure = true,
this.groupProcedures})
required this.groupProcedures})
: super(key: key);
@override
@ -77,8 +77,8 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 0),
child: AppText(
widget.isProcedure == true
? "Procedures for " + widget.procedureTempleteModel.templateName
: "Prescription for " + widget.procedureTempleteModel.templateName,
? "Procedures for " + widget.procedureTempleteModel.templateName!
: "Prescription for " + widget.procedureTempleteModel.templateName!,
fontSize: 16.0,
variant: "bodyText",
bold: true,
@ -118,14 +118,14 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
onTap: () {
if (widget.isProcedure) {
setState(() {
if (widget.isEntityFavListSelected(itemProcedure)) {
if (widget.isEntityFavListSelected!(itemProcedure)) {
widget.removeFavProcedure(itemProcedure);
} else {
widget.addFavProcedure(itemProcedure);
}
});
} else {
widget.selectProcedures(itemProcedure);
widget.selectProcedures!(itemProcedure);
}
},
child: Container(
@ -140,11 +140,11 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
padding: const EdgeInsets.symmetric(horizontal: 11),
child: widget.isProcedure
? Checkbox(
value: widget.isEntityFavListSelected(itemProcedure),
value: widget.isEntityFavListSelected!(itemProcedure),
activeColor: Color(0xffD02127),
onChanged: (bool newValue) {
onChanged: (bool? newValue) {
setState(() {
if (widget.isEntityFavListSelected(itemProcedure)) {
if (widget.isEntityFavListSelected!(itemProcedure)) {
widget.removeFavProcedure(itemProcedure);
} else {
widget.addFavProcedure(itemProcedure);
@ -155,8 +155,8 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
value: itemProcedure,
groupValue: widget.groupProcedures,
activeColor: Color(0xffD02127),
onChanged: (newValue) {
widget.selectProcedures(newValue);
onChanged: (ProcedureTempleteDetailsModel? newValue) {
widget.selectProcedures!(newValue!);
})),
Expanded(
child: Padding(

@ -12,21 +12,21 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class ProcedureCard extends StatelessWidget {
final Function onTap;
final GestureTapCallback onTap;
final EntityList entityList;
final String categoryName;
final String? categoryName;
final int categoryID;
final PatiantInformtion patient;
final int doctorID;
final bool isInpatient;
const ProcedureCard({
Key ? key,
this.onTap,
this.entityList,
this.categoryID,
Key? key,
required this.onTap,
required this.entityList,
required this.categoryID,
this.categoryName,
this.patient,
this.doctorID,
required this.patient,
required this.doctorID,
this.isInpatient = false,
}) : super(key: key);
@ -97,13 +97,13 @@ class ProcedureCard extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.end,
children: [
AppText(
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertISOStringToDateTime(entityList.orderDate), isArabic: projectViewModel.isArabic)}',
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertISOStringToDateTime(entityList.orderDate ?? ""), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight: FontWeight.w600,
fontSize: 14,
),
AppText(
'${AppDateUtils.getHour(AppDateUtils.convertISOStringToDateTime(entityList.orderDate))}',
'${AppDateUtils.getHour(AppDateUtils.convertISOStringToDateTime(entityList.orderDate ?? ""))}',
fontWeight: FontWeight.w600,
color: Colors.grey[700],
fontSize: 14,
@ -150,7 +150,7 @@ class ProcedureCard extends StatelessWidget {
'assets/images/male_avatar.png',
height: 25,
width: 30,
errorBuilder: (BuildContext context, Object exception, StackTrace stackTrace) {
errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
return Text('No Image');
},
))),

@ -10,19 +10,19 @@ enum ProcedureType {
extension procedureType on ProcedureType {
String getFavouriteTabName(BuildContext context) {
return TranslationBase.of(context).favoriteTemplates;
return TranslationBase.of(context).favoriteTemplates!;
}
String getAllLabelName(BuildContext context) {
switch (this) {
case ProcedureType.PROCEDURE:
return TranslationBase.of(context).allProcedures;
return TranslationBase.of(context).allProcedures!;
case ProcedureType.LAB_RESULT:
return TranslationBase.of(context).allLab;
return TranslationBase.of(context).allLab!;
case ProcedureType.RADIOLOGY:
return TranslationBase.of(context).allRadiology;
return TranslationBase.of(context).allRadiology!;
case ProcedureType.PRESCRIPTION:
return TranslationBase.of(context).allPrescription;
return TranslationBase.of(context).allPrescription!;
default:
return "";
}
@ -31,13 +31,13 @@ extension procedureType on ProcedureType {
String getToolbarLabel(BuildContext context) {
switch (this) {
case ProcedureType.PROCEDURE:
return TranslationBase.of(context).addProcedures;
return TranslationBase.of(context).addProcedures!;
case ProcedureType.LAB_RESULT:
return TranslationBase.of(context).addLabOrder;
return TranslationBase.of(context).addLabOrder!;
case ProcedureType.RADIOLOGY:
return TranslationBase.of(context).addRadiologyOrder;
return TranslationBase.of(context).addRadiologyOrder!;
case ProcedureType.PRESCRIPTION:
return TranslationBase.of(context).addPrescription;
return TranslationBase.of(context).addPrescription!;
default:
return "";
}
@ -46,13 +46,13 @@ extension procedureType on ProcedureType {
String getAddButtonTitle(BuildContext context) {
switch (this) {
case ProcedureType.PROCEDURE:
return TranslationBase.of(context).addProcedures;
return TranslationBase.of(context).addProcedures!;
case ProcedureType.LAB_RESULT:
return TranslationBase.of(context).addLabOrder;
return TranslationBase.of(context).addLabOrder!;
case ProcedureType.RADIOLOGY:
return TranslationBase.of(context).addRadiologyOrder;
return TranslationBase.of(context).addRadiologyOrder!;
case ProcedureType.PRESCRIPTION:
return TranslationBase.of(context).addPrescription;
return TranslationBase.of(context).addPrescription!;
default:
return "";
}
@ -61,7 +61,7 @@ extension procedureType on ProcedureType {
String getCategoryId() {
switch (this) {
case ProcedureType.PROCEDURE:
return null;
return "";
case ProcedureType.LAB_RESULT:
return "02";
case ProcedureType.RADIOLOGY:
@ -69,20 +69,20 @@ extension procedureType on ProcedureType {
case ProcedureType.PRESCRIPTION:
return "55";
default:
return null;
return "";
}
}
String getCategoryName() {
switch (this) {
case ProcedureType.PROCEDURE:
return null;
return '';
case ProcedureType.LAB_RESULT:
return "Laboratory";
case ProcedureType.RADIOLOGY:
return "Radiology";
default:
return null;
return '';
}
}
}

@ -19,17 +19,17 @@ import 'package:flutter/material.dart';
import 'ProcedureType.dart';
class AddFavouriteProcedure extends StatefulWidget {
final ProcedureViewModel model;
final PrescriptionViewModel prescriptionModel;
final ProcedureViewModel? model;
final PrescriptionViewModel? prescriptionModel;
final PatiantInformtion patient;
final ProcedureType procedureType;
AddFavouriteProcedure({
Key ? key,
Key? key,
this.model,
this.prescriptionModel,
this.patient,
@required this.procedureType,
required this.patient,
required this.procedureType,
});
@override
@ -39,28 +39,28 @@ class AddFavouriteProcedure extends StatefulWidget {
class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
_AddFavouriteProcedureState({this.patient, this.model});
ProcedureViewModel model;
PatiantInformtion patient;
ProcedureViewModel? model;
PatiantInformtion? patient;
List<ProcedureTempleteDetailsModel> entityList = [];
ProcedureTempleteDetailsModel groupProcedures;
ProcedureTempleteDetailsModel? groupProcedures;
@override
Widget build(BuildContext context) {
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getProcedureTemplate(categoryID: widget.procedureType.getCategoryId()),
builder: (BuildContext context, ProcedureViewModel model, Widget child) => AppScaffold(
builder: (BuildContext? context, ProcedureViewModel? model, Widget? child) => AppScaffold(
isShowAppBar: false,
baseViewModel: model,
body: Column(
children: [
Container(
height: MediaQuery.of(context).size.height * 0.070,
height: MediaQuery.of(context!).size.height * 0.070,
),
(model.templateList.length != 0)
(model!.templateList.length != 0)
? Expanded(
child: EntityListCheckboxSearchFavProceduresWidget(
isProcedure: !(widget.procedureType == ProcedureType.PRESCRIPTION),
model: model,
model: model!,
removeFavProcedure: (item) {
setState(() {
entityList.remove(item);

@ -16,13 +16,11 @@ import 'ProcedureType.dart';
import 'entity_list_checkbox_search_widget.dart';
class AddProcedurePage extends StatefulWidget {
final ProcedureViewModel model;
final ProcedureViewModel? model;
final PatiantInformtion patient;
final ProcedureType procedureType;
const AddProcedurePage(
{Key ? key, this.model, this.patient, @required this.procedureType})
: super(key: key);
const AddProcedurePage({Key? key, this.model, required this.patient, required this.procedureType}) : super(key: key);
@override
_AddProcedurePageState createState() => _AddProcedurePageState(
@ -30,10 +28,10 @@ class AddProcedurePage extends StatefulWidget {
}
class _AddProcedurePageState extends State<AddProcedurePage> {
int selectedType;
ProcedureViewModel model;
PatiantInformtion patient;
ProcedureType procedureType;
int? selectedType;
ProcedureViewModel? model;
PatiantInformtion? patient;
ProcedureType? procedureType;
_AddProcedurePageState({this.patient, this.model, this.procedureType});
@ -56,17 +54,16 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
return BaseView<ProcedureViewModel>(
onModelReady: (model) {
model.getProcedureCategory(
categoryName: procedureType.getCategoryName(),
categoryID: procedureType.getCategoryId(),
patientId: patient.patientId);
categoryName: procedureType!.getCategoryName(),
categoryID: procedureType!.getCategoryId(),
patientId: patient!.patientId);
},
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold(
builder: (BuildContext? context, ProcedureViewModel? model, Widget? child) => AppScaffold(
isShowAppBar: false,
body: Column(
children: [
Container(
height: MediaQuery.of(context).size.height * 0.070,
height: MediaQuery.of(context!).size.height * 0.070,
),
Expanded(
child: NetworkBaseView(
@ -121,8 +118,8 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
onTap: () {
if (procedureName.text.isNotEmpty &&
procedureName.text.length >= 3)
model.getProcedureCategory(
patientId: patient.patientId,
model!.getProcedureCategory(
patientId: patient!.patientId,
categoryName:
procedureName.text);
else
@ -141,16 +138,13 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
),
],
),
if ((procedureType == ProcedureType.PROCEDURE
? procedureName.text.isNotEmpty
: true) &&
model.categoriesList.length != 0)
if ((procedureType == ProcedureType.PROCEDURE ? procedureName.text.isNotEmpty : true) &&
model!.categoriesList.length != 0)
NetworkBaseView(
baseViewModel: model,
child: EntityListCheckboxSearchWidget(
model: widget.model,
masterList:
model.categoriesList[0].entityList,
model: widget.model!,
masterList: model.categoriesList[0].entityList!,
removeHistory: (item) {
setState(() {
entityList.remove(item);
@ -181,7 +175,7 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: procedureType.getAddButtonTitle(context),
title: procedureType!.getAddButtonTitle(context),
fontWeight: FontWeight.w700,
color: Color(0xff359846),
onPressed: () async {
@ -193,7 +187,7 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
return;
}
await this.model.preparePostProcedure(
await this.model!.preparePostProcedure!(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,

@ -15,33 +15,28 @@ import 'add-favourite-procedure.dart';
import 'add-procedure-page.dart';
class BaseAddProcedureTabPage extends StatefulWidget {
final ProcedureViewModel model;
final PrescriptionViewModel prescriptionModel;
final PatiantInformtion patient;
final ProcedureType procedureType;
final ProcedureViewModel? model;
final PrescriptionViewModel? prescriptionModel;
final PatiantInformtion? patient;
final ProcedureType? procedureType;
const BaseAddProcedureTabPage(
{Key ? key,
this.model,
this.prescriptionModel,
this.patient,
@required this.procedureType})
{Key? key, this.model, this.prescriptionModel, this.patient, required this.procedureType})
: super(key: key);
@override
_BaseAddProcedureTabPageState createState() => _BaseAddProcedureTabPageState(
patient: patient, model: model, procedureType: procedureType);
_BaseAddProcedureTabPageState createState() =>
_BaseAddProcedureTabPageState(patient: patient!, model: model, procedureType: procedureType!);
}
class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
with SingleTickerProviderStateMixin {
final ProcedureViewModel model;
class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage> with SingleTickerProviderStateMixin {
final ProcedureViewModel? model;
final PatiantInformtion patient;
final ProcedureType procedureType;
_BaseAddProcedureTabPageState({this.patient, this.model, this.procedureType});
_BaseAddProcedureTabPageState({required this.patient, required this.model, required this.procedureType});
TabController _tabController;
late TabController _tabController;
int _activeTab = 0;
@override
@ -68,8 +63,7 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
final screenSize = MediaQuery.of(context).size;
return BaseView<ProcedureViewModel>(
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold(
builder: (BuildContext? context, ProcedureViewModel? model, Widget? child) => AppScaffold(
isShowAppBar: false,
body: NetworkBaseView(
baseViewModel: model,
@ -77,8 +71,7 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
minChildSize: 0.90,
initialChildSize: 0.95,
maxChildSize: 1.0,
builder:
(BuildContext context, ScrollController scrollController) {
builder: (BuildContext context, ScrollController scrollController) {
return Container(
height: MediaQuery.of(context).size.height * 1.25,
child: Padding(
@ -168,13 +161,13 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
if (widget.procedureType ==
ProcedureType.PRESCRIPTION)
PrescriptionFormWidget(
widget.prescriptionModel,
widget.patient,
widget.prescriptionModel
widget.prescriptionModel!,
widget.patient!,
widget.prescriptionModel!
.prescriptionList)
else
AddProcedurePage(
model: this.model,
model: this.model!,
patient: patient,
procedureType: procedureType,
),

@ -14,20 +14,20 @@ class EntityListCheckboxSearchWidget extends StatefulWidget {
final Function addSelectedHistories;
final Function(EntityList) removeHistory;
final Function(EntityList) addHistory;
final Function(EntityList) addRemarks;
final Function(EntityList)? addRemarks;
final bool Function(EntityList) isEntityListSelected;
final List<EntityList> masterList;
/// todo clear the function here
EntityListCheckboxSearchWidget(
{Key ? key,
this.model,
this.addSelectedHistories,
this.removeHistory,
this.masterList,
this.addHistory,
this.isEntityListSelected,
{Key? key,
required this.model,
required this.addSelectedHistories,
required this.removeHistory,
required this.masterList,
required this.addHistory,
required this.isEntityListSelected,
this.addRemarks})
: super(key: key);
@ -36,11 +36,10 @@ class EntityListCheckboxSearchWidget extends StatefulWidget {
_EntityListCheckboxSearchWidgetState();
}
class _EntityListCheckboxSearchWidgetState
extends State<EntityListCheckboxSearchWidget> {
class _EntityListCheckboxSearchWidgetState extends State<EntityListCheckboxSearchWidget> {
int selectedType = 0;
int typeUrgent;
int typeRegular;
late int typeUrgent;
late int typeRegular;
setSelectedType(int val) {
setState(() {
@ -97,18 +96,14 @@ class _EntityListCheckboxSearchWidgetState
title: Row(
children: [
Checkbox(
value: widget.isEntityListSelected(
historyInfo),
value: widget.isEntityListSelected(historyInfo),
activeColor: Color(0xffD02127),
onChanged: (bool newValue) {
onChanged: (bool? newValue) {
setState(() {
if (widget.isEntityListSelected(
historyInfo)) {
widget.removeHistory(
historyInfo);
if (widget.isEntityListSelected(historyInfo)) {
widget.removeHistory(historyInfo);
} else {
widget
.addHistory(historyInfo);
widget.addHistory(historyInfo);
}
});
}),
@ -159,13 +154,10 @@ class _EntityListCheckboxSearchWidgetState
Color(0xFFD02127),
value: 0,
groupValue: selectedType,
onChanged: (value) {
historyInfo.type =
setSelectedType(value)
.toString();
onChanged: (int? value) {
historyInfo.type = setSelectedType(value!).toString();
historyInfo.type =
value.toString();
historyInfo.type = value.toString();
},
),
AppText(
@ -178,10 +170,8 @@ class _EntityListCheckboxSearchWidgetState
Color(0xFFD02127),
groupValue: selectedType,
value: 1,
onChanged: (value) {
historyInfo.type =
setSelectedType(value)
.toString();
onChanged: (int? value) {
historyInfo.type = setSelectedType(value!).toString();
historyInfo.type =
value.toString();
@ -250,7 +240,7 @@ class _EntityListCheckboxSearchWidgetState
if (query.isNotEmpty) {
List<EntityList> dummyListData = [];
dummySearchList.forEach((item) {
if (item.procedureName.toLowerCase().contains(query.toLowerCase())) {
if (item.procedureName!.toLowerCase().contains(query.toLowerCase())) {
dummyListData.add(item);
}
});

@ -15,32 +15,32 @@ import 'ExpansionProcedure.dart';
class EntityListCheckboxSearchFavProceduresWidget extends StatefulWidget {
final ProcedureViewModel model;
final Function addSelectedHistories;
final Function(ProcedureTempleteModel) removeHistory;
final Function(ProcedureTempleteModel) addHistory;
final Function(ProcedureTempleteModel) addRemarks;
final Function? addSelectedHistories;
final Function(ProcedureTempleteModel)? removeHistory;
final Function(ProcedureTempleteModel)? addHistory;
final Function(ProcedureTempleteModel)? addRemarks;
final Function(ProcedureTempleteDetailsModel) removeFavProcedure;
final Function(ProcedureTempleteDetailsModel) addFavProcedure;
final Function(ProcedureTempleteDetailsModel) selectProcedures;
final ProcedureTempleteDetailsModel groupProcedures;
final Function(ProcedureTempleteDetailsModel)? selectProcedures;
final ProcedureTempleteDetailsModel? groupProcedures;
final bool Function(ProcedureTempleteModel) isEntityListSelected;
final bool Function(ProcedureTempleteDetailsModel) isEntityFavListSelected;
final List<ProcedureTempleteModel> masterList;
final bool Function(ProcedureTempleteModel)? isEntityListSelected;
final bool Function(ProcedureTempleteDetailsModel)? isEntityFavListSelected;
final List<ProcedureTempleteModel>? masterList;
final bool isProcedure;
EntityListCheckboxSearchFavProceduresWidget(
{Key ? key,
this.model,
{Key? key,
required this.model,
this.addSelectedHistories,
this.removeHistory,
this.masterList,
this.addHistory,
this.addFavProcedure,
required this.addFavProcedure,
this.selectProcedures,
this.removeFavProcedure,
required this.removeFavProcedure,
this.isEntityListSelected,
this.isEntityFavListSelected,
this.addRemarks,
@ -55,8 +55,8 @@ class EntityListCheckboxSearchFavProceduresWidget extends StatefulWidget {
class _EntityListCheckboxSearchFavProceduresWidgetState extends State<EntityListCheckboxSearchFavProceduresWidget> {
int selectedType = 0;
int typeUrgent;
int typeRegular;
late int typeUrgent;
late int typeRegular;
setSelectedType(int val) {
setState(() {
@ -112,11 +112,11 @@ class _EntityListCheckboxSearchFavProceduresWidgetState extends State<EntityList
model: widget.model,
removeFavProcedure: widget.removeFavProcedure,
addFavProcedure: widget.addFavProcedure,
selectProcedures: widget.selectProcedures,
selectProcedures: widget.selectProcedures??null,
isEntityListSelected: widget.isEntityListSelected,
isEntityFavListSelected: widget.isEntityFavListSelected,
isProcedure: widget.isProcedure,
groupProcedures: widget.groupProcedures);
groupProcedures: widget.groupProcedures??ProcedureTempleteDetailsModel());
}).toList(),
)
: Center(
@ -136,11 +136,11 @@ class _EntityListCheckboxSearchFavProceduresWidgetState extends State<EntityList
void filterSearchResults(String query) {
List<ProcedureTempleteModel> dummySearchList = [];
dummySearchList.addAll(widget.masterList);
dummySearchList.addAll(widget.masterList!);
if (query.isNotEmpty) {
List<ProcedureTempleteModel> dummyListData = [];
dummySearchList.forEach((item) {
if (item.templateName.toLowerCase().contains(query.toLowerCase())) {
if (item.templateName!.toLowerCase().contains(query.toLowerCase())) {
dummyListData.add(item);
}
});
@ -152,7 +152,7 @@ class _EntityListCheckboxSearchFavProceduresWidgetState extends State<EntityList
} else {
setState(() {
items.clear();
items.addAll(widget.masterList);
items.addAll(widget.masterList!);
});
}
}

@ -23,7 +23,11 @@ class ProcedureCheckOutScreen extends StatefulWidget {
final String toolbarTitle;
ProcedureCheckOutScreen(
{this.items, this.model, this.patient, @required this.addButtonTitle, @required this.toolbarTitle});
{required this.items,
required this.model,
required this.patient,
required this.addButtonTitle,
required this.toolbarTitle});
@override
_ProcedureCheckOutScreenState createState() => _ProcedureCheckOutScreenState();
@ -37,7 +41,7 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
@override
Widget build(BuildContext context) {
return BaseView<ProcedureViewModel>(
builder: (BuildContext context, ProcedureViewModel model, Widget child) => AppScaffold(
builder: (BuildContext context, ProcedureViewModel model, Widget? child) => AppScaffold(
backgroundColor: Color(0xffF8F8F8).withOpacity(0.9),
isShowAppBar: false,
body: SingleChildScrollView(

@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_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/profile/patient_profile_app_bar_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/procedures/update-procedure.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
@ -19,17 +20,17 @@ import 'ProcedureType.dart';
import 'base_add_procedure_tab_page.dart';
class ProcedureScreen extends StatelessWidget {
int doctorNameP;
int? doctorNameP;
void initState() async {
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
doctorNameP = doctorProfile!.doctorID;
doctorNameP = doctorProfile.doctorID;
}
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
String patientType = routeArgs['patientType'];
String arrivalType = routeArgs['arrivalType'];
@ -38,12 +39,12 @@ class ProcedureScreen extends StatelessWidget {
return BaseView<ProcedureViewModel>(
onModelReady: (model) =>
model.getProcedure(mrn: patient.patientId, patientType: patientType, appointmentNo: patient.appointmentNo),
builder: (BuildContext context, ProcedureViewModel model, Widget child) => AppScaffold(
builder: (BuildContext context, ProcedureViewModel model, Widget? child) => AppScaffold(
isShowAppBar: true,
backgroundColor: Colors.grey[100],
baseViewModel: model,
appBar: PatientProfileAppBar(
patient,
patientProfileAppBarModel: PatientProfileAppBarModel(
patient: patient,
isInpatient: isInpatient,
),
body: SingleChildScrollView(
@ -152,33 +153,33 @@ class ProcedureScreen extends StatelessWidget {
),
if (model.procedureList.isNotEmpty)
...List.generate(
model.procedureList[0].rowcount,
model.procedureList[0].rowcount!,
(index) => ProcedureCard(
categoryID: model.procedureList[0].entityList[index].categoryID,
entityList: model.procedureList[0].entityList[index],
categoryID: model.procedureList[0].entityList![index].categoryID!,
entityList: model.procedureList[0].entityList![index],
onTap: () {
if (model.procedureList[0].entityList[index].categoryID == 2 ||
model.procedureList[0].entityList[index].categoryID == 4)
if (model.procedureList[0].entityList![index].categoryID == 2 ||
model.procedureList[0].entityList![index].categoryID == 4)
updateProcedureForm(context,
model: model,
patient: patient,
remarks: model.procedureList[0].entityList[index].remarks,
orderType: model.procedureList[0].entityList[index].orderType.toString(),
orderNo: model.procedureList[0].entityList[index].orderNo,
procedureName: model.procedureList[0].entityList[index].procedureName,
categoreId: model.procedureList[0].entityList[index].categoryID.toString(),
procedureId: model.procedureList[0].entityList[index].procedureId,
limetNo: model.procedureList[0].entityList[index].lineItemNo);
remarks: model.procedureList[0].entityList![index].remarks!,
orderType: model.procedureList[0].entityList![index].orderType.toString(),
orderNo: model.procedureList[0].entityList![index].orderNo!,
procedureName: model.procedureList[0].entityList![index].procedureName!,
categoreId: model.procedureList[0].entityList![index].categoryID.toString(),
procedureId: model.procedureList[0].entityList![index].procedureId!,
limetNo: model.procedureList[0].entityList![index].lineItemNo!);
// } else
// Helpers.showErrorToast(
// 'You Cant Update This Procedure');
},
patient: patient,
doctorID: model?.doctorProfile?.doctorID,
doctorID: model.doctorProfile!.doctorID!,
),
),
if (model.state == ViewState.ErrorLocal ||
(model.procedureList.isNotEmpty && model.procedureList[0].entityList.isEmpty))
(model.procedureList.isNotEmpty && model.procedureList[0].entityList!.isEmpty))
Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,

@ -18,15 +18,15 @@ import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
void updateProcedureForm(context,
{String procedureName,
int orderNo,
int limetNo,
PatiantInformtion patient,
String orderType,
String procedureId,
String remarks,
ProcedureViewModel model,
String categoreId}) {
{required String procedureName,
required int orderNo,
required int limetNo,
required PatiantInformtion patient,
required String orderType,
required String procedureId,
required String remarks,
required ProcedureViewModel model,
required String categoreId}) {
//ProcedureViewModel model2 = ProcedureViewModel();
TextEditingController remarksController = TextEditingController();
TextEditingController orderController = TextEditingController();
@ -60,15 +60,15 @@ class UpdateProcedureWidget extends StatefulWidget {
final int limetNo;
UpdateProcedureWidget(
{this.model,
this.procedureName,
this.remarks,
this.remarksController,
this.patient,
this.procedureId,
this.categoryId,
this.orderNo,
this.limetNo});
{required this.model,
required this.procedureName,
required this.remarks,
required this.remarksController,
required this.patient,
required this.procedureId,
required this.categoryId,
required this.orderNo,
required this.limetNo});
@override
_UpdateProcedureWidgetState createState() => _UpdateProcedureWidgetState();
}
@ -91,21 +91,17 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
@override
Widget build(BuildContext context) {
final screenSize = MediaQuery.of(context).size;
return StatefulBuilder(builder:
(BuildContext context, StateSetter setState /*You can rename this!*/) {
return StatefulBuilder(builder: (BuildContext context, StateSetter setState /*You can rename this!*/) {
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getCategory(),
builder:
(BuildContext context, ProcedureViewModel model, Widget child) =>
NetworkBaseView(
builder: (BuildContext context, ProcedureViewModel model, Widget? child) => NetworkBaseView(
baseViewModel: model,
child: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height * 0.9,
child: Form(
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -247,8 +243,8 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
activeColor: Color(0xFFB9382C),
value: 0,
groupValue: selectedType,
onChanged: (value) {
setSelectedType(value);
onChanged: (int? value) {
setSelectedType(value!);
},
),
Text('routine'),
@ -256,11 +252,11 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
activeColor: Color(0xFFB9382C),
groupValue: selectedType,
value: 1,
onChanged: (value) {
setSelectedType(value);
onChanged: (int? value) {
setSelectedType(value!);
},
),
Text(TranslationBase.of(context).urgent),
Text(TranslationBase.of(context).urgent ?? ""),
],
),
),
@ -295,9 +291,7 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
children: <Widget>[
AppButton(
color: Color(0xff359846),
title: TranslationBase.of(context)
.updateProcedure
.toUpperCase(),
title: TranslationBase.of(context).updateProcedure!.toUpperCase(),
onPressed: () {
// if (entityList.isEmpty == true &&
// widget.remarksController.text ==
@ -344,19 +338,18 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
}
updateProcedure(
{ProcedureViewModel model,
String remarks,
int limetNO,
int orderNo,
String newProcedureId,
String newCategorieId,
List<EntityList> entityList,
String orderType,
String procedureId,
PatiantInformtion patient,
String categorieId}) async {
UpdateProcedureRequestModel updateProcedureReqModel =
new UpdateProcedureRequestModel();
{required ProcedureViewModel model,
required String remarks,
required int limetNO,
required int orderNo,
String? newProcedureId,
String? newCategorieId,
required List<EntityList> entityList,
required String orderType,
required String procedureId,
required PatiantInformtion patient,
required String categorieId}) async {
UpdateProcedureRequestModel updateProcedureReqModel = new UpdateProcedureRequestModel();
List<Controls> controls = [];
ProcedureDetail controlsProcedure = new ProcedureDetail();
@ -424,9 +417,8 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
return false;
}
InputDecoration textFieldSelectorDecoration(
String hintText, String selectedText, bool isDropDown,
{Icon suffixIcon}) {
InputDecoration textFieldSelectorDecoration(String hintText, String selectedText, bool isDropDown,
{Icon? suffixIcon}) {
return InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),

@ -31,7 +31,7 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).qr + TranslationBase.of(context).reader,
appBarTitle: TranslationBase.of(context).qr! + TranslationBase.of(context).reader!,
body: Center(
child: Container(
margin: EdgeInsets.only(top: SizeConfig.realScreenHeight / 7),

@ -18,7 +18,7 @@ import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
class AddRescheduleLeavScreen extends StatelessWidget {
ProjectViewModel projectsProvider;
late ProjectViewModel projectsProvider;
@override
Widget build(BuildContext context) {
projectsProvider = Provider.of(context);
@ -27,7 +27,7 @@ class AddRescheduleLeavScreen extends StatelessWidget {
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).rescheduleLeaves,
appBarTitle: TranslationBase.of(context).rescheduleLeaves!,
body: SingleChildScrollView(
child: Column(children: [
Padding(
@ -44,7 +44,7 @@ class AddRescheduleLeavScreen extends StatelessWidget {
false,
);
},
label: TranslationBase.of(context).applyForReschedule,
label: TranslationBase.of(context).applyForReschedule!,
),
),
Column(
@ -59,7 +59,7 @@ class AddRescheduleLeavScreen extends StatelessWidget {
border: Border(
left: BorderSide(
color: item.status == 10
? Colors.red[800]
? Colors.red[800]!
: item.status == 2
? HexColor('#CC9B14')
: item.status == 9
@ -99,7 +99,7 @@ class AddRescheduleLeavScreen extends StatelessWidget {
padding: EdgeInsets.only(top: 10),
child: AppText(
AppDateUtils.convertStringToDateFormat(
item.createdOn, 'yyyy-MM-dd HH:mm'),
item.createdOn!, 'yyyy-MM-dd HH:mm'),
fontWeight: FontWeight.bold,
))
]),
@ -124,7 +124,7 @@ class AddRescheduleLeavScreen extends StatelessWidget {
AppText(TranslationBase.of(context).startDate),
AppText(
AppDateUtils.convertStringToDateFormat(
item.dateTimeFrom, 'yyyy-MM-dd HH:mm'),
item.dateTimeFrom!, 'yyyy-MM-dd HH:mm'),
fontWeight: FontWeight.bold,
)
@ -143,7 +143,7 @@ class AddRescheduleLeavScreen extends StatelessWidget {
AppText(TranslationBase.of(context).endDate),
AppText(
AppDateUtils.convertStringToDateFormat(
item.dateTimeTo, 'yyyy-MM-dd HH:mm'),
item.dateTimeTo!, 'yyyy-MM-dd HH:mm'),
fontWeight: FontWeight.bold,
)
],

@ -63,7 +63,7 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.3
# SVG
#flutter_svg: ^0.17.4
#flutter_svg: ^1.0.0
percent_indicator: ^3.0.1
#Dependency Injection
@ -138,6 +138,10 @@ flutter:
- assets/images/
- assets/images/dashboard/
- assets/images/login/
- assets/images/svgs/
- assets/images/svgs/verification/
- assets/images/svgs/profile_screen/
- assets/images/svgs/bottom_nav/
- assets/images/patient/
- assets/images/patient/vital_signs/
@ -160,6 +164,8 @@ flutter:
weight: 400
- asset: assets/fonts/Poppins/Poppins-Medium.ttf
weight: 500
- asset: assets/fonts/Poppins/Poppins-SemiBold.ttf
weight: 600
- asset: assets/fonts/Poppins/Poppins-Bold.ttf
weight: 700
- asset: assets/fonts/Poppins/Poppins-Bold.ttf

Loading…
Cancel
Save