Merge branch 'mohammad' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into development
Conflicts: lib/providers/patients_provider.dart lib/routes.dartmerge-requests/111/head
commit
4a8b97b189
@ -0,0 +1,140 @@
|
|||||||
|
class PrescriptionReport {
|
||||||
|
String address;
|
||||||
|
int appointmentNo;
|
||||||
|
String clinic;
|
||||||
|
String companyName;
|
||||||
|
int days;
|
||||||
|
String doctorName;
|
||||||
|
int doseDailyQuantity;
|
||||||
|
String frequency;
|
||||||
|
int frequencyNumber;
|
||||||
|
Null imageExtension;
|
||||||
|
Null imageSRCUrl;
|
||||||
|
Null imageString;
|
||||||
|
Null imageThumbUrl;
|
||||||
|
String isCovered;
|
||||||
|
String itemDescription;
|
||||||
|
int itemID;
|
||||||
|
String orderDate;
|
||||||
|
int patientID;
|
||||||
|
String patientName;
|
||||||
|
String phoneOffice1;
|
||||||
|
Null prescriptionQR;
|
||||||
|
int prescriptionTimes;
|
||||||
|
Null productImage;
|
||||||
|
String productImageBase64;
|
||||||
|
String productImageString;
|
||||||
|
int projectID;
|
||||||
|
String projectName;
|
||||||
|
String remarks;
|
||||||
|
String route;
|
||||||
|
String sKU;
|
||||||
|
int scaleOffset;
|
||||||
|
String startDate;
|
||||||
|
|
||||||
|
PrescriptionReport(
|
||||||
|
{this.address,
|
||||||
|
this.appointmentNo,
|
||||||
|
this.clinic,
|
||||||
|
this.companyName,
|
||||||
|
this.days,
|
||||||
|
this.doctorName,
|
||||||
|
this.doseDailyQuantity,
|
||||||
|
this.frequency,
|
||||||
|
this.frequencyNumber,
|
||||||
|
this.imageExtension,
|
||||||
|
this.imageSRCUrl,
|
||||||
|
this.imageString,
|
||||||
|
this.imageThumbUrl,
|
||||||
|
this.isCovered,
|
||||||
|
this.itemDescription,
|
||||||
|
this.itemID,
|
||||||
|
this.orderDate,
|
||||||
|
this.patientID,
|
||||||
|
this.patientName,
|
||||||
|
this.phoneOffice1,
|
||||||
|
this.prescriptionQR,
|
||||||
|
this.prescriptionTimes,
|
||||||
|
this.productImage,
|
||||||
|
this.productImageBase64,
|
||||||
|
this.productImageString,
|
||||||
|
this.projectID,
|
||||||
|
this.projectName,
|
||||||
|
this.remarks,
|
||||||
|
this.route,
|
||||||
|
this.sKU,
|
||||||
|
this.scaleOffset,
|
||||||
|
this.startDate});
|
||||||
|
|
||||||
|
PrescriptionReport.fromJson(Map<String, dynamic> json) {
|
||||||
|
address = json['Address'];
|
||||||
|
appointmentNo = json['AppointmentNo'];
|
||||||
|
clinic = json['Clinic'];
|
||||||
|
companyName = json['CompanyName'];
|
||||||
|
days = json['Days'];
|
||||||
|
doctorName = json['DoctorName'];
|
||||||
|
doseDailyQuantity = json['DoseDailyQuantity'];
|
||||||
|
frequency = json['Frequency'];
|
||||||
|
frequencyNumber = json['FrequencyNumber'];
|
||||||
|
imageExtension = json['ImageExtension'];
|
||||||
|
imageSRCUrl = json['ImageSRCUrl'];
|
||||||
|
imageString = json['ImageString'];
|
||||||
|
imageThumbUrl = json['ImageThumbUrl'];
|
||||||
|
isCovered = json['IsCovered'];
|
||||||
|
itemDescription = json['ItemDescription'];
|
||||||
|
itemID = json['ItemID'];
|
||||||
|
orderDate = json['OrderDate'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
patientName = json['PatientName'];
|
||||||
|
phoneOffice1 = json['PhoneOffice1'];
|
||||||
|
prescriptionQR = json['PrescriptionQR'];
|
||||||
|
prescriptionTimes = json['PrescriptionTimes'];
|
||||||
|
productImage = json['ProductImage'];
|
||||||
|
productImageBase64 = json['ProductImageBase64'];
|
||||||
|
productImageString = json['ProductImageString'];
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
projectName = json['ProjectName'];
|
||||||
|
remarks = json['Remarks'];
|
||||||
|
route = json['Route'];
|
||||||
|
sKU = json['SKU'];
|
||||||
|
scaleOffset = json['ScaleOffset'];
|
||||||
|
startDate = json['StartDate'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['Address'] = this.address;
|
||||||
|
data['AppointmentNo'] = this.appointmentNo;
|
||||||
|
data['Clinic'] = this.clinic;
|
||||||
|
data['CompanyName'] = this.companyName;
|
||||||
|
data['Days'] = this.days;
|
||||||
|
data['DoctorName'] = this.doctorName;
|
||||||
|
data['DoseDailyQuantity'] = this.doseDailyQuantity;
|
||||||
|
data['Frequency'] = this.frequency;
|
||||||
|
data['FrequencyNumber'] = this.frequencyNumber;
|
||||||
|
data['ImageExtension'] = this.imageExtension;
|
||||||
|
data['ImageSRCUrl'] = this.imageSRCUrl;
|
||||||
|
data['ImageString'] = this.imageString;
|
||||||
|
data['ImageThumbUrl'] = this.imageThumbUrl;
|
||||||
|
data['IsCovered'] = this.isCovered;
|
||||||
|
data['ItemDescription'] = this.itemDescription;
|
||||||
|
data['ItemID'] = this.itemID;
|
||||||
|
data['OrderDate'] = this.orderDate;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['PatientName'] = this.patientName;
|
||||||
|
data['PhoneOffice1'] = this.phoneOffice1;
|
||||||
|
data['PrescriptionQR'] = this.prescriptionQR;
|
||||||
|
data['PrescriptionTimes'] = this.prescriptionTimes;
|
||||||
|
data['ProductImage'] = this.productImage;
|
||||||
|
data['ProductImageBase64'] = this.productImageBase64;
|
||||||
|
data['ProductImageString'] = this.productImageString;
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['ProjectName'] = this.projectName;
|
||||||
|
data['Remarks'] = this.remarks;
|
||||||
|
data['Route'] = this.route;
|
||||||
|
data['SKU'] = this.sKU;
|
||||||
|
data['ScaleOffset'] = this.scaleOffset;
|
||||||
|
data['StartDate'] = this.startDate;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
class RequestPrescriptionReport {
|
||||||
|
int projectID;
|
||||||
|
int appointmentNo;
|
||||||
|
int episodeID;
|
||||||
|
String setupID;
|
||||||
|
int patientTypeID;
|
||||||
|
int languageID;
|
||||||
|
String stamp;
|
||||||
|
String iPAdress;
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
String tokenID;
|
||||||
|
String sessionID;
|
||||||
|
bool isLoginForDoctorApp;
|
||||||
|
bool patientOutSA;
|
||||||
|
|
||||||
|
RequestPrescriptionReport(
|
||||||
|
{this.projectID,
|
||||||
|
this.appointmentNo,
|
||||||
|
this.episodeID,
|
||||||
|
this.setupID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.languageID,
|
||||||
|
this.stamp,
|
||||||
|
this.iPAdress,
|
||||||
|
this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.tokenID,
|
||||||
|
this.sessionID,
|
||||||
|
this.isLoginForDoctorApp,
|
||||||
|
this.patientOutSA});
|
||||||
|
|
||||||
|
RequestPrescriptionReport.fromJson(Map<String, dynamic> json) {
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
appointmentNo = json['AppointmentNo'];
|
||||||
|
episodeID = json['EpisodeID'];
|
||||||
|
setupID = json['SetupID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
stamp = json['stamp'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['AppointmentNo'] = this.appointmentNo;
|
||||||
|
data['EpisodeID'] = this.episodeID;
|
||||||
|
data['SetupID'] = this.setupID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['stamp'] = this.stamp;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
import 'package:doctor_app_flutter/models/patient/prescription_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/request_prescription_report.dart';
|
||||||
|
import 'package:doctor_app_flutter/providers/patients_provider.dart';
|
||||||
|
import 'package:doctor_app_flutter/screens/patients/profile/prescriptions/out_patient_prescription_details_item.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class OutPatientPrescriptionDetailsScreen extends StatefulWidget {
|
||||||
|
final PrescriptionResModel prescriptionResModel;
|
||||||
|
|
||||||
|
OutPatientPrescriptionDetailsScreen({Key key, this.prescriptionResModel});
|
||||||
|
|
||||||
|
@override
|
||||||
|
_OutPatientPrescriptionDetailsScreenState createState() =>
|
||||||
|
_OutPatientPrescriptionDetailsScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _OutPatientPrescriptionDetailsScreenState
|
||||||
|
extends State<OutPatientPrescriptionDetailsScreen> {
|
||||||
|
bool _isInit = true;
|
||||||
|
PatientsProvider patientsProvider;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
super.didChangeDependencies();
|
||||||
|
if (_isInit) {
|
||||||
|
patientsProvider = Provider.of<PatientsProvider>(context);
|
||||||
|
|
||||||
|
RequestPrescriptionReport prescriptionReqModel =
|
||||||
|
RequestPrescriptionReport(
|
||||||
|
appointmentNo: widget.prescriptionResModel.appointmentNo,
|
||||||
|
episodeID: widget.prescriptionResModel.episodeID,
|
||||||
|
setupID: widget.prescriptionResModel.setupID,
|
||||||
|
patientTypeID: widget.prescriptionResModel.patientID);
|
||||||
|
patientsProvider.getPrescriptionReport(prescriptionReqModel.toJson());
|
||||||
|
}
|
||||||
|
_isInit = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
appBarTitle: 'Prescription Details',
|
||||||
|
body: patientsProvider.isLoading
|
||||||
|
? DrAppCircularProgressIndeicator()
|
||||||
|
: patientsProvider.isError
|
||||||
|
? DrAppEmbeddedError(error: patientsProvider.error)
|
||||||
|
: CardWithBgWidgetNew(
|
||||||
|
widget: ListView.builder(
|
||||||
|
itemCount: patientsProvider.prescriptionReport.length,
|
||||||
|
itemBuilder: (BuildContext context, int index) {
|
||||||
|
return OutPatientPrescriptionDetailsItem(
|
||||||
|
prescriptionReport:
|
||||||
|
patientsProvider.prescriptionReport[index],
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,192 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription_report_for_in_patient.dart';
|
||||||
|
import 'package:doctor_app_flutter/util/helpers.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/card_with_bgNew_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class InpatientPrescriptionDetailsScreen extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_InpatientPrescriptionDetailsScreenState createState() =>
|
||||||
|
_InpatientPrescriptionDetailsScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _InpatientPrescriptionDetailsScreenState
|
||||||
|
extends State<InpatientPrescriptionDetailsScreen> {
|
||||||
|
bool _showDetails = false;
|
||||||
|
String error;
|
||||||
|
TextEditingController answerController;
|
||||||
|
bool _isInit = true;
|
||||||
|
PrescriptionReportForInPatient prescription;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
super.didChangeDependencies();
|
||||||
|
if (_isInit) {
|
||||||
|
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
|
||||||
|
prescription = routeArgs['prescription'];
|
||||||
|
}
|
||||||
|
_isInit = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
appBarTitle: 'Prescription info',
|
||||||
|
body: CardWithBgWidgetNew(
|
||||||
|
widget: Container(
|
||||||
|
child: ListView(
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(
|
||||||
|
prescription.itemDescription,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
setState(() {
|
||||||
|
_showDetails = !_showDetails;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: Icon(_showDetails
|
||||||
|
? Icons.keyboard_arrow_up
|
||||||
|
: Icons.keyboard_arrow_down)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
!_showDetails
|
||||||
|
? Container()
|
||||||
|
: AnimatedContainer(
|
||||||
|
duration: Duration(milliseconds: 200),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
color: Color(0xFF000000),
|
||||||
|
height: 0.5,
|
||||||
|
),
|
||||||
|
Table(
|
||||||
|
border: TableBorder.symmetric(
|
||||||
|
inside: BorderSide(width: 0.5),
|
||||||
|
),
|
||||||
|
children: [
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.direction}',
|
||||||
|
key: 'Direction'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.refillID}',
|
||||||
|
key: 'Refill'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.dose}', key: 'Dose'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.unitofMeasurement}',
|
||||||
|
key: 'UOM'),
|
||||||
|
buildTableRow(
|
||||||
|
des:
|
||||||
|
'${Helpers.getDate(prescription.startDatetime)}',
|
||||||
|
key: 'Start Date'),
|
||||||
|
buildTableRow(
|
||||||
|
des:
|
||||||
|
'${Helpers.getDate(prescription.stopDatetime)}',
|
||||||
|
key: 'Stop Date'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.noOfDoses}',
|
||||||
|
key: 'No of Doses'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.route}', key: 'Route'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.comments}',
|
||||||
|
key: 'Comments'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.pharmacyRemarks}',
|
||||||
|
key: 'Pharmacy Remarks'),
|
||||||
|
buildTableRow(
|
||||||
|
des:
|
||||||
|
'${Helpers.getDate(prescription.prescriptionDatetime)}',
|
||||||
|
key: 'Prescription Date'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.refillID}',
|
||||||
|
key: 'Status'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.refillID}',
|
||||||
|
key: 'Created By'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.refillID}',
|
||||||
|
key: 'Processed By'),
|
||||||
|
buildTableRow(
|
||||||
|
des: '${prescription.refillID}',
|
||||||
|
key: 'Authorized By'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
color: Color(0xFF000000),
|
||||||
|
height: 0.5,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TableRow buildTableRow({des, key}) {
|
||||||
|
print('$key: $des');
|
||||||
|
return TableRow(children: [
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(2.5),
|
||||||
|
padding: EdgeInsets.all(5),
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
child: AppText(
|
||||||
|
key,
|
||||||
|
fontSize: 1.7 * SizeConfig.textMultiplier,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
textAlign: TextAlign.start,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
margin:
|
||||||
|
EdgeInsets.only(left: 4, top: 2.5, right: 2.5, bottom: 2.5),
|
||||||
|
padding: EdgeInsets.all(5),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(
|
||||||
|
'${des}',
|
||||||
|
fontSize: 1.7 * SizeConfig.textMultiplier,
|
||||||
|
fontWeight: FontWeight.w300,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,138 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/prescription_report.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class OutPatientPrescriptionDetailsItem extends StatefulWidget {
|
||||||
|
final PrescriptionReport prescriptionReport;
|
||||||
|
|
||||||
|
OutPatientPrescriptionDetailsItem({Key key, this.prescriptionReport});
|
||||||
|
|
||||||
|
@override
|
||||||
|
_OutPatientPrescriptionDetailsItemState createState() =>
|
||||||
|
_OutPatientPrescriptionDetailsItemState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _OutPatientPrescriptionDetailsItemState
|
||||||
|
extends State<OutPatientPrescriptionDetailsItem> {
|
||||||
|
bool _showDetails = false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
flex: 5,
|
||||||
|
child: AppText(
|
||||||
|
'${widget.prescriptionReport.itemDescription} ',
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () {
|
||||||
|
setState(() {
|
||||||
|
_showDetails = !_showDetails;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: Icon(_showDetails
|
||||||
|
? Icons.keyboard_arrow_up
|
||||||
|
: Icons.keyboard_arrow_down)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
!_showDetails
|
||||||
|
? Container()
|
||||||
|
: AnimatedContainer(
|
||||||
|
duration: Duration(milliseconds: 200),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
color: Color(0xFF000000),
|
||||||
|
height: 0.5,
|
||||||
|
),
|
||||||
|
Table(
|
||||||
|
border: TableBorder.symmetric(
|
||||||
|
inside: BorderSide(width: 0.5),
|
||||||
|
),
|
||||||
|
children: [
|
||||||
|
buildTableRow(
|
||||||
|
key: 'Route',
|
||||||
|
des: widget.prescriptionReport.route),
|
||||||
|
buildTableRow(
|
||||||
|
key: 'Frequency Timing',
|
||||||
|
des: widget.prescriptionReport.frequency),
|
||||||
|
buildTableRow(key: 'Insurance Covered', des: ''),
|
||||||
|
buildTableRow(
|
||||||
|
key: 'Duration Days',
|
||||||
|
des: widget.prescriptionReport.days),
|
||||||
|
buildTableRow(
|
||||||
|
key: 'IDoctor Remarks',
|
||||||
|
des: widget.prescriptionReport.remarks),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
color: Color(0xFF000000),
|
||||||
|
height: 0.5,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TableRow buildTableRow({des, key}) {
|
||||||
|
print('$key: $des');
|
||||||
|
return TableRow(children: [
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(2.5),
|
||||||
|
padding: EdgeInsets.all(5),
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
child: AppText(
|
||||||
|
key,
|
||||||
|
fontSize: 1.7 * SizeConfig.textMultiplier,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
textAlign: TextAlign.start,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
margin:
|
||||||
|
EdgeInsets.only(left: 4, top: 2.5, right: 2.5, bottom: 2.5),
|
||||||
|
padding: EdgeInsets.all(5),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(
|
||||||
|
'${des}',
|
||||||
|
fontSize: 1.7 * SizeConfig.textMultiplier,
|
||||||
|
fontWeight: FontWeight.w300,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription_report_for_in_patient.dart';
|
||||||
|
import 'package:doctor_app_flutter/routes.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'large_avatar.dart';
|
||||||
|
|
||||||
|
class PrescriptionInPatientWidget extends StatelessWidget {
|
||||||
|
final List<PrescriptionReportForInPatient> prescriptionReportForInPatientList;
|
||||||
|
|
||||||
|
PrescriptionInPatientWidget(
|
||||||
|
{Key key, this.prescriptionReportForInPatientList});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
child: prescriptionReportForInPatientList.length == 0
|
||||||
|
? DrAppEmbeddedError(error: 'You don\'t have any Prescriptions')
|
||||||
|
: Container(
|
||||||
|
margin: EdgeInsets.fromLTRB(SizeConfig.realScreenWidth * 0.05, 0,
|
||||||
|
SizeConfig.realScreenWidth * 0.05, 0),
|
||||||
|
child: ListView.builder(
|
||||||
|
itemCount: prescriptionReportForInPatientList.length,
|
||||||
|
itemBuilder: (BuildContext context, int index) {
|
||||||
|
return InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).pushNamed(IN_PATIENT_PRESCRIPTIONS_DETAILS, arguments: {
|
||||||
|
'prescription': prescriptionReportForInPatientList[index]
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: CardWithBgWidgetNew(
|
||||||
|
widget: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
LargeAvatar(
|
||||||
|
name:
|
||||||
|
prescriptionReportForInPatientList[index]
|
||||||
|
.createdByName,
|
||||||
|
radius: 10,
|
||||||
|
width: 70,
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
margin:
|
||||||
|
EdgeInsets.only(left: 15, right: 15),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(
|
||||||
|
'${prescriptionReportForInPatientList[index].createdByName}',
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
'${prescriptionReportForInPatientList[index].itemDescription}',
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier,
|
||||||
|
color:
|
||||||
|
Theme.of(context).primaryColor),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,94 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/screens/patients/out_patient_prescription_details_screen.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'large_avatar.dart';
|
||||||
|
|
||||||
|
class PrescriptionOutPatientWidget extends StatelessWidget {
|
||||||
|
final List<PrescriptionResModel> patientPrescriptionsList;
|
||||||
|
|
||||||
|
PrescriptionOutPatientWidget({Key key, this.patientPrescriptionsList});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
child: patientPrescriptionsList.length == 0
|
||||||
|
? DrAppEmbeddedError(error: 'You don\'t have any Prescriptions')
|
||||||
|
: Container(
|
||||||
|
margin: EdgeInsets.fromLTRB(SizeConfig.realScreenWidth * 0.05, 0,
|
||||||
|
SizeConfig.realScreenWidth * 0.05, 0),
|
||||||
|
child: ListView.builder(
|
||||||
|
itemCount: patientPrescriptionsList.length,
|
||||||
|
itemBuilder: (BuildContext context, int index) {
|
||||||
|
return InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) =>
|
||||||
|
OutPatientPrescriptionDetailsScreen(
|
||||||
|
prescriptionResModel:
|
||||||
|
patientPrescriptionsList[index],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: CardWithBgWidgetNew(
|
||||||
|
widget: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
LargeAvatar(
|
||||||
|
url: patientPrescriptionsList[index]
|
||||||
|
.doctorImageURL,
|
||||||
|
name: patientPrescriptionsList[index]
|
||||||
|
.doctorName,
|
||||||
|
radius: 10,
|
||||||
|
width: 70,
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
margin:
|
||||||
|
EdgeInsets.only(left: 15, right: 15),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(
|
||||||
|
'${patientPrescriptionsList[index].name}',
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
'${patientPrescriptionsList[index].clinicDescription}',
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier,
|
||||||
|
color:
|
||||||
|
Theme.of(context).primaryColor),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue