Merge branch 'development' into patients-new-design

merge-requests/428/head
mosazaid 5 years ago
commit 6006976040

Binary file not shown.

@ -301,7 +301,7 @@ const PRIMARY_COLOR = 0xff515B5D;
const TRANSACTION_NO = 0;
const LANGUAGE_ID = 2;
const STAMP = '2020-04-27T12:17:17.721Z';
const IP_ADDRESS = '11.11.11.11';
const IP_ADDRESS = '9.9.9.9';
const VERSION_ID = 5.3;
const CHANNEL = 9;
const SESSION_ID = 'BlUSkYymTt';

@ -80,7 +80,7 @@ class Timelines {
clinicName = json['ClinicName'];
date = json['Date'];
doctorId = json['DoctorId'];
doctorImage = json['DoctorImage'];
doctorImage = json['DoctorImageURL'];
doctorName = json['DoctorName'];
encounterNumber = json['EncounterNumber'];
encounterType = json['EncounterType'];
@ -101,7 +101,7 @@ class Timelines {
data['ClinicName'] = this.clinicName;
data['Date'] = this.date;
data['DoctorId'] = this.doctorId;
data['DoctorImage'] = this.doctorImage;
data['DoctorImageURL'] = this.doctorImage;
data['DoctorName'] = this.doctorName;
data['EncounterNumber'] = this.encounterNumber;
data['EncounterType'] = this.encounterType;

File diff suppressed because one or more lines are too long

@ -59,6 +59,10 @@ class DoctorApp {
IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral_1 =
IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData progress_notes =
IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon_1 =
IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData operations =
IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData out_patient =
@ -77,22 +81,273 @@ class DoctorApp {
IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData female_1 =
IconData(0xe81b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon_active_1 =
IconData(0xe81c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon_1 =
IconData(0xe81d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData mail =
IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData medicine_search =
IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code_1 =
IconData(0xe820, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_1 =
IconData(0xe821, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referred =
IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData send =
IconData(0xe823, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData sync_icon =
IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData drawer_icon =
IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData view =
IconData(0xe826, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData warning =
IconData(0xe827, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData add =
IconData(0xe828, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData close =
IconData(0xe829, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData back =
IconData(0xe82a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_summary =
IconData(0xe82b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData powered_by_cs =
IconData(0xe82c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code_2 =
IconData(0xe82d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ecg =
IconData(0xe82e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData create_episode =
IconData(0xe82f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData booked =
IconData(0xe830, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData admission_req =
IconData(0xe831, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData walkin =
IconData(0xe832, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reschedule_ =
IconData(0xe833, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData edit =
IconData(0xe834, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData leaves =
IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData logout =
IconData(0xe837, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi =
IconData(0xe838, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData livecare =
IconData(0xe839, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi =
IconData(0xe83a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi_r =
IconData(0xe83b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData modify_episode =
IconData(0xe83c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height =
IconData(0xe83d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi_r =
IconData(0xe83e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi =
IconData(0xe83f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_prescription =
IconData(0xe840, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_procedures =
IconData(0xe841, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi_r =
IconData(0xe842, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData respiration_rate =
IconData(0xe843, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData patient_sick_leave =
IconData(0xe844, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData progress_notes_1 =
IconData(0xe845, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData temperature =
IconData(0xe846, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi =
IconData(0xe847, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData radiology_1 =
IconData(0xe848, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_patient_1 =
IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral_bg =
IconData(0xe84a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search =
IconData(0xe84b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_bg =
IconData(0xe84c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrival_patients =
IconData(0xe84d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrival_patients_bg =
IconData(0xe84e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData refer_patient =
IconData(0xe84f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi_r =
IconData(0xe850, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight =
IconData(0xe851, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_pressure =
IconData(0xe852, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_signs =
IconData(0xe853, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ucaf =
IconData(0xe854, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData filter =
IconData(0xe855, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male_1 =
IconData(0xe856, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData female =
IconData(0xe857, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData external_link =
IconData(0xe858, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face =
IconData(0xe859, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms =
IconData(0xe85a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home =
IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger =
IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_active =
IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply =
IconData(0xe85e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_active =
IconData(0xe85f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule =
IconData(0xe860, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader_active =
IconData(0xe861, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader =
IconData(0xe862, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_active =
IconData(0xe863, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrow_forward =
IconData(0xe864, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData heart_rate =
IconData(0xe865, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon_active_1 =
IconData(0xe866, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon_1 =
IconData(0xe867, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon_active_1 =
IconData(0xe868, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData scdedule_icon_active_1 =
IconData(0xe869, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi_r_1 =
IconData(0xe86a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi_1 =
IconData(0xe86b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData temperature_1 =
IconData(0xe86c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi_r_1 =
IconData(0xe86d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_1 =
IconData(0xe86e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_pressure_1 =
IconData(0xe86f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi_r_1 =
IconData(0xe870, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi_1 =
IconData(0xe871, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData heart_rate_1 =
IconData(0xe872, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height_1 =
IconData(0xe873, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi_1 =
IconData(0xe874, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi_1 =
IconData(0xe875, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData powered_by_cs_1 =
IconData(0xe876, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code_3 =
IconData(0xe877, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reschedule__1 =
IconData(0xe878, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData logout_1 =
IconData(0xe879, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData livecare_1 =
IconData(0xe87a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData modify_episode_1 =
IconData(0xe87b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_prescription_1 =
IconData(0xe87c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_procedures_1 =
IconData(0xe87d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData patient_sick_leave_1 =
IconData(0xe87e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData progress_notes_2 =
IconData(0xe87f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData radiology_2 =
IconData(0xe880, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData refer_patient_1 =
IconData(0xe881, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ucaf_1 =
IconData(0xe882, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_signs_1 =
IconData(0xe883, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData walkin_1 =
IconData(0xe884, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData admission_req_1 =
IconData(0xe885, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData booked_1 =
IconData(0xe886, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData create_episode_1 =
IconData(0xe887, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ecg_1 =
IconData(0xe888, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_summary_1 =
IconData(0xe889, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData lab_results_1 =
IconData(0xe88a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData female_2 =
IconData(0xe88b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData filter_1 =
IconData(0xe88c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male_3 =
IconData(0xe88d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_2 =
IconData(0xe88e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData send_1 =
IconData(0xe88f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData view_1 =
IconData(0xe890, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData warning_1 =
IconData(0xe891, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData add_1 =
IconData(0xe892, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrow_forward_1 =
IconData(0xe893, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData back_1 =
IconData(0xe894, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData close_1 =
IconData(0xe895, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData edit_1 =
IconData(0xe896, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData external_link_1 =
IconData(0xe897, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger_1 =
IconData(0xe898, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms_1 =
IconData(0xe899, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face_1 =
IconData(0xe89a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader_1 =
IconData(0xe89b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader_active_1 =
IconData(0xe89c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_1 =
IconData(0xe89d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_active_1 =
IconData(0xe89e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_1 =
IconData(0xe89f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_active_1 =
IconData(0xe8a0, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_1 =
IconData(0xe8a1, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_active_1 =
IconData(0xe8a2, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}

@ -120,8 +120,8 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
.timelines[index].clinicName,
branch: model.medicalFileList[0].entityList[0]
.timelines[index].projectName,
profileUrl:
'https://previews.123rf.com/images/yupiramos/yupiramos1705/yupiramos170524444/78443570-a-female-doctor-avatar-character-vector-illustration-design.jpg',
profileUrl: model.medicalFileList[0]
.entityList[0].timelines[index].doctorImage,
appointmentDate:
DateUtils.getDateTimeFromServerFormat(
model.medicalFileList[0].entityList[0]

@ -1,9 +1,9 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
class StepsWidget extends StatelessWidget {
@ -20,7 +20,7 @@ class StepsWidget extends StatelessWidget {
? Stack(
children: [
Container(
height: 120,
height: 150,
width: MediaQuery.of(context).size.width,
color: Colors.transparent,
child: Center(
@ -32,7 +32,7 @@ class StepsWidget extends StatelessWidget {
),
),
Positioned(
top: index == 0 ? 15 : 30,
top: 45,
left: 0,
child: InkWell(
onTap: () => changeCurrentTab(0),
@ -40,152 +40,155 @@ class StepsWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: index == 0 ? 70 : 50,
height: index == 0 ? 70 : 50,
width: 50,
height:50,
decoration: BoxDecoration(
border: index == 0
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 0
? null
: Border.all(
color: Colors.black, width: 0.75),
? null
: Border.all(
color: Colors.black, width: 0.75),
shape: BoxShape.circle,
color: index == 0
? Colors.white
? Color(0xFFCC9B14)
: index > 0
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFF359846)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'1',
variant: index == 0 ? "heading2" : "",
bold: true,
color: index == 0
? Colors.black
: index > 0
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 0 ? 5 : 10,
height:5
),
AppText(
"SUBJECTIVE",
fontWeight: FontWeight.bold,
fontSize: 14,
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
AppText(
"Subjective",
fontWeight: FontWeight.bold,
fontSize: 14,
),
StatusLabel(selectedStepId: index, stepId: 0,),
],
),
],
),
),
),
Positioned(
top: index == 1 ? 15 : 30,
left: MediaQuery.of(context).size.width * 0.28,
top: 45,
left: MediaQuery
.of(context)
.size
.width * 0.28,
child: InkWell(
onTap: () => index >= 1 ? changeCurrentTab(1) : null,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: index == 1 ? 70 : 50,
height: index == 1 ? 70 : 50,
width: 50,
height: 50,
decoration: BoxDecoration(
border: index == 1
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 2
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
shape: BoxShape.circle,
color: index == 1
? Colors.white
? Color(0xFFCC9B14)
: index > 1
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFF359846)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'2',
variant: index == 1 ? "heading2" : '',
bold: true,
color: index == 1
? Colors.black
: index > 1
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 1 ? 5 : 10,
height:5,
),
AppText(
"OBJECTIVE",
fontWeight: FontWeight.bold,
fontSize:14,
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
AppText(
"Objective",
fontWeight: FontWeight.bold,
fontSize: 14,
),
StatusLabel(selectedStepId: index, stepId: 1,),
],
),
],
),
),
),
Positioned(
top: index == 2 ? 15 : 30,
left: MediaQuery.of(context).size.width * 0.52,
top: 45,
left: MediaQuery
.of(context)
.size
.width * 0.52,
child: InkWell(
onTap: () {
if(index >= 3)
changeCurrentTab(2);
if (index >= 3)
changeCurrentTab(2);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: index == 2 ? 70 : 50,
height: index == 2 ? 70 : 50,
width:50,
height:50,
decoration: BoxDecoration(
border: index == 2
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 2
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
shape: BoxShape.circle,
color: index == 2
? Colors.white
? Color(0xFFCC9B14)
: index > 2
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFFCC9B14)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'3',
variant: index == 2 ? "heading2" : '',
bold: true,
color: index == 2
? Colors.black
: index > 2
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 2 ? 5 : 10,
height:5,
),
AppText(
"ASSESSMENT",
fontWeight: FontWeight.bold,
fontSize:14,
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
AppText(
"Assessment",
fontWeight: FontWeight.bold,
fontSize: 14,
),
StatusLabel(selectedStepId: index, stepId: 2,),
],
),
],
),
),
),
Positioned(
top: index == 3 ? 15 : 30,
top: 45,
right: 0,
child: InkWell(
onTap: () => index >= 3 ? changeCurrentTab(4) : null,
@ -193,45 +196,42 @@ class StepsWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: index == 3 ? 70 : 50,
height: index == 3 ? 70 : 50,
width:50,
height:50,
decoration: BoxDecoration(
border: index == 3
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 3
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
shape: BoxShape.circle,
color: index == 3
? Colors.white
? Color(0xFFCC9B14)
: index > 3
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFF359846)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'4',
variant: index == 3 ? "heading2" : '',
bold: true,
color: index == 3
? Colors.black
: index > 3
? Colors.white
: Colors.grey,
),
)
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 3 ? 5 : 10,
height:5,
),
Center(
child: AppText(
"PLAN",
fontWeight: FontWeight.bold,
textAlign: TextAlign.center,
fontSize:14,
),
child: Column(
children: [
AppText(
"Plan",
fontWeight: FontWeight.bold,
textAlign: TextAlign.center,
fontSize: 14,
),
StatusLabel(selectedStepId: index, stepId: 3,),
],
),
),
],
),
@ -242,8 +242,11 @@ class StepsWidget extends StatelessWidget {
: Stack(
children: [
Container(
height: 120,
width: MediaQuery.of(context).size.width,
height: 150,
width: MediaQuery
.of(context)
.size
.width,
color: Colors.transparent,
child: Center(
child: Divider(
@ -254,7 +257,7 @@ class StepsWidget extends StatelessWidget {
),
),
Positioned(
top: index == 0 ? 15 : 30,
top: 45,
right: 0,
child: InkWell(
onTap: () => changeCurrentTab(0),
@ -262,37 +265,29 @@ class StepsWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: index == 0 ? 70 : 50,
height: index == 0 ? 70 : 50,
width: 50,
height:50,
decoration: BoxDecoration(
border: index == 0
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 0
? null
: Border.all(
color: Colors.black, width: 0.75),
? null
: Border.all(
color: Colors.black, width: 0.75),
shape: BoxShape.circle,
color: index == 0
? Colors.white
? Color(0xFFCC9B14)
: index > 0
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFF359846)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'1',
variant: index == 0 ? "heading2" : "",
bold: true,
color: index == 0
? Colors.black
: index > 0
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 0 ? 5 : 10,
height:5
),
AppText(
"شخصي",
@ -304,45 +299,40 @@ class StepsWidget extends StatelessWidget {
),
),
Positioned(
top: index == 1 ? 15 : 30,
right: MediaQuery.of(context).size.width * 0.28,
top: 45,
right: MediaQuery
.of(context)
.size
.width * 0.28,
child: InkWell(
onTap: () => index >= 2 ? changeCurrentTab(1) : null,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: index == 1 ? 70 : 50,
height: index == 1 ? 70 : 50,
width: 50,
height: 50,
decoration: BoxDecoration(
border: index == 1
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 2
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
shape: BoxShape.circle,
color: index == 1
? Colors.white
? Color(0xFFCC9B14)
: index > 1
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFF359846)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'2',
variant: index == 1 ? "heading2" : '',
bold: true,
color: index == 1
? Colors.black
: index > 1
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 1 ? 5 : 10,
height:5
),
AppText(
"هدف",
@ -354,45 +344,40 @@ class StepsWidget extends StatelessWidget {
),
),
Positioned(
top: index == 2 ? 15 : 30,
right: MediaQuery.of(context).size.width * 0.52,
top: 50,
right: MediaQuery
.of(context)
.size
.width * 0.52,
child: InkWell(
onTap: () => index >= 3 ? changeCurrentTab(2) : null,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: index == 2 ? 70 : 50,
height: index == 2 ? 70 : 50,
width:50,
height:50,
decoration: BoxDecoration(
border: index == 2
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 2
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
shape: BoxShape.circle,
color: index == 2
? Colors.white
? Color(0xFFCC9B14)
: index > 2
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFFCC9B14)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'3',
variant: index == 2 ? "heading2" : '',
bold: true,
color: index == 2
? Colors.black
: index > 2
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 2 ? 5 : 10,
height:5,
),
Padding(
@ -408,7 +393,7 @@ class StepsWidget extends StatelessWidget {
),
),
Positioned(
top: index == 3 ? 15 : 30,
top: 45,
left: 0,
child: InkWell(
onTap: () => index >= 3 ? changeCurrentTab(4) : null,
@ -416,37 +401,29 @@ class StepsWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: index == 3 ? 70 : 50,
height: index == 3 ? 70 : 50,
width:50,
height:50,
decoration: BoxDecoration(
border: index == 3
? Border.all(color: Color(0xFFB9382C), width: 2)
? Border.all(color: Color(0xFFCC9B14), width: 2)
: index > 3
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
? null
: Border.all(
color: Color(0xFFCCCCCC), width: 0.75),
shape: BoxShape.circle,
color: index == 3
? Colors.white
? Color(0xFFCC9B14)
: index > 3
? Color(0xFFB9382C)
: Color(0xFFCCCCCC),
? Color(0xFFCC9B14)
: Color(0xFFCCCCCC),
),
child: Center(
child: Texts(
'4',
variant: index == 3 ? "heading2" : '',
bold: true,
color: index == 3
? Colors.black
: index > 3
? Colors.white
: Colors.grey,
),
child: Icon(FontAwesomeIcons.check, size: 25,
color: Colors.white,)
),
),
SizedBox(
height: index == 3 ? 5 : 10,
height:5,
),
Container(
margin: EdgeInsets.only(right:index == 3? 15:0),
@ -454,13 +431,49 @@ class StepsWidget extends StatelessWidget {
"خطة",
fontWeight: FontWeight.bold,
fontSize:14,
),
),
),
],
),
),
),
],
);
);
}
}
class StatusLabel extends StatelessWidget {
const StatusLabel({
Key key, this.stepId, this.selectedStepId,
}) : super(key: key);
final int stepId;
final int selectedStepId;
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 5, vertical: 3),
decoration: BoxDecoration(
color: stepId == selectedStepId ? Color(0xFFF1E9D3) : stepId <
selectedStepId ? Color(0xFFD8E8DB) : Color(0xFFCCCCCC),
borderRadius: BorderRadius.all(
Radius.circular(5.0),
),
border: Border.all(
color: HexColor('#707070'),
width: 0.30),
),
child: AppText(
stepId == selectedStepId ? "inProgress" : stepId < selectedStepId
? "Completed"
: " Locked ",
fontWeight: FontWeight.bold,
textAlign: TextAlign.center,
fontSize: 10,
color: stepId == selectedStepId ? Color(0xFFCC9B14) : stepId <
selectedStepId ? Color(0xFF359846) : Color(0xFF969696),
),
);
}
}

@ -0,0 +1,149 @@
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/subjective/update_medication_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/new_text_Field.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
class UpdateChiefComplaints extends StatelessWidget {
const UpdateChiefComplaints({
Key key,
@required this.formKey,
@required this.complaintsController,
@required this.illnessController,
@required this.medicationController,
}) : super(key: key);
final GlobalKey<FormState> formKey;
final TextEditingController complaintsController;
final TextEditingController illnessController;
final TextEditingController medicationController;
@override
Widget build(BuildContext context) {
return Form(
key: formKey,
child: Column(children: [
SizedBox(
height: 20,
),
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(10.0),
),
border: Border.all(
color: HexColor('#707070'),
width: 0.30),
),
child: NewTextFields(
hintText: TranslationBase.of(context).addChiefComplaints,
controller: complaintsController,
),
),
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hasLabelText: complaintsController.text != ''
? true
: false,
hintText: TranslationBase
.of(context)
.addChiefComplaints,
fontSize: 13.5,
// hintColor: Colors.black,
showLabelText: true,
fontWeight: FontWeight.w600,
maxLines: 25,
minLines: 13,
controller: complaintsController,
validator: (value) {
if (value == null || value == "")
return TranslationBase.of(context)
.emptyMessage;
else if (value.length < 25)
return TranslationBase
.of(context)
.chiefComplaintLength;
//"";
else
return null;
}),
),
SizedBox(
height: 20,
),
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hasLabelText:
illnessController.text != '' ? true : false,
showLabelText: true,
hintText: TranslationBase
.of(context)
.historyOfPresentIllness,
fontSize: 13.5,
// hintColor: Colors.black,
fontWeight: FontWeight.w600,
maxLines: 25,
minLines: 13,
controller: illnessController,
validator: (value) {
if (value == null || value == "")
return TranslationBase.of(context)
.emptyMessage;
else
return null;
}),
),
SizedBox(
height: 20,
),
SizedBox(
height: 10,
),
UpdateMedicationWidget(
medicationController: medicationController,
),
SizedBox(
height: 10,
),
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hasLabelText: medicationController.text != ''
? true
: false,
showLabelText: true,
hintText: TranslationBase
.of(context)
.currentMedications,
fontSize: 13.5,
// hintColor: Colors.black,
fontWeight: FontWeight.w600,
maxLines: 23,
minLines: 10,
controller: medicationController,
validator: (value) {
if (value == null || value == "")
return TranslationBase
.of(context)
.emptyMessage;
else
return null;
}),
),
SizedBox(
height: 10,
),
]),
);
}
}

@ -16,6 +16,7 @@ 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/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/subjective/update_Chief_complaints.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/subjective/update_history_widget.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/subjective/update_medication_widget.dart';
@ -243,112 +244,7 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
isChiefExpand = !isChiefExpand;
});
},
child: Form(
key: formKey,
child: Column(children: [
SizedBox(
height: 20,
),
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hasLabelText: complaintsController.text != ''
? true
: false,
hintText: TranslationBase
.of(context)
.addChiefComplaints,
fontSize: 13.5,
// hintColor: Colors.black,
showLabelText: true,
fontWeight: FontWeight.w600,
maxLines: 25,
minLines: 13,
controller: complaintsController,
validator: (value) {
if (value == null || value == "")
return TranslationBase.of(context)
.emptyMessage;
else if (value.length < 25)
return TranslationBase
.of(context)
.chiefComplaintLength;
//"";
else
return null;
}),
),
SizedBox(
height: 20,
),
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hasLabelText:
illnessController.text != '' ? true : false,
showLabelText: true,
hintText: TranslationBase
.of(context)
.historyOfPresentIllness,
fontSize: 13.5,
// hintColor: Colors.black,
fontWeight: FontWeight.w600,
maxLines: 25,
minLines: 13,
controller: illnessController,
validator: (value) {
if (value == null || value == "")
return TranslationBase.of(context)
.emptyMessage;
else
return null;
}),
),
SizedBox(
height: 20,
),
SizedBox(
height: 10,
),
UpdateMedicationWidget(
medicationController: medicationController,
),
SizedBox(
height: 10,
),
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hasLabelText: medicationController.text != ''
? true
: false,
showLabelText: true,
hintText: TranslationBase
.of(context)
.currentMedications,
fontSize: 13.5,
// hintColor: Colors.black,
fontWeight: FontWeight.w600,
maxLines: 23,
minLines: 10,
controller: medicationController,
validator: (value) {
if (value == null || value == "")
return TranslationBase
.of(context)
.emptyMessage;
else
return null;
}),
),
SizedBox(
height: 10,
),
]),
),
child: UpdateChiefComplaints(formKey: formKey, complaintsController: complaintsController, illnessController: illnessController, medicationController: medicationController),
isExpanded: isChiefExpand,
),
SizedBox(
@ -602,3 +498,5 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
}

@ -0,0 +1,229 @@
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class NumberTextInputFormatter extends TextInputFormatter {
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
final int newTextLength = newValue.text.length;
int selectionIndex = newValue.selection.end;
int usedSubstringIndex = 0;
final StringBuffer newText = StringBuffer();
if (newTextLength >= 1) {
newText.write('(');
if (newValue.selection.end >= 1) selectionIndex++;
}
if (newTextLength >= 4) {
newText.write(newValue.text.substring(0, usedSubstringIndex = 3) + ') ');
if (newValue.selection.end >= 3) selectionIndex += 2;
}
if (newTextLength >= 7) {
newText.write(newValue.text.substring(3, usedSubstringIndex = 6) + '-');
if (newValue.selection.end >= 6) selectionIndex++;
}
if (newTextLength >= 11) {
newText.write(newValue.text.substring(6, usedSubstringIndex = 10) + ' ');
if (newValue.selection.end >= 10) selectionIndex++;
}
// Dump the rest.
if (newTextLength >= usedSubstringIndex)
newText.write(newValue.text.substring(usedSubstringIndex));
return TextEditingValue(
text: newText.toString(),
selection: TextSelection.collapsed(offset: selectionIndex),
);
}
}
final _mobileFormatter = NumberTextInputFormatter();
class NewTextFields extends StatefulWidget {
NewTextFields(
{Key key,
this.type,
this.hintText,
this.suffixIcon,
this.autoFocus,
this.onChanged,
this.initialValue,
this.minLines,
this.maxLines,
this.inputFormatters,
this.padding,
this.focus = false,
this.maxLengthEnforced = true,
this.suffixIconColor,
this.inputAction,
this.onSubmit,
this.keepPadding = true,
this.textCapitalization = TextCapitalization.none,
this.controller,
this.keyboardType,
this.validator,
this.borderOnlyError = false,
this.onSaved,
this.onSuffixTap,
this.readOnly: false,
this.maxLength,
this.prefixIcon,
this.bare = false,
this.onTap,
this.fontSize = 16.0,
this.fontWeight = FontWeight.w700,
this.autoValidate = false,
this.hintColor,
this.isEnabled = true})
: super(key: key);
final String hintText;
// final String initialValue;
final String type;
final bool autoFocus;
final IconData suffixIcon;
final Color suffixIconColor;
final Icon prefixIcon;
final VoidCallback onTap;
final TextEditingController controller;
final TextInputType keyboardType;
final FormFieldValidator validator;
final Function onSaved;
final Function onSuffixTap;
final Function onChanged;
final Function onSubmit;
final bool readOnly;
final int maxLength;
final int minLines;
final int maxLines;
final bool maxLengthEnforced;
final bool bare;
final bool isEnabled;
final TextInputAction inputAction;
final double fontSize;
final FontWeight fontWeight;
final bool keepPadding;
final TextCapitalization textCapitalization;
final List<TextInputFormatter> inputFormatters;
final bool autoValidate;
final EdgeInsets padding;
final bool focus;
final bool borderOnlyError;
final Color hintColor;
final String initialValue;
@override
_NewTextFieldsState createState() => _NewTextFieldsState();
}
class _NewTextFieldsState extends State<NewTextFields> {
final FocusNode _focusNode = FocusNode();
bool focus = false;
bool view = false;
@override
void initState() {
super.initState();
_focusNode.addListener(() {
setState(() {
focus = _focusNode.hasFocus;
});
});
}
@override
void didUpdateWidget(NewTextFields oldWidget) {
if (widget.focus) _focusNode.requestFocus();
super.didUpdateWidget(oldWidget);
}
@override
void dispose() {
_focusNode.dispose();
super.dispose();
}
bool _determineReadOnly() {
if (widget.readOnly != null && widget.readOnly) {
_focusNode.unfocus();
return true;
} else {
return false;
}
}
@override
Widget build(BuildContext context) {
return AnimatedContainer(
duration: Duration(milliseconds: 300),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Colors.white),
child: Container(
margin: EdgeInsets.only(top: 8),
child: TextFormField(
enabled: widget.isEnabled,
initialValue: widget.initialValue,
keyboardAppearance: Theme.of(context).brightness,
scrollPhysics: BouncingScrollPhysics(),
autovalidate: widget.autoValidate,
textCapitalization: widget.textCapitalization,
onFieldSubmitted: widget.inputAction == TextInputAction.next
? (widget.onSubmit != null
? widget.onSubmit
: (val) {
_focusNode.nextFocus();
})
: widget.onSubmit,
textInputAction: widget.inputAction,
minLines: widget.minLines ?? 1,
maxLines: widget.maxLines ?? 1,
maxLengthEnforced: widget.maxLengthEnforced,
onChanged: widget.onChanged,
focusNode: _focusNode,
maxLength: widget.maxLength ?? null,
controller: widget.controller,
keyboardType: widget.keyboardType,
readOnly: _determineReadOnly(),
obscureText: widget.type == "password" && !view ? true : false,
autofocus: widget.autoFocus ?? false,
validator: widget.validator,
onSaved: widget.onSaved,
style: Theme.of(context).textTheme.body2.copyWith(
fontSize: widget.fontSize, fontWeight: widget.fontWeight),
inputFormatters: widget.keyboardType == TextInputType.phone
? <TextInputFormatter>[
WhitelistingTextInputFormatter.digitsOnly,
_mobileFormatter,
]
: widget.inputFormatters,
decoration: InputDecoration(
labelText: widget.hintText,
labelStyle:
TextStyle(color: Theme.of(context).textTheme.bodyText1.color),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Theme.of(context).errorColor.withOpacity(0.5),
width: 1.0),
borderRadius: BorderRadius.circular(12.0)),
focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Theme.of(context).errorColor.withOpacity(0.5),
width: 1.0),
borderRadius: BorderRadius.circular(8.0)),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white, width: 1.0),
borderRadius: BorderRadius.circular(12)),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white, width: 1.0),
borderRadius: BorderRadius.circular(12)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white, width: 1.0),
borderRadius: BorderRadius.circular(12),
),
),
),
),
);
}
}

@ -608,7 +608,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.3"
version: "1.3.0-nullsafety.4"
mime:
dependency: transitive
description:
@ -900,7 +900,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0-nullsafety.1"
version: "1.10.0-nullsafety.2"
stream_channel:
dependency: transitive
description:
@ -1084,5 +1084,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.0 <2.11.0"
dart: ">=2.10.0 <=2.11.0-213.1.beta"
flutter: ">=1.22.0 <2.0.0"

Loading…
Cancel
Save