diff --git a/android/app/build.gradle b/android/app/build.gradle
index b7605ad0..e18e8ae5 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -39,7 +39,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.hmg.hmgDr"
- minSdkVersion 18
+ minSdkVersion 21
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -54,6 +54,11 @@ android {
signingConfig signingConfigs.debug
}
}
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
}
flutter {
@@ -74,9 +79,10 @@ dependencies {
//permissions
implementation 'pub.devrel:easypermissions:0.4.0'
//retrofit
- implementation 'com.squareup.retrofit2:retrofit:2.6.2'
+ implementation 'com.squareup.retrofit2:retrofit:2.9.0'
+ implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
- implementation 'com.squareup.okhttp3:logging-interceptor:3.14.1'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
}
apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index c656ebbf..0e71249f 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -9,12 +9,19 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here.
-->
-
-
-
+
+
+
+
+
+
+
+
+
+
("TokenID")
val generalId = call.argument("generalId")
val doctorId = call.argument("DoctorId")
+ val patientName = call.argument("patientName")
- val sessionStatusModel = GetSessionStatusModel(VC_ID, tokenID, generalId, doctorId)
+ val sessionStatusModel = GetSessionStatusModel(VC_ID, tokenID, generalId, doctorId, patientName)
openVideoCall(apiKey, sessionId, token, appLang, baseUrl, sessionStatusModel)
diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/Model/GetSessionStatusModel.java b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/GetSessionStatusModel.java
index d41aa146..60350539 100644
--- a/android/app/src/main/kotlin/com/hmg/hmgDr/Model/GetSessionStatusModel.java
+++ b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/GetSessionStatusModel.java
@@ -20,15 +20,19 @@ public class GetSessionStatusModel implements Parcelable {
@SerializedName("DoctorId")
@Expose
private Integer doctorId;
+ @SerializedName("PatientName")
+ @Expose
+ private String patientName;
public GetSessionStatusModel() {
}
- public GetSessionStatusModel(Integer vCID, String tokenID, String generalid, Integer doctorId) {
+ public GetSessionStatusModel(Integer vCID, String tokenID, String generalid, Integer doctorId, String patientName) {
this.vCID = vCID;
this.tokenID = tokenID;
this.generalid = generalid;
this.doctorId = doctorId;
+ this.patientName = patientName;
}
protected GetSessionStatusModel(Parcel in) {
@@ -44,6 +48,7 @@ public class GetSessionStatusModel implements Parcelable {
} else {
doctorId = in.readInt();
}
+ patientName = in.readString();
}
public static final Creator CREATOR = new Creator() {
@@ -90,6 +95,16 @@ public class GetSessionStatusModel implements Parcelable {
this.doctorId = doctorId;
}
+ public String getPatientName() {
+ if (patientName == null)
+ patientName = "-";
+ return patientName;
+ }
+
+ public void setPatientName(String patientName) {
+ this.patientName = patientName;
+ }
+
@Override
public int describeContents() {
return 0;
@@ -111,5 +126,6 @@ public class GetSessionStatusModel implements Parcelable {
dest.writeByte((byte) 1);
dest.writeInt(doctorId);
}
+ dest.writeString(patientName);
}
}
diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/ui/VideoCallActivity.java b/android/app/src/main/kotlin/com/hmg/hmgDr/ui/VideoCallActivity.java
index 1c907089..be4ebfb8 100644
--- a/android/app/src/main/kotlin/com/hmg/hmgDr/ui/VideoCallActivity.java
+++ b/android/app/src/main/kotlin/com/hmg/hmgDr/ui/VideoCallActivity.java
@@ -11,8 +11,10 @@ import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
+import android.os.SystemClock;
import android.util.Log;
import android.view.View;
+import android.widget.Chronometer;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ProgressBar;
@@ -75,7 +77,13 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
private boolean isSpeckerClicked;
private boolean isMicClicked;
+ private TextView patientName;
+ private Chronometer cmTimer;
+ long elapsedTime;
+ Boolean resume = false;
+
private ImageView mCallBtn;
+ private ImageView btnMinimize;
private ImageView mCameraBtn;
private ImageView mSwitchCameraBtn;
private ImageView mspeckerBtn;
@@ -128,14 +136,14 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
@Override
protected void onDestroy() {
disconnectSession();
-
+ cmTimer.stop();
super.onDestroy();
}
@SuppressLint("ClickableViewAccessibility")
private void initUI() {
- mPublisherViewContainer = (FrameLayout) findViewById(R.id.local_video_view_container);
- mSubscriberViewContainer = (RelativeLayout) findViewById(R.id.remote_video_view_container);
+ mPublisherViewContainer = findViewById(R.id.local_video_view_container);
+ mSubscriberViewContainer = findViewById(R.id.remote_video_view_container);
apiKey = getIntent().getStringExtra("apiKey");
sessionId = getIntent().getStringExtra("sessionId");
@@ -148,8 +156,28 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
videoCallPresenter = new VideoCallPresenterImpl(this, baseUrl);
+ patientName = findViewById(R.id.patient_name);
+ patientName.setText(sessionStatusModel.getPatientName());
+
+ cmTimer = findViewById(R.id.cmTimer);
+ cmTimer.setFormat("mm:ss");
+ cmTimer.setOnChronometerTickListener(arg0 -> {
+ long minutes;
+ long seconds;
+ if (!resume) {
+ minutes = ((SystemClock.elapsedRealtime() - cmTimer.getBase()) / 1000) / 60;
+ seconds = ((SystemClock.elapsedRealtime() - cmTimer.getBase()) / 1000) % 60;
+ elapsedTime = SystemClock.elapsedRealtime();
+ } else {
+ minutes = ((elapsedTime - cmTimer.getBase()) / 1000) / 60;
+ seconds = ((elapsedTime - cmTimer.getBase()) / 1000) % 60;
+ elapsedTime = elapsedTime + 1000;
+ }
+ Log.d(TAG, "onChronometerTick: " + minutes + " : " + seconds);
+ });
mCallBtn = findViewById(R.id.btn_call);
+ btnMinimize = findViewById(R.id.btn_minimize);
mCameraBtn = findViewById(R.id.btn_camera);
mSwitchCameraBtn = findViewById(R.id.btn_switch_camera);
mspeckerBtn = findViewById(R.id.btn_specker);
@@ -184,17 +212,13 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
videoCallPresenter.callClintConnected(sessionStatusModel);
}
};
- mConnectedHandler.postDelayed(mConnectedRunnable, 30 * 1000);
+ mConnectedHandler.postDelayed(mConnectedRunnable, 55 * 1000);
}
private void hiddenButtons() {
mVolHandler = new Handler();
- mVolRunnable = new Runnable() {
- public void run() {
- controlPanel.setVisibility(View.GONE);
- }
- };
+ mVolRunnable = () -> controlPanel.setVisibility(View.GONE);
mVolHandler.postDelayed(mVolRunnable, 5 * 1000);
}
@@ -256,6 +280,11 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
}
mSession.publish(mPublisher);
+
+ if (!resume) {
+ cmTimer.setBase(SystemClock.elapsedRealtime());
+ }
+ cmTimer.start();
}
@Override
@@ -263,14 +292,15 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
Log.d(TAG, "onDisconnected: disconnected from session " + session.getSessionId());
mSession = null;
+ cmTimer.stop();
}
@Override
public void onError(Session session, OpentokError opentokError) {
Log.d(TAG, "onError: Error (" + opentokError.getMessage() + ") in session " + session.getSessionId());
- Toast.makeText(this, "Session error. See the logcat please.", Toast.LENGTH_LONG).show();
- finish();
+ // Toast.makeText(this, "Session error. See the logcat please.", Toast.LENGTH_LONG).show();
+ //finish();
}
@Override
@@ -282,6 +312,8 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
}
isConnected = true;
subscribeToStream(stream);
+ if(mConnectedHandler!=null && mConnectedRunnable!=null)
+ mConnectedHandler.removeCallbacks(mConnectedRunnable);
videoCallPresenter.callChangeCallStatus(new ChangeCallStatusRequestModel(3,sessionStatusModel.getDoctorId(), sessionStatusModel.getGeneralid(),token,sessionStatusModel.getVCID()));
}
@@ -315,8 +347,8 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
public void onError(PublisherKit publisherKit, OpentokError opentokError) {
Log.d(TAG, "onError: Error (" + opentokError.getMessage() + ") in publisher");
- Toast.makeText(this, "Session error. See the logcat please.", Toast.LENGTH_LONG).show();
- finish();
+ // Toast.makeText(this, "onError: Error (" + opentokError.getMessage() + ") in publisher", Toast.LENGTH_LONG).show();
+ // finish();
}
@Override
@@ -379,6 +411,10 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
finish();
}
+ public void onMinimizedClicked(View view) {
+
+ }
+
public void onSwitchCameraClicked(View view) {
if (mPublisher != null) {
isSwitchCameraClicked = !isSwitchCameraClicked;
@@ -427,6 +463,10 @@ public class VideoCallActivity extends AppCompatActivity implements EasyPermissi
returnIntent.putExtra("sessionStatusNotRespond", sessionStatusModel);
setResult(Activity.RESULT_OK, returnIntent);
finish();
+ } else if( sessionStatusModel.getSessionStatus() == 4 ){
+ isConnected = true;
+ if(mConnectedHandler!=null && mConnectedRunnable!=null)
+ mConnectedHandler.removeCallbacks(mConnectedRunnable);
}
}
diff --git a/android/app/src/main/res/drawable/ic_mini.xml b/android/app/src/main/res/drawable/ic_mini.xml
new file mode 100644
index 00000000..29df8da2
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_mini.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/android/app/src/main/res/drawable/shape_capsule.xml b/android/app/src/main/res/drawable/shape_capsule.xml
new file mode 100644
index 00000000..a5dcdd09
--- /dev/null
+++ b/android/app/src/main/res/drawable/shape_capsule.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/layout/activity_video_call.xml b/android/app/src/main/res/layout/activity_video_call.xml
index 2dcf2ba4..a3c2ced1 100644
--- a/android/app/src/main/res/layout/activity_video_call.xml
+++ b/android/app/src/main/res/layout/activity_video_call.xml
@@ -1,169 +1,181 @@
-
+ android:background="@color/text_color"
+ android:orientation="vertical">
+
-
-
+
+
+
+
+ android:layout_alignParentEnd="true"
+ android:background="@drawable/shape_capsule"
+ android:padding="@dimen/padding_space_small">
+
+
+
+
-
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ tools:context=".ui.VideoCallActivity">
+
+
+
+
+
+
+
+
+ android:background="@color/remoteBackground">
+
-
-
-
+
-
-
+
+
+
+
+
+
+ android:padding="@dimen/padding_space_big_2">
+ android:src="@drawable/ic_mini" />
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml
index d1d2a305..29782be0 100644
--- a/android/app/src/main/res/values/colors.xml
+++ b/android/app/src/main/res/values/colors.xml
@@ -8,4 +8,10 @@
#827b92
#484258
+ #FF2E303A
+
+ #fff
+ #000
+ #389842
+ #d51e26
diff --git a/android/app/src/main/res/values/dimens.xml b/android/app/src/main/res/values/dimens.xml
index 79f3d269..2d53d554 100644
--- a/android/app/src/main/res/values/dimens.xml
+++ b/android/app/src/main/res/values/dimens.xml
@@ -8,7 +8,11 @@
60dp
54dp
+ 64dp
+
+ 24dp
+ 25dp
88dp
117dp
@@ -16,7 +20,16 @@
100dp
90dp
-
- 24dp
- 25dp
+
+ 14sp
+ 16sp
+ 24sp
+
+
+ 4dp
+ 8sp
+ 16dp
+ 24dp
+
+
diff --git a/android/build.gradle b/android/build.gradle
index ea0f0026..badc1b18 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -16,10 +16,12 @@ allprojects {
repositories {
google()
jcenter()
+ mavenCentral()
maven { url 'https://tokbox.bintray.com/maven' }
}
}
+
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
diff --git a/dart b/dart
new file mode 100644
index 00000000..e69de29b
diff --git a/ios/Runner/VideoViewController.swift b/ios/Runner/VideoViewController.swift
index 44e45f3a..0fb39f7c 100644
--- a/ios/Runner/VideoViewController.swift
+++ b/ios/Runner/VideoViewController.swift
@@ -31,7 +31,7 @@ class ViewController: UIViewController {
var callBack: ICallProtocol?
var timer = Timer()
- var seconds = 30
+ var seconds = 55
var isUserConnect : Bool = false
diff --git a/lib/client/base_app_client.dart b/lib/client/base_app_client.dart
index 10181bf4..b1785b0e 100644
--- a/lib/client/base_app_client.dart
+++ b/lib/client/base_app_client.dart
@@ -3,6 +3,7 @@ import 'dart:io' show Platform;
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
+import 'package:doctor_app_flutter/core/service/NavigationService.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_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';
@@ -12,6 +13,9 @@ import 'package:flutter/cupertino.dart';
import 'package:http/http.dart' as http;
import 'package:provider/provider.dart';
+import '../locator.dart';
+import '../routes.dart';
+
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
Helpers helpers = new Helpers();
@@ -116,7 +120,9 @@ class BaseAppClient {
await Provider.of(AppGlobal.CONTEX,
listen: false)
.logout();
+
Helpers.showErrorToast('Your session expired Please login again');
+ locator().pushNamedAndRemoveUntil(ROOT);
}
if (isAllowAny) {
onFailure(getError(parsed), statusCode);
diff --git a/lib/config/config.dart b/lib/config/config.dart
index d3d8f831..8241b36c 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -56,6 +56,8 @@ const ADD_REFERRED_DOCTOR_REMARKS = 'Services/DoctorApplication.svc/REST/AddRefe
const GET_MY_REFERRED_PATIENT = 'Services/DoctorApplication.svc/REST/GtMyReferredPatient';
+const GET_MY_REFERRED_OUT_PATIENT = 'Services/DoctorApplication.svc/REST/GtMyReferredOutPatient';
+
const GET_PENDING_REFERRAL_PATIENT = 'Services/DoctorApplication.svc/REST/PendingReferrals';
const CREATE_REFERRAL_PATIENT = 'Services/DoctorApplication.svc/REST/CreateReferral';
@@ -89,6 +91,7 @@ const CHECK_ACTIVATION_CODE_FOR_DOCTOR_APP = 'Services/DoctorApplication.svc/RES
const GET_DOC_PROFILES = 'Services/Doctors.svc/REST/GetDocProfiles';
const TRANSFERT_TO_ADMIN = 'LiveCareApi/DoctorApp/TransferToAdmin';
+const SEND_SMS_INSTRUCTIONS = 'LiveCareApi/DoctorApp/SendSMSInstruction';
const GET_ALTERNATIVE_SERVICE = 'LiveCareApi/DoctorApp/GetAlternativeServices';
const END_CALL = 'LiveCareApi/DoctorApp/EndCall';
const END_CALL_WITH_CHARGE = 'LiveCareApi/DoctorApp/CompleteCallWithCharge';
@@ -178,6 +181,8 @@ const GET_ECG = "Services/Patients.svc/REST/HIS_GetPatientMuseResults";
const GET_MY_REFERRAL_INPATIENT = "Services/DoctorApplication.svc/REST/GtMyReferralPatient";
+const GET_MY_REFERRAL_OUT_PATIENT = "Services/DoctorApplication.svc/REST/GtMyReferralForOutPatient";
+
const GET_MY_DISCHARGE_PATIENT = "Services/DoctorApplication.svc/REST/GtMyDischargeReferralPatient";
const GET_DISCHARGE_PATIENT = "Services/DoctorApplication.svc/REST/GtMyDischargePatient";
@@ -219,6 +224,9 @@ const GET_PENDING_PATIENT_ER_FOR_DOCTOR_APP = 'Services/DoctorApplication.svc/RE
const DOCTOR_CHECK_HAS_LIVE_CARE = "Services/DoctorApplication.svc/REST/CheckDoctorHasLiveCare";
const LIVE_CARE_IS_LOGIN = "LiveCareApi/DoctorApp/UseIsLogin";
+const ADD_REFERRED_REMARKS_NEW = "Services/DoctorApplication.svc/REST/AddReferredDoctorRemarks_New";
+const GET_SPECIAL_CLINICAL_CARE_LIST = "Services/DoctorApplication.svc/REST/GetSpecialClinicalCareList";
+const GET_SPECIAL_CLINICAL_CARE_MAPPING_LIST = "Services/DoctorApplication.svc/REST/GetSpecialClinicalCareMappingList";
var selectedPatientType = 1;
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 29934937..270907be 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -712,7 +712,7 @@ const Map> localizedValues = {
'days': {'en': "Days", 'ar': "أيام"},
'months': {'en': "Months", 'ar': "أشهر"},
'years': {'en': "Years", 'ar': "سنين"},
- 'hr': {'en': "HR", 'ar': "س"},
+ 'hr': {'en': "Hr", 'ar': "س"},
'min': {'en': "Min", 'ar': "د"},
'appointmentNumber': {'en': "Appointment Number", 'ar': "رقم الموعد"},
'referralStatusHold': {'en': "Hold", 'ar': "معلق"},
@@ -1008,4 +1008,6 @@ const Map> localizedValues = {
"allLab": {"en": "All Lab", "ar": "جميع المختبرات"},
"allPrescription": {"en": "All Prescription", "ar": "جميع الوصفات"},
"addPrescription": {"en": "Add prescription", "ar": "إضافة الوصفات"},
+ "edit": {"en": "Edit", "ar": "تعديل"},
+ "summeryReply": {"en": "Summary Reply", "ar": "موجز الرد"},
};
diff --git a/lib/core/enum/PatientType.dart b/lib/core/enum/PatientType.dart
new file mode 100644
index 00000000..96fd9ae5
--- /dev/null
+++ b/lib/core/enum/PatientType.dart
@@ -0,0 +1,4 @@
+enum PatientType{
+ IN_PATIENT,
+ OUT_PATIENT,
+}
\ No newline at end of file
diff --git a/lib/core/model/live_care/AlternativeServicesList.dart b/lib/core/model/live_care/AlternativeServicesList.dart
index fab11b71..11f27b95 100644
--- a/lib/core/model/live_care/AlternativeServicesList.dart
+++ b/lib/core/model/live_care/AlternativeServicesList.dart
@@ -11,6 +11,7 @@ class AlternativeService {
AlternativeService.fromJson(Map json) {
serviceID = json['ServicID'];
serviceName = json['ServiceName'];
+ isSelected = false;
}
Map toJson() {
diff --git a/lib/core/model/patient_muse/PatientSearchRequestModel.dart b/lib/core/model/patient_muse/PatientSearchRequestModel.dart
index 437c5885..2918a393 100644
--- a/lib/core/model/patient_muse/PatientSearchRequestModel.dart
+++ b/lib/core/model/patient_muse/PatientSearchRequestModel.dart
@@ -11,20 +11,24 @@ class PatientSearchRequestModel {
int searchType;
String mobileNo;
String identificationNo;
+ int nursingStationID;
+ int clinicID;
PatientSearchRequestModel(
- {this.doctorID =0,
- this.firstName ="0",
- this.middleName ="0",
- this.lastName ="0",
- this.patientMobileNumber ="0",
- this.patientIdentificationID ="0",
- this.patientID =0,
- this.searchType =1,
- this.mobileNo="",
- this.identificationNo="0",
- this.from ="0",
- this.to ="0"});
+ {this.doctorID = 0,
+ this.firstName = "0",
+ this.middleName = "0",
+ this.lastName = "0",
+ this.patientMobileNumber = "0",
+ this.patientIdentificationID = "0",
+ this.patientID = 0,
+ this.searchType = 1,
+ this.mobileNo = "",
+ this.identificationNo = "0",
+ this.from = "0",
+ this.to = "0",
+ this.clinicID,
+ this.nursingStationID = 0});
PatientSearchRequestModel.fromJson(Map json) {
doctorID = json['DoctorID'];
@@ -39,6 +43,8 @@ class PatientSearchRequestModel {
searchType = json['SearchType'];
mobileNo = json['MobileNo'];
identificationNo = json['IdentificationNo'];
+ nursingStationID = json['NursingStationID'];
+ clinicID = json['ClinicID'];
}
Map toJson() {
@@ -55,6 +61,8 @@ class PatientSearchRequestModel {
data['SearchType'] = this.searchType;
data['MobileNo'] = this.mobileNo;
data['IdentificationNo'] = this.identificationNo;
+ data['NursingStationID'] = this.nursingStationID;
+ data['ClinicID'] = this.clinicID;
return data;
}
}
diff --git a/lib/core/model/referral/MyReferralPatientModel.dart b/lib/core/model/referral/MyReferralPatientModel.dart
index 797109dd..ce8a6447 100644
--- a/lib/core/model/referral/MyReferralPatientModel.dart
+++ b/lib/core/model/referral/MyReferralPatientModel.dart
@@ -61,71 +61,74 @@ class MyReferralPatientModel {
String priorityDescription;
String referringClinicDescription;
String referringDoctorName;
+ int referalStatus;
MyReferralPatientModel(
{this.rowID,
- this.projectID,
- this.lineItemNo,
- this.doctorID,
- this.patientID,
- this.doctorName,
- this.doctorNameN,
- this.firstName,
- this.middleName,
- this.lastName,
- this.firstNameN,
- this.middleNameN,
- this.lastNameN,
- this.gender,
- this.dateofBirth,
- this.mobileNumber,
- this.emailAddress,
- this.patientIdentificationNo,
- this.patientType,
- this.admissionNo,
- this.admissionDate,
- this.roomID,
- this.bedID,
- this.nursingStationID,
- this.description,
- this.nationalityName,
- this.nationalityNameN,
- this.clinicDescription,
- this.clinicDescriptionN,
- this.referralDoctor,
- this.referringDoctor,
- this.referralClinic,
- this.referringClinic,
- this.referralStatus,
- this.referralDate,
- this.referringDoctorRemarks,
- this.referredDoctorRemarks,
- this.referralResponseOn,
- this.priority,
- this.frequency,
- this.mAXResponseTime,
- this.episodeID,
- this.appointmentNo,
- this.appointmentDate,
- this.appointmentType,
- this.patientMRN,
- this.createdOn,
- this.clinicID,
- this.nationalityID,
- this.age,
- this.doctorImageURL,
- this.frequencyDescription,
- this.genderDescription,
- this.isDoctorLate,
- this.isDoctorResponse,
- this.nationalityFlagURL,
- this.nursingStationName,
- this.priorityDescription,
- this.referringClinicDescription,
- this.referringDoctorName});
+ this.projectID,
+ this.lineItemNo,
+ this.doctorID,
+ this.patientID,
+ this.doctorName,
+ this.doctorNameN,
+ this.firstName,
+ this.middleName,
+ this.lastName,
+ this.firstNameN,
+ this.middleNameN,
+ this.lastNameN,
+ this.gender,
+ this.dateofBirth,
+ this.mobileNumber,
+ this.emailAddress,
+ this.patientIdentificationNo,
+ this.patientType,
+ this.admissionNo,
+ this.admissionDate,
+ this.roomID,
+ this.bedID,
+ this.nursingStationID,
+ this.description,
+ this.nationalityName,
+ this.nationalityNameN,
+ this.clinicDescription,
+ this.clinicDescriptionN,
+ this.referralDoctor,
+ this.referringDoctor,
+ this.referralClinic,
+ this.referringClinic,
+ this.referralStatus,
+ this.referralDate,
+ this.referringDoctorRemarks,
+ this.referredDoctorRemarks,
+ this.referralResponseOn,
+ this.priority,
+ this.frequency,
+ this.mAXResponseTime,
+ this.episodeID,
+ this.appointmentNo,
+ this.appointmentDate,
+ this.appointmentType,
+ this.patientMRN,
+ this.createdOn,
+ this.clinicID,
+ this.nationalityID,
+ this.age,
+ this.doctorImageURL,
+ this.frequencyDescription,
+ this.genderDescription,
+ this.isDoctorLate,
+ this.isDoctorResponse,
+ this.nationalityFlagURL,
+ this.nursingStationName,
+ this.priorityDescription,
+ this.referringClinicDescription,
+ this.referringDoctorName,
+ this.referalStatus});
MyReferralPatientModel.fromJson(Map json) {
rowID = json['RowID'];
+ referalStatus = json['ReferalStatus'];
projectID = json['ProjectID'];
lineItemNo = json['LineItemNo'];
doctorID = json['DoctorID'];
@@ -158,8 +161,21 @@ class MyReferralPatientModel {
referringDoctor = json['ReferringDoctor'];
referralClinic = json['ReferralClinic'];
referringClinic = json['ReferringClinic'];
- referralStatus = json['ReferralStatus'];
- referralDate = AppDateUtils.convertStringToDate(json['ReferralDate']);
+ referralStatus = json["ReferralStatus"] is String
+ ? json['ReferralStatus'] == "Accepted"
+ ? 46
+ : json['ReferralStatus'] == "Pending"
+ ? 1
+ : 0
+ : json["ReferralStatus"];
+ try {
+ referralDate = AppDateUtils.getDateTimeFromString(json['ReferralDate']);
+ } catch (e) {
+ referralDate = AppDateUtils.convertStringToDate(json['ReferralDate']);
+ } finally {
+ referralDate = DateTime.now();
+ }
+
referringDoctorRemarks = json['ReferringDoctorRemarks'];
referredDoctorRemarks = json['ReferredDoctorRemarks'];
referralResponseOn = json['ReferralResponseOn'];
@@ -190,6 +206,7 @@ class MyReferralPatientModel {
Map toJson() {
final Map data = new Map();
data['RowID'] = this.rowID;
+ data['ReferalStatus'] = this.referalStatus;
data['ProjectID'] = this.projectID;
data['LineItemNo'] = this.lineItemNo;
data['DoctorID'] = this.doctorID;
@@ -253,6 +270,6 @@ class MyReferralPatientModel {
}
get patientName {
- return this.firstName+" "+this.lastName;
+ return this.firstName + " " + this.lastName;
}
}
diff --git a/lib/core/model/referral/MyReferralPatientRequestModel.dart b/lib/core/model/referral/MyReferralPatientRequestModel.dart
new file mode 100644
index 00000000..08b98a99
--- /dev/null
+++ b/lib/core/model/referral/MyReferralPatientRequestModel.dart
@@ -0,0 +1,104 @@
+class MyReferralPatientRequestModel {
+ int channel;
+ int clinicID;
+ int doctorID;
+ int editedBy;
+ String firstName;
+ String from;
+ String iPAdress;
+ bool isLoginForDoctorApp;
+ int languageID;
+ String lastName;
+ String middleName;
+ int patientID;
+ String patientIdentificationID;
+ String patientMobileNumber;
+ bool patientOutSA;
+ int patientTypeID;
+ int projectID;
+ String sessionID;
+ String stamp;
+ String to;
+ String tokenID;
+ double versionID;
+ String vidaAuthTokenID;
+
+ MyReferralPatientRequestModel(
+ {this.channel,
+ this.clinicID,
+ this.doctorID,
+ this.editedBy,
+ this.firstName,
+ this.from,
+ this.iPAdress,
+ this.isLoginForDoctorApp,
+ this.languageID,
+ this.lastName,
+ this.middleName,
+ this.patientID,
+ this.patientIdentificationID,
+ this.patientMobileNumber,
+ this.patientOutSA,
+ this.patientTypeID,
+ this.projectID,
+ this.sessionID,
+ this.stamp,
+ this.to,
+ this.tokenID,
+ this.versionID,
+ this.vidaAuthTokenID});
+
+ MyReferralPatientRequestModel.fromJson(Map json) {
+ channel = json['Channel'];
+ clinicID = json['ClinicID'];
+ doctorID = json['DoctorID'];
+ editedBy = json['EditedBy'];
+ firstName = json['FirstName'];
+ from = json['From'];
+ iPAdress = json['IPAdress'];
+ isLoginForDoctorApp = json['IsLoginForDoctorApp'];
+ languageID = json['LanguageID'];
+ lastName = json['LastName'];
+ middleName = json['MiddleName'];
+ patientID = json['PatientID'];
+ patientIdentificationID = json['PatientIdentificationID'];
+ patientMobileNumber = json['PatientMobileNumber'];
+ patientOutSA = json['PatientOutSA'];
+ patientTypeID = json['PatientTypeID'];
+ projectID = json['ProjectID'];
+ sessionID = json['SessionID'];
+ stamp = json['stamp'];
+ to = json['To'];
+ tokenID = json['TokenID'];
+ versionID = json['VersionID'];
+ vidaAuthTokenID = json['VidaAuthTokenID'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['Channel'] = this.channel;
+ data['ClinicID'] = this.clinicID;
+ data['DoctorID'] = this.doctorID;
+ data['EditedBy'] = this.editedBy;
+ data['FirstName'] = this.firstName;
+ data['From'] = this.from;
+ data['IPAdress'] = this.iPAdress;
+ data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
+ data['LanguageID'] = this.languageID;
+ data['LastName'] = this.lastName;
+ data['MiddleName'] = this.middleName;
+ data['PatientID'] = this.patientID;
+ data['PatientIdentificationID'] = this.patientIdentificationID;
+ data['PatientMobileNumber'] = this.patientMobileNumber;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['ProjectID'] = this.projectID;
+ data['SessionID'] = this.sessionID;
+ data['stamp'] = this.stamp;
+ data['To'] = this.to;
+ data['TokenID'] = this.tokenID;
+ data['VersionID'] = this.versionID;
+ data['VidaAuthTokenID'] = this.vidaAuthTokenID;
+ return data;
+ }
+}
diff --git a/lib/core/model/referral/add_referred_remarks_request.dart b/lib/core/model/referral/add_referred_remarks_request.dart
new file mode 100644
index 00000000..14089513
--- /dev/null
+++ b/lib/core/model/referral/add_referred_remarks_request.dart
@@ -0,0 +1,72 @@
+class AddReferredRemarksRequestModel {
+ int projectID;
+ int admissionNo;
+ int lineItemNo;
+ String referredDoctorRemarks;
+ int editedBy;
+ int referalStatus;
+ bool isLoginForDoctorApp;
+ String iPAdress;
+ bool patientOutSA;
+ String tokenID;
+ int languageID;
+ double versionID;
+ int channel;
+ String sessionID;
+ int deviceTypeID;
+
+ AddReferredRemarksRequestModel(
+ {this.projectID,
+ this.admissionNo,
+ this.lineItemNo,
+ this.referredDoctorRemarks,
+ this.editedBy,
+ this.referalStatus,
+ this.isLoginForDoctorApp,
+ this.iPAdress,
+ this.patientOutSA,
+ this.tokenID,
+ this.languageID,
+ this.versionID,
+ this.channel,
+ this.sessionID,
+ this.deviceTypeID});
+
+ AddReferredRemarksRequestModel.fromJson(Map json) {
+ projectID = json['ProjectID'];
+ admissionNo = json['AdmissionNo'];
+ lineItemNo = json['LineItemNo'];
+ referredDoctorRemarks = json['ReferredDoctorRemarks'];
+ editedBy = json['EditedBy'];
+ referalStatus = json['ReferalStatus'];
+ isLoginForDoctorApp = json['IsLoginForDoctorApp'];
+ iPAdress = json['IPAdress'];
+ patientOutSA = json['PatientOutSA'];
+ tokenID = json['TokenID'];
+ languageID = json['LanguageID'];
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ sessionID = json['SessionID'];
+ deviceTypeID = json['DeviceTypeID'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ProjectID'] = this.projectID;
+ data['AdmissionNo'] = this.admissionNo;
+ data['LineItemNo'] = this.lineItemNo;
+ data['ReferredDoctorRemarks'] = this.referredDoctorRemarks;
+ data['EditedBy'] = this.editedBy;
+ data['ReferalStatus'] = this.referalStatus;
+ data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
+ data['IPAdress'] = this.iPAdress;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['TokenID'] = this.tokenID;
+ data['LanguageID'] = this.languageID;
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['SessionID'] = this.sessionID;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ return data;
+ }
+}
diff --git a/lib/core/service/NavigationService.dart b/lib/core/service/NavigationService.dart
new file mode 100644
index 00000000..426ace4d
--- /dev/null
+++ b/lib/core/service/NavigationService.dart
@@ -0,0 +1,12 @@
+import 'package:flutter/material.dart';
+
+class NavigationService {
+ final GlobalKey navigatorKey =
+ new GlobalKey();
+ Future navigateTo(String routeName) {
+ return navigatorKey.currentState.pushNamed(routeName);
+ }
+ Future pushNamedAndRemoveUntil(String routeName) {
+ return navigatorKey.currentState.pushNamedAndRemoveUntil(routeName,(asd)=>false);
+ }
+}
\ No newline at end of file
diff --git a/lib/core/service/home/dasboard_service.dart b/lib/core/service/home/dasboard_service.dart
index b35d24f2..ad3ec887 100644
--- a/lib/core/service/home/dasboard_service.dart
+++ b/lib/core/service/home/dasboard_service.dart
@@ -1,10 +1,12 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart';
+import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_List_Respose_Model.dart';
class DashboardService extends BaseService {
List _dashboardItemsList = [];
List get dashboardItemsList => _dashboardItemsList;
+
bool hasVirtualClinic = false;
String sServiceID;
@@ -24,8 +26,6 @@ class DashboardService extends BaseService {
super.error = error;
},
body: {
- // "VidaAuthTokenID":
- // "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyODA0IiwianRpIjoiZDYxZmM5MTQtZWFhYy00YjQ4LTgyMmEtMmE3OTNlZDMzZGYwIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMjgwNCIsIk5hbWUiOiJNVUhBTU1BRCBBWkFNIiwiRW1wbG95ZWVJZCI6IjE0ODUiLCJGYWNpbGl0eUdyb3VwSWQiOiIwMTAyNjYiLCJGYWNpbGl0eUlkIjoiMTUiLCJQaGFyYW1jeUZhY2lsaXR5SWQiOiI1NSIsIklTX1BIQVJNQUNZX0NPTk5FQ1RFRCI6IlRydWUiLCJEb2N0b3JJZCI6IjE0ODUiLCJTRVNTSU9OSUQiOiIyMTU3NTgwOCIsIkNsaW5pY0lkIjoiMyIsInJvbGUiOlsiU0VDVVJJVFkgQURNSU5JU1RSQVRPUlMiLCJTRVRVUCBBRE1JTklTVFJBVE9SUyIsIkNFTydTIiwiRVhFQ1VUSVZFIERJUkVDVE9SUyIsIk1BTkFHRVJTIiwiU1VQRVJWSVNPUlMiLCJDTElFTlQgU0VSVklDRVMgQ09PUkRJTkFUT1JTIiwiQ0xJRU5UIFNFUlZJQ0VTIFNVUEVSVklTT1JTIiwiQ0xJRU5UIFNFUlZJQ0VTIE1BTkdFUlMiLCJIRUFEIE5VUlNFUyIsIkRPQ1RPUlMiLCJDSElFRiBPRiBNRURJQ0FMIFNUQUZGUyIsIkJJTy1NRURJQ0FMIFRFQ0hOSUNJQU5TIiwiQklPLU1FRElDQUwgRU5HSU5FRVJTIiwiQklPLU1FRElDQUwgREVQQVJUTUVOVCBIRUFEUyIsIklUIEhFTFAgREVTSyIsIkFETUlOSVNUUkFUT1JTIiwiTEFCIEFETUlOSVNUUkFUT1IiLCJMQUIgVEVDSE5JQ0lBTiIsIkJVU0lORVNTIE9GRklDRSBTVEFGRiIsIkZJTkFOQ0UgQUNDT1VOVEFOVFMiLCJQSEFSTUFDWSBTVEFGRiIsIkFDQ09VTlRTIFNUQUZGIiwiTEFCIFJFQ0VQVElPTklTVCIsIkVSIE5VUlNFIiwiSU5QQVRJRU5UIEJJTExJTkcgU1VQRVJWSVNPUiIsIkxEUi1PUiBOVVJTRVMiLCJBRE1JU1NJT04gU1RBRkYiLCJIRUxQIERFU0sgQURNSU4iLCJBUFBST1ZBTCBTVEFGRiIsIklOUEFUSUVOVCBCSUxMSU5HIENPT1JESU5BVE9SIiwiQklMTElORyBTVEFGRiIsIkNPTlNFTlQgIiwiQ29uc2VudCAtIERlbnRhbCIsIldFQkVNUiJdLCJuYmYiOjE2MDgwMjg0NzQsImV4cCI6MTYwODg5MjQ3NCwiaWF0IjoxNjA4MDI4NDc0fQ.8OJcy6vUuPnNTi_qSjip8YCrFdaRLtJKbNKXcMtnQxk"
},
);
}
@@ -48,4 +48,5 @@ class DashboardService extends BaseService {
},
);
}
+
}
diff --git a/lib/core/service/home/scan_qr_service.dart b/lib/core/service/home/scan_qr_service.dart
new file mode 100644
index 00000000..bc6c8820
--- /dev/null
+++ b/lib/core/service/home/scan_qr_service.dart
@@ -0,0 +1,41 @@
+import 'package:doctor_app_flutter/config/config.dart';
+import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
+import 'package:doctor_app_flutter/core/service/base/base_service.dart';
+import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
+
+class ScanQrService extends BaseService {
+ List myInPatientList = List();
+ List inPatientList = List();
+
+ Future getInPatient(PatientSearchRequestModel requestModel, bool isMyInpatient) async {
+ hasError = false;
+ await getDoctorProfile();
+
+ if (isMyInpatient) {
+ requestModel.doctorID = doctorProfile.doctorID;
+ } else {
+ requestModel.doctorID = 0;
+ }
+
+ await baseAppClient.post(
+ GET_PATIENT_IN_PATIENT_LIST,
+ onSuccess: (dynamic response, int statusCode) {
+ inPatientList.clear();
+ myInPatientList.clear();
+
+ response['List_MyInPatient'].forEach((v) {
+ PatiantInformtion patient = PatiantInformtion.fromJson(v);
+ inPatientList.add(patient);
+ if (patient.doctorId == doctorProfile.doctorID) {
+ myInPatientList.add(patient);
+ }
+ });
+ },
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ body: requestModel.toJson(),
+ );
+ }
+}
diff --git a/lib/core/service/patient/LiveCarePatientServices.dart b/lib/core/service/patient/LiveCarePatientServices.dart
index ed09bbb9..29b120ec 100644
--- a/lib/core/service/patient/LiveCarePatientServices.dart
+++ b/lib/core/service/patient/LiveCarePatientServices.dart
@@ -1,4 +1,3 @@
-import 'dart:collection';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/live_care/AlternativeServicesList.dart';
@@ -19,7 +18,7 @@ class LiveCarePatientServices extends BaseService {
bool _isFinished = false;
- bool _isLive = false;
+ bool _isLive = true;
bool get isFinished => _isFinished;
@@ -75,7 +74,7 @@ class LiveCarePatientServices extends BaseService {
}, body: startCallReq.toJson(), isLiveCare: _isLive);
}
- Future endCallWithCharge(int vcID, String altServiceList) async {
+ Future endCallWithCharge(int vcID, List altServiceList) async {
hasError = false;
await baseAppClient.post(END_CALL_WITH_CHARGE, onSuccess: (dynamic response, int statusCode) {
endCallResponse = response;
@@ -85,6 +84,7 @@ class LiveCarePatientServices extends BaseService {
}, body: {
"VC_ID": vcID,
"AltServiceList": altServiceList,
+ "generalid":GENERAL_ID
}, isLiveCare: _isLive);
}
@@ -102,8 +102,23 @@ class LiveCarePatientServices extends BaseService {
}, isLiveCare: _isLive);
}
+ Future sendSMSInstruction(int vcID) async {
+ hasError = false;
+ await baseAppClient.post(SEND_SMS_INSTRUCTIONS,
+ onSuccess: (dynamic response, int statusCode) {
+ transferToAdminResponse = response;
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: {
+ "VC_ID": vcID, "generalid": GENERAL_ID
+ }, isLiveCare: _isLive);
+ }
+
Future isLogin({LiveCareUserLoginRequestModel isLoginRequestModel, int loginStatus}) async {
hasError = false;
+ await getDoctorProfile( );
+ isLoginRequestModel.doctorId = super.doctorProfile.doctorID;
await baseAppClient.post(LIVE_CARE_IS_LOGIN, onSuccess: (response, statusCode) async {
isLoginResponse = response;
}, onFailure: (String error, int statusCode) {
@@ -126,6 +141,7 @@ class LiveCarePatientServices extends BaseService {
super.error = error;
}, body: {
"VC_ID": vcID,
- }, isLiveCare: _isLive);
+ "generalid": GENERAL_ID
+ }, isLiveCare: _isLive);
}
}
diff --git a/lib/core/service/patient/MyReferralPatientService.dart b/lib/core/service/patient/MyReferralPatientService.dart
index 536e68a7..87fcdd23 100644
--- a/lib/core/service/patient/MyReferralPatientService.dart
+++ b/lib/core/service/patient/MyReferralPatientService.dart
@@ -1,5 +1,7 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart';
+import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientRequestModel.dart';
+import 'package:doctor_app_flutter/core/model/referral/add_referred_remarks_request.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/doctor/request_add_referred_doctor_remarks.dart';
@@ -8,22 +10,21 @@ class MyReferralInPatientService extends BaseService {
Future getMyReferralPatientService() async {
hasError = false;
- Map body = Map();
await getDoctorProfile();
- body['DoctorID'] = doctorProfile.doctorID;
- body['FirstName'] = "0";
- body['MiddleName'] = "0";
- body['LastName'] = "0";
- body['PatientMobileNumber'] = "0";
- body['PatientIdentificationID'] = "0";
- body['PatientID'] = 0;
- body['From'] = "0";
- body['To'] = "0";
- body['stamp'] = DateTime.now().toIso8601String();
- body['IsLoginForDoctorApp'] = true;
- body['IPAdress'] = "11.11.11.11";
- body['PatientOutSA'] = false;
- body['PatientTypeID'] = 1;
+
+ MyReferralPatientRequestModel myReferralPatientRequestModel = MyReferralPatientRequestModel(
+ doctorID: doctorProfile.doctorID,
+ firstName: "0",
+ middleName: "0",
+ lastName: "0",
+ patientMobileNumber: "0",
+ patientIdentificationID: "0",
+ patientID: 0,
+ from: "0",
+ to: "0",
+ stamp: DateTime.now().toIso8601String(),
+ isLoginForDoctorApp: true,
+ patientTypeID: 1);
myReferralPatients.clear();
await baseAppClient.post(
GET_MY_REFERRAL_INPATIENT,
@@ -38,22 +39,53 @@ class MyReferralInPatientService extends BaseService {
hasError = true;
super.error = error;
},
- body: body,
+ body: myReferralPatientRequestModel.toJson(),
+ );
+ }
+
+ Future getMyReferralOutPatientService() async {
+ hasError = false;
+ await getDoctorProfile();
+
+ MyReferralPatientRequestModel myReferralPatientRequestModel = MyReferralPatientRequestModel(
+ doctorID: doctorProfile.doctorID,
+ firstName: "0",
+ middleName: "0",
+ lastName: "0",
+ patientMobileNumber: "0",
+ patientIdentificationID: "0",
+ patientID: 0,
+ from: "0",
+ to: "0",
+ stamp: DateTime.now().toIso8601String(),
+ isLoginForDoctorApp: true,
+ patientTypeID: 1);
+ myReferralPatients.clear();
+ await baseAppClient.post(
+ GET_MY_REFERRAL_OUT_PATIENT,
+ onSuccess: (dynamic response, int statusCode) {
+ if (response['List_MyOutPatientReferral'] != null) {
+ response['List_MyOutPatientReferral'].forEach((v) {
+ myReferralPatients.add(MyReferralPatientModel.fromJson(v));
+ });
+ }
+ },
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ body: myReferralPatientRequestModel.toJson(),
);
}
- Future replay(
- String referredDoctorRemarks, MyReferralPatientModel referral) async {
+ Future replay(String referredDoctorRemarks, MyReferralPatientModel referral) async {
hasError = false;
await getDoctorProfile();
- RequestAddReferredDoctorRemarks _requestAddReferredDoctorRemarks =
- RequestAddReferredDoctorRemarks();
+ RequestAddReferredDoctorRemarks _requestAddReferredDoctorRemarks = RequestAddReferredDoctorRemarks();
_requestAddReferredDoctorRemarks.projectID = referral.projectID;
- _requestAddReferredDoctorRemarks.admissionNo =
- referral.admissionNo.toString();
+ _requestAddReferredDoctorRemarks.admissionNo = referral.admissionNo.toString();
_requestAddReferredDoctorRemarks.lineItemNo = referral.lineItemNo;
- _requestAddReferredDoctorRemarks.referredDoctorRemarks =
- referredDoctorRemarks;
+ _requestAddReferredDoctorRemarks.referredDoctorRemarks = referredDoctorRemarks;
_requestAddReferredDoctorRemarks.editedBy = doctorProfile.doctorID;
_requestAddReferredDoctorRemarks.patientID = referral.patientID;
_requestAddReferredDoctorRemarks.referringDoctor = referral.referringDoctor;
@@ -67,4 +99,32 @@ class MyReferralInPatientService extends BaseService {
},
);
}
+
+ Future replayReferred(String referredDoctorRemarks, MyReferralPatientModel referral, int referalStatus) async {
+ hasError = false;
+ await getDoctorProfile();
+ AddReferredRemarksRequestModel _requestAddReferredDoctorRemarks = AddReferredRemarksRequestModel(
+ editedBy: doctorProfile.doctorID,
+ projectID: doctorProfile.projectID,
+ referredDoctorRemarks: referredDoctorRemarks,
+ referalStatus: referalStatus);
+ _requestAddReferredDoctorRemarks.projectID = referral.projectID;
+ _requestAddReferredDoctorRemarks.admissionNo = int.parse(referral.admissionNo);
+ _requestAddReferredDoctorRemarks.lineItemNo = referral.lineItemNo;
+ _requestAddReferredDoctorRemarks.referredDoctorRemarks = referredDoctorRemarks;
+ _requestAddReferredDoctorRemarks.editedBy = doctorProfile.doctorID;
+ _requestAddReferredDoctorRemarks.referalStatus = referalStatus;
+
+ // _requestAddReferredDoctorRemarks.patientID = referral.patientID;
+ // _requestAddReferredDoctorRemarks.referringDoctor = referral.referringDoctor;
+ await baseAppClient.post(
+ ADD_REFERRED_REMARKS_NEW,
+ body: _requestAddReferredDoctorRemarks.toJson(),
+ onSuccess: (dynamic body, int statusCode) {},
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ );
+ }
}
diff --git a/lib/core/service/patient/patient-doctor-referral-service.dart b/lib/core/service/patient/patient-doctor-referral-service.dart
index c83c74c9..81529590 100644
--- a/lib/core/service/patient/patient-doctor-referral-service.dart
+++ b/lib/core/service/patient/patient-doctor-referral-service.dart
@@ -157,6 +157,36 @@ class PatientReferralService extends LookupService {
);
}
+ Future getMyReferredOutPatient() async {
+ hasError = false;
+ RequestMyReferralPatientModel _requestMyReferralPatient =
+ RequestMyReferralPatientModel();
+ DoctorProfileModel doctorProfile = await getDoctorProfile();
+
+ await baseAppClient.post(
+ GET_MY_REFERRED_OUT_PATIENT,
+ onSuccess: (dynamic response, int statusCode) {
+ listMyReferredPatientModel.clear();
+
+ response['List_MyReferredOutPatient'].forEach((v) {
+ MyReferredPatientModel item = MyReferredPatientModel.fromJson(v);
+ if (doctorProfile != null) {
+ item.isReferralDoctorSameBranch =
+ doctorProfile.projectID == item.projectID;
+ } else {
+ item.isReferralDoctorSameBranch = false;
+ }
+ listMyReferredPatientModel.add(item);
+ });
+ },
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ body: _requestMyReferralPatient.toJson(),
+ );
+ }
+
Future getPendingReferralList() async {
hasError = false;
DoctorProfileModel doctorProfile = await getDoctorProfile();
diff --git a/lib/core/service/patient/patient_service.dart b/lib/core/service/patient/patient_service.dart
index e15cc8d1..25e9481b 100644
--- a/lib/core/service/patient/patient_service.dart
+++ b/lib/core/service/patient/patient_service.dart
@@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/model/note/CreateNoteModel.dart';
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/model/note/update_note_model.dart';
+import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/patient/get_clinic_by_project_id_request.dart';
@@ -12,6 +13,7 @@ import 'package:doctor_app_flutter/models/patient/get_list_stp_referral_frequenc
import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart';
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart';
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result_req_model.dart';
+import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report_for_in_patient.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_res_model.dart';
@@ -22,20 +24,19 @@ import 'package:doctor_app_flutter/models/patient/vital_sign/vital_sign_res_mode
class PatientService extends BaseService {
List _patientVitalSignList = [];
List patientVitalSignOrderdSubList = [];
+ List inPatientList = List();
+ List myInPatientList = List();
List get patientVitalSignList => _patientVitalSignList;
List _patientLabResultOrdersList = [];
- List get patientLabResultOrdersList =>
- _patientLabResultOrdersList;
+ List get patientLabResultOrdersList => _patientLabResultOrdersList;
- List get patientPrescriptionsList =>
- _patientPrescriptionsList;
+ List get patientPrescriptionsList => _patientPrescriptionsList;
List _patientPrescriptionsList = [];
- List get prescriptionReportForInPatientList =>
- _prescriptionReportForInPatientList;
+ List get prescriptionReportForInPatientList => _prescriptionReportForInPatientList;
List _prescriptionReportForInPatientList = [];
List _patientRadiologyList = [];
@@ -79,12 +80,9 @@ class PatientService extends BaseService {
get referalFrequancyList => _referalFrequancyList;
- DoctorsByClinicIdRequest _doctorsByClinicIdRequest =
- DoctorsByClinicIdRequest();
- STPReferralFrequencyRequest _referralFrequencyRequest =
- STPReferralFrequencyRequest();
- ClinicByProjectIdRequest _clinicByProjectIdRequest =
- ClinicByProjectIdRequest();
+ DoctorsByClinicIdRequest _doctorsByClinicIdRequest = DoctorsByClinicIdRequest();
+ STPReferralFrequencyRequest _referralFrequencyRequest = STPReferralFrequencyRequest();
+ ClinicByProjectIdRequest _clinicByProjectIdRequest = ClinicByProjectIdRequest();
ReferToDoctorRequest _referToDoctorRequest;
Future getPatientList(patient, patientType, {isView}) async {
@@ -138,6 +136,38 @@ class PatientService extends BaseService {
return Future.value(localRes);
}
+ Future getInPatient(PatientSearchRequestModel requestModel, bool isMyInpatient) async {
+ hasError = false;
+ await getDoctorProfile();
+
+ if (isMyInpatient) {
+ requestModel.doctorID = doctorProfile.doctorID;
+ } else {
+ requestModel.doctorID = 0;
+ }
+
+ await baseAppClient.post(
+ GET_PATIENT_IN_PATIENT_LIST,
+ onSuccess: (dynamic response, int statusCode) {
+ inPatientList.clear();
+ myInPatientList.clear();
+
+ response['List_MyInPatient'].forEach((v) {
+ PatiantInformtion patient = PatiantInformtion.fromJson(v);
+ inPatientList.add(patient);
+ if (patient.doctorId == doctorProfile.doctorID) {
+ myInPatientList.add(patient);
+ }
+ });
+ },
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ body: requestModel.toJson(),
+ );
+ }
+
Future getLabResultOrders(patient) async {
hasError = false;
await baseAppClient.post(
@@ -181,8 +211,7 @@ class PatientService extends BaseService {
onSuccess: (dynamic response, int statusCode) {
_prescriptionReportForInPatientList = [];
response['List_PrescriptionReportForInPatient'].forEach((v) {
- prescriptionReportForInPatientList
- .add(PrescriptionReportForInPatient.fromJson(v));
+ prescriptionReportForInPatientList.add(PrescriptionReportForInPatient.fromJson(v));
});
},
onFailure: (String error, int statusCode) {
diff --git a/lib/core/service/patient/referred_patient_service.dart b/lib/core/service/patient/referred_patient_service.dart
deleted file mode 100644
index 0af9b077..00000000
--- a/lib/core/service/patient/referred_patient_service.dart
+++ /dev/null
@@ -1,36 +0,0 @@
-import 'package:doctor_app_flutter/config/config.dart';
-import 'package:doctor_app_flutter/core/service/base/base_service.dart';
-import 'package:doctor_app_flutter/models/doctor/verify_referral_doctor_remarks.dart';
-import 'package:doctor_app_flutter/models/patient/my_referral/my_referred_patient_model.dart';
-import 'package:doctor_app_flutter/models/patient/request_my_referral_patient_model.dart';
-
-class ReferredPatientService extends BaseService {
- List _listMyReferredPatientModel = [];
-
- List get listMyReferredPatientModel =>
- _listMyReferredPatientModel;
-
- RequestMyReferralPatientModel _requestMyReferralPatient =
- RequestMyReferralPatientModel();
- VerifyReferralDoctorRemarks _verifyreferraldoctorremarks =
- VerifyReferralDoctorRemarks();
-
- Future getMyReferredPatient() async {
- await baseAppClient.post(
- GET_MY_REFERRED_PATIENT,
- onSuccess: (dynamic response, int statusCode) {
- _listMyReferredPatientModel.clear();
- response['List_MyReferredPatient'].forEach((v) {
- listMyReferredPatientModel.add(MyReferredPatientModel.fromJson(v));
- });
- // print(response['List_MyReferredPatient']);
- },
- onFailure: (String error, int statusCode) {
- hasError = true;
- super.error = error;
- },
- body: _requestMyReferralPatient.toJson(),
- );
- }
-
-}
diff --git a/lib/core/service/special_clinics/special_clinic_service.dart b/lib/core/service/special_clinics/special_clinic_service.dart
new file mode 100644
index 00000000..49237331
--- /dev/null
+++ b/lib/core/service/special_clinics/special_clinic_service.dart
@@ -0,0 +1,57 @@
+import 'package:doctor_app_flutter/config/config.dart';
+import 'package:doctor_app_flutter/core/service/base/base_service.dart';
+import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart';
+import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_List_Respose_Model.dart';
+import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart';
+
+class SpecialClinicsService extends BaseService {
+
+
+ List _specialClinicalCareList = [];
+ List get specialClinicalCareList => _specialClinicalCareList;
+
+ List _specialClinicalCareMappingList = [];
+ List get specialClinicalCareMappingList => _specialClinicalCareMappingList;
+ Future getSpecialClinicalCareList() async {
+ hasError = false;
+ await baseAppClient.post(
+ GET_SPECIAL_CLINICAL_CARE_LIST,
+ onSuccess: (dynamic response, int statusCode) {
+
+ _specialClinicalCareList.clear();
+ response['List_SpecialClinicalCareList'].forEach((v) {
+ _specialClinicalCareList.add(GetSpecialClinicalCareListResponseModel.fromJson(v));
+ });},
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ body: {
+ },
+ );
+ }
+
+
+ Future getSpecialClinicalCareMappingList(int clinicId) async {
+ hasError = false;
+ await baseAppClient.post(
+ GET_SPECIAL_CLINICAL_CARE_MAPPING_LIST,
+ onSuccess: (dynamic response, int statusCode) {
+
+ _specialClinicalCareMappingList.clear();
+ response['List_SpecialClinicalCareMappingList'].forEach((v) {
+ _specialClinicalCareMappingList.add(GetSpecialClinicalCareMappingListResponseModel.fromJson(v));
+ });},
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ },
+ body: {
+ "ClinicID": clinicId,
+ "DoctorID":0,
+ "EditedBy":0
+ },
+ );
+ }
+
+}
diff --git a/lib/core/viewModel/LiveCarePatientViewModel.dart b/lib/core/viewModel/LiveCarePatientViewModel.dart
index a3d82907..378013bd 100644
--- a/lib/core/viewModel/LiveCarePatientViewModel.dart
+++ b/lib/core/viewModel/LiveCarePatientViewModel.dart
@@ -101,13 +101,13 @@ class LiveCarePatientViewModel extends BaseViewModel {
Future endCallWithCharge(int vcID, bool isConfirmed) async {
setState(ViewState.BusyLocal);
- String selectedServicesString = "";
+ List selectedServices = [];
if (isConfirmed) {
- selectedServicesString = getSelectedAlternativeServices();
+ selectedServices = getSelectedAlternativeServices();
}
await _liveCarePatientServices.endCallWithCharge(
- vcID, selectedServicesString);
+ vcID, selectedServices);
if (_liveCarePatientServices.hasError) {
error = _liveCarePatientServices.error;
setState(ViewState.ErrorLocal);
@@ -117,14 +117,14 @@ class LiveCarePatientViewModel extends BaseViewModel {
}
}
- String getSelectedAlternativeServices() {
+ List getSelectedAlternativeServices() {
List selectedServices = List();
for (AlternativeService service in alternativeServicesList) {
if (service.isSelected) {
selectedServices.add(service.serviceID);
}
}
- return selectedServices.toString();
+ return selectedServices;
}
Future getAlternativeServices(int vcID) async {
@@ -150,6 +150,18 @@ class LiveCarePatientViewModel extends BaseViewModel {
}
}
+ Future sendSMSInstruction(int vcID) async {
+ setState(ViewState.BusyLocal);
+ await _liveCarePatientServices.sendSMSInstruction(vcID);
+ if (_liveCarePatientServices.hasError) {
+ error = _liveCarePatientServices.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ await getPendingPatientERForDoctorApp();
+ setState(ViewState.Idle);
+ }
+ }
+
searchData(String str) {
var strExist = str.length > 0 ? true : false;
if (strExist) {
diff --git a/lib/core/viewModel/PatientMedicalReportViewModel.dart b/lib/core/viewModel/PatientMedicalReportViewModel.dart
index 999a0530..293cf587 100644
--- a/lib/core/viewModel/PatientMedicalReportViewModel.dart
+++ b/lib/core/viewModel/PatientMedicalReportViewModel.dart
@@ -25,12 +25,24 @@ class PatientMedicalReportViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
+ bool hasOnHold(){
+ bool hasHold = false;
+ medicalReportList.forEach((element) {
+ if(element.status == 1){
+ hasHold = true;
+ }
+ });
+
+ return hasHold;
+
+ }
+
Future getMedicalReportTemplate() async {
- setState(ViewState.Busy);
+ setState(ViewState.BusyLocal);
await _service.getMedicalReportTemplate();
if (_service.hasError) {
error = _service.error;
- setState(ViewState.Error);
+ setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
diff --git a/lib/core/viewModel/PatientSearchViewModel.dart b/lib/core/viewModel/PatientSearchViewModel.dart
index a0cd68d9..e0ee8948 100644
--- a/lib/core/viewModel/PatientSearchViewModel.dart
+++ b/lib/core/viewModel/PatientSearchViewModel.dart
@@ -4,6 +4,8 @@ import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/service/patient/out_patient_service.dart';
import 'package:doctor_app_flutter/core/service/patient/patientInPatientService.dart';
+import 'package:doctor_app_flutter/core/service/special_clinics/special_clinic_service.dart';
+import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
@@ -12,8 +14,10 @@ import 'base_view_model.dart';
class PatientSearchViewModel extends BaseViewModel {
OutPatientService _outPatientService = locator();
+ SpecialClinicsService _specialClinicsService = locator();
List get patientList => _outPatientService.patientList;
+ List get specialClinicalCareMappingList => _specialClinicsService.specialClinicalCareMappingList;
List filterData = [];
@@ -143,15 +147,22 @@ class PatientSearchViewModel extends BaseViewModel {
List filteredInPatientItems = List();
Future getInPatientList(PatientSearchRequestModel requestModel,
- {bool isMyInpatient = false}) async {
+ {bool isMyInpatient = false, bool isLocalBusy = false}) async {
await getDoctorProfile();
- setState(ViewState.Busy);
-
+ if(isLocalBusy) {
+ setState(ViewState.BusyLocal);
+ } else{
+ setState(ViewState.Busy);
+ }
if (inPatientList.length == 0)
await _inPatientService.getInPatientList(requestModel, false);
if (_inPatientService.hasError) {
error = _inPatientService.error;
+ if(isLocalBusy) {
+ setState(ViewState.ErrorLocal);
+ } else{
setState(ViewState.Error);
+ }
} else {
// setDefaultInPatientList();
setState(ViewState.Idle);
@@ -166,6 +177,9 @@ class PatientSearchViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
+
+
+
void clearPatientList() {
_inPatientService.inPatientList = [];
_inPatientService.myInPatientList = [];
@@ -195,4 +209,25 @@ class PatientSearchViewModel extends BaseViewModel {
notifyListeners();
}
}
+
+
+ getSpecialClinicalCareMappingList(clinicId,
+ {bool isLocalBusy = false}) async {
+ if (isLocalBusy) {
+ setState(ViewState.BusyLocal);
+ } else {
+ setState(ViewState.Busy);
+ }
+ await _specialClinicsService.getSpecialClinicalCareMappingList(clinicId);
+ if (_specialClinicsService.hasError) {
+ error = _specialClinicsService.error;
+ if (isLocalBusy) {
+ setState(ViewState.ErrorLocal);
+ } else {
+ setState(ViewState.Error);
+ }
+ } else {
+ setState(ViewState.Idle);
+ }
+ }
}
diff --git a/lib/core/viewModel/dashboard_view_model.dart b/lib/core/viewModel/dashboard_view_model.dart
index bbbef0b6..f35a4a2a 100644
--- a/lib/core/viewModel/dashboard_view_model.dart
+++ b/lib/core/viewModel/dashboard_view_model.dart
@@ -2,8 +2,10 @@ import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/service/home/dasboard_service.dart';
+import 'package:doctor_app_flutter/core/service/special_clinics/special_clinic_service.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart';
+import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_List_Respose_Model.dart';
import 'package:doctor_app_flutter/models/doctor/clinic_model.dart';
import 'package:doctor_app_flutter/models/doctor/profile_req_Model.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
@@ -14,6 +16,7 @@ import 'base_view_model.dart';
class DashboardViewModel extends BaseViewModel {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
DashboardService _dashboardService = locator();
+ SpecialClinicsService _specialClinicsService = locator();
List get dashboardItemsList =>
_dashboardService.dashboardItemsList;
@@ -22,6 +25,9 @@ class DashboardViewModel extends BaseViewModel {
String get sServiceID => _dashboardService.sServiceID;
+ List get specialClinicalCareList => _specialClinicsService.specialClinicalCareList;
+
+
Future setFirebaseNotification(ProjectViewModel projectsProvider,
AuthenticationViewModel authProvider) async {
setState(ViewState.Busy);
@@ -64,6 +70,16 @@ class DashboardViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
+ Future getSpecialClinicalCareList() async {
+ setState(ViewState.Busy);
+ await _specialClinicsService.getSpecialClinicalCareList();
+ if (_specialClinicsService.hasError) {
+ error = _specialClinicsService.error;
+ setState(ViewState.Error);
+ } else
+ setState(ViewState.Idle);
+ }
+
Future changeClinic(
int clinicId, AuthenticationViewModel authProvider) async {
setState(ViewState.BusyLocal);
@@ -85,4 +101,17 @@ class DashboardViewModel extends BaseViewModel {
return value.toString();
}
+
+
+ GetSpecialClinicalCareListResponseModel getSpecialClinic(clinicId){
+ GetSpecialClinicalCareListResponseModel special ;
+ specialClinicalCareList.forEach((element) {
+ if(element.clinicID == 1){
+ special = element;
+ }
+ });
+
+ return special;
+
+ }
}
diff --git a/lib/core/viewModel/patient-referral-viewmodel.dart b/lib/core/viewModel/patient-referral-viewmodel.dart
index a414c200..9e852978 100644
--- a/lib/core/viewModel/patient-referral-viewmodel.dart
+++ b/lib/core/viewModel/patient-referral-viewmodel.dart
@@ -2,6 +2,7 @@ import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/referral/DischargeReferralPatient.dart';
import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart';
+import 'package:doctor_app_flutter/core/model/referral/add_referred_remarks_request.dart';
import 'package:doctor_app_flutter/core/service/patient/DischargedPatientService.dart';
import 'package:doctor_app_flutter/core/service/patient/MyReferralPatientService.dart';
import 'package:doctor_app_flutter/core/service/patient/ReferralService.dart';
@@ -18,16 +19,14 @@ import 'package:flutter/cupertino.dart';
import '../../locator.dart';
class PatientReferralViewModel extends BaseViewModel {
- PatientReferralService _referralPatientService =
- locator();
+ PatientReferralService _referralPatientService = locator();
ReferralService _referralService = locator();
- MyReferralInPatientService _myReferralService =
- locator();
+ MyReferralInPatientService _myReferralService = locator();
+
+ DischargedPatientService _dischargedPatientService = locator();
- DischargedPatientService _dischargedPatientService =
- locator();
List get myDischargeReferralPatient =>
_dischargedPatientService.myDischargeReferralPatients;
@@ -35,28 +34,21 @@ class PatientReferralViewModel extends BaseViewModel {
List get clinicsList => _referralPatientService.clinicsList;
- List get referralFrequencyList =>
- _referralPatientService.frequencyList;
+ List get referralFrequencyList => _referralPatientService.frequencyList;
List doctorsList = [];
- List get clinicDoctorsList =>
- _referralPatientService.doctorsList;
+ List get clinicDoctorsList => _referralPatientService.doctorsList;
- List get myReferralPatients =>
- _myReferralService.myReferralPatients;
+ List get myReferralPatients => _myReferralService.myReferralPatients;
- List get listMyReferredPatientModel =>
- _referralPatientService.listMyReferredPatientModel;
+ List get listMyReferredPatientModel => _referralPatientService.listMyReferredPatientModel;
- List get pendingReferral =>
- _referralPatientService.pendingReferralList;
+ List get pendingReferral => _referralPatientService.pendingReferralList;
- List get patientReferral =>
- _referralPatientService.patientReferralList;
+ List get patientReferral => _referralPatientService.patientReferralList;
- List get patientArrivalList =>
- _referralPatientService.patientArrivalList;
+ List get patientArrivalList => _referralPatientService.patientArrivalList;
Future getPatientReferral(PatiantInformtion patient) async {
setState(ViewState.Busy);
@@ -105,8 +97,7 @@ class PatientReferralViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
- Future getClinicDoctors(
- PatiantInformtion patient, int clinicId, int branchId) async {
+ Future getClinicDoctors(PatiantInformtion patient, int clinicId, int branchId) async {
setState(ViewState.BusyLocal);
await _referralPatientService.getDoctorsList(patient, clinicId, branchId);
if (_referralPatientService.hasError) {
@@ -124,17 +115,17 @@ class PatientReferralViewModel extends BaseViewModel {
Future getDoctorBranch() async {
DoctorProfileModel doctorProfile = await getDoctorProfile();
if (doctorProfile != null) {
- dynamic _selectedBranch = {
- "facilityId": doctorProfile.projectID,
- "facilityName": doctorProfile.projectName
- };
+ dynamic _selectedBranch = {"facilityId": doctorProfile.projectID, "facilityName": doctorProfile.projectName};
return _selectedBranch;
}
return null;
}
- Future getMyReferredPatient() async {
- setState(ViewState.Busy);
+ Future getMyReferredPatient({bool isFirstTime = true}) async {
+ if (isFirstTime)
+ setState(ViewState.Busy);
+ else
+ setState(ViewState.BusyLocal);
await _referralPatientService.getMyReferredPatient();
if (_referralPatientService.hasError) {
error = _referralPatientService.error;
@@ -143,6 +134,19 @@ class PatientReferralViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
+ Future getMyReferredOutPatient({bool isFirstTime = true}) async {
+ if (isFirstTime)
+ setState(ViewState.Busy);
+ else
+ setState(ViewState.BusyLocal);
+ await _referralPatientService.getMyReferredOutPatient();
+ if (_referralPatientService.hasError) {
+ error = _referralPatientService.error;
+ setState(ViewState.Error);
+ } else
+ setState(ViewState.Idle);
+ }
+
MyReferredPatientModel getReferredPatientItem(int index) {
return listMyReferredPatientModel[index];
}
@@ -157,18 +161,39 @@ class PatientReferralViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
- Future getMyReferralPatientService() async {
- setState(ViewState.Busy);
+ Future getMyReferralPatientService({bool localBusy = false}) async {
+ if (localBusy)
+ setState(ViewState.BusyLocal);
+ else
+ setState(ViewState.Busy);
await _myReferralService.getMyReferralPatientService();
if (_myReferralService.hasError) {
error = _myReferralService.error;
- setState(ViewState.Error);
+ if (localBusy)
+ setState(ViewState.ErrorLocal);
+ else
+ setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
- Future replay(
- String referredDoctorRemarks, MyReferralPatientModel referral) async {
+ Future getMyReferralOutPatientService({bool localBusy = false}) async {
+ if (localBusy)
+ setState(ViewState.BusyLocal);
+ else
+ setState(ViewState.Busy);
+ await _myReferralService.getMyReferralOutPatientService();
+ if (_myReferralService.hasError) {
+ error = _myReferralService.error;
+ if (localBusy)
+ setState(ViewState.ErrorLocal);
+ else
+ setState(ViewState.Error);
+ } else
+ setState(ViewState.Idle);
+ }
+
+ Future replay(String referredDoctorRemarks, MyReferralPatientModel referral) async {
setState(ViewState.Busy);
await _myReferralService.replay(referredDoctorRemarks, referral);
if (_myReferralService.hasError) {
@@ -178,8 +203,7 @@ class PatientReferralViewModel extends BaseViewModel {
getMyReferralPatientService();
}
- Future responseReferral(
- PendingReferral pendingReferral, bool isAccepted) async {
+ Future responseReferral(PendingReferral pendingReferral, bool isAccepted) async {
setState(ViewState.Busy);
await _referralPatientService.responseReferral(pendingReferral, isAccepted);
if (_referralPatientService.hasError) {
@@ -189,11 +213,10 @@ class PatientReferralViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
- Future makeReferral(PatiantInformtion patient, String isoStringDate,
- int projectID, int clinicID, int doctorID, String remarks) async {
+ Future makeReferral(PatiantInformtion patient, String isoStringDate, int projectID, int clinicID, int doctorID,
+ String remarks) async {
setState(ViewState.Busy);
- await _referralPatientService.makeReferral(
- patient, isoStringDate, projectID, clinicID, doctorID, remarks);
+ await _referralPatientService.makeReferral(patient, isoStringDate, projectID, clinicID, doctorID, remarks);
if (_referralPatientService.hasError) {
error = _referralPatientService.error;
setState(ViewState.Error);
@@ -233,12 +256,10 @@ class PatientReferralViewModel extends BaseViewModel {
}
}
- Future getPatientDetails(
- String fromDate, String toDate, int patientMrn, int appointmentNo) async {
+ Future getPatientDetails(String fromDate, String toDate, int patientMrn, int appointmentNo) async {
setState(ViewState.Busy);
- await _referralPatientService.getPatientArrivalList(toDate,
- fromDate: fromDate, patientMrn: patientMrn);
+ await _referralPatientService.getPatientArrivalList(toDate, fromDate: fromDate, patientMrn: patientMrn);
if (_referralPatientService.hasError) {
error = _referralPatientService.error;
setState(ViewState.Error);
@@ -257,8 +278,7 @@ class PatientReferralViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
- Future verifyReferralDoctorRemarks(
- MyReferredPatientModel referredPatient) async {
+ Future verifyReferralDoctorRemarks(MyReferredPatientModel referredPatient) async {
setState(ViewState.Busy);
await _referralPatientService.verifyReferralDoctorRemarks(referredPatient);
if (_referralPatientService.hasError) {
@@ -297,8 +317,7 @@ class PatientReferralViewModel extends BaseViewModel {
}
}
- PatiantInformtion getPatientFromReferral(
- MyReferredPatientModel referredPatient) {
+ PatiantInformtion getPatientFromReferral(MyReferredPatientModel referredPatient) {
PatiantInformtion patient = PatiantInformtion();
patient.doctorId = referredPatient.doctorID;
patient.doctorName = referredPatient.doctorName;
@@ -323,8 +342,7 @@ class PatientReferralViewModel extends BaseViewModel {
return patient;
}
- PatiantInformtion getPatientFromReferralO(
- MyReferralPatientModel referredPatient) {
+ PatiantInformtion getPatientFromReferralO(MyReferralPatientModel referredPatient) {
PatiantInformtion patient = PatiantInformtion();
patient.doctorId = referredPatient.doctorID;
patient.doctorName = referredPatient.doctorName;
@@ -349,8 +367,7 @@ class PatientReferralViewModel extends BaseViewModel {
return patient;
}
- PatiantInformtion getPatientFromDischargeReferralPatient(
- DischargeReferralPatient referredPatient) {
+ PatiantInformtion getPatientFromDischargeReferralPatient(DischargeReferralPatient referredPatient) {
PatiantInformtion patient = PatiantInformtion();
patient.doctorId = referredPatient.doctorID;
patient.doctorName = referredPatient.doctorName;
@@ -369,10 +386,19 @@ class PatientReferralViewModel extends BaseViewModel {
patient.roomId = referredPatient.roomID;
patient.bedId = referredPatient.bedID;
patient.nationalityName = referredPatient.nationalityName;
- patient.nationalityFlagURL =
- ''; // TODO from backend referredPatient.nationalityFlagURL;
+ patient.nationalityFlagURL = ''; // TODO from backend referredPatient.nationalityFlagURL;
patient.age = referredPatient.age;
patient.clinicDescription = referredPatient.clinicDescription;
return patient;
}
+
+ Future replayReferred(String referredDoctorRemarks, MyReferralPatientModel referral, int referalStatus) async {
+ setState(ViewState.Busy);
+ await _myReferralService.replayReferred(referredDoctorRemarks, referral, referalStatus);
+ if (_myReferralService.hasError) {
+ error = _myReferralService.error;
+ setState(ViewState.ErrorLocal);
+ } else
+ getMyReferralPatientService();
+ }
}
diff --git a/lib/core/viewModel/patient_view_model.dart b/lib/core/viewModel/patient_view_model.dart
index de40afde..5bc6250f 100644
--- a/lib/core/viewModel/patient_view_model.dart
+++ b/lib/core/viewModel/patient_view_model.dart
@@ -2,9 +2,11 @@ import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/note/CreateNoteModel.dart';
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/model/note/update_note_model.dart';
+import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/service/patient/patient_service.dart';
import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart';
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart';
+import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report_for_in_patient.dart';
import 'package:doctor_app_flutter/models/patient/prescription/prescription_res_model.dart';
@@ -17,51 +19,43 @@ import 'base_view_model.dart';
class PatientViewModel extends BaseViewModel {
PatientService _patientService = locator();
- List get patientVitalSignList =>
- _patientService.patientVitalSignList;
+ List get inPatientList => _patientService.inPatientList;
- List get patientVitalSignOrderdSubList =>
- _patientService.patientVitalSignOrderdSubList;
+ List get patientVitalSignList => _patientService.patientVitalSignList;
- List get patientLabResultOrdersList =>
- _patientService.patientLabResultOrdersList;
+ List get patientVitalSignOrderdSubList => _patientService.patientVitalSignOrderdSubList;
- List get patientPrescriptionsList =>
- _patientService.patientPrescriptionsList;
+ List get patientLabResultOrdersList => _patientService.patientLabResultOrdersList;
+
+ List get patientPrescriptionsList => _patientService.patientPrescriptionsList;
List get prescriptionReportForInPatientList =>
_patientService.prescriptionReportForInPatientList;
- List get prescriptionReport =>
- _patientService.prescriptionReport;
+ List get prescriptionReport => _patientService.prescriptionReport;
- List get patientRadiologyList =>
- _patientService.patientRadiologyList;
+ List get patientRadiologyList => _patientService.patientRadiologyList;
List get labResultList => _patientService.labResultList;
get insuranceApporvalsList => _patientService.insuranceApporvalsList;
- List get patientProgressNoteList =>
- _patientService.patientProgressNoteList;
+ List get patientProgressNoteList => _patientService.patientProgressNoteList;
List get clinicsList => _patientService.clinicsList;
List get doctorsList => _patientService.doctorsList;
- List get referralFrequencyList =>
- _patientService.referalFrequancyList;
+ List get referralFrequencyList => _patientService.referalFrequancyList;
- Future getPatientList(patient, patientType,
- {bool isBusyLocal = false, isView}) async {
+ Future getPatientList(patient, patientType, {bool isBusyLocal = false, isView}) async {
var localRes;
if (isBusyLocal) {
setState(ViewState.BusyLocal);
} else {
setState(ViewState.Busy);
}
- localRes = await _patientService.getPatientList(patient, patientType,
- isView: isView);
+ localRes = await _patientService.getPatientList(patient, patientType, isView: isView);
if (_patientService.hasError) {
error = _patientService.error;
@@ -210,16 +204,12 @@ class PatientViewModel extends BaseViewModel {
}
List getDoctorNameList() {
- var doctorNamelist = _patientService.doctorsList
- .map((value) => value['DoctorName'].toString())
- .toList();
+ var doctorNamelist = _patientService.doctorsList.map((value) => value['DoctorName'].toString()).toList();
return doctorNamelist;
}
List getClinicNameList() {
- var clinicsNameslist = _patientService.clinicsList
- .map((value) => value['ClinicDescription'].toString())
- .toList();
+ var clinicsNameslist = _patientService.clinicsList.map((value) => value['ClinicDescription'].toString()).toList();
return clinicsNameslist;
}
@@ -234,9 +224,8 @@ class PatientViewModel extends BaseViewModel {
}
List getReferralNamesList() {
- var referralNamesList = _patientService.referalFrequancyList
- .map((value) => value['Description'].toString())
- .toList();
+ var referralNamesList =
+ _patientService.referalFrequancyList.map((value) => value['Description'].toString()).toList();
return referralNamesList;
}
@@ -281,4 +270,18 @@ class PatientViewModel extends BaseViewModel {
} else
setState(ViewState.Idle);
}
+
+ Future getInPatientList(PatientSearchRequestModel requestModel, {bool isMyInpatient = false}) async {
+ await getDoctorProfile();
+ setState(ViewState.Busy);
+
+ await _patientService.getInPatient(requestModel, false);
+ if (_patientService.hasError) {
+ error = _patientService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ // setDefaultInPatientList();
+ setState(ViewState.Idle);
+ }
+ }
}
diff --git a/lib/core/viewModel/referred_view_model.dart b/lib/core/viewModel/referred_view_model.dart
deleted file mode 100644
index 173aa60a..00000000
--- a/lib/core/viewModel/referred_view_model.dart
+++ /dev/null
@@ -1,24 +0,0 @@
-import 'package:doctor_app_flutter/core/enum/viewstate.dart';
-import 'package:doctor_app_flutter/core/service/patient/referred_patient_service.dart';
-import 'package:doctor_app_flutter/models/patient/my_referral/my_referred_patient_model.dart';
-
-import '../../locator.dart';
-import 'base_view_model.dart';
-
-class ReferredPatientViewModel extends BaseViewModel {
- ReferredPatientService _referralPatientService =
- locator();
-
- List get listMyReferredPatientModel =>
- _referralPatientService.listMyReferredPatientModel;
-
- Future getMyReferredPatient() async {
- setState(ViewState.Busy);
- await _referralPatientService.getMyReferredPatient();
- if (_referralPatientService.hasError) {
- error = _referralPatientService.error;
- setState(ViewState.Error);
- } else
- setState(ViewState.Idle);
- }
-}
diff --git a/lib/core/viewModel/scan_qr_view_model.dart b/lib/core/viewModel/scan_qr_view_model.dart
new file mode 100644
index 00000000..ff934f79
--- /dev/null
+++ b/lib/core/viewModel/scan_qr_view_model.dart
@@ -0,0 +1,26 @@
+import 'package:doctor_app_flutter/core/enum/viewstate.dart';
+import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
+import 'package:doctor_app_flutter/core/service/home/scan_qr_service.dart';
+import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
+import 'package:doctor_app_flutter/locator.dart';
+import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
+
+class ScanQrViewModel extends BaseViewModel {
+ ScanQrService _scanQrService = locator();
+ List get inPatientList => _scanQrService.inPatientList;
+
+ Future getInPatientList(PatientSearchRequestModel requestModel, {bool isMyInpatient = false}) async {
+ await getDoctorProfile();
+ setState(ViewState.Busy);
+
+ await _scanQrService.getInPatient(requestModel, false);
+ if (_scanQrService.hasError) {
+ error = _scanQrService.error;
+
+ setState(ViewState.ErrorLocal);
+ } else {
+ // setDefaultInPatientList();
+ setState(ViewState.Idle);
+ }
+ }
+}
diff --git a/lib/locator.dart b/lib/locator.dart
index 66ec9161..1e4bcb4c 100644
--- a/lib/locator.dart
+++ b/lib/locator.dart
@@ -1,42 +1,45 @@
import 'package:doctor_app_flutter/core/service/authentication_service.dart';
+import 'package:doctor_app_flutter/core/service/home/scan_qr_service.dart';
import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/hospitals_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/medical_file_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
+import 'package:doctor_app_flutter/core/viewModel/scan_qr_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/sick_leave_view_model.dart';
import 'package:get_it/get_it.dart';
+import 'core/service/NavigationService.dart';
import 'core/service/home/dasboard_service.dart';
+import 'core/service/home/doctor_reply_service.dart';
+import 'core/service/home/schedule_service.dart';
+import 'core/service/hospitals/hospitals_service.dart';
import 'core/service/patient/DischargedPatientService.dart';
import 'core/service/patient/LiveCarePatientServices.dart';
-import 'core/service/patient/patient_service.dart';
-import 'core/service/patient_medical_file/insurance/InsuranceCardService.dart';
import 'core/service/patient/MyReferralPatientService.dart';
import 'core/service/patient/PatientMuseService.dart';
import 'core/service/patient/ReferralService.dart';
+import 'core/service/patient/out_patient_service.dart';
+import 'core/service/patient/patient-doctor-referral-service.dart';
+import 'core/service/patient/patientInPatientService.dart';
+import 'core/service/patient/patient_service.dart';
+import 'core/service/patient/referral_patient_service.dart';
+import 'core/service/patient_medical_file/admission_request/patient-admission-request-service.dart';
+import 'core/service/patient_medical_file/insurance/InsuranceCardService.dart';
+import 'core/service/patient_medical_file/lab_order/labs_service.dart';
import 'core/service/patient_medical_file/medical_report/PatientMedicalReportService.dart';
import 'core/service/patient_medical_file/medical_report/medical_file_service.dart';
+import 'core/service/patient_medical_file/prescription/medicine_service.dart';
import 'core/service/patient_medical_file/prescription/prescription_service.dart';
+import 'core/service/patient_medical_file/prescription/prescriptions_service.dart';
import 'core/service/patient_medical_file/procedure/procedure_service.dart';
+import 'core/service/patient_medical_file/radiology/radiology_service.dart';
import 'core/service/patient_medical_file/sick_leave/sickleave_service.dart';
import 'core/service/patient_medical_file/soap/SOAP_service.dart';
-import 'core/service/home/doctor_reply_service.dart';
-import 'core/service/hospitals/hospitals_service.dart';
-import 'core/service/patient_medical_file/lab_order/labs_service.dart';
-import 'core/service/patient_medical_file/prescription/medicine_service.dart';
-import 'core/service/patient_medical_file/admission_request/patient-admission-request-service.dart';
-import 'core/service/patient/patient-doctor-referral-service.dart';
import 'core/service/patient_medical_file/ucaf/patient-ucaf-service.dart';
import 'core/service/patient_medical_file/vital_sign/patient-vital-signs-service.dart';
-import 'core/service/patient/out_patient_service.dart';
-import 'core/service/patient/patientInPatientService.dart';
-import 'core/service/patient_medical_file/prescription/prescriptions_service.dart';
-import 'core/service/patient_medical_file/radiology/radiology_service.dart';
-import 'core/service/patient/referral_patient_service.dart';
-import 'core/service/patient/referred_patient_service.dart';
-import 'core/service/home/schedule_service.dart';
+import 'core/service/special_clinics/special_clinic_service.dart';
import 'core/viewModel/DischargedPatientViewModel.dart';
import 'core/viewModel/InsuranceViewModel.dart';
import 'core/viewModel/LiveCarePatientViewModel.dart';
@@ -54,7 +57,6 @@ import 'core/viewModel/patient-vital-sign-viewmodel.dart';
import 'core/viewModel/prescriptions_view_model.dart';
import 'core/viewModel/radiology_view_model.dart';
import 'core/viewModel/referral_view_model.dart';
-import 'core/viewModel/referred_view_model.dart';
import 'core/viewModel/schedule_view_model.dart';
GetIt locator = GetIt.instance;
@@ -65,7 +67,6 @@ void setupLocator() {
locator.registerLazySingleton(() => DoctorReplyService());
locator.registerLazySingleton(() => ScheduleService());
locator.registerLazySingleton(() => ReferralPatientService());
- locator.registerLazySingleton(() => ReferredPatientService());
locator.registerLazySingleton(() => MedicineService());
locator.registerLazySingleton(() => PatientService());
locator.registerLazySingleton(() => DashboardService());
@@ -92,12 +93,14 @@ void setupLocator() {
locator.registerLazySingleton(() => HospitalsService());
locator.registerLazySingleton(() => PatientMedicalReportService());
locator.registerLazySingleton(() => LiveCarePatientServices());
+ locator.registerLazySingleton(() => NavigationService());
+ locator.registerLazySingleton(() => ScanQrService());
+ locator.registerLazySingleton(() => SpecialClinicsService());
/// View Model
locator.registerFactory(() => DoctorReplayViewModel());
locator.registerFactory(() => ScheduleViewModel());
locator.registerFactory(() => ReferralPatientViewModel());
- locator.registerFactory(() => ReferredPatientViewModel());
locator.registerFactory(() => MedicineViewModel());
locator.registerFactory(() => PatientViewModel());
locator.registerFactory(() => DashboardViewModel());
@@ -120,4 +123,5 @@ void setupLocator() {
locator.registerFactory(() => HospitalViewModel());
locator.registerFactory(() => LiveCarePatientViewModel());
locator.registerFactory(() => PatientMedicalReportViewModel());
+ locator.registerFactory(() => ScanQrViewModel());
}
diff --git a/lib/main.dart b/lib/main.dart
index a95378e5..c29429b0 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -11,6 +11,7 @@ import 'package:provider/provider.dart';
import './config/size_config.dart';
import './routes.dart';
import 'config/config.dart';
+import 'core/service/NavigationService.dart';
import 'core/viewModel/authentication_view_model.dart';
import 'locator.dart';
@@ -66,6 +67,7 @@ class MyApp extends StatelessWidget {
dividerColor: Colors.grey[350],
backgroundColor: Color.fromRGBO(255, 255, 255, 1),
),
+ navigatorKey: locator().navigatorKey,
initialRoute: INIT_ROUTE,
routes: routes,
debugShowCheckedModeBanner: false,
diff --git a/lib/models/dashboard/get_special_clinical_care_List_Respose_Model.dart b/lib/models/dashboard/get_special_clinical_care_List_Respose_Model.dart
new file mode 100644
index 00000000..ec19abb0
--- /dev/null
+++ b/lib/models/dashboard/get_special_clinical_care_List_Respose_Model.dart
@@ -0,0 +1,32 @@
+class GetSpecialClinicalCareListResponseModel {
+ int projectID;
+ int clinicID;
+ String clinicDescription;
+ String clinicDescriptionN;
+ bool isActive;
+
+ GetSpecialClinicalCareListResponseModel(
+ {this.projectID,
+ this.clinicID,
+ this.clinicDescription,
+ this.clinicDescriptionN,
+ this.isActive});
+
+ GetSpecialClinicalCareListResponseModel.fromJson(Map json) {
+ projectID = json['ProjectID'];
+ clinicID = json['ClinicID'];
+ clinicDescription = json['ClinicDescription'];
+ clinicDescriptionN = json['ClinicDescriptionN'];
+ isActive = json['IsActive'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ProjectID'] = this.projectID;
+ data['ClinicID'] = this.clinicID;
+ data['ClinicDescription'] = this.clinicDescription;
+ data['ClinicDescriptionN'] = this.clinicDescriptionN;
+ data['IsActive'] = this.isActive;
+ return data;
+ }
+}
diff --git a/lib/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart b/lib/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart
new file mode 100644
index 00000000..287f40f1
--- /dev/null
+++ b/lib/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart
@@ -0,0 +1,37 @@
+class GetSpecialClinicalCareMappingListResponseModel {
+ int mappingProjectID;
+ int clinicID;
+ int nursingStationID;
+ bool isActive;
+ int projectID;
+ String description;
+
+ GetSpecialClinicalCareMappingListResponseModel(
+ {this.mappingProjectID,
+ this.clinicID,
+ this.nursingStationID,
+ this.isActive,
+ this.projectID,
+ this.description});
+
+ GetSpecialClinicalCareMappingListResponseModel.fromJson(
+ Map json) {
+ mappingProjectID = json['MappingProjectID'];
+ clinicID = json['ClinicID'];
+ nursingStationID = json['NursingStationID'];
+ isActive = json['IsActive'];
+ projectID = json['ProjectID'];
+ description = json['Description'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['MappingProjectID'] = this.mappingProjectID;
+ data['ClinicID'] = this.clinicID;
+ data['NursingStationID'] = this.nursingStationID;
+ data['IsActive'] = this.isActive;
+ data['ProjectID'] = this.projectID;
+ data['Description'] = this.description;
+ return data;
+ }
+}
diff --git a/lib/models/livecare/start_call_req.dart b/lib/models/livecare/start_call_req.dart
index 1ad04480..b3ceabb5 100644
--- a/lib/models/livecare/start_call_req.dart
+++ b/lib/models/livecare/start_call_req.dart
@@ -1,56 +1,56 @@
class StartCallReq {
- int vCID;
- bool isrecall;
- String tokenID;
- String generalid;
+ String clincName;
+ int clinicId;
+ String docSpec;
+ String docotrName;
int doctorId;
+ String generalid;
bool isOutKsa;
+ bool isrecall;
String projectName;
- String docotrName;
- String clincName;
- String docSpec;
- int clinicId;
+ String tokenID;
+ int vCID;
StartCallReq(
- {this.vCID,
- this.isrecall,
- this.tokenID,
- this.generalid,
- this.doctorId,
- this.isOutKsa,
- this.projectName,
- this.docotrName,
- this.clincName,
- this.docSpec,
- this.clinicId});
+ {this.clincName,
+ this.clinicId,
+ this.docSpec,
+ this.docotrName,
+ this.doctorId,
+ this.generalid,
+ this.isOutKsa,
+ this.isrecall,
+ this.projectName,
+ this.tokenID,
+ this.vCID});
StartCallReq.fromJson(Map json) {
- vCID = json['VC_ID'];
- isrecall = json['isrecall'];
- tokenID = json['TokenID'];
- generalid = json['generalid'];
+ clincName = json['clincName'];
+ clinicId = json['ClinicId'];
+ docSpec = json['Doc_Spec'];
+ docotrName = json['DocotrName'];
doctorId = json['DoctorId'];
+ generalid = json['generalid'];
isOutKsa = json['IsOutKsa'];
+ isrecall = json['isrecall'];
projectName = json['projectName'];
- docotrName = json['DocotrName'];
- clincName = json['clincName'];
- docSpec = json['Doc_Spec'];
- clinicId = json['ClinicId'];
+ tokenID = json['TokenID'];
+ vCID = json['VC_ID'];
}
Map toJson() {
final Map data = new Map();
- data['VC_ID'] = this.vCID;
- data['isrecall'] = this.isrecall;
- data['TokenID'] = this.tokenID;
- data['generalid'] = this.generalid;
+ data['clincName'] = this.clincName;
+ data['ClinicId'] = this.clinicId;
+ data['Doc_Spec'] = this.docSpec;
+ data['DocotrName'] = this.docotrName;
data['DoctorId'] = this.doctorId;
+ data['generalid'] = this.generalid;
data['IsOutKsa'] = this.isOutKsa;
+ data['isrecall'] = this.isrecall;
data['projectName'] = this.projectName;
- data['DocotrName'] = this.docotrName;
- data['clincName'] = this.clincName;
- data['Doc_Spec'] = this.docSpec;
- data['ClinicId'] = this.clinicId;
+ data['TokenID'] = this.tokenID;
+ data['VC_ID'] = this.vCID;
return data;
}
-}
+}
\ No newline at end of file
diff --git a/lib/models/patient/my_referral/my_referred_patient_model.dart b/lib/models/patient/my_referral/my_referred_patient_model.dart
index 44a427f7..b353e587 100644
--- a/lib/models/patient/my_referral/my_referred_patient_model.dart
+++ b/lib/models/patient/my_referral/my_referred_patient_model.dart
@@ -166,8 +166,9 @@ class MyReferredPatientModel {
referringDoctor = json['ReferringDoctor'];
referralClinic = json['ReferralClinic'];
referringClinic = json['ReferringClinic'];
- referralStatus = json['ReferralStatus'];
- referralDate = json['ReferralDate'];
+ createdOn = json['CreatedOn'];
+ referralStatus = json["ReferralStatus"] is String?json['ReferralStatus']== "Accepted"?46:json['ReferralStatus']=="Pending"?1:0 : json['ReferralStatus'];
+ referralDate = json['ReferralDate'] ?? createdOn;
referringDoctorRemarks = json['ReferringDoctorRemarks'];
referredDoctorRemarks = json['ReferredDoctorRemarks'];
referralResponseOn = json['ReferralResponseOn'];
@@ -179,7 +180,6 @@ class MyReferredPatientModel {
appointmentDate = json['AppointmentDate'];
appointmentType = json['AppointmentType'];
patientMRN = json['PatientMRN'];
- createdOn = json['CreatedOn'];
clinicID = json['ClinicID'];
nationalityID = json['NationalityID'];
age = json['Age'];
diff --git a/lib/screens/home/home_patient_card.dart b/lib/screens/home/home_patient_card.dart
index 3c20526d..4e806c26 100644
--- a/lib/screens/home/home_patient_card.dart
+++ b/lib/screens/home/home_patient_card.dart
@@ -10,6 +10,7 @@ class HomePatientCard extends StatelessWidget {
final String text;
final Color textColor;
final Function onTap;
+ final double iconSize;
HomePatientCard({
@required this.backgroundColor,
@@ -18,6 +19,7 @@ class HomePatientCard extends StatelessWidget {
@required this.text,
@required this.textColor,
@required this.onTap,
+ this.iconSize = 30,
});
@override
diff --git a/lib/screens/home/home_screen.dart b/lib/screens/home/home_screen.dart
index ee587540..56a9e559 100644
--- a/lib/screens/home/home_screen.dart
+++ b/lib/screens/home/home_screen.dart
@@ -67,6 +67,7 @@ class _HomeScreenState extends State {
await model.getDashboard();
await model.getDoctorProfile(isGetProfile: true);
await model.checkDoctorHasLiveCare();
+ await model.getSpecialClinicalCareList();
},
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
@@ -158,7 +159,7 @@ class _HomeScreenState extends State {
child: ListView(
scrollDirection: Axis.horizontal,
children: [
- ...homePatientsCardsWidget(model),
+ ...homePatientsCardsWidget(model, projectsProvider),
],
),
),
@@ -174,7 +175,7 @@ class _HomeScreenState extends State {
);
}
- List homePatientsCardsWidget(DashboardViewModel model) {
+ List homePatientsCardsWidget(DashboardViewModel model,projectsProvider) {
colorIndex = 0;
List backgroundColors = List(3);
@@ -198,6 +199,7 @@ class _HomeScreenState extends State {
backgroundIconColor: backgroundIconColors[colorIndex],
cardIcon: DoctorApp.livecare,
textColor: textColors[colorIndex],
+ iconSize: 21,
text:
"${TranslationBase.of(context).liveCare}\n${TranslationBase.of(context).patients}",
onTap: () {
@@ -222,7 +224,8 @@ class _HomeScreenState extends State {
Navigator.push(
context,
FadePage(
- page: PatientInPatientScreen(),
+ page: PatientInPatientScreen(specialClinic: model.getSpecialClinic(clinicId??projectsProvider
+ .doctorClinicsList[0].clinicID),),
),
);
},
diff --git a/lib/screens/live_care/end_call_screen.dart b/lib/screens/live_care/end_call_screen.dart
index ee1a036d..76e87a87 100644
--- a/lib/screens/live_care/end_call_screen.dart
+++ b/lib/screens/live_care/end_call_screen.dart
@@ -13,7 +13,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/patients/profile/PatientProfileButton.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -48,7 +48,9 @@ class _EndCallScreenState extends State {
final List cardsList = [
PatientProfileCardModel(TranslationBase.of(context).resume,
TranslationBase.of(context).theCall, '', 'patient/vital_signs.png',
- isInPatient: isInpatient, onTap: () async {
+ isInPatient: isInpatient,
+ color: Colors.green[800],
+ onTap: () async {
GifLoaderDialogUtils.showMyDialog(context);
await liveCareModel
.startCall(isReCall: false, vCID: widget.patient.vcId)
@@ -63,6 +65,7 @@ class _EndCallScreenState extends State {
kSessionId: liveCareModel.startCallRes.openSessionID,
kApiKey: '46209962',
vcId: widget.patient.vcId,
+ patientName: widget.patient.fullName ?? (widget.patient.firstName != null ? "${widget.patient.firstName} ${widget.patient.lastName}" : "-"),
tokenID: await liveCareModel.getToken(),
generalId: GENERAL_ID,
doctorId: liveCareModel.doctorProfile.doctorID,
@@ -105,7 +108,9 @@ class _EndCallScreenState extends State {
TranslationBase.of(context).consultation,
'',
'patient/vital_signs.png',
- isInPatient: isInpatient, onTap: () {
+ isInPatient: isInpatient,
+ color: Colors.red[800],
+ onTap: () {
Helpers.showConfirmationDialog(context,
"${TranslationBase.of(context).areYouSureYouWantTo} ${TranslationBase.of(context).endLC} ${TranslationBase.of(context).consultation} ?",
() async {
@@ -136,10 +141,24 @@ class _EndCallScreenState extends State {
TranslationBase.of(context).instruction,
"",
'patient/health_summary.png',
- onTap: () {},
+ onTap: () {
+ Helpers.showConfirmationDialog(context,
+ "${TranslationBase.of(context).areYouSureYouWantTo} ${TranslationBase.of(context).sendLC} ${TranslationBase.of(context).instruction} ?",
+ () async {
+ Navigator.of(context).pop();
+ GifLoaderDialogUtils.showMyDialog(context);
+ await liveCareModel.sendSMSInstruction(widget.patient.vcId);
+ GifLoaderDialogUtils.hideDialog(context);
+ if (liveCareModel.state == ViewState.ErrorLocal) {
+ DrAppToastMsg.showErrorToast(liveCareModel.error);
+ } else {
+ DrAppToastMsg.showSuccesToast("You successfully sent SMS instructions");
+ }
+ });
+ },
isInPatient: isInpatient,
isDartIcon: true,
- isDisable: true,
+ // isDisable: true,
dartIcon: DoctorApp.send_instruction),
PatientProfileCardModel(
TranslationBase.of(context).transferTo,
@@ -166,8 +185,8 @@ class _EndCallScreenState extends State {
appBarTitle: TranslationBase.of(context).patientProfile,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- widget.patient, arrivalType ?? '7', '1',
+ appBar: PatientProfileAppBar(
+ widget.patient,
isInpatient: isInpatient,
height: (widget.patient.patientStatusType != null &&
widget.patient.patientStatusType == 43)
@@ -230,6 +249,7 @@ class _EndCallScreenState extends State {
isLoading: cardsList[index].isLoading,
isDartIcon: cardsList[index].isDartIcon,
dartIcon: cardsList[index].dartIcon,
+ color: cardsList[index].color,
),
),
],
diff --git a/lib/screens/live_care/live-care_transfer_to_admin.dart b/lib/screens/live_care/live-care_transfer_to_admin.dart
index 2d0fb7d7..233f59d8 100644
--- a/lib/screens/live_care/live-care_transfer_to_admin.dart
+++ b/lib/screens/live_care/live-care_transfer_to_admin.dart
@@ -120,7 +120,7 @@ class _LivaCareTransferToAdminState extends State {
() async {
Navigator.of(context).pop();
GifLoaderDialogUtils.showMyDialog(context);
- model.transferToAdmin(widget.patient.vcId, noteController.text);
+ await model.transferToAdmin(widget.patient.vcId, noteController.text);
GifLoaderDialogUtils.hideDialog(context);
if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
diff --git a/lib/screens/live_care/live_care_patient_screen.dart b/lib/screens/live_care/live_care_patient_screen.dart
index 51757bf0..0b741989 100644
--- a/lib/screens/live_care/live_care_patient_screen.dart
+++ b/lib/screens/live_care/live_care_patient_screen.dart
@@ -6,7 +6,7 @@ import 'package:doctor_app_flutter/core/viewModel/LiveCarePatientViewModel.dart'
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.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/PatientCard.dart';
+import 'package:doctor_app_flutter/widgets/patients/patient_card/PatientCard.dart';
import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
diff --git a/lib/screens/live_care/video_call.dart b/lib/screens/live_care/video_call.dart
index c6f9a885..07de1943 100644
--- a/lib/screens/live_care/video_call.dart
+++ b/lib/screens/live_care/video_call.dart
@@ -66,6 +66,7 @@ class _VideoCallPageState extends State {
//'1_MX40NjgwMzIyNH5-MTU5MzY4MzYzODYwM35ucExWYVRVSm5Hcy9uWGZmM1lOa3czZHV-fg',
kApiKey: '46209962',
vcId: widget.patientData.vcId,
+ patientName: widget.patientData.fullName ?? widget.patientData.firstName != null ? "${widget.patientData.firstName} ${widget.patientData.lastName}" : "-",
tokenID: token, //"hfkjshdf347r8743",
generalId: "Cs2020@2016\$2958",
doctorId: doctorprofile['DoctorID'],
diff --git a/lib/screens/medical-file/health_summary_page.dart b/lib/screens/medical-file/health_summary_page.dart
index ad7f13cb..6b4b066c 100644
--- a/lib/screens/medical-file/health_summary_page.dart
+++ b/lib/screens/medical-file/health_summary_page.dart
@@ -4,7 +4,7 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/medical-file/medical_file_details.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/doctor_card.dart';
@@ -30,10 +30,8 @@ class _HealthSummaryPageState extends State {
builder:
(BuildContext context, MedicalFileViewModel model, Widget child) =>
AppScaffold(
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patientType.toString() ?? "0",
- arrivalType,
isInpatient: isInpatient,
),
isShowAppBar: true,
diff --git a/lib/screens/medical-file/medical_file_details.dart b/lib/screens/medical-file/medical_file_details.dart
index 9bfde511..b53284a9 100644
--- a/lib/screens/medical-file/medical_file_details.dart
+++ b/lib/screens/medical-file/medical_file_details.dart
@@ -4,7 +4,7 @@ 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/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/expandable-widget-header-body.dart';
@@ -102,20 +102,19 @@ class _MedicalFileDetailsState extends State {
builder:
(BuildContext context, MedicalFileViewModel model, Widget child) =>
AppScaffold(
- appBar: PatientProfileHeaderWhitAppointmentAppBar(
- patient: patient,
- patientType: patient.patientType.toString() ?? "0",
- arrivalType: patient.arrivedOn.toString() ?? 0,
+ appBar: PatientProfileAppBar(
+ patient,
doctorName: doctorName,
profileUrl: doctorImage,
clinic: clinicName,
isPrescriptions: true,
isMedicalFile: true,
episode: episode,
- vistDate:
+ visitDate:
'${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.getDateTimeFromServerFormat(
vistDate,
), isArabic: projectViewModel.isArabic)}',
+ isAppointmentHeader: true,
),
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).medicalReport.toUpperCase(),
diff --git a/lib/screens/patients/ECGPage.dart b/lib/screens/patients/ECGPage.dart
index 33692628..ba4c108c 100644
--- a/lib/screens/patients/ECGPage.dart
+++ b/lib/screens/patients/ECGPage.dart
@@ -6,7 +6,7 @@ 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/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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:flutter/cupertino.dart';
@@ -31,7 +31,7 @@ class ECGPage extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Color(0xffF8F8F8),
- appBar: PatientProfileHeaderNewDesignAppBar(patient,arrivalType??'0',patientType),
+ appBar: PatientProfileAppBar(patient),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(8.0),
diff --git a/lib/screens/patients/InPatientPage.dart b/lib/screens/patients/InPatientPage.dart
index 1b42d305..ec2a8107 100644
--- a/lib/screens/patients/InPatientPage.dart
+++ b/lib/screens/patients/InPatientPage.dart
@@ -1,10 +1,12 @@
+import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.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/PatientCard.dart';
+import 'package:doctor_app_flutter/widgets/patients/patient_card/PatientCard.dart';
+import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/error_message.dart';
-import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
+import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_container.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
@@ -60,7 +62,7 @@ class _InPatientPageState extends State {
model.filterSearchResults(value);
}),
),
- model.filteredInPatientItems.length > 0
+ model.state == ViewState.Idle?model.filteredInPatientItems.length > 0
? Expanded(
child: Container(
margin: EdgeInsets.symmetric(horizontal: 16.0),
@@ -155,6 +157,13 @@ class _InPatientPageState extends State {
error:
TranslationBase.of(context).noDataAvailable)),
),
+ ): Center(
+ child: Container(
+ height: 300,
+ width: 300,
+ child: Image.asset(
+ "assets/images/progress-loading-red.gif"),
+ ),
),
],
),
diff --git a/lib/screens/patients/PatientsInPatientScreen.dart b/lib/screens/patients/PatientsInPatientScreen.dart
index 60446887..4971b636 100644
--- a/lib/screens/patients/PatientsInPatientScreen.dart
+++ b/lib/screens/patients/PatientsInPatientScreen.dart
@@ -1,17 +1,27 @@
import 'package:doctor_app_flutter/config/size_config.dart';
+import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.dart';
+import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
+import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_List_Respose_Model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
+import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
+import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/text_fields_utils.dart';
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
import 'DischargedPatientPage.dart';
import 'InPatientPage.dart';
class PatientInPatientScreen extends StatefulWidget {
+ GetSpecialClinicalCareListResponseModel specialClinic;
+
+ PatientInPatientScreen({Key key, this.specialClinic});
+
@override
_PatientInPatientScreenState createState() => _PatientInPatientScreenState();
}
@@ -21,6 +31,9 @@ class _PatientInPatientScreenState extends State
TabController _tabController;
int _activeTab = 0;
+ int selectedMapId;
+
+
@override
void initState() {
super.initState();
@@ -42,15 +55,27 @@ class _PatientInPatientScreenState extends State
@override
Widget build(BuildContext context) {
- final screenSize = MediaQuery.of(context).size;
+ final screenSize = MediaQuery
+ .of(context)
+ .size;
PatientSearchRequestModel requestModel = PatientSearchRequestModel();
+ ProjectViewModel projectsProvider = Provider.of(context);
+
return BaseView(
onModelReady: (model) async {
model.clearPatientList();
+ if (widget.specialClinic != null) {
+ await model
+ .getSpecialClinicalCareMappingList(widget.specialClinic.clinicID);
+ requestModel.nursingStationID =
+ model.specialClinicalCareMappingList[0].nursingStationID;
+ requestModel.clinicID = 0;
+ }
model.getInPatientList(requestModel);
},
- builder: (_, model, w) => AppScaffold(
+ builder: (_, model, w) =>
+ AppScaffold(
baseViewModel: model,
isShowAppBar: false,
body: Column(
@@ -72,12 +97,125 @@ class _PatientInPatientScreenState extends State
),
Expanded(
child: AppText(
- TranslationBase.of(context).inPatient,
+ TranslationBase
+ .of(context)
+ .inPatient,
fontSize: SizeConfig.textMultiplier * 2.8,
fontWeight: FontWeight.bold,
color: Color(0xFF2B353E),
),
),
+ if (model.specialClinicalCareMappingList.isNotEmpty &&
+ widget.specialClinic != null &&
+ _activeTab != 2)
+ Container(
+ width: MediaQuery.of(context).size.width * .3,
+ child: DropdownButtonHideUnderline(
+ child: DropdownButton(
+ dropdownColor: Colors.white,
+ iconEnabledColor: Colors.black,
+ isExpanded: true,
+ value: selectedMapId == null ? model
+ .specialClinicalCareMappingList[0]
+ .nursingStationID : selectedMapId,
+ iconSize: 25,
+ elevation: 16,
+ selectedItemBuilder:
+ (BuildContext context) {
+ return model
+ .specialClinicalCareMappingList
+ .map((item) {
+ return Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment:
+ MainAxisAlignment.end,
+ children: [
+ Column(
+ mainAxisAlignment:
+ MainAxisAlignment
+ .center,
+ children: [
+ Container(
+ padding:
+ EdgeInsets.all(2),
+ margin:
+ EdgeInsets.all(2),
+ decoration:
+ new BoxDecoration(
+ color:
+ Colors.red[800],
+ borderRadius:
+ BorderRadius
+ .circular(
+ 20),
+ ),
+ constraints:
+ BoxConstraints(
+ minWidth: 20,
+ minHeight: 20,
+ ),
+ child: Center(
+ child: AppText(
+ model
+ .specialClinicalCareMappingList
+ .length
+ .toString(),
+ color:
+ Colors.white,
+ fontSize:
+ projectsProvider
+ .isArabic
+ ? 10
+ : 11,
+ textAlign:
+ TextAlign
+ .center,
+ ),
+ )),
+ ],
+ ),
+ AppText(item.description,
+ fontSize: 12,
+ color: Colors.black,
+ fontWeight:
+ FontWeight.bold,
+ textAlign: TextAlign.end),
+ ],
+ );
+ }).toList();
+ },
+ onChanged: (newValue) async {
+ setState(() {
+ selectedMapId = newValue;
+ });
+ model.clearPatientList();
+ GifLoaderDialogUtils.showMyDialog(
+ context);
+
+ PatientSearchRequestModel requestModel = PatientSearchRequestModel(
+ nursingStationID: selectedMapId, clinicID: 0);
+ await model.getInPatientList(requestModel, isLocalBusy: true);
+ GifLoaderDialogUtils.hideDialog(
+ context);
+ if (model.state ==
+ ViewState.ErrorLocal) {
+ DrAppToastMsg.showErrorToast(
+ model.error);
+ }
+ },
+ items: model
+ .specialClinicalCareMappingList
+ .map((item) {
+ return DropdownMenuItem(
+ child: AppText(
+ item.description,
+ textAlign: TextAlign.left,
+ ),
+ value: item.nursingStationID,
+ );
+ }).toList(),
+ )),
+ )
]),
),
),
diff --git a/lib/screens/patients/insurance_approval_screen_patient.dart b/lib/screens/patients/insurance_approval_screen_patient.dart
index 2bffdda5..1ab0734b 100644
--- a/lib/screens/patients/insurance_approval_screen_patient.dart
+++ b/lib/screens/patients/insurance_approval_screen_patient.dart
@@ -4,7 +4,7 @@ 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/screens/patients/insurance_approvals_details.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/doctor_card_insurance.dart';
@@ -44,10 +44,8 @@ class _InsuranceApprovalScreenNewState
: (model) => model.getInsuranceApproval(patient),
builder: (BuildContext context, InsuranceViewModel model, Widget child) =>
AppScaffold(
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patientType.toString() ?? "0",
- patientType,
isInpatient: isInpatient,
),
isShowAppBar: true,
diff --git a/lib/screens/patients/insurance_approvals_details.dart b/lib/screens/patients/insurance_approvals_details.dart
index 92910394..0945df37 100644
--- a/lib/screens/patients/insurance_approvals_details.dart
+++ b/lib/screens/patients/insurance_approvals_details.dart
@@ -5,7 +5,7 @@ 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/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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:flutter/cupertino.dart';
@@ -54,8 +54,8 @@ class _InsuranceApprovalsDetailsState extends State {
AppScaffold(
isShowAppBar: true,
baseViewModel: model,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patient.patientType.toString(), patient.arrivedOn),
+ appBar: PatientProfileAppBar(
+ patient),
body: patient.admissionNo != null
? SingleChildScrollView(
child: Container(
diff --git a/lib/screens/patients/out_patient/out_patient_screen.dart b/lib/screens/patients/out_patient/out_patient_screen.dart
index 30400c65..0a85ff26 100644
--- a/lib/screens/patients/out_patient/out_patient_screen.dart
+++ b/lib/screens/patients/out_patient/out_patient_screen.dart
@@ -1,10 +1,8 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
import 'package:doctor_app_flutter/core/enum/patient_type.dart';
-
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
-
import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
@@ -14,7 +12,7 @@ import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/PatientCard.dart';
+import 'package:doctor_app_flutter/widgets/patients/patient_card/PatientCard.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/errors/error_message.dart';
diff --git a/lib/screens/patients/patient_search/patient_search_result_screen.dart b/lib/screens/patients/patient_search/patient_search_result_screen.dart
index 02bde8d0..8044e991 100644
--- a/lib/screens/patients/patient_search/patient_search_result_screen.dart
+++ b/lib/screens/patients/patient_search/patient_search_result_screen.dart
@@ -10,13 +10,11 @@ import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/PatientCard.dart';
+import 'package:doctor_app_flutter/widgets/patients/patient_card/PatientCard.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/errors/error_message.dart';
-import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app_text_form_field.dart';
-import 'package:doctor_app_flutter/widgets/shared/text_fields/text_fields_utils.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
diff --git a/lib/screens/patients/profile/UCAF/UCAF-detail-screen.dart b/lib/screens/patients/profile/UCAF/UCAF-detail-screen.dart
index 6890d74f..081f1a6e 100644
--- a/lib/screens/patients/profile/UCAF/UCAF-detail-screen.dart
+++ b/lib/screens/patients/profile/UCAF/UCAF-detail-screen.dart
@@ -12,7 +12,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/UCAF/page-stepper-wi
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/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -47,8 +47,8 @@ class _UcafDetailScreenState extends State {
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
appBarTitle: TranslationBase.of(context).ucaf,
body: Column(
children: [
diff --git a/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart b/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart
index 5f7b91f3..3bbc6637 100644
--- a/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart
+++ b/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart
@@ -7,7 +7,7 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/UCAF/page-stepper-widget.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -65,8 +65,8 @@ class _UCAFInputScreenState extends State {
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
appBarTitle: TranslationBase.of(context).ucaf,
body: model.patientVitalSignsHistory.length > 0 &&
model.patientChiefComplaintList != null &&
diff --git a/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart b/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart
index 08a69907..f0ccaece 100644
--- a/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart
+++ b/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart
@@ -7,7 +7,7 @@ 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -61,8 +61,8 @@ class _AdmissionRequestThirdScreenState
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
appBarTitle: TranslationBase.of(context).admissionRequest,
body: GestureDetector(
onTap: () {
diff --git a/lib/screens/patients/profile/admission-request/admission-request-third-screen.dart b/lib/screens/patients/profile/admission-request/admission-request-third-screen.dart
index 120b6adf..563b4827 100644
--- a/lib/screens/patients/profile/admission-request/admission-request-third-screen.dart
+++ b/lib/screens/patients/profile/admission-request/admission-request-third-screen.dart
@@ -8,7 +8,7 @@ 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -52,8 +52,8 @@ class _AdmissionRequestThirdScreenState
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
appBarTitle: TranslationBase.of(context).admissionRequest,
body: GestureDetector(
onTap: () {
diff --git a/lib/screens/patients/profile/admission-request/admission-request_second-screen.dart b/lib/screens/patients/profile/admission-request/admission-request_second-screen.dart
index bea487f7..dc79b2be 100644
--- a/lib/screens/patients/profile/admission-request/admission-request_second-screen.dart
+++ b/lib/screens/patients/profile/admission-request/admission-request_second-screen.dart
@@ -10,7 +10,7 @@ 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -74,8 +74,8 @@ class _AdmissionRequestSecondScreenState
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
appBarTitle: TranslationBase.of(context).admissionRequest,
body: GestureDetector(
onTap: () {
diff --git a/lib/screens/patients/profile/lab_result/laboratory_result_page.dart b/lib/screens/patients/profile/lab_result/laboratory_result_page.dart
index 5f79038f..e58d4ef5 100644
--- a/lib/screens/patients/profile/lab_result/laboratory_result_page.dart
+++ b/lib/screens/patients/profile/lab_result/laboratory_result_page.dart
@@ -2,7 +2,7 @@ import 'package:doctor_app_flutter/core/model/labs/patient_lab_orders.dart';
import 'package:doctor_app_flutter/core/viewModel/labs_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -32,31 +32,19 @@ class _LaboratoryResultPageState extends State {
@override
Widget build(BuildContext context) {
return BaseView(
- // onModelReady: (model) => model.getLaboratoryResult(
- // invoiceNo: widget.patientLabOrders.invoiceNo,
- // clinicID: widget.patientLabOrders.clinicID,
- // projectID: widget.patientLabOrders.projectID,
- // orderNo: widget.patientLabOrders.orderNo,
- // patient: widget.patient,
- // isInpatient: widget.patientType == "1"),
onModelReady: (model) => model.getPatientLabResult(
patientLabOrder: widget.patientLabOrders,
patient: widget.patient,
isInpatient: true),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
- appBar: PatientProfileHeaderWhitAppointmentAppBar(
- patient: widget.patient,
- patientType: widget.patientType ?? "0",
- arrivalType: widget.arrivalType ?? "0",
- orderNo: widget.patientLabOrders.orderNo,
+ appBar: PatientProfileAppBar(
+ widget.patient,
+ isInpatient:widget.isInpatient,
+ isFromLabResult: true,
appointmentDate: widget.patientLabOrders.orderDate,
- doctorName: widget.patientLabOrders.doctorName,
- branch: widget.patientLabOrders.projectName,
- clinic: widget.patientLabOrders.clinicDescription,
- profileUrl: widget.patientLabOrders.doctorImageURL,
- invoiceNO: widget.patientLabOrders.invoiceNo,
),
+
baseViewModel: model,
body: AppScaffold(
isShowAppBar: false,
diff --git a/lib/screens/patients/profile/lab_result/labs_home_page.dart b/lib/screens/patients/profile/lab_result/labs_home_page.dart
index 0f0367af..7da55967 100644
--- a/lib/screens/patients/profile/lab_result/labs_home_page.dart
+++ b/lib/screens/patients/profile/lab_result/labs_home_page.dart
@@ -7,7 +7,7 @@ import 'package:doctor_app_flutter/screens/procedures/ProcedureType.dart';
import 'package:doctor_app_flutter/screens/procedures/base_add_procedure_tab_page.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/doctor_card.dart';
@@ -52,10 +52,8 @@ class _LabsHomePageState extends State {
baseViewModel: model,
backgroundColor: Colors.grey[100],
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patient.patientType.toString() ?? '0',
- patientType,
isInpatient: isInpatient,
),
body: SingleChildScrollView(
diff --git a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart
index a3fa91e9..a73eb90f 100644
--- a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart
+++ b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart
@@ -6,6 +6,7 @@ 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
+import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
@@ -40,27 +41,35 @@ class _AddVerifyMedicalReportState extends State {
? TranslationBase.of(context).medicalReportAdd
: TranslationBase.of(context).medicalReportVerify,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
- body: Column(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.all(16),
- child: Column(
- children: [
- Expanded(
- child: SingleChildScrollView(
- child: Container(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
+ body: model.state == ViewState.BusyLocal
+ ? AppLoaderWidget()
+ : Column(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.all(16),
+ child: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ child: Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
- if (model.medicalReportTemplate.length > 0)
+ // if (model.medicalReportTemplate.length > 0)
HtmlRichEditor(
- initialText: model
- .medicalReportTemplate[0]
- .templateTextHtml,
+ initialText: (medicalReport != null
+ ? medicalReport.reportDataHtml
+ : model.medicalReportTemplate
+ .length > 0 ? model
+ .medicalReportTemplate[0] : ""),
+ hint: "Write the medical report ",
height:
- MediaQuery.of(context).size.height *
- 0.75,
+ MediaQuery
+ .of(context)
+ .size
+ .height *
+ 0.75,
),
],
),
diff --git a/lib/screens/patients/profile/medical_report/MedicalReportDetailPage.dart b/lib/screens/patients/profile/medical_report/MedicalReportDetailPage.dart
index 7bf6f1d9..ab24f8e0 100644
--- a/lib/screens/patients/profile/medical_report/MedicalReportDetailPage.dart
+++ b/lib/screens/patients/profile/medical_report/MedicalReportDetailPage.dart
@@ -7,7 +7,7 @@ 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/large_avatar.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/errors/dr_app_embedded_error.dart';
@@ -31,10 +31,8 @@ class MedicalReportDetailPage extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patientType,
- arrivalType,
),
body: Container(
child: SingleChildScrollView(
diff --git a/lib/screens/patients/profile/medical_report/MedicalReportPage.dart b/lib/screens/patients/profile/medical_report/MedicalReportPage.dart
index e2da651b..aa9d0b58 100644
--- a/lib/screens/patients/profile/medical_report/MedicalReportPage.dart
+++ b/lib/screens/patients/profile/medical_report/MedicalReportPage.dart
@@ -7,17 +7,17 @@ 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/date-utils.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
+import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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_bg_widget.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
-import 'package:flutter_html/flutter_html.dart';
import 'package:provider/provider.dart';
import '../../../../routes.dart';
@@ -43,10 +43,8 @@ class MedicalReportPage extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patientType,
- arrivalType,
),
body: SingleChildScrollView(
physics: BouncingScrollPhysics(),
@@ -75,13 +73,18 @@ class MedicalReportPage extends StatelessWidget {
),
AddNewOrder(
onTap: () {
- Navigator.of(context)
- .pushNamed(PATIENT_MEDICAL_REPORT_INSERT, arguments: {
- 'patient': patient,
- 'patientType': patientType,
- 'arrivalType': arrivalType,
- 'type': MedicalReportStatus.ADD
- });
+ if (model.hasOnHold()) {
+ Helpers.showErrorToast(
+ "Please Verified the on hold report to be able to add new one");
+ } else {
+ Navigator.of(context)
+ .pushNamed(PATIENT_MEDICAL_REPORT_INSERT, arguments: {
+ 'patient': patient,
+ 'patientType': patientType,
+ 'arrivalType': arrivalType,
+ 'type': MedicalReportStatus.ADD
+ });
+ }
},
label: TranslationBase.of(context).createNewMedicalReport,
),
@@ -92,7 +95,7 @@ class MedicalReportPage extends StatelessWidget {
onTap: () {
if (model.medicalReportList[index].status == 1) {
Navigator.of(context).pushNamed(
- PATIENT_MEDICAL_REPORT_DETAIL,
+ PATIENT_MEDICAL_REPORT_INSERT,
arguments: {
'patient': patient,
'patientType': patientType,
@@ -101,7 +104,7 @@ class MedicalReportPage extends StatelessWidget {
});
} else {
Navigator.of(context).pushNamed(
- PATIENT_MEDICAL_REPORT_INSERT,
+ PATIENT_MEDICAL_REPORT_DETAIL,
arguments: {
'patient': patient,
'patientType': patientType,
@@ -116,7 +119,7 @@ class MedicalReportPage extends StatelessWidget {
child: CardWithBgWidget(
hasBorder: false,
bgColor: model.medicalReportList[index].status == 1
- ? Colors.red[700]
+ ? Color(0xFFCC9B14)
: Colors.green[700],
widget: Column(
children: [
@@ -132,9 +135,9 @@ class MedicalReportPage extends StatelessWidget {
: TranslationBase.of(context)
.verified,
color: model.medicalReportList[index]
- .status ==
- 1
- ? Colors.red[700]
+ .status ==
+ 1
+ ? Color(0xFFCC9B14)
: Colors.green[700],
fontSize: 1.4 * SizeConfig.textMultiplier,
bold: true,
@@ -226,8 +229,8 @@ class MedicalReportPage extends StatelessWidget {
Icon(
model.medicalReportList[index].status ==
1
- ? EvaIcons.eye
- : DoctorApp.edit_1,
+ ? DoctorApp.edit_1
+ :EvaIcons.eye ,
),
],
),
diff --git a/lib/screens/patients/profile/note/progress_note_screen.dart b/lib/screens/patients/profile/note/progress_note_screen.dart
index be912a60..723ee75f 100644
--- a/lib/screens/patients/profile/note/progress_note_screen.dart
+++ b/lib/screens/patients/profile/note/progress_note_screen.dart
@@ -10,7 +10,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/note/update_note.dar
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
@@ -88,10 +88,8 @@ class _ProgressNoteState extends State {
.of(context)
.scaffoldBackgroundColor,
// appBarTitle: TranslationBase.of(context).progressNote,
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patient.patientType.toString() ?? '0',
- arrivalType,
isInpatient: true,
),
body: model.patientProgressNoteList == null ||
diff --git a/lib/screens/patients/profile/profile_screen/PatientProfileCardModel.dart b/lib/screens/patients/profile/profile_screen/PatientProfileCardModel.dart
index eb9a3eaa..e4351d91 100644
--- a/lib/screens/patients/profile/profile_screen/PatientProfileCardModel.dart
+++ b/lib/screens/patients/profile/profile_screen/PatientProfileCardModel.dart
@@ -13,6 +13,7 @@ class PatientProfileCardModel {
final bool isSelectInpatient;
final bool isDartIcon;
final IconData dartIcon;
+ final Color color;
PatientProfileCardModel(
this.nameLine1,
@@ -25,6 +26,8 @@ class PatientProfileCardModel {
this.onTap,
this.isDischargedPatient = false,
this.isSelectInpatient = false,
- this.isDartIcon = false,this.dartIcon
+ this.isDartIcon = false,
+ this.dartIcon,
+ this.color,
});
}
diff --git a/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart b/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart
index 55b2d6f9..4e98aa22 100644
--- a/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart
+++ b/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart
@@ -14,7 +14,7 @@ import 'package:doctor_app_flutter/util/VideoChannel.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
@@ -102,13 +102,13 @@ class _PatientProfileScreenState extends State
children: [
Column(
children: [
- PatientProfileHeaderNewDesignAppBar(
- patient, arrivalType ?? '0', patientType,
- isInpatient: isInpatient,
+ PatientProfileAppBar(
+ patient,
isFromLiveCare: isFromLiveCare,
+ isInpatient: isInpatient,
height: (patient.patientStatusType != null &&
patient.patientStatusType == 43)
- ? 210
+ ? 220
: isDischargedPatient
? 240
: 0,
@@ -156,51 +156,57 @@ class _PatientProfileScreenState extends State
SizedBox(
height: MediaQuery.of(context).size.height * 0.05,
)
- ],
- ),
- ),
-
],
),
- if (patient.patientStatusType != null &&
- patient.patientStatusType == 43)
- BaseView(
- onModelReady: (model) async {},
- builder: (_, model, w) => Positioned(
- top: 180,
- left: 20,
- right: 20,
- child: Row(
- children: [
- Expanded(child: Container()),
- if (patient.episodeNo == 0)
- AppButton(
- title:
- "${TranslationBase.of(context).createNew}\n${TranslationBase.of(context).episode}",
- color: patient.patientStatusType == 43
- ? Colors.red.shade700
- : Colors.grey.shade700,
- fontColor: Colors.white,
- vPadding: 8,
- radius: 30,
- hPadding: 20,
- fontWeight: FontWeight.normal,
- fontSize: 1.6,
- icon: Image.asset(
- "assets/images/create-episod.png",
- color: Colors.white,
+ ),
+ ],
+ ),
+ if (isFromLiveCare
+ ? patient.episodeNo != null
+ : patient.patientStatusType != null &&
+ patient.patientStatusType == 43)
+ BaseView(
+ onModelReady: (model) async {},
+ builder: (_, model, w) => Positioned(
+ top: 180,
+ left: 20,
+ right: 20,
+ child: Row(
+ children: [
+ Expanded(child: Container()),
+ if (patient.episodeNo == 0)
+ AppButton(
+ title:
+ "${TranslationBase.of(context).createNew}\n${TranslationBase.of(context).episode}",
+ color: isFromLiveCare
+ ? Colors.red.shade700
+ : patient.patientStatusType == 43
+ ? Colors.red.shade700
+ : Colors.grey.shade700,
+ fontColor: Colors.white,
+ vPadding: 8,
+ radius: 30,
+ hPadding: 20,
+ fontWeight: FontWeight.normal,
+ fontSize: 1.6,
+ icon: Image.asset(
+ "assets/images/create-episod.png",
+ color: Colors.white,
height: 30,
),
onPressed: () async {
- if (patient.patientStatusType ==
- 43) {
+ if ((isFromLiveCare &&
+ patient.appointmentNo != null &&
+ patient.appointmentNo != 0) ||
+ patient.patientStatusType ==
+ 43) {
PostEpisodeReqModel
- postEpisodeReqModel =
- PostEpisodeReqModel(
- appointmentNo:
- patient.appointmentNo,
- patientMRN:
- patient.patientMRN);
+ postEpisodeReqModel =
+ PostEpisodeReqModel(
+ appointmentNo:
+ patient.appointmentNo,
+ patientMRN:
+ patient.patientMRN);
GifLoaderDialogUtils.showMyDialog(
context);
await model.postEpisode(
@@ -220,11 +226,18 @@ class _PatientProfileScreenState extends State
if (patient.episodeNo != 0)
AppButton(
title:
- "${TranslationBase.of(context).update}\n${TranslationBase.of(context).episode}",
+ "${TranslationBase
+ .of(context)
+ .update}\n${TranslationBase
+ .of(context)
+ .episode}",
color:
- patient.patientStatusType == 43
- ? Colors.red.shade700
- : Colors.grey.shade700,
+ isFromLiveCare
+ ? Colors.red.shade700
+ : patient.patientStatusType ==
+ 43
+ ? Colors.red.shade700
+ : Colors.grey.shade700,
fontColor: Colors.white,
vPadding: 8,
radius: 30,
@@ -237,8 +250,12 @@ class _PatientProfileScreenState extends State
height: 30,
),
onPressed: () {
- if (patient.patientStatusType ==
- 43) {
+ if ((isFromLiveCare &&
+ patient.appointmentNo !=
+ null &&
+ patient.appointmentNo != 0) ||
+ patient.patientStatusType ==
+ 43) {
Navigator.of(context).pushNamed(
UPDATE_EPISODE,
arguments: {
@@ -283,6 +300,11 @@ class _PatientProfileScreenState extends State
TranslationBase.of(context).initiateCall,
disabled: model.state == ViewState.BusyLocal,
onPressed: () async {
+ // Navigator.push(context, MaterialPageRoute(
+ // builder: (BuildContext context) =>
+ // EndCallScreen(patient:patient)));
+
+
if(isCallFinished) {
Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) =>
@@ -305,6 +327,7 @@ class _PatientProfileScreenState extends State
kSessionId: model.startCallRes.openSessionID,
kApiKey: '46209962',
vcId: patient.vcId,
+ patientName: patient.fullName ?? (patient.firstName != null ? "${patient.firstName} ${patient.lastName}" : "-"),
tokenID: await model.getToken(),
generalId: GENERAL_ID,
doctorId: model.doctorProfile.doctorID,
diff --git a/lib/screens/patients/profile/radiology/radiology_details_page.dart b/lib/screens/patients/profile/radiology/radiology_details_page.dart
index acc79d19..48bef68a 100644
--- a/lib/screens/patients/profile/radiology/radiology_details_page.dart
+++ b/lib/screens/patients/profile/radiology/radiology_details_page.dart
@@ -3,7 +3,7 @@ import 'package:doctor_app_flutter/core/viewModel/radiology_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/secondary_button.dart';
@@ -16,13 +16,15 @@ class RadiologyDetailsPage extends StatelessWidget {
final PatiantInformtion patient;
final String patientType;
final String arrivalType;
+ final bool isInpatient;
RadiologyDetailsPage(
{Key key,
this.finalRadiology,
this.patient,
this.patientType,
- this.arrivalType});
+ this.arrivalType,
+ this.isInpatient = false});
@override
Widget build(BuildContext context) {
@@ -33,16 +35,16 @@ class RadiologyDetailsPage extends StatelessWidget {
lineItem: finalRadiology.invoiceLineItemNo,
invoiceNo: finalRadiology.invoiceNo),
builder: (_, model, widget) => AppScaffold(
- appBar: PatientProfileHeaderWhitAppointmentAppBar(
- patient: patient,
- patientType: patientType ?? "0",
- arrivalType: arrivalType ?? "0",
+ appBar: PatientProfileAppBar(
+ patient,
appointmentDate: finalRadiology.orderDate,
doctorName: finalRadiology.doctorName,
clinic: finalRadiology.clinicDescription,
branch: finalRadiology.projectName,
profileUrl: finalRadiology.doctorImageURL,
invoiceNO: finalRadiology.invoiceNo.toString(),
+ isAppointmentHeader: true,
+
),
isShowAppBar: true,
baseViewModel: model,
diff --git a/lib/screens/patients/profile/radiology/radiology_home_page.dart b/lib/screens/patients/profile/radiology/radiology_home_page.dart
index 9f93df35..3d8d527c 100644
--- a/lib/screens/patients/profile/radiology/radiology_home_page.dart
+++ b/lib/screens/patients/profile/radiology/radiology_home_page.dart
@@ -7,7 +7,7 @@ import 'package:doctor_app_flutter/screens/procedures/ProcedureType.dart';
import 'package:doctor_app_flutter/screens/procedures/base_add_procedure_tab_page.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/doctor_card.dart';
@@ -50,10 +50,8 @@ class _RadiologyHomePageState extends State {
isShowAppBar: true,
backgroundColor: Colors.grey[100],
// appBarTitle: TranslationBase.of(context).radiology,
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patient.patientType.toString() ?? '0',
- arrivalType,
isInpatient: isInpatient,
),
baseViewModel: model,
@@ -210,6 +208,7 @@ class _RadiologyHomePageState extends State {
finalRadiology:
model.radiologyList[index],
patient: patient,
+ isInpatient:isInpatient
),
),
);
diff --git a/lib/screens/patients/profile/referral/AddReplayOnReferralPatient.dart b/lib/screens/patients/profile/referral/AddReplayOnReferralPatient.dart
index f54a18ac..56ff85c4 100644
--- a/lib/screens/patients/profile/referral/AddReplayOnReferralPatient.dart
+++ b/lib/screens/patients/profile/referral/AddReplayOnReferralPatient.dart
@@ -1,7 +1,7 @@
import 'package:doctor_app_flutter/config/config.dart';
-import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart';
+import 'package:doctor_app_flutter/core/model/referral/add_referred_remarks_request.dart';
import 'package:doctor_app_flutter/core/provider/robot_provider.dart';
import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
@@ -19,30 +19,40 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
+import 'ReplySummeryOnReferralPatient.dart';
+
class AddReplayOnReferralPatient extends StatefulWidget {
final PatientReferralViewModel patientReferralViewModel;
final MyReferralPatientModel myReferralInPatientModel;
+ final AddReferredRemarksRequestModel myReferralInPatientRequestModel;
+ final bool isEdited;
const AddReplayOnReferralPatient(
- {Key key, this.patientReferralViewModel, this.myReferralInPatientModel})
+ {Key key,
+ this.patientReferralViewModel,
+ this.myReferralInPatientModel,
+ this.isEdited,
+ this.myReferralInPatientRequestModel})
: super(key: key);
@override
- _AddReplayOnReferralPatientState createState() =>
- _AddReplayOnReferralPatientState();
+ _AddReplayOnReferralPatientState createState() => _AddReplayOnReferralPatientState();
}
-class _AddReplayOnReferralPatientState
- extends State {
+class _AddReplayOnReferralPatientState extends State {
bool isSubmitted = false;
+ int replay = 1;
+ int reject = 2;
stt.SpeechToText speech = stt.SpeechToText();
var reconizedWord;
var event = RobotProvider();
TextEditingController replayOnReferralController = TextEditingController();
+
@override
void initState() {
requestPermissions();
super.initState();
+ replayOnReferralController.text = widget.myReferralInPatientModel.referredDoctorRemarks ?? "";
}
@override
@@ -50,116 +60,206 @@ class _AddReplayOnReferralPatientState
return AppScaffold(
isShowAppBar: false,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
- body: SingleChildScrollView(
- child: Container(
- height: MediaQuery.of(context).size.height * 1.0,
- child: Padding(
- padding: EdgeInsets.all(0.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- BottomSheetTitle(title: 'Replay'),
- SizedBox(
- height: 10.0,
- ),
- Center(
- child: FractionallySizedBox(
- widthFactor: 0.9,
- child: Column(
- children: [
- Stack(
- children: [
- AppTextFieldCustom(
- hintText: 'Replay your responses here',
- controller: replayOnReferralController,
- maxLines: 35,
- minLines: 25,
- hasBorder: true,
- validationError:
- replayOnReferralController.text.isEmpty &&
- isSubmitted
- ? TranslationBase.of(context).emptyMessage
- : null,
- ),
- Positioned(
- top: 0, //MediaQuery.of(context).size.height * 0,
- right: 15,
- child: IconButton(
- icon: Icon(
- DoctorApp.speechtotext,
- color: Colors.black,
- size: 35,
- ),
- onPressed: () {
- onVoiceText();
- },
+ body: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ BottomSheetTitle(title: 'Reply'),
+ SizedBox(
+ height: 10.0,
+ ),
+ Center(
+ child: FractionallySizedBox(
+ widthFactor: 0.9,
+ child: Column(
+ children: [
+ Stack(
+ children: [
+ AppTextFieldCustom(
+ hintText: 'Reply your responses here',
+ controller: replayOnReferralController,
+ maxLines: 35,
+ minLines: 25,
+ hasBorder: true,
+ validationError: replayOnReferralController.text.isEmpty && isSubmitted
+ ? TranslationBase.of(context).emptyMessage
+ : null,
),
- )
- ],
- ),
- ],
+ Positioned(
+ top: 0,
+ //MediaQuery.of(context).size.height * 0,
+ right: 15,
+ child: IconButton(
+ icon: Icon(
+ DoctorApp.speechtotext,
+ color: Colors.black,
+ size: 35,
+ ),
+ onPressed: () {
+ onVoiceText();
+ },
+ ),
+ )
+ ],
+ ),
+ ],
+ ),
),
),
- ),
- ],
+ ],
+ ),
),
),
- ),
- ),
- bottomSheet: Container(
- height: replayOnReferralController.text.isNotEmpty ? 130 : 70,
- margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
- child: Column(
- children: [
- replayOnReferralController.text.isEmpty
- ? SizedBox()
- : Container(
- margin: EdgeInsets.all(5),
- child: Expanded(
+ Container(
+ // height: replayOnReferralController.text.isNotEmpty ? 130 : 70,
+ // margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
+ child: Column(
+ children: [
+ replayOnReferralController.text.isEmpty
+ ? SizedBox()
+ : Container(
+ margin: EdgeInsets.all(16),
child: AppButton(
- title: TranslationBase.of(context).clearText,
- onPressed: () {
- setState(() {
- replayOnReferralController.text = '';
- });
- },
- )),
+ title: TranslationBase.of(context).clearText,
+ onPressed: () {
+ setState(() {
+ replayOnReferralController.text = '';
+ });
+ },
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(16, 0, 16, 16),
+ child: Row(
+ children: [
+ Expanded(
+ child: AppButton(
+ onPressed: () async {
+ if (replayOnReferralController.text.isNotEmpty) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ await widget.patientReferralViewModel.replayReferred(
+ replayOnReferralController.text.trim(), widget.myReferralInPatientModel, reject);
+ if (widget.patientReferralViewModel.state == ViewState.ErrorLocal) {
+ Helpers.showErrorToast(widget.patientReferralViewModel.error);
+ } else {
+ GifLoaderDialogUtils.hideDialog(context);
+ DrAppToastMsg.showSuccesToast("Has been rejected");
+ Navigator.of(context).pop();
+ Navigator.of(context).pop();
+
+ // Navigator.push(
+ // context,
+ // FadePage(
+ // page: ReplySummeryOnReferralPatient(
+ // widget.myReferralInPatientModel, replayOnReferralController.text.trim()),
+ // ),
+ // );
+ }
+ } else {
+ Helpers.showErrorToast("You can't add empty reply");
+ setState(() {
+ isSubmitted = false;
+ });
+ }
+ },
+ title: TranslationBase.of(context).reject,
+ fontColor: Colors.white,
+ color: Colors.red[600],
+ ),
+ ),
+ SizedBox(
+ width: 4,
+ ),
+ Expanded(
+ child: AppButton(
+ onPressed: () async {
+ setState(() {
+ isSubmitted = true;
+ });
+ if (replayOnReferralController.text.isNotEmpty) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ await widget.patientReferralViewModel.replayReferred(
+ replayOnReferralController.text.trim(), widget.myReferralInPatientModel, replay);
+ if (widget.patientReferralViewModel.state == ViewState.ErrorLocal) {
+ Helpers.showErrorToast(widget.patientReferralViewModel.error);
+ } else {
+ GifLoaderDialogUtils.hideDialog(context);
+ DrAppToastMsg.showSuccesToast("Your Reply Added Successfully");
+ Navigator.of(context).pop();
+ Navigator.of(context).pop();
+
+ // Navigator.push(
+ // context,
+ // FadePage(
+ // page: ReplySummeryOnReferralPatient(
+ // widget.myReferralInPatientModel, replayOnReferralController.text.trim()),
+ // ),
+ // );
+ }
+ } else {
+ Helpers.showErrorToast("You can't add empty reply");
+ setState(() {
+ isSubmitted = false;
+ });
+ }
+ },
+ title: TranslationBase.of(context).noteConfirm,
+ fontColor: Colors.white,
+ color: Colors.green[600],
+ ),
+ ),
+ ],
),
- Container(
- margin: EdgeInsets.all(5),
- child: AppButton(
- title: 'Submit Replay',
- color: Color(0xff359846),
- fontWeight: FontWeight.w700,
- onPressed: () async {
- setState(() {
- isSubmitted = true;
- });
- if (replayOnReferralController.text.isNotEmpty) {
- GifLoaderDialogUtils.showMyDialog(context);
- await widget.patientReferralViewModel.replay(
- replayOnReferralController.text.trim(),
- widget.myReferralInPatientModel);
- if (widget.patientReferralViewModel.state ==
- ViewState.ErrorLocal) {
- Helpers.showErrorToast(
- widget.patientReferralViewModel.error);
- } else {
- GifLoaderDialogUtils.hideDialog(context);
- DrAppToastMsg.showSuccesToast(
- "Your Replay Added Successfully");
- Navigator.of(context).pop();
- Navigator.of(context).pop();
- }
- } else {
- Helpers.showErrorToast("You can't add empty replay");
- setState(() {
- isSubmitted = false;
- });
- }
- })),
- ],
- ),
+ ),
+ // Container(
+ // margin: EdgeInsets.all(5),
+ // child: AppButton(
+ // title: 'Submit Reply',
+ // color: Color(0xff359846),
+ // fontWeight: FontWeight.w700,
+ // onPressed: () async {
+ // setState(() {
+ // isSubmitted = true;
+ // });
+ // if (replayOnReferralController.text.isNotEmpty) {
+ // GifLoaderDialogUtils.showMyDialog(context);
+ // await widget.patientReferralViewModel.replay(
+ // replayOnReferralController.text.trim(),
+ // widget.myReferralInPatientModel);
+ // if (widget.patientReferralViewModel.state ==
+ // ViewState.ErrorLocal) {
+ // Helpers.showErrorToast(
+ // widget.patientReferralViewModel.error);
+ // } else {
+ // GifLoaderDialogUtils.hideDialog(context);
+ // DrAppToastMsg.showSuccesToast(
+ // "Your Reply Added Successfully");
+ // Navigator.of(context).pop();
+ // Navigator.of(context).pop();
+ //
+ // Navigator.push(
+ // context,
+ // FadePage(
+ // page: ReplySummeryOnReferralPatient(
+ // widget.myReferralInPatientModel,
+ // replayOnReferralController.text.trim()),
+ // ),
+ // );
+ // }
+ // } else {
+ // Helpers.showErrorToast("You can't add empty reply");
+ // setState(() {
+ // isSubmitted = false;
+ // });
+ // }
+ // })),
+ ],
+ ),
+ ),
+ ],
),
);
}
@@ -167,8 +267,7 @@ class _AddReplayOnReferralPatientState
onVoiceText() async {
new SpeechToText(context: context).showAlertDialog(context);
var lang = TranslationBase.of(AppGlobal.CONTEX).locale.languageCode;
- bool available = await speech.initialize(
- onStatus: statusListener, onError: errorListener);
+ bool available = await speech.initialize(onStatus: statusListener, onError: errorListener);
if (available) {
speech.listen(
onResult: resultListener,
diff --git a/lib/screens/patients/profile/referral/ReplySummeryOnReferralPatient.dart b/lib/screens/patients/profile/referral/ReplySummeryOnReferralPatient.dart
new file mode 100644
index 00000000..2a48e079
--- /dev/null
+++ b/lib/screens/patients/profile/referral/ReplySummeryOnReferralPatient.dart
@@ -0,0 +1,119 @@
+import 'package:doctor_app_flutter/config/size_config.dart';
+import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart';
+import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.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/screens/base/base_view.dart';
+import 'package:doctor_app_flutter/util/date-utils.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/shared/app_scaffold_widget.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:flutter/material.dart';
+
+import '../../../../routes.dart';
+
+class ReplySummeryOnReferralPatient extends StatefulWidget {
+ final MyReferralPatientModel referredPatient;
+ final String doctorReply;
+
+ ReplySummeryOnReferralPatient(this.referredPatient, this.doctorReply);
+
+ @override
+ _ReplySummeryOnReferralPatientState createState() =>
+ _ReplySummeryOnReferralPatientState(this.referredPatient);
+}
+
+class _ReplySummeryOnReferralPatientState
+ extends State {
+ final MyReferralPatientModel referredPatient;
+
+ _ReplySummeryOnReferralPatientState(this.referredPatient);
+
+ @override
+ Widget build(BuildContext context) {
+ return BaseView(
+ builder: (_, model, w) => AppScaffold(
+ baseViewModel: model,
+ isShowAppBar: true,
+ appBarTitle: TranslationBase.of(context).summeryReply,
+ body: Container(
+ child: Column(
+ children: [
+
+ Expanded(
+ child: SingleChildScrollView(
+ child: Container(
+ width: double.infinity,
+ margin:
+ EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ padding: EdgeInsets.symmetric(
+ horizontal: 16, vertical: 16),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.all(Radius.circular(8)),
+ border: Border.fromBorderSide(BorderSide(
+ color: Colors.white,
+ width: 1.0,
+ )),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).reply,
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 2.4 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ AppText(
+ widget.doctorReply ?? '',
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w600,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ SizedBox(
+ height: 8,
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ Container(
+ margin:
+ EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ child: Row(
+ children: [
+ Expanded(
+ child: AppButton(
+ onPressed: () {
+ Navigator.of(context).pop();
+ },
+ title: TranslationBase.of(context).cancel,
+ fontColor: Colors.white,
+ color: Colors.red[600],
+ ),
+ ),
+ SizedBox(width: 4,),
+ Expanded(
+ child: AppButton(
+ onPressed: () {},
+ title: TranslationBase.of(context).noteConfirm,
+ fontColor: Colors.white,
+ color: Colors.green[600],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ));
+ }
+}
diff --git a/lib/screens/patients/profile/referral/my-referral-inpatient-screen.dart b/lib/screens/patients/profile/referral/my-referral-inpatient-screen.dart
index fcbd11b7..3ebd7896 100644
--- a/lib/screens/patients/profile/referral/my-referral-inpatient-screen.dart
+++ b/lib/screens/patients/profile/referral/my-referral-inpatient-screen.dart
@@ -1,16 +1,20 @@
+import 'package:doctor_app_flutter/core/enum/PatientType.dart';
import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/referral/referral_patient_detail_in-paint.dart';
+import 'package:doctor_app_flutter/screens/patients/profile/referral/referred-patient-screen.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/patient-referral-item-widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
+import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class MyReferralInPatientScreen extends StatelessWidget {
+ PatientType patientType = PatientType.IN_PATIENT;
@override
Widget build(BuildContext context) {
@@ -20,72 +24,90 @@ class MyReferralInPatientScreen extends StatelessWidget {
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).referPatient,
- body: model.myReferralPatients.isEmpty
- ? Center(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- SizedBox(
- height: 100,
+ body: Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 70),
+ child: PatientTypeRadioWidget(
+ (patientType) async {
+ this.patientType = patientType;
+ GifLoaderDialogUtils.showMyDialog(context);
+ if (patientType == PatientType.IN_PATIENT) {
+ await model.getMyReferralPatientService(localBusy: true);
+ } else {
+ await model.getMyReferralOutPatientService(localBusy: true);
+ }
+ GifLoaderDialogUtils.hideDialog(context);
+ },
+ ),
+ ),
+ model.myReferralPatients.isEmpty
+ ? Center(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ SizedBox(
+ height: 100,
+ ),
+ Image.asset('assets/images/no-data.png'),
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: AppText(
+ TranslationBase.of(context).referralEmptyMsg,
+ color: Theme.of(context).errorColor,
+ ),
+ )
+ ],
),
- Image.asset('assets/images/no-data.png'),
- Padding(
- padding: const EdgeInsets.all(8.0),
- child: AppText(
- TranslationBase.of(context).referralEmptyMsg,
- color: Theme.of(context).errorColor,
- ),
- )
- ],
- ),
- )
- : SingleChildScrollView(
- child: Container(
- margin: EdgeInsets.only(top: 70),
- // color: Colors.white,
- // height: MediaQuery.of(context).size.height,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- // SizedBox(height: 50),
- ...List.generate(
- model.myReferralPatients.length,
- (index) => InkWell(
- onTap: () {
- Navigator.push(
- context,
- FadePage(
- page: ReferralPatientDetailScreen(model.myReferralPatients[index],model),
+ )
+ : Expanded(
+ child: SingleChildScrollView(
+ child: Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ ...List.generate(
+ model.myReferralPatients.length,
+ (index) => InkWell(
+ onTap: () {
+ Navigator.push(
+ context,
+ FadePage(
+ page: ReferralPatientDetailScreen(model.myReferralPatients[index], model),
+ ),
+ );
+ },
+ child: PatientReferralItemWidget(
+ referralStatus: model.getReferralStatusNameByCode(
+ model.myReferralPatients[index].referralStatus, context),
+ referralStatusCode: model.myReferralPatients[index].referralStatus,
+ patientName: model.myReferralPatients[index].patientName,
+ patientGender: model.myReferralPatients[index].gender,
+ referredDate: AppDateUtils.getDayMonthYearDateFormatted(
+ model.myReferralPatients[index].referralDate),
+ referredTime: AppDateUtils.getTimeHHMMA(model.myReferralPatients[index].referralDate),
+ patientID: "${model.myReferralPatients[index].patientID}",
+ isSameBranch: false,
+ isReferral: true,
+ isReferralClinic: true,
+ referralClinic: "${model.myReferralPatients[index].referringClinicDescription}",
+ remark: model.myReferralPatients[index].referringDoctorRemarks,
+ nationality: model.myReferralPatients[index].nationalityName,
+ nationalityFlag: model.myReferralPatients[index].nationalityFlagURL,
+ doctorAvatar: model.myReferralPatients[index].doctorImageURL,
+ referralDoctorName: model.myReferralPatients[index].referringDoctorName,
+ clinicDescription: model.myReferralPatients[index].referringClinicDescription,
+ infoIcon: Icon(FontAwesomeIcons.arrowRight, size: 25, color: Colors.black),
+ ),
),
- );
- },
- child: PatientReferralItemWidget(
- referralStatus: model.getReferralStatusNameByCode(model.myReferralPatients[index].referralStatus,context),
- referralStatusCode: model.myReferralPatients[index].referralStatus,
- patientName: model.myReferralPatients[index].patientName,
- patientGender: model.myReferralPatients[index].gender,
- referredDate: AppDateUtils.getDayMonthYearDateFormatted(model.myReferralPatients[index].referralDate),
- referredTime: AppDateUtils.getTimeHHMMA(model.myReferralPatients[index].referralDate),
- patientID: "${model.myReferralPatients[index].patientID}",
- isSameBranch: false,
- isReferral: true,
- isReferralClinic: true,
- referralClinic:"${model.myReferralPatients[index].referringClinicDescription}",
- remark: model.myReferralPatients[index].referringDoctorRemarks,
- nationality: model.myReferralPatients[index].nationalityName,
- nationalityFlag: model.myReferralPatients[index].nationalityFlagURL,
- doctorAvatar: model.myReferralPatients[index].doctorImageURL,
- referralDoctorName: model.myReferralPatients[index].referringDoctorName,
- clinicDescription: model.myReferralPatients[index].referringClinicDescription,
- infoIcon: Icon(FontAwesomeIcons.arrowRight,
- size: 25, color: Colors.black),
- ),
+ ),
+ ],
),
),
- ],
+ ),
),
- ),
- ),
+ ],
+ ),
),
);
}
diff --git a/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart b/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart
index 658ad895..66fd22fd 100644
--- a/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart
+++ b/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart
@@ -8,7 +8,7 @@ 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/buttons/app_buttons_widget.dart';
@@ -136,10 +136,8 @@ class _PatientMakeInPatientReferralScreenState extends State {
baseViewModel: model,
appBarTitle: TranslationBase.of(context).referPatient,
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
body: SingleChildScrollView(
child: Container(
child: Column(
diff --git a/lib/screens/patients/profile/referral/referral_patient_detail_in-paint.dart b/lib/screens/patients/profile/referral/referral_patient_detail_in-paint.dart
index a949036b..66e01364 100644
--- a/lib/screens/patients/profile/referral/referral_patient_detail_in-paint.dart
+++ b/lib/screens/patients/profile/referral/referral_patient_detail_in-paint.dart
@@ -19,8 +19,8 @@ import 'AddReplayOnReferralPatient.dart';
class ReferralPatientDetailScreen extends StatelessWidget {
final MyReferralPatientModel referredPatient;
final PatientReferralViewModel patientReferralViewModel;
- ReferralPatientDetailScreen(
- this.referredPatient, this.patientReferralViewModel);
+
+ ReferralPatientDetailScreen(this.referredPatient, this.patientReferralViewModel);
@override
Widget build(BuildContext context) {
@@ -51,8 +51,7 @@ class ReferralPatientDetailScreen extends StatelessWidget {
),
Expanded(
child: AppText(
- (Helpers.capitalize(
- "${referredPatient.firstName} ${referredPatient.lastName}")),
+ (Helpers.capitalize("${referredPatient.firstName} ${referredPatient.lastName}")),
fontSize: SizeConfig.textMultiplier * 2.5,
fontWeight: FontWeight.bold,
fontFamily: 'Poppins',
@@ -69,18 +68,14 @@ class ReferralPatientDetailScreen extends StatelessWidget {
),
InkWell(
onTap: () {
- PatiantInformtion patient = model
- .getPatientFromReferralO(referredPatient);
- Navigator.of(context)
- .pushNamed(PATIENTS_PROFILE, arguments: {
+ PatiantInformtion patient = model.getPatientFromReferralO(referredPatient);
+ Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: {
"patient": patient,
"patientType": "1",
"isInpatient": true,
"arrivalType": "1",
- "from": AppDateUtils.convertDateToFormat(
- DateTime.now(), 'yyyy-MM-dd'),
- "to": AppDateUtils.convertDateToFormat(
- DateTime.now(), 'yyyy-MM-dd'),
+ "from": AppDateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd'),
+ "to": AppDateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd'),
});
},
child: Icon(
@@ -97,18 +92,14 @@ class ReferralPatientDetailScreen extends StatelessWidget {
children: [
InkWell(
onTap: () {
- PatiantInformtion patient = model
- .getPatientFromReferralO(referredPatient);
- Navigator.of(context)
- .pushNamed(PATIENTS_PROFILE, arguments: {
+ PatiantInformtion patient = model.getPatientFromReferralO(referredPatient);
+ Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: {
"patient": patient,
"patientType": "1",
"isInpatient": true,
"arrivalType": "1",
- "from": AppDateUtils.convertDateToFormat(
- DateTime.now(), 'yyyy-MM-dd'),
- "to": AppDateUtils.convertDateToFormat(
- DateTime.now(), 'yyyy-MM-dd'),
+ "from": AppDateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd'),
+ "to": AppDateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd'),
});
},
child: Padding(
@@ -143,8 +134,7 @@ class ReferralPatientDetailScreen extends StatelessWidget {
child: Column(
children: [
Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
AppText(
"${model.getReferralStatusNameByCode(referredPatient.referralStatus, context)}",
@@ -153,7 +143,7 @@ class ReferralPatientDetailScreen extends StatelessWidget {
fontWeight: FontWeight.w700,
color: referredPatient.referralStatus == 1
? Color(0xffc4aa54)
- : referredPatient.referralStatus == 46
+ : referredPatient.referralStatus == 46 || referredPatient.referralStatus == 2
? Colors.green[700]
: Colors.red[700],
),
@@ -169,28 +159,23 @@ class ReferralPatientDetailScreen extends StatelessWidget {
],
),
Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
- mainAxisAlignment:
- MainAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
children: [
AppText(
- TranslationBase.of(context)
- .fileNumber,
+ TranslationBase.of(context).fileNumber,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
- fontSize:
- 1.7 * SizeConfig.textMultiplier,
+ fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
),
AppText(
"${referredPatient.patientID}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
- fontSize:
- 1.8 * SizeConfig.textMultiplier,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
),
],
@@ -207,94 +192,79 @@ class ReferralPatientDetailScreen extends StatelessWidget {
],
),
Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Column(
children: [
Row(
- mainAxisAlignment:
- MainAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
"${TranslationBase.of(context).refClinic}: ",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
- fontSize: 1.7 *
- SizeConfig.textMultiplier,
- color: Color(0XFF575757),
- ),
- AppText(
- referredPatient
- .referringClinicDescription,
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w700,
- fontSize: 1.8 *
- SizeConfig.textMultiplier,
- color: Color(0XFF2E303A),
- ),
- ],
- ),
- Row(
- mainAxisAlignment:
- MainAxisAlignment.start,
- crossAxisAlignment:
- CrossAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context)
- .frequency +
- ": ",
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- fontSize: 1.7 *
- SizeConfig.textMultiplier,
+ fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
),
Expanded(
child: AppText(
- referredPatient
- .frequencyDescription,
+ referredPatient.referringClinicDescription,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
- fontSize: 1.8 *
- SizeConfig.textMultiplier,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
),
),
],
),
+ if (referredPatient.frequency != null)
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).frequency + ": ",
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w600,
+ fontSize: 1.7 * SizeConfig.textMultiplier,
+ color: Color(0XFF575757),
+ ),
+ Expanded(
+ child: AppText(
+ referredPatient.frequencyDescription ?? '',
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ ),
+ ],
+ ),
],
),
),
Row(
children: [
AppText(
- referredPatient.nationalityName !=
- null
+ referredPatient.nationalityName != null
? referredPatient.nationalityName
: "",
fontWeight: FontWeight.bold,
color: Color(0xFF2E303A),
- fontSize:
- 1.4 * SizeConfig.textMultiplier,
+ fontSize: 1.4 * SizeConfig.textMultiplier,
),
- referredPatient.nationalityFlagURL !=
- null
+ referredPatient.nationalityFlagURL != null
? ClipRRect(
- borderRadius:
- BorderRadius.circular(20.0),
+ borderRadius: BorderRadius.circular(20.0),
child: Image.network(
- referredPatient
- .nationalityFlagURL,
+ referredPatient.nationalityFlagURL,
height: 25,
width: 30,
- errorBuilder: (BuildContext
- context,
- Object exception,
- StackTrace stackTrace) {
+ errorBuilder:
+ (BuildContext context, Object exception, StackTrace stackTrace) {
return Text('No Image');
},
))
@@ -303,63 +273,60 @@ class ReferralPatientDetailScreen extends StatelessWidget {
)
],
),
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context).priority +
- ": ",
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- fontSize: 1.7 * SizeConfig.textMultiplier,
- color: Color(0XFF575757),
- ),
- Expanded(
- child: AppText(
- referredPatient.priorityDescription,
+ if (referredPatient.priorityDescription != null)
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).priority + ": ",
fontFamily: 'Poppins',
- fontWeight: FontWeight.w700,
- fontSize:
- 1.8 * SizeConfig.textMultiplier,
- color: Color(0XFF2E303A),
+ fontWeight: FontWeight.w600,
+ fontSize: 1.7 * SizeConfig.textMultiplier,
+ color: Color(0XFF575757),
),
- ),
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context)
- .maxResponseTime +
- ": ",
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- fontSize: 1.7 * SizeConfig.textMultiplier,
- color: Color(0XFF575757),
- ),
- Expanded(
- child: AppText(
- AppDateUtils.convertDateFromServerFormat(
- referredPatient.mAXResponseTime,
- "dd MMM,yyyy"),
+ Expanded(
+ child: AppText(
+ referredPatient.priorityDescription ?? '',
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ ),
+ ],
+ ),
+ if (referredPatient.mAXResponseTime != null)
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).maxResponseTime + ": ",
fontFamily: 'Poppins',
- fontWeight: FontWeight.w700,
- fontSize:
- 1.8 * SizeConfig.textMultiplier,
- color: Color(0XFF2E303A),
+ fontWeight: FontWeight.w600,
+ fontSize: 1.7 * SizeConfig.textMultiplier,
+ color: Color(0XFF575757),
),
- ),
- ],
- ),
+ Expanded(
+ child: AppText(
+ referredPatient.mAXResponseTime != null
+ ? AppDateUtils.convertDateFromServerFormat(
+ referredPatient.mAXResponseTime, "dd MMM,yyyy")
+ : '',
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ ),
+ ],
+ ),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
- margin:
- EdgeInsets.only(left: 10, right: 0),
+ margin: EdgeInsets.only(left: 10, right: 0),
child: Image.asset(
'assets/images/patient/ic_ref_arrow_up.png',
height: 50,
@@ -367,26 +334,17 @@ class ReferralPatientDetailScreen extends StatelessWidget {
),
),
Container(
- margin: EdgeInsets.only(
- left: 0,
- top: 25,
- right: 0,
- bottom: 0),
- padding: EdgeInsets.only(
- left: 4.0, right: 4.0),
- child: referredPatient.doctorImageURL !=
- null
+ margin: EdgeInsets.only(left: 0, top: 25, right: 0, bottom: 0),
+ padding: EdgeInsets.only(left: 4.0, right: 4.0),
+ child: referredPatient.doctorImageURL != null
? ClipRRect(
- borderRadius:
- BorderRadius.circular(20.0),
+ borderRadius: BorderRadius.circular(20.0),
child: Image.network(
referredPatient.doctorImageURL,
height: 25,
width: 30,
errorBuilder:
- (BuildContext context,
- Object exception,
- StackTrace stackTrace) {
+ (BuildContext context, Object exception, StackTrace stackTrace) {
return Text('No Image');
},
))
@@ -402,30 +360,22 @@ class ReferralPatientDetailScreen extends StatelessWidget {
Expanded(
flex: 4,
child: Container(
- margin: EdgeInsets.only(
- left: 10,
- top: 30,
- right: 10,
- bottom: 0),
+ margin: EdgeInsets.only(left: 10, top: 30, right: 10, bottom: 0),
child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
"${TranslationBase.of(context).dr} ${referredPatient.referringDoctorName}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w800,
- fontSize: 1.5 *
- SizeConfig.textMultiplier,
+ fontSize: 1.5 * SizeConfig.textMultiplier,
color: Colors.black,
),
AppText(
- referredPatient
- .referringClinicDescription,
+ referredPatient.referringClinicDescription,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
- fontSize: 1.3 *
- SizeConfig.textMultiplier,
+ fontSize: 1.3 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
),
],
@@ -445,67 +395,110 @@ class ReferralPatientDetailScreen extends StatelessWidget {
),
Expanded(
child: SingleChildScrollView(
- child: Container(
- width: double.infinity,
- margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
- padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
- decoration: BoxDecoration(
- color: Colors.white,
- shape: BoxShape.rectangle,
- borderRadius: BorderRadius.all(Radius.circular(8)),
- border: Border.fromBorderSide(BorderSide(
- color: Colors.white,
- width: 1.0,
- )),
- ),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context).remarks,
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w700,
- fontSize: 2.4 * SizeConfig.textMultiplier,
- color: Color(0XFF2E303A),
+ child: Column(
+ children: [
+ Container(
+ width: double.infinity,
+ margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.all(Radius.circular(8)),
+ border: Border.fromBorderSide(BorderSide(
+ color: Colors.white,
+ width: 1.0,
+ )),
),
- AppText(
- referredPatient.referringDoctorRemarks,
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- fontSize: 1.8 * SizeConfig.textMultiplier,
- color: Color(0XFF2E303A),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).remarks,
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 2.4 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ AppText(
+ referredPatient.referringDoctorRemarks ?? '',
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w600,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ SizedBox(
+ height: 8,
+ ),
+ ],
),
- SizedBox(
- height: 8,
+ ),
+ if (referredPatient.referredDoctorRemarks.isNotEmpty)
+ Container(
+ width: double.infinity,
+ margin: EdgeInsets.symmetric(horizontal: 16, vertical: 0),
+ padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.all(Radius.circular(8)),
+ border: Border.fromBorderSide(BorderSide(
+ color: Colors.white,
+ width: 1.0,
+ )),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).reply,
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 2.4 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ AppText(
+ referredPatient.referredDoctorRemarks ?? '',
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w600,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
+ SizedBox(
+ height: 8,
+ ),
+ ],
+ ),
),
- ],
- ),
+ ],
),
),
),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
- child: AppButton(
- title: TranslationBase.of(context).replay,
- color: Colors.red[700],
- fontColor: Colors.white,
- fontWeight: FontWeight.w700,
- fontSize: 1.8,
- hPadding: 8,
- vPadding: 12,
- onPressed: () async {
- Navigator.push(
- context,
- SlideUpPageRoute(
- widget: AddReplayOnReferralPatient(
- patientReferralViewModel: patientReferralViewModel,
- myReferralInPatientModel: referredPatient,
+ if (referredPatient.referralStatus == 1)
+ Container(
+ margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ child: AppButton(
+ title: TranslationBase.of(context).replay,
+ color: Colors.red[700],
+ fontColor: Colors.white,
+ fontWeight: FontWeight.w700,
+ fontSize: 1.8,
+ hPadding: 8,
+ vPadding: 12,
+ onPressed: () async {
+ Navigator.push(
+ context,
+ SlideUpPageRoute(
+ widget: AddReplayOnReferralPatient(
+ patientReferralViewModel: patientReferralViewModel,
+ myReferralInPatientModel: referredPatient,
+ isEdited: referredPatient.referredDoctorRemarks.isNotEmpty,
+ ),
),
- ),
- );
- },
+ );
+ },
+ ),
),
- ),
],
),
),
diff --git a/lib/screens/patients/profile/referral/referred-patient-screen.dart b/lib/screens/patients/profile/referral/referred-patient-screen.dart
index dc2bf798..c95a28d8 100644
--- a/lib/screens/patients/profile/referral/referred-patient-screen.dart
+++ b/lib/screens/patients/profile/referral/referred-patient-screen.dart
@@ -1,3 +1,4 @@
+import 'package:doctor_app_flutter/core/enum/PatientType.dart';
import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/referral/referred_patient_detail_in-paint.dart';
@@ -6,12 +7,15 @@ import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/patient-referral-item-widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
+import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class ReferredPatientScreen extends StatelessWidget {
- // previous design page is: MyReferredPatient
+
+ PatientType patientType = PatientType.IN_PATIENT;
+
@override
Widget build(BuildContext context) {
return BaseView(
@@ -20,103 +24,172 @@ class ReferredPatientScreen extends StatelessWidget {
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).referredPatient,
- body: model.listMyReferredPatientModel == null ||
- model.listMyReferredPatientModel.length == 0
- ? Center(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- Container(
- height: 100,
+ body: Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 70),
+ child: PatientTypeRadioWidget(
+ (patientType) async {
+ this.patientType = patientType;
+ GifLoaderDialogUtils.showMyDialog(context);
+ if (patientType == PatientType.IN_PATIENT) {
+ await model.getMyReferredPatient(isFirstTime: false);
+ } else {
+ await model.getMyReferredOutPatient(isFirstTime: false);
+ }
+ GifLoaderDialogUtils.hideDialog(context);
+ },
+ ),
+ ),
+ model.listMyReferredPatientModel == null ||
+ model.listMyReferredPatientModel.length == 0
+ ? Center(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Container(
+ height: 100,
+ ),
+ Image.asset('assets/images/no-data.png'),
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: AppText(
+ TranslationBase.of(context).referralEmptyMsg,
+ color: Theme.of(context).errorColor,
+ ),
+ )
+ ],
),
- Image.asset('assets/images/no-data.png'),
- Padding(
- padding: const EdgeInsets.all(8.0),
- child: AppText(
- TranslationBase.of(context).referralEmptyMsg,
- color: Theme.of(context).errorColor,
- ),
- )
- ],
- ),
- )
- : SingleChildScrollView(
- // DoctorApplication.svc/REST/GtMyReferredPatient
- child: Container(
- margin: EdgeInsets.only(top: 70),
- child: Column(
- children: [
- // const Divider(
- // color: Color(0xffCCCCCC),
- // height: 1,
- // thickness: 2,
- // indent: 0,
- // endIndent: 0,
- // ),
- ...List.generate(
- model.listMyReferredPatientModel.length,
- (index) => InkWell(
- onTap: () {
- Navigator.push(
- context,
- FadePage(
- page: ReferredPatientDetailScreen(
- model.getReferredPatientItem(index)),
+ )
+ : Expanded(
+ child: SingleChildScrollView(
+ // DoctorApplication.svc/REST/GtMyReferredPatient
+ child: Container(
+ child: Column(
+ children: [
+ ...List.generate(
+ model.listMyReferredPatientModel.length,
+ (index) => InkWell(
+ onTap: () {
+ Navigator.push(
+ context,
+ FadePage(
+ page: ReferredPatientDetailScreen(
+ model.getReferredPatientItem(index)),
+ ),
+ );
+ },
+ child: PatientReferralItemWidget(
+ referralStatus: model
+ .getReferredPatientItem(index)
+ .referralStatusDesc,
+ referralStatusCode: model
+ .getReferredPatientItem(index)
+ .referralStatus,
+ patientName:
+ "${model.getReferredPatientItem(index).firstName} ${model.getReferredPatientItem(index).middleName} ${model.getReferredPatientItem(index).lastName}",
+ patientGender:
+ model.getReferredPatientItem(index).gender,
+ referredDate:
+ AppDateUtils.convertDateFromServerFormat(
+ model
+ .getReferredPatientItem(index)
+ .referralDate,
+ "dd/MM/yyyy"),
+ referredTime:
+ AppDateUtils.convertDateFromServerFormat(
+ model
+ .getReferredPatientItem(index)
+ .referralDate,
+ "hh:mm a"),
+ patientID:
+ "${model.getReferredPatientItem(index).patientID}",
+ isSameBranch: model
+ .getReferredPatientItem(index)
+ .isReferralDoctorSameBranch,
+ isReferral: false,
+ remark: model
+ .getReferredPatientItem(index)
+ .referringDoctorRemarks,
+ nationality: model
+ .getReferredPatientItem(index)
+ .nationalityName,
+ nationalityFlag: model
+ .getReferredPatientItem(index)
+ .nationalityFlagURL,
+ doctorAvatar: model
+ .getReferredPatientItem(index)
+ .doctorImageURL,
+ referralDoctorName:
+ "${TranslationBase.of(context).dr} ${model.getReferredPatientItem(index).referralDoctorName}",
+ clinicDescription: model
+ .getReferredPatientItem(index)
+ .referralClinicDescription,
+ infoIcon: Icon(FontAwesomeIcons.arrowRight,
+ size: 25, color: Colors.black),
+ ),
),
- );
- },
- child: PatientReferralItemWidget(
- referralStatus:model.getReferredPatientItem(index).referralStatusDesc,
- referralStatusCode: model
- .getReferredPatientItem(index)
- .referralStatus,
- patientName:
- "${model.getReferredPatientItem(index).firstName} ${model.getReferredPatientItem(index).middleName} ${model.getReferredPatientItem(index).lastName}",
- patientGender:
- model.getReferredPatientItem(index).gender,
- referredDate: AppDateUtils.convertDateFromServerFormat(
- model
- .getReferredPatientItem(index)
- .referralDate,
- "dd/MM/yyyy"),
- referredTime: AppDateUtils.convertDateFromServerFormat(
- model
- .getReferredPatientItem(index)
- .referralDate,
- "hh:mm a"),
- patientID:
- "${model.getReferredPatientItem(index).patientID}",
- isSameBranch: model
- .getReferredPatientItem(index)
- .isReferralDoctorSameBranch,
- isReferral: false,
- remark: model
- .getReferredPatientItem(index)
- .referringDoctorRemarks,
- nationality: model
- .getReferredPatientItem(index)
- .nationalityName,
- nationalityFlag: model
- .getReferredPatientItem(index)
- .nationalityFlagURL,
- doctorAvatar: model
- .getReferredPatientItem(index)
- .doctorImageURL,
- referralDoctorName:
- "${TranslationBase.of(context).dr} ${model.getReferredPatientItem(index).referralDoctorName}",
- clinicDescription: model
- .getReferredPatientItem(index)
- .referralClinicDescription,
- infoIcon: Icon(FontAwesomeIcons.arrowRight,
- size: 25, color: Colors.black),
- ),
+ ),
+ ],
),
),
- ],
- ),
+ ),
),
- ),
+ ],
+ ),
),
);
}
}
+
+class PatientTypeRadioWidget extends StatefulWidget {
+ final Function(PatientType) radioOnChange;
+
+ PatientTypeRadioWidget(this.radioOnChange);
+
+ @override
+ _PatientTypeRadioWidgetState createState() =>
+ _PatientTypeRadioWidgetState(this.radioOnChange);
+}
+
+class _PatientTypeRadioWidgetState extends State {
+ final Function(PatientType) radioOnChange;
+
+ _PatientTypeRadioWidgetState(this.radioOnChange);
+
+ PatientType patientType = PatientType.IN_PATIENT;
+
+ @override
+ Widget build(BuildContext context) {
+ return Row(
+ children: [
+ Expanded(
+ child: RadioListTile(
+ title: AppText(TranslationBase.of(context).inPatient),
+ value: PatientType.IN_PATIENT,
+ groupValue: patientType,
+ onChanged: (PatientType value) {
+ setState(() {
+ patientType = value;
+ radioOnChange(value);
+ });
+ },
+ ),
+ ),
+ Expanded(
+ child: RadioListTile(
+ title: AppText(TranslationBase.of(context).outpatient),
+ value: PatientType.OUT_PATIENT,
+ groupValue: patientType,
+ onChanged: (PatientType value) {
+ setState(() {
+ patientType = value;
+ radioOnChange(value);
+ });
+ },
+ ),
+ ),
+ ],
+ );
+ }
+}
diff --git a/lib/screens/patients/profile/referral/referred_patient_detail_in-paint.dart b/lib/screens/patients/profile/referral/referred_patient_detail_in-paint.dart
index b4e1ddc5..b3f11c51 100644
--- a/lib/screens/patients/profile/referral/referred_patient_detail_in-paint.dart
+++ b/lib/screens/patients/profile/referral/referred_patient_detail_in-paint.dart
@@ -236,6 +236,8 @@ class ReferredPatientDetailScreen extends StatelessWidget {
),
],
),
+ if(referredPatient
+ .frequencyDescription != null)
Row(
mainAxisAlignment:
MainAxisAlignment.start,
@@ -301,6 +303,7 @@ class ReferredPatientDetailScreen extends StatelessWidget {
)
],
),
+ if(referredPatient.priorityDescription != null)
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -322,6 +325,7 @@ class ReferredPatientDetailScreen extends StatelessWidget {
),
],
),
+ if(referredPatient.mAXResponseTime != null)
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -337,9 +341,9 @@ class ReferredPatientDetailScreen extends StatelessWidget {
),
Expanded(
child: AppText(
- AppDateUtils.convertDateFromServerFormat(
+ referredPatient.mAXResponseTime != null?AppDateUtils.convertDateFromServerFormat(
referredPatient.mAXResponseTime,
- "dd MMM,yyyy"),
+ "dd MMM,yyyy"):'',
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize:
@@ -515,6 +519,7 @@ class ReferredPatientDetailScreen extends StatelessWidget {
),
AppText(
referredPatient
+ .referredDoctorRemarks == null ?'':referredPatient
.referredDoctorRemarks.isNotEmpty
? referredPatient.referredDoctorRemarks
: TranslationBase.of(context).notRepliedYet,
@@ -543,7 +548,7 @@ class ReferredPatientDetailScreen extends StatelessWidget {
fontSize: 1.8,
hPadding: 8,
vPadding: 12,
- disabled: referredPatient.referredDoctorRemarks.isNotEmpty
+ disabled: referredPatient.referredDoctorRemarks == null? true: referredPatient.referredDoctorRemarks.isNotEmpty
? false
: true,
onPressed: () async {
diff --git a/lib/screens/patients/profile/soap_update/update_soap_index.dart b/lib/screens/patients/profile/soap_update/update_soap_index.dart
index d9af7457..60597b11 100644
--- a/lib/screens/patients/profile/soap_update/update_soap_index.dart
+++ b/lib/screens/patients/profile/soap_update/update_soap_index.dart
@@ -7,7 +7,7 @@ import 'package:doctor_app_flutter/models/SOAP/my_selected_history.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update/subjective/update_subjective_page.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -82,7 +82,7 @@ class _UpdateSoapIndexState extends State
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- PatientProfileHeaderNewDesign(patient, '7', '7',),
+ PatientProfileAppBar(patient),
Container(
width: double.infinity,
height: 1,
diff --git a/lib/screens/patients/profile/vital_sign/vital-signs-screen.dart b/lib/screens/patients/profile/vital_sign/vital-signs-screen.dart
deleted file mode 100644
index 0bf2197b..00000000
--- a/lib/screens/patients/profile/vital_sign/vital-signs-screen.dart
+++ /dev/null
@@ -1,1074 +0,0 @@
-import 'package:doctor_app_flutter/config/size_config.dart';
-import 'package:doctor_app_flutter/core/viewModel/patient-vital-sign-viewmodel.dart';
-import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
-import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-data.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/patient-page-header-widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/expandable-widget-header-body.dart';
-import 'package:flutter/material.dart';
-import 'package:hexcolor/hexcolor.dart';
-
-class PatientVitalSignScreen extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- final routeArgs = ModalRoute.of(context).settings.arguments as Map;
- PatiantInformtion patient = routeArgs['patient'];
- String from = routeArgs['from'];
- String to = routeArgs['to'];
-
- return BaseView(
- onModelReady: (model) => model.getPatientVitalSign(patient),
- builder: (_, model, w) => AppScaffold(
- baseViewModel: model,
- appBarTitle: TranslationBase.of(context).vitalSign,
- body: model.patientVitalSigns != null
- ? SingleChildScrollView(
- child: Container(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- PatientPageHeaderWidget(patient),
- SizedBox(
- height: 16,
- ),
- Container(
- margin:
- EdgeInsets.symmetric(horizontal: 16, vertical: 16),
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).weight} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.weightKg} ${TranslationBase.of(context).kg}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).idealBodyWeight} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.idealBodyWeightLbs} ${TranslationBase.of(context).kg}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- SizedBox(
- height: 4,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).height} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.heightCm} ${TranslationBase.of(context).cm}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- SizedBox(
- height: 4,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- /*Row(
- children: [
- AppText(
- "${TranslationBase.of(context).waistSize} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.waistSizeInch} ${TranslationBase.of(context).inch}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),*/
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).headCircum} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.headCircumCm} ${TranslationBase.of(context).cm}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- SizedBox(
- height: 16,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).leanBodyWeight} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.leanBodyWeightLbs} ${TranslationBase.of(context).kg}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- SizedBox(
- height: 4,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).bodyMassIndex} :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${model.patientVitalSigns.bodyMassIndex}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- SizedBox(
- width: 8,
- ),
- Container(
- color: Colors.green,
- child: Padding(
- padding: EdgeInsets.symmetric(
- vertical: 2, horizontal: 8),
- child: AppText(
- "${model.getBMI(model.patientVitalSigns.bodyMassIndex)}",
- fontSize:
- SizeConfig.textMultiplier * 2,
- color: Colors.white,
- fontWeight: FontWeight.bold,
- ),
- ),
- )
- ],
- ),
- ],
- ),
- SizedBox(
- height: 4,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "G.C.S :",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "N/A",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- TemperatureWidget(model, model.patientVitalSigns),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- PulseWidget(model.patientVitalSigns),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- RespirationWidget(model.patientVitalSigns),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- BloodPressureWidget(model.patientVitalSigns),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- OxygenationWidget(model.patientVitalSigns),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- PainScaleWidget(model.patientVitalSigns),
- SizedBox(
- height: 16,
- ),
- const Divider(
- color: Color(0xffCCCCCC),
- height: 1,
- thickness: 2,
- indent: 0,
- endIndent: 0,
- ),
- SizedBox(
- height: 16,
- ),
- ],
- ),
- )
- ],
- ),
- ),
- )
- : Center(
- child: AppText(
- "${TranslationBase.of(context).vitalSignEmptyMsg}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: HexColor("#B8382B"),
- fontWeight: FontWeight.normal,
- ),
- ),
- ),
- );
- }
-}
-
-class TemperatureWidget extends StatefulWidget {
- final VitalSignsViewModel model;
- final VitalSignData vitalSign;
-
- TemperatureWidget(this.model, this.vitalSign);
-
- @override
- _TemperatureWidgetState createState() => _TemperatureWidgetState();
-}
-
-class _TemperatureWidgetState extends State {
- bool isExpand = false;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- child: HeaderBodyExpandableNotifier(
- headerWidget: Container(
- margin: EdgeInsets.symmetric(vertical: 16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- "${TranslationBase.of(context).temperature}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: Colors.black,
- fontWeight: isExpand ? FontWeight.bold : FontWeight.normal,
- ),
- InkWell(
- onTap: () {
- setState(() {
- isExpand = !isExpand;
- });
- },
- child: Icon(isExpand ? Icons.remove : Icons.add),
- ),
- ],
- ),
- ),
- bodyWidget: Container(
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).temperature} (C):",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.temperatureCelcius}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).temperature} (F):",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.temperatureCelcius * (9 / 5) + 32}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- SizedBox(
- height: 4,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).method} :",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${widget.model.getTempratureMethod(widget.vitalSign.temperatureCelciusMethod)}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- ],
- ),
- ),
- isExpand: isExpand,
- ),
- );
- }
-}
-
-class PulseWidget extends StatefulWidget {
- final VitalSignData vitalSign;
-
- PulseWidget(this.vitalSign);
-
- @override
- _PulseWidgetState createState() => _PulseWidgetState();
-}
-
-class _PulseWidgetState extends State {
- bool isExpand = false;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- child: HeaderBodyExpandableNotifier(
- headerWidget: Container(
- margin: EdgeInsets.symmetric(vertical: 16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- "${TranslationBase.of(context).pulse}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: Colors.black,
- fontWeight: isExpand ? FontWeight.bold : FontWeight.normal,
- ),
- InkWell(
- onTap: () {
- setState(() {
- isExpand = !isExpand;
- });
- },
- child: Icon(isExpand ? Icons.remove : Icons.add),
- ),
- ],
- ),
- ),
- bodyWidget: Container(
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).pulseBeats}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.pulseBeatPerMinute}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).rhythm}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.pulseRhythm}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- isExpand: isExpand,
- ),
- );
- }
-}
-
-class RespirationWidget extends StatefulWidget {
- final VitalSignData vitalSign;
-
- RespirationWidget(this.vitalSign);
-
- @override
- _RespirationWidgetState createState() => _RespirationWidgetState();
-}
-
-class _RespirationWidgetState extends State {
- bool isExpand = false;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- child: HeaderBodyExpandableNotifier(
- headerWidget: Container(
- margin: EdgeInsets.symmetric(vertical: 16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- "${TranslationBase.of(context).respiration}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: Colors.black,
- fontWeight: isExpand ? FontWeight.bold : FontWeight.normal,
- ),
- InkWell(
- onTap: () {
- setState(() {
- isExpand = !isExpand;
- });
- },
- child: Icon(isExpand ? Icons.remove : Icons.add),
- ),
- ],
- ),
- ),
- bodyWidget: Container(
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).respBeats}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.respirationBeatPerMinute}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).patternOfRespiration}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.respirationPattern}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- isExpand: isExpand,
- ),
- );
- }
-}
-
-class BloodPressureWidget extends StatefulWidget {
- final VitalSignData vitalSign;
-
- BloodPressureWidget(this.vitalSign);
-
- @override
- _BloodPressureWidgetState createState() => _BloodPressureWidgetState();
-}
-
-class _BloodPressureWidgetState extends State {
- bool isExpand = false;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- child: HeaderBodyExpandableNotifier(
- headerWidget: Container(
- margin: EdgeInsets.symmetric(vertical: 16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- "${TranslationBase.of(context).bloodPressure}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: Colors.black,
- fontWeight: isExpand ? FontWeight.bold : FontWeight.normal,
- ),
- InkWell(
- onTap: () {
- setState(() {
- isExpand = !isExpand;
- });
- },
- child: Icon(isExpand ? Icons.remove : Icons.add),
- ),
- ],
- ),
- ),
- bodyWidget: Container(
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).bloodPressureDiastoleAndSystole}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.bloodPressureHigher}, ${widget.vitalSign.bloodPressureLower}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).cuffLocation}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.bloodPressureCuffLocation}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- SizedBox(
- height: 4,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: AppText(
- "${TranslationBase.of(context).patientPosition}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(
- width: 8,
- ),
- Expanded(
- child: AppText(
- "${widget.vitalSign.bloodPressurePatientPosition}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ),
- ],
- ),
- ),
- Expanded(
- child: Row(
- children: [
- AppText(
- "${TranslationBase.of(context).cuffSize}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${widget.vitalSign.bloodPressureCuffSize}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- isExpand: isExpand,
- ),
- );
- }
-}
-
-class OxygenationWidget extends StatefulWidget {
- final VitalSignData vitalSign;
-
- OxygenationWidget(this.vitalSign);
-
- @override
- _OxygenationWidgetState createState() => _OxygenationWidgetState();
-}
-
-class _OxygenationWidgetState extends State {
- bool isExpand = false;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- child: HeaderBodyExpandableNotifier(
- headerWidget: Container(
- margin: EdgeInsets.symmetric(vertical: 16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- "${TranslationBase.of(context).oxygenation}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: Colors.black,
- fontWeight: isExpand ? FontWeight.bold : FontWeight.normal,
- ),
- InkWell(
- onTap: () {
- setState(() {
- isExpand = !isExpand;
- });
- },
- child: Icon(isExpand ? Icons.remove : Icons.add),
- ),
- ],
- ),
- ),
- bodyWidget: Container(
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).sao2}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${widget.vitalSign.sao2}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).fio2}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${widget.vitalSign.fio2}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ],
- ),
- ],
- ),
- ),
- isExpand: isExpand,
- ),
- );
- }
-}
-
-class PainScaleWidget extends StatefulWidget {
- final VitalSignData vitalSign;
-
- PainScaleWidget(this.vitalSign);
-
- @override
- _PainScaleWidgetState createState() => _PainScaleWidgetState();
-}
-
-class _PainScaleWidgetState extends State {
- bool isExpand = false;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- child: HeaderBodyExpandableNotifier(
- headerWidget: Container(
- margin: EdgeInsets.symmetric(vertical: 16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- "${TranslationBase.of(context).painScale}",
- fontSize: SizeConfig.textMultiplier * 2.5,
- color: Colors.black,
- fontWeight: isExpand ? FontWeight.bold : FontWeight.normal,
- ),
- InkWell(
- onTap: () {
- setState(() {
- isExpand = !isExpand;
- });
- },
- child: Icon(isExpand ? Icons.remove : Icons.add),
- ),
- ],
- ),
- ),
- bodyWidget: Container(
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- child: Row(
- children: [
- AppText(
- "${TranslationBase.of(context).painScale}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${widget.vitalSign.painScore}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ),
- Expanded(
- child: Row(
- children: [
- AppText(
- "${TranslationBase.of(context).painManagement}",
- fontSize: SizeConfig.textMultiplier * 1.8,
- color: Colors.black,
- fontWeight: FontWeight.w700,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- "${widget.vitalSign.isPainManagementDone}",
- fontSize: SizeConfig.textMultiplier * 2,
- color: Colors.grey.shade800,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- isExpand: isExpand,
- ),
- );
- }
-}
diff --git a/lib/screens/patients/profile/vital_sign/vital_sign_details_screen.dart b/lib/screens/patients/profile/vital_sign/vital_sign_details_screen.dart
index 37a7a60f..23266095 100644
--- a/lib/screens/patients/profile/vital_sign/vital_sign_details_screen.dart
+++ b/lib/screens/patients/profile/vital_sign/vital_sign_details_screen.dart
@@ -6,7 +6,7 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/errors/error_message.dart';
@@ -40,8 +40,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
baseViewModel: mode,
isShowAppBar: true,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient),
appBarTitle: TranslationBase.of(context).vitalSign,
body: mode.patientVitalSignsHistory.length > 0
? Column(
diff --git a/lib/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart b/lib/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart
index 49f82c2f..0ed9da56 100644
--- a/lib/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart
+++ b/lib/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart
@@ -7,7 +7,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sig
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sing_chart_and_detials.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sing_chart_blood_pressure.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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:flutter/material.dart';
@@ -190,8 +190,8 @@ class VitalSignItemDetailsScreen extends StatelessWidget {
appBarTitle: pageTitle,
backgroundColor: Color.fromRGBO(248, 248, 248, 1),
isShowAppBar: true,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patientType, arrivalType),
+ appBar: PatientProfileAppBar(
+ patient,),
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
diff --git a/lib/screens/prescription/prescription_item_in_patient_page.dart b/lib/screens/prescription/prescription_item_in_patient_page.dart
index b6d27af6..7cf33935 100644
--- a/lib/screens/prescription/prescription_item_in_patient_page.dart
+++ b/lib/screens/prescription/prescription_item_in_patient_page.dart
@@ -5,7 +5,7 @@ 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/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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:flutter/cupertino.dart';
@@ -44,8 +44,8 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
isShowAppBar: true,
backgroundColor: Colors.grey[100],
baseViewModel: model,
- appBar: PatientProfileHeaderNewDesignAppBar(
- patient, patient.patientType.toString(), patient.arrivedOn),
+ appBar: PatientProfileAppBar(
+ patient),
body: SingleChildScrollView(
child: Container(
child: Column(
diff --git a/lib/screens/prescription/prescription_items_page.dart b/lib/screens/prescription/prescription_items_page.dart
index a68f6f56..b97343c4 100644
--- a/lib/screens/prescription/prescription_items_page.dart
+++ b/lib/screens/prescription/prescription_items_page.dart
@@ -4,7 +4,7 @@ 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/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/dialogs/ShowImageDialog.dart';
@@ -28,16 +28,15 @@ class PrescriptionItemsPage extends StatelessWidget {
isShowAppBar: true,
backgroundColor: Colors.grey[100],
baseViewModel: model,
- appBar: PatientProfileHeaderWhitAppointmentAppBar(
- patient: patient,
- patientType: patientType??"0",
- arrivalType: arrivalType??"0",
+ appBar: PatientProfileAppBar(
+ patient,
clinic: prescriptions.clinicDescription,
branch: prescriptions.name,
isPrescriptions: true,
appointmentDate: AppDateUtils.getDateTimeFromServerFormat(prescriptions.appointmentDate),
doctorName: prescriptions.doctorName,
profileUrl: prescriptions.doctorImageURL,
+ isAppointmentHeader: true,
),
body: SingleChildScrollView(
child: Container(
diff --git a/lib/screens/prescription/prescription_screen.dart b/lib/screens/prescription/prescription_screen.dart
deleted file mode 100644
index d5a94c61..00000000
--- a/lib/screens/prescription/prescription_screen.dart
+++ /dev/null
@@ -1,591 +0,0 @@
-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/screens/base/base_view.dart';
-import 'package:doctor_app_flutter/screens/prescription/add_prescription_form.dart';
-import 'package:doctor_app_flutter/screens/prescription/update_prescription_form.dart';
-import 'package:doctor_app_flutter/util/date-utils.dart';
-import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
-import 'package:flutter/material.dart';
-
-class NewPrescriptionScreen extends StatefulWidget {
- @override
- _NewPrescriptionScreenState createState() => _NewPrescriptionScreenState();
-}
-
-class _NewPrescriptionScreenState extends State {
- PersistentBottomSheetController _controller;
- TextEditingController strengthController = TextEditingController();
- int testNum = 0;
- int strengthChar;
- PatiantInformtion patient;
-
- @override
- void initState() {
- super.initState();
- }
-
- Widget build(BuildContext context) {
- final screenSize = MediaQuery.of(context).size;
- final routeArgs = ModalRoute.of(context).settings.arguments as Map;
- patient = routeArgs['patient'];
- return BaseView(
- onModelReady: (model) => model.getPrescription(mrn: patient.patientId),
- builder: (BuildContext context, PrescriptionViewModel model, Widget child) => AppScaffold(
- isShowAppBar: true,
- appBarTitle: TranslationBase.of(context).prescription,
- body: NetworkBaseView(
- baseViewModel: model,
- child: SingleChildScrollView(
- child: Container(
- color: Colors.white,
- child: Column(
- children: [
- PatientPageHeaderWidget(patient),
- Divider(
- height: 1.0,
- thickness: 1.0,
- color: Colors.grey,
- ),
- (model.prescriptionList.length != 0)
- ? SizedBox(height: model.prescriptionList[0].rowcount == 0 ? 200.0 : 10.0)
- : SizedBox(height: 200.0),
- //model.prescriptionList == null
- (model.prescriptionList.length != 0)
- ? model.prescriptionList[0].rowcount == 0
- ? Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.stretch,
- children: [
- InkWell(
- onTap: () {
- addPrescriptionForm(context, model, patient, model.prescriptionList);
- //model.postPrescription();
- },
- child: CircleAvatar(
- radius: 65,
- backgroundColor: Color(0XFFB8382C),
- child: CircleAvatar(
- radius: 60,
- backgroundColor: Colors.white,
- child: Icon(
- Icons.add,
- color: Colors.black,
- size: 45.0,
- ),
- ),
- ),
- ),
- SizedBox(
- height: 15.0,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- AppText(
- TranslationBase.of(context).noPrescriptionListed,
- color: Colors.black,
- fontWeight: FontWeight.w900,
- ),
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- AppText(
- TranslationBase.of(context).addNow,
- color: Color(0XFFB8382C),
- fontWeight: FontWeight.w900,
- ),
- ],
- ),
- ],
- )
- : Padding(
- padding: EdgeInsets.all(14.0),
- child: NetworkBaseView(
- baseViewModel: model,
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- InkWell(
- child: Container(
- height: 50.0,
- width: 450.0,
- decoration: BoxDecoration(
- color: Colors.white,
- border: Border.all(color: Colors.grey),
- borderRadius: BorderRadius.circular(10.0),
- ),
- child: Padding(
- padding: EdgeInsets.all(8.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- AppText(
- ' Add more medication',
- fontWeight: FontWeight.w100,
- fontSize: 12.5,
- ),
- Icon(
- Icons.add,
- color: Color(0XFFB8382C),
- )
- ],
- ),
- ),
- ),
- onTap: () {
- addPrescriptionForm(context, model, patient, model.prescriptionList);
- //model.postPrescription();
- },
- ),
- SizedBox(
- height: 10.0,
- ),
- ...List.generate(
- model.prescriptionList[0].rowcount,
- (index) => Container(
- color: Colors.white,
- child: Column(
- children: [
- SizedBox(
- height: MediaQuery.of(context).size.height * 0.022,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- // crossAxisAlignment:
- // CrossAxisAlignment.start,
- children: [
- Container(
- color: Colors.white,
- height: MediaQuery.of(context).size.height * 0.21,
- width: MediaQuery.of(context).size.width * 0.1,
- child: Column(
- children: [
- AppText(
- (DateTime.parse(model.prescriptionList[0].entityList[index]
- .createdOn) !=
- null
- ? (DateTime.parse(model.prescriptionList[0]
- .entityList[index].createdOn)
- .year)
- .toString()
- : DateTime.now().year)
- .toString(),
- color: Colors.green,
- fontSize: 13.5,
- ),
- AppText(
- AppDateUtils.getMonth(model.prescriptionList[0]
- .entityList[index].createdOn !=
- null
- ? (DateTime.parse(model.prescriptionList[0]
- .entityList[index].createdOn)
- .month)
- : DateTime.now().month)
- .toUpperCase(),
- color: Colors.green,
- ),
- AppText(
- DateTime.parse(
- model.prescriptionList[0].entityList[index].createdOn)
- .day
- .toString(),
- color: Colors.green,
- ),
- AppText(
- AppDateUtils.getTimeFormated(DateTime.parse(model
- .prescriptionList[0].entityList[index].createdOn))
- .toString(),
- color: Colors.green,
- ),
- ],
- ),
- ),
- Container(
- color: Colors.white,
- // height: MediaQuery.of(
- // context)
- // .size
- // .height *
- // 0.3499,
- width: MediaQuery.of(context).size.width * 0.77,
- child: Column(
- children: [
- Row(
- children: [
- AppText(
- 'Start Date:',
- fontWeight: FontWeight.w700,
- fontSize: 14.0,
- ),
- Expanded(
- child: AppText(
- AppDateUtils.getDateFormatted(DateTime.parse(model
- .prescriptionList[0].entityList[index].startDate)),
- fontSize: 13.5,
- ),
- ),
- SizedBox(
- width: 6.0,
- ),
- AppText(
- 'Order Type:',
- fontWeight: FontWeight.w700,
- fontSize: 14.0,
- ),
- Expanded(
- child: AppText(
- model.prescriptionList[0].entityList[index]
- .orderTypeDescription,
- fontSize: 13.0,
- ),
- ),
- ],
- ),
- SizedBox(
- height: 5.5,
- ),
- Row(
- children: [
- Container(
- color: Colors.white,
- child: Expanded(
- child: AppText(
- model.prescriptionList[0].entityList[index]
- .medicationName,
- fontWeight: FontWeight.w700,
- fontSize: 15.0,
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.5,
- ),
- Row(
- children: [
- Expanded(
- child: AppText(
- model.prescriptionList[0].entityList[index].doseDetail,
- fontSize: 15.0,
- ),
- )
- ],
- ),
- SizedBox(
- height: 10.0,
- ),
- Row(
- children: [
- AppText(
- 'Indication: ',
- fontWeight: FontWeight.w700,
- fontSize: 17.0,
- ),
- Expanded(
- child: RichText(
- maxLines: 3,
- overflow: TextOverflow.ellipsis,
- strutStyle: StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style: TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index]
- .indication),
- ),
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- 'UOM: ',
- fontWeight: FontWeight.w700,
- fontSize: 17.0,
- ),
- Expanded(
- child: RichText(
- maxLines: 3,
- overflow: TextOverflow.ellipsis,
- strutStyle: StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style: TextStyle(color: Colors.black),
- text: model
- .prescriptionList[0].entityList[index].uom),
- ),
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- 'BOX Quantity: ',
- fontWeight: FontWeight.w700,
- fontSize: 17.0,
- ),
- Expanded(
- child: RichText(
- maxLines: 3,
- overflow: TextOverflow.ellipsis,
- strutStyle: StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style: TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index]
- .quantity
- .toString() ==
- null
- ? ""
- : model.prescriptionList[0].entityList[index]
- .quantity
- .toString()),
- ),
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- 'pharmacy Intervention ',
- fontWeight: FontWeight.w700,
- fontSize: 17.0,
- ),
- Expanded(
- child: RichText(
- maxLines: 3,
- overflow: TextOverflow.ellipsis,
- strutStyle: StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style: TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index]
- .pharmacyInervention ==
- null
- ? ""
- : model.prescriptionList[0].entityList[index]
- .pharmacyInervention
- .toString()),
- ),
- ),
- ],
- ),
- SizedBox(height: 5.0),
- Row(
- children: [
- AppText(
- 'pharmacist Remarks : ',
- fontWeight: FontWeight.w700,
- fontSize: 15.0,
- ),
- Expanded(
- child: AppText(
- model.prescriptionList[0].entityList[index]
- .pharmacistRemarks ==
- null
- ? ""
- : model.prescriptionList[0].entityList[index]
- .pharmacistRemarks,
- fontSize: 15.0),
- )
- ],
- ),
- SizedBox(
- height: 20.0,
- ),
- Row(
- children: [
- AppText(
- TranslationBase.of(context).doctorName + ": ",
- fontWeight: FontWeight.w600,
- ),
- Expanded(
- child: AppText(
- model.prescriptionList[0].entityList[index].doctorName,
- fontWeight: FontWeight.w700,
- ),
- )
- ],
- ),
- SizedBox(
- height: 8.0,
- ),
- Row(
- children: [
- AppText(
- 'Doctor Remarks : ',
- fontWeight: FontWeight.w700,
- fontSize: 13.0,
- ),
- Expanded(
- child: Container(
- color: Colors.white,
- // height: MediaQuery.of(context).size.height *
- // 0.038,
- child: RichText(
- // maxLines:
- // 2,
- // overflow:
- // TextOverflow.ellipsis,
- strutStyle: StrutStyle(fontSize: 10.0),
- text: TextSpan(
- style: TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index]
- .remarks !=
- null
- ? model.prescriptionList[0].entityList[index]
- .remarks
- : "",
- ),
- ),
- ),
- ),
- ],
- ),
- SizedBox(
- height: 10.0,
- ),
-
- // SizedBox(
- // height: 40,
- // ),
- ],
- ),
- ),
- Container(
- color: Colors.white,
- height: MediaQuery.of(context).size.height * 0.16,
- width: MediaQuery.of(context).size.width * 0.06,
- child: Column(
- children: [
- InkWell(
- child: Icon(Icons.edit),
- onTap: () {
- updatePrescriptionForm(
- box: model
- .prescriptionList[0].entityList[index].quantity,
- uom: model.prescriptionList[0].entityList[index].uom,
- drugNameGeneric: model.prescriptionList[0]
- .entityList[index].medicationName,
- doseUnit: model.prescriptionList[0].entityList[index]
- .doseDailyUnitID
- .toString(),
- doseStreangth: model.prescriptionList[0]
- .entityList[index].doseDailyQuantity
- .toString(),
- duration: model.prescriptionList[0].entityList[index]
- .doseDurationDays
- .toString(),
- startDate: model
- .prescriptionList[0].entityList[index].startDate
- .toString(),
- dose: model.prescriptionList[0].entityList[index].doseTimingID
- .toString(),
- frequency: model
- .prescriptionList[0].entityList[index].frequencyID
- .toString(),
- rouat: model.prescriptionList[0].entityList[index].routeID
- .toString(),
- patient: patient,
- drugId: model.prescriptionList[0].entityList[index].medicineCode,
- drugName: model.prescriptionList[0].entityList[index].medicationName,
- remarks: model.prescriptionList[0].entityList[index].remarks,
- model: model,
- enteredRemarks: model.prescriptionList[0].entityList[index].remarks,
- context: context);
- //model.postPrescription();
- },
- ),
- ],
- ),
- ),
- ],
- ),
- Divider(
- height: 0,
- thickness: 1.0,
- color: Colors.grey,
- ),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- )
- : Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.stretch,
- children: [
- InkWell(
- onTap: () {
- addPrescriptionForm(context, model, patient, model.prescriptionList);
- //model.postPrescription();
- },
- child: CircleAvatar(
- radius: 65,
- backgroundColor: Color(0XFFB8382C),
- child: CircleAvatar(
- radius: 60,
- backgroundColor: Colors.white,
- child: Icon(
- Icons.add,
- color: Colors.black,
- size: 45.0,
- ),
- ),
- ),
- ),
- SizedBox(
- height: 15.0,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- AppText(
- TranslationBase.of(context).noPrescriptionListed,
- color: Colors.black,
- fontWeight: FontWeight.w900,
- ),
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- AppText(
- TranslationBase.of(context).addNow,
- color: Color(0XFFB8382C),
- fontWeight: FontWeight.w900,
- ),
- ],
- ),
- ],
- )
- ],
- ),
- ),
- ),
- )),
- );
- }
-
- selectDate(BuildContext context, PrescriptionViewModel model) async {
- DateTime selectedDate;
- selectedDate = DateTime.now();
- final DateTime picked = await showDatePicker(
- context: context,
- initialDate: selectedDate,
- firstDate: DateTime.now().add(Duration(hours: 2)),
- lastDate: DateTime(2040),
- initialEntryMode: DatePickerEntryMode.calendar,
- );
- if (picked != null && picked != selectedDate) {
- setState(() {
- selectedDate = picked;
- });
- }
- }
-}
diff --git a/lib/screens/prescription/prescription_screen_history.dart b/lib/screens/prescription/prescription_screen_history.dart
deleted file mode 100644
index 5ce98c54..00000000
--- a/lib/screens/prescription/prescription_screen_history.dart
+++ /dev/null
@@ -1,516 +0,0 @@
-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/screens/base/base_view.dart';
-import 'package:doctor_app_flutter/util/date-utils.dart';
-import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
-import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
-import 'package:flutter/material.dart';
-
-class NewPrescriptionHistoryScreen extends StatefulWidget {
- @override
- _NewPrescriptionHistoryScreenState createState() =>
- _NewPrescriptionHistoryScreenState();
-}
-
-class _NewPrescriptionHistoryScreenState
- extends State {
- PersistentBottomSheetController _controller;
- final _scaffoldKey = GlobalKey();
- TextEditingController strengthController = TextEditingController();
- int testNum = 0;
- int strengthChar;
- PatiantInformtion patient;
-
- @override
- void initState() {
- super.initState();
- }
-
- Widget build(BuildContext context) {
- final screenSize = MediaQuery.of(context).size;
- final routeArgs = ModalRoute.of(context).settings.arguments as Map;
- patient = routeArgs['patient'];
- return BaseView(
- onModelReady: (model) => model.getPrescription(mrn: patient.patientId),
- builder:
- (BuildContext context, PrescriptionViewModel model, Widget child) =>
- AppScaffold(
- isShowAppBar: true,
- appBarTitle: TranslationBase.of(context).prescription,
- body: NetworkBaseView(
- baseViewModel: model,
- child: SingleChildScrollView(
- child: Container(
- color: Colors.white,
- child: Column(
- children: [
- PatientPageHeaderWidget(patient),
- Divider(
- height: 1.0,
- thickness: 1.0,
- color: Colors.grey,
- ),
- (model.prescriptionList.length != 0)
- ? SizedBox(
- height:
- model.prescriptionList[0].rowcount == 0
- ? 200.0
- : 10.0)
- : SizedBox(height: 200.0),
- //model.prescriptionList == null
- (model.prescriptionList.length != 0)
- ? model.prescriptionList[0].rowcount == 0
- ? Container(
- child: AppText(
- 'Sorry , Theres no prescriptions for this patient',
- color: Color(0xFFB9382C),
- ),
- )
- : Padding(
- padding: EdgeInsets.all(14.0),
- child: NetworkBaseView(
- baseViewModel: model,
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.start,
- children: [
- ...List.generate(
- model.prescriptionList[0]
- .rowcount,
- (index) => Container(
- color: Colors.white,
- child: Column(
- children: [
- SizedBox(
- height: MediaQuery.of(
- context)
- .size
- .height *
- 0.022,
- ),
- Row(
- mainAxisAlignment:
- MainAxisAlignment
- .spaceBetween,
- // crossAxisAlignment:
- // CrossAxisAlignment.start,
- children: [
- Container(
- height: MediaQuery.of(
- context)
- .size
- .height *
- 0.21,
- width: MediaQuery.of(
- context)
- .size
- .width *
- 0.1,
- child: Column(
- children: [
- AppText(
- (DateTime.parse(model.prescriptionList[0].entityList[index].createdOn) !=
- null
- ? (DateTime.parse(model.prescriptionList[0].entityList[index].createdOn).year)
- .toString()
- : DateTime.now()
- .year)
- .toString(),
- color: Colors
- .green,
- fontSize:
- 13.5,
- ),
- AppText(
- AppDateUtils.getMonth(model.prescriptionList[0].entityList[index].createdOn !=
- null
- ? (DateTime.parse(model.prescriptionList[0].entityList[index].createdOn)
- .month)
- : DateTime.now()
- .month)
- .toUpperCase(),
- color: Colors
- .green,
- ),
- AppText(
- DateTime.parse(model
- .prescriptionList[
- 0]
- .entityList[
- index]
- .createdOn)
- .day
- .toString(),
- color: Colors
- .green,
- ),
- AppText(
- AppDateUtils.getTimeFormated(DateTime.parse(model
- .prescriptionList[
- 0]
- .entityList[
- index]
- .createdOn))
- .toString(),
- color: Colors
- .green,
- ),
- ],
- ),
- ),
- Container(
- // height: MediaQuery.of(
- // context)
- // .size
- // .height *
- // 0.3499,
- width: MediaQuery.of(
- context)
- .size
- .width *
- 0.77,
- child: Column(
- children: [
- Row(
- children: [
- AppText(
- 'Start Date:',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 14.0,
- ),
- Expanded(
- child:
- AppText(
- AppDateUtils.getDateFormatted(DateTime.parse(model
- .prescriptionList[0]
- .entityList[index]
- .startDate)),
- fontSize:
- 13.5,
- ),
- ),
- SizedBox(
- width:
- 6.0,
- ),
- AppText(
- 'Order Type:',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 14.0,
- ),
- Expanded(
- child:
- AppText(
- model
- .prescriptionList[0]
- .entityList[index]
- .orderTypeDescription,
- fontSize:
- 13.0,
- ),
- ),
- ],
- ),
- SizedBox(
- height: 5.5,
- ),
- Row(
- children: [
- Container(
- child:
- Expanded(
- child:
- AppText(
- model
- .prescriptionList[0]
- .entityList[index]
- .medicationName,
- fontWeight:
- FontWeight.w700,
- fontSize:
- 15.0,
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.5,
- ),
- Row(
- children: [
- Expanded(
- child:
- AppText(
- model
- .prescriptionList[0]
- .entityList[index]
- .doseDetail,
- fontSize:
- 15.0,
- ),
- )
- ],
- ),
- SizedBox(
- height: 10.0,
- ),
- Row(
- children: [
- AppText(
- 'Indication: ',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 17.0,
- ),
- Expanded(
- child:
- RichText(
- maxLines:
- 3,
- overflow:
- TextOverflow.ellipsis,
- strutStyle:
- StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style:
- TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index].indication),
- ),
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- 'UOM: ',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 17.0,
- ),
- Expanded(
- child:
- RichText(
- maxLines:
- 3,
- overflow:
- TextOverflow.ellipsis,
- strutStyle:
- StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style:
- TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index].uom),
- ),
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- 'BOX Quantity: ',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 17.0,
- ),
- Expanded(
- child:
- RichText(
- maxLines:
- 3,
- overflow:
- TextOverflow.ellipsis,
- strutStyle:
- StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style:
- TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index].quantity.toString() == null ? "" : model.prescriptionList[0].entityList[index].quantity.toString()),
- ),
- ),
- ],
- ),
- Row(
- children: [
- AppText(
- 'pharmacy Intervention ',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 17.0,
- ),
- Expanded(
- child:
- RichText(
- maxLines:
- 3,
- overflow:
- TextOverflow.ellipsis,
- strutStyle:
- StrutStyle(fontSize: 12.0),
- text: TextSpan(
- style:
- TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index].pharmacyInervention == null ? "" : model.prescriptionList[0].entityList[index].pharmacyInervention.toString()),
- ),
- ),
- ],
- ),
- SizedBox(
- height:
- 5.0),
- Row(
- children: [
- AppText(
- 'pharmacist Remarks : ',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 15.0,
- ),
- Expanded(
- child: AppText(
- // commening below code because there is an error coming in the model please fix it before pushing it
- model.prescriptionList[0].entityList[index].pharmacistRemarks == null ? "" : model.prescriptionList[0].entityList[index].pharmacistRemarks,
- fontSize: 15.0),
- )
- ],
- ),
- SizedBox(
- height: 20.0,
- ),
- Row(
- children: [
- AppText(
- TranslationBase.of(context)
- .doctorName +
- ": ",
- fontWeight:
- FontWeight
- .w600,
- ),
- Expanded(
- child:
- AppText(
- model
- .prescriptionList[0]
- .entityList[index]
- .doctorName,
- fontWeight:
- FontWeight.w700,
- ),
- )
- ],
- ),
- SizedBox(
- height: 8.0,
- ),
- Row(
- children: [
- AppText(
- 'Doctor Remarks : ',
- fontWeight:
- FontWeight
- .w700,
- fontSize:
- 13.0,
- ),
- Expanded(
- child:
- Container(
- // height: MediaQuery.of(context).size.height *
- // 0.038,
- child:
- RichText(
- // maxLines:
- // 2,
- // overflow:
- // TextOverflow.ellipsis,
- strutStyle:
- StrutStyle(fontSize: 10.0),
- text:
- TextSpan(
- style:
- TextStyle(color: Colors.black),
- text: model.prescriptionList[0].entityList[index].remarks != null
- ? model.prescriptionList[0].entityList[index].remarks
- : "",
- ),
- ),
- ),
- ),
- ],
- ),
- SizedBox(
- height: 10.0,
- ),
-
- // SizedBox(
- // height: 40,
- // ),
- ],
- ),
- ),
- ],
- ),
- Divider(
- height: 0,
- thickness: 1.0,
- color: Colors.grey,
- ),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- )
- : Container(
- child: AppText(
- 'Sorry , theres no prescriptions listed for this patient',
- color: Color(0xFFB9382C),
- ),
- )
- ],
- ),
- ),
- ),
- )),
- );
- }
-
- selectDate(BuildContext context, PrescriptionViewModel model) async {
- DateTime selectedDate;
- selectedDate = DateTime.now();
- final DateTime picked = await showDatePicker(
- context: context,
- initialDate: selectedDate,
- firstDate: DateTime.now().add(Duration(hours: 2)),
- lastDate: DateTime(2040),
- initialEntryMode: DatePickerEntryMode.calendar,
- );
- if (picked != null && picked != selectedDate) {
- setState(() {
- selectedDate = picked;
- });
- }
- }
-}
diff --git a/lib/screens/prescription/prescriptions_page.dart b/lib/screens/prescription/prescriptions_page.dart
index 224d30e4..1a99299b 100644
--- a/lib/screens/prescription/prescriptions_page.dart
+++ b/lib/screens/prescription/prescriptions_page.dart
@@ -8,7 +8,7 @@ import 'package:doctor_app_flutter/screens/procedures/base_add_procedure_tab_pag
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/doctor_card.dart';
@@ -35,10 +35,8 @@ class PrescriptionsPage extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Colors.grey[100],
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- patientType ?? '0',
- arrivalType,
isInpatient: isInpatient,
),
body: patient.admissionNo == null
diff --git a/lib/screens/procedures/procedure_screen.dart b/lib/screens/procedures/procedure_screen.dart
index 756a19a0..79371459 100644
--- a/lib/screens/procedures/procedure_screen.dart
+++ b/lib/screens/procedures/procedure_screen.dart
@@ -8,7 +8,7 @@ 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';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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:flutter/material.dart';
@@ -44,10 +44,8 @@ class ProcedureScreen extends StatelessWidget {
isShowAppBar: true,
backgroundColor: Colors.grey[100],
baseViewModel: model,
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- arrivalType ?? '0',
- patientType,
isInpatient: isInpatient,
),
body: SingleChildScrollView(
diff --git a/lib/screens/qr_reader/QR_reader_screen.dart b/lib/screens/qr_reader/QR_reader_screen.dart
index 30c05fef..c70563f9 100644
--- a/lib/screens/qr_reader/QR_reader_screen.dart
+++ b/lib/screens/qr_reader/QR_reader_screen.dart
@@ -1,11 +1,9 @@
import 'package:barcode_scan_fix/barcode_scan.dart';
-import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
+import 'package:doctor_app_flutter/core/enum/viewstate.dart';
+import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
-import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
-import 'package:doctor_app_flutter/models/patient/patient_model.dart';
-import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart';
-import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
+import 'package:doctor_app_flutter/core/viewModel/scan_qr_view_model.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@@ -26,43 +24,13 @@ class QrReaderScreen extends StatefulWidget {
}
class _QrReaderScreenState extends State {
- DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
-
- bool isLoading = false;
- bool isError = false;
- PatientModel patient = PatientModel(
- ProjectID: 15,
- ClinicID: 0,
- DoctorID: 1485,
- FirstName: "0",
- MiddleName: "0",
- LastName: "0",
- PatientMobileNumber: "0",
- PatientIdentificationID: "0",
- PatientID: 0,
- From: "0",
- To: "0",
- LanguageID: 2,
- stamp: "2020-03-02T13:56:39.170Z",
- IPAdress: "11.11.11.11",
- VersionID: 5.5,
- Channel: 9,
- TokenID: "@dm!n",
- SessionID: "5G0yXn0Jnq",
- IsLoginForDoctorApp: true,
- PatientOutSA: false);
- List patientList = [];
- String error = '';
-
@override
Widget build(BuildContext context) {
- return BaseView(
- onModelReady: (model) => model.getClinicsList(),
+ return BaseView(
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),
@@ -80,9 +48,7 @@ class _QrReaderScreenState extends State {
height: 7,
),
AppText(TranslationBase.of(context).scanQrCode,
- fontSize: 14,
- fontWeight: FontWeight.w400,
- textAlign: TextAlign.center),
+ fontSize: 14, fontWeight: FontWeight.w400, textAlign: TextAlign.center),
SizedBox(
height: 15,
),
@@ -98,31 +64,8 @@ class _QrReaderScreenState extends State {
onPressed: () {
_scanQrAndGetPatient(context, model);
},
- loading: isLoading,
icon: Image.asset('assets/images/qr_code_white.png'),
),
- isError
- ? Container(
- margin: EdgeInsets.only(top: 8),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(6.0),
- color:
- Theme.of(context).errorColor.withOpacity(0.06),
- ),
- padding: EdgeInsets.symmetric(
- vertical: 8.0, horizontal: 12.0),
- child: Row(
- children: [
- Expanded(
- child: AppText(
- error ??
- TranslationBase.of(context)
- .errorMessage,
- color: Theme.of(context).errorColor)),
- ],
- ),
- )
- : Container(),
],
),
),
@@ -132,86 +75,32 @@ class _QrReaderScreenState extends State {
);
}
- _scanQrAndGetPatient(BuildContext context, PatientViewModel model) async {
+ _scanQrAndGetPatient(BuildContext context, ScanQrViewModel model) async {
/// When give qr we will change this method to get data
/// var result = await BarcodeScanner.scan();
/// int patientID = get from qr result
var result = await BarcodeScanner.scan();
if (result != "") {
List listOfParams = result.split(',');
- String patientType = "1";
- setState(() {
- isLoading = true;
- isError = false;
- patientList = [];
- });
- String token = await sharedPref.getString(TOKEN);
-// Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
-// DoctorProfileModel doctorProfile = new DoctorProfileModel.fromJson(profile);
-// patient.PatientID = 8808;
-// patient.TokenID = token;
-// patient.setDoctorID = doctorProfile.projectID;
-// patient.setClinicID = doctorProfile.clinicID;
-// patient.setProjectID = doctorProfile.projectID;
-// Provider.of(context, listen: false);
- patient.PatientID = 8808;
- patient.TokenID = token;
- model.getPatientList(patient, "1", isBusyLocal: true).then((response) {
- if (response['MessageStatus'] == 1) {
- switch (patientType) {
- case "0":
- if (response['List_MyOutPatient'] != null) {
- setState(() {
- patientList =
- ModelResponse.fromJson(response['List_MyOutPatient'])
- .list;
- isLoading = false;
- });
- Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: {
- "patient": patientList[0],
- });
- } else {
- setState(() {
- isError = true;
- isLoading = false;
- });
- DrAppToastMsg.showErrorToast('No patient');
- }
- break;
- case "1":
- if (response['List_MyInPatient'] != null) {
- setState(() {
- patientList =
- ModelResponse.fromJson(response['List_MyInPatient']).list;
- isLoading = false;
- error = "";
- });
- Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: {
- "patient": patientList[0],
- });
- } else {
- setState(() {
- isError = true;
- isLoading = false;
- });
- DrAppToastMsg.showErrorToast('No patient');
- break;
- }
- }
+ int patientID = 0;
+ if (listOfParams[1].length != 0) patientID = int.parse(listOfParams[1]);
+ PatientSearchRequestModel patientSearchRequestModel = PatientSearchRequestModel(
+ patientID: patientID,
+ );
+
+ await model.getInPatientList(patientSearchRequestModel, isMyInpatient: true).then((d) {
+ if (model.state != ViewState.ErrorLocal) {
+ if (model.inPatientList.isEmpty)
+ DrAppToastMsg.showErrorToast('No patient');
+ else
+ Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: {
+ "patient": model.inPatientList[0],
+ });
} else {
- setState(() {
- isLoading = false;
- isError = true;
- });
- DrAppToastMsg.showErrorToast(
- response['ErrorEndUserMessage'] ?? response['ErrorMessage']);
+ DrAppToastMsg.showErrorToast(model.error);
}
}).catchError((error) {
- setState(() {
- isLoading = false;
- });
Helpers.showErrorToast(error.message);
- //DrAppToastMsg.showErrorToast(error);
});
}
}
diff --git a/lib/screens/sick-leave/add-sickleave.dart b/lib/screens/sick-leave/add-sickleave.dart
index 734e849a..7b065321 100644
--- a/lib/screens/sick-leave/add-sickleave.dart
+++ b/lib/screens/sick-leave/add-sickleave.dart
@@ -9,7 +9,7 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/sick-leave/sick_leave.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/rounded_container_widget.dart';
@@ -34,10 +34,8 @@ class AddSickLeavScreen extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Colors.grey[100],
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- routeArgs['patientType'] ?? "0",
- routeArgs['arrivalType'] ?? "0",
isInpatient: isInpatient,
),
body: SingleChildScrollView(
diff --git a/lib/screens/sick-leave/show-sickleave.dart b/lib/screens/sick-leave/show-sickleave.dart
index 3fbb3287..726524d8 100644
--- a/lib/screens/sick-leave/show-sickleave.dart
+++ b/lib/screens/sick-leave/show-sickleave.dart
@@ -5,7 +5,7 @@ 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
+import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/rounded_container_widget.dart';
@@ -25,10 +25,8 @@ class ShowSickLeaveScreen extends StatelessWidget {
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Colors.grey[100],
- appBar: PatientProfileHeaderNewDesignAppBar(
+ appBar: PatientProfileAppBar(
patient,
- routeArgs['patientType'] ?? "0",
- routeArgs['arrivalType'] ?? "0",
),
body: SingleChildScrollView(
child: Column(
diff --git a/lib/util/VideoChannel.dart b/lib/util/VideoChannel.dart
index a0962010..0104f55b 100644
--- a/lib/util/VideoChannel.dart
+++ b/lib/util/VideoChannel.dart
@@ -10,7 +10,7 @@ class VideoChannel{
/// channel name
static const _channel = const MethodChannel("Dr.cloudSolution/videoCall");
static openVideoCallScreen(
- {kApiKey, kSessionId, kToken, callDuration, warningDuration,int vcId,String tokenID,String generalId,int doctorId, Function() onCallEnd , Function(SessionStatusModel sessionStatusModel) onCallNotRespond ,Function(String error) onFailure}) async {
+ {kApiKey, kSessionId, kToken, callDuration, warningDuration,int vcId,String tokenID,String generalId,int doctorId, String patientName, Function() onCallEnd , Function(SessionStatusModel sessionStatusModel) onCallNotRespond ,Function(String error) onFailure}) async {
var result;
try {
result = await _channel.invokeMethod(
@@ -25,6 +25,7 @@ class VideoChannel{
"TokenID": tokenID,
"generalId": generalId,
"DoctorId": doctorId ,
+ "patientName": patientName,
},
);
if(result['callResponse'] == 'CallEnd') {
diff --git a/lib/util/date-utils.dart b/lib/util/date-utils.dart
index 9ce078ed..9b00ba2b 100644
--- a/lib/util/date-utils.dart
+++ b/lib/util/date-utils.dart
@@ -16,7 +16,11 @@ class AppDateUtils {
}
static String convertStringToDateFormat(String date, String dateFormat) {
- DateTime dateTime = DateTime.parse(date);
+ DateTime dateTime ;
+ if(date.contains("/Date"))
+ dateTime= getDateTimeFromServerFormat(date);
+ else
+ dateTime = DateTime.parse(date);
return convertDateToFormat(dateTime, dateFormat);
}
@@ -68,20 +72,26 @@ class AppDateUtils {
return "$days ${TranslationBase.of(context).days}, $months ${TranslationBase.of(context).months}, $years ${TranslationBase.of(context).years}";
}
- static String differenceBetweenDateAndCurrent(DateTime firstDate, BuildContext context) {
+ static String differenceBetweenDateAndCurrent(DateTime firstDate, BuildContext context, {bool isShowSecond = false, bool isShowDays = true }) {
DateTime now = DateTime.now();
- // DateTime now = nows.add(Duration(days: 400, minutes: 25, hours: 0));
var difference = now.difference(firstDate);
int minutesInDays = difference.inMinutes;
+ int secondInDays = difference.inSeconds;
int hoursInDays = minutesInDays ~/ 60; // ~/ : truncating division to make the result int
+ int second = secondInDays % 60;
int minutes = minutesInDays % 60;
int days = hoursInDays ~/ 24;
int hours = hoursInDays % 24;
double hoursInOneDay = difference.inHours / difference.inDays;
- return "$days ${TranslationBase.of(context).days}, $hours ${TranslationBase.of(context).hr}, $minutes ${TranslationBase.of(context).min}";
+ return (isShowDays
+ ? (days > 0 ? "$days ${TranslationBase.of(context).days}," : '')
+ : "") +
+ (hours > 0 ? "$hours ${TranslationBase.of(context).hr}," : "") +
+ " $minutes ${TranslationBase.of(context).min}" +
+ (isShowSecond ? ", $second Sec" : "");
}
static String differenceBetweenServerDateAndCurrent(String str, BuildContext context) {
@@ -365,4 +375,44 @@ class AppDateUtils {
else
return "";
}
+
+
+ // handel date like "09/05/2021 17:00"
+ static DateTime getDateTimeFromString(String str) {
+ List array = str.split('/');
+ int day = int.parse(array[0]);
+ int month = int.parse(array[1]);
+
+ List array2 = array[2].split(' ');
+ int year = int.parse(array2[0]);
+ String hour = array2[1];
+ List hourList = hour.split(":");
+
+ DateTime date = DateTime(year, month, day, int.parse(hourList[0]), int.parse(hourList[1]));
+
+
+ return date;
+ }
+
+
+ static convertDateFormatImproved(String str) {
+ String newDate;
+ const start = "/Date(";
+ if (str.isNotEmpty) {
+ const end = "+0300)";
+
+ final startIndex = str.indexOf(start);
+ final endIndex = str.indexOf(end, startIndex + start.length);
+
+ var date = new DateTime.fromMillisecondsSinceEpoch(
+ int.parse(str.substring(startIndex + start.length, endIndex)));
+ newDate = date.year.toString() +
+ "/" +
+ date.month.toString().padLeft(2, '0') +
+ "/" +
+ date.day.toString().padLeft(2, '0');
+ }
+
+ return newDate??'';
+ }
}
diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart
index 16ae07bd..165a9bb5 100644
--- a/lib/util/translations_delegate_base.dart
+++ b/lib/util/translations_delegate_base.dart
@@ -1363,6 +1363,8 @@ class TranslationBase {
String get allLab => localizedValues['allLab'][locale.languageCode];
String get allPrescription => localizedValues['allPrescription'][locale.languageCode];
String get addPrescription => localizedValues['addPrescription'][locale.languageCode];
+ String get edit => localizedValues['edit'][locale.languageCode];
+ String get summeryReply => localizedValues['summeryReply'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate {
diff --git a/lib/widgets/patients/patient-referral-item-widget.dart b/lib/widgets/patients/patient-referral-item-widget.dart
index a08282c0..a898e39c 100644
--- a/lib/widgets/patients/patient-referral-item-widget.dart
+++ b/lib/widgets/patients/patient-referral-item-widget.dart
@@ -58,7 +58,7 @@ class PatientReferralItemWidget extends StatelessWidget {
child: CardWithBgWidget(
bgColor: referralStatusCode == 1
? Color(0xffc4aa54)
- : referralStatusCode == 46
+ : referralStatusCode == 46 || referralStatusCode == 2
? Colors.green[700]
: Colors.red[700],
hasBorder: false,
@@ -78,7 +78,7 @@ class PatientReferralItemWidget extends StatelessWidget {
fontWeight: FontWeight.w700,
color: referralStatusCode == 1
? Color(0xffc4aa54)
- : referralStatusCode == 46
+ : referralStatusCode == 46 || referralStatusCode == 2
? Colors.green[700]
: Colors.red[700],
),
@@ -155,6 +155,7 @@ class PatientReferralItemWidget extends StatelessWidget {
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
isSameBranch ? TranslationBase.of(context).referredFrom :TranslationBase.of(context).refClinic,
@@ -163,13 +164,14 @@ class PatientReferralItemWidget extends StatelessWidget {
fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
),
-
- AppText(
- !isReferralClinic? isSameBranch ? TranslationBase.of(context).sameBranch : TranslationBase.of(context).otherBranch: " "+referralClinic,
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w700,
- fontSize: 1.8 * SizeConfig.textMultiplier,
- color: Color(0XFF2E303A),
+ Expanded(
+ child: AppText(
+ !isReferralClinic? isSameBranch ? TranslationBase.of(context).sameBranch : TranslationBase.of(context).otherBranch: " "+referralClinic,
+ fontFamily: 'Poppins',
+ fontWeight: FontWeight.w700,
+ fontSize: 1.8 * SizeConfig.textMultiplier,
+ color: Color(0XFF2E303A),
+ ),
),
],
),
@@ -215,7 +217,7 @@ class PatientReferralItemWidget extends StatelessWidget {
),
Expanded(
child: AppText(
- remark,
+ remark??"",
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier,
diff --git a/lib/widgets/patients/PatientCard.dart b/lib/widgets/patients/patient_card/PatientCard.dart
similarity index 98%
rename from lib/widgets/patients/PatientCard.dart
rename to lib/widgets/patients/patient_card/PatientCard.dart
index 2174e6d5..b90eecd3 100644
--- a/lib/widgets/patients/PatientCard.dart
+++ b/lib/widgets/patients/patient_card/PatientCard.dart
@@ -9,6 +9,8 @@ import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'ShowTimer.dart';
+
class PatientCard extends StatelessWidget {
final PatiantInformtion patientInfo;
final Function onTap;
@@ -19,7 +21,7 @@ class PatientCard extends StatelessWidget {
final bool isFromSearch;
final bool isFromLiveCare;
- const PatientCard(
+ PatientCard(
{Key key,
this.patientInfo,
this.onTap,
@@ -33,6 +35,7 @@ class PatientCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
+
return Container(
width: SizeConfig.screenWidth * 0.9,
margin: EdgeInsets.all(6),
@@ -257,9 +260,9 @@ class PatientCard extends StatelessWidget {
patientInfo.fullName)
: (Helpers.capitalize(
patientInfo.firstName) +
- " " +
- Helpers.capitalize(
- patientInfo.lastName)),
+ " " +
+ Helpers.capitalize(
+ patientInfo.lastName)),
fontSize: 16,
color: Color(0xff2e303a),
fontWeight: FontWeight.w700,
@@ -267,6 +270,7 @@ class PatientCard extends StatelessWidget {
textOverflow: TextOverflow.ellipsis,
),
),
+
if (patientInfo.gender == 1)
Icon(
DoctorApp.male_2,
@@ -277,6 +281,9 @@ class PatientCard extends StatelessWidget {
DoctorApp.female_1,
color: Colors.pink,
),
+
+ if(isFromLiveCare)
+ ShowTimer(patientInfo: patientInfo,),
]),
),
Row(
@@ -515,12 +522,14 @@ class PatientCard extends StatelessWidget {
height: 25,
width: 35,
)),
- ])
- : SizedBox()
+ ])
+ : SizedBox()
],
),
onTap: onTap,
)),
));
}
-}
+
+
+}
\ No newline at end of file
diff --git a/lib/widgets/patients/patient_card/ShowTimer.dart b/lib/widgets/patients/patient_card/ShowTimer.dart
new file mode 100644
index 00000000..b769588b
--- /dev/null
+++ b/lib/widgets/patients/patient_card/ShowTimer.dart
@@ -0,0 +1,59 @@
+
+import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
+import 'package:doctor_app_flutter/util/date-utils.dart';
+import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
+import 'package:flutter/material.dart';
+
+class ShowTimer extends StatefulWidget {
+ final PatiantInformtion patientInfo;
+
+
+ const ShowTimer({
+ Key key, this.patientInfo,
+ }) : super(key: key);
+
+ @override
+ _ShowTimerState createState() => _ShowTimerState();
+}
+
+class _ShowTimerState extends State {
+
+ int remainingTime = 600;
+ String displayTime = '';
+
+ @override
+ Widget build(BuildContext context) {
+ if (displayTime.isEmpty) {
+ startShowTimer();
+ }
+ return AppText(
+ "$displayTime",
+ color: Colors.red,
+ textAlign: TextAlign.start,
+ fontWeight: FontWeight.bold,
+ fontSize: 11,
+ );
+ }
+
+ startShowTimer() {
+ // this.remainingTime--;
+ setState(() {
+ displayTime = this.generateShowTimerString();
+ });
+
+ Future.delayed(Duration(seconds: 1), () {
+ if (this.remainingTime > 0) {
+ startShowTimer();
+ }
+ });
+ }
+
+ generateShowTimerString() {
+ DateTime now = DateTime.now();
+ DateTime liveCareDate = DateTime.parse(widget.patientInfo.arrivalTime);
+ String timer = AppDateUtils.differenceBetweenDateAndCurrent(
+ liveCareDate, context, isShowSecond: true, isShowDays: false);
+
+ return timer;
+ }
+}
diff --git a/lib/widgets/patients/profile/PatientHeaderWidgetNoAvatar.dart b/lib/widgets/patients/profile/PatientHeaderWidgetNoAvatar.dart
deleted file mode 100644
index aef7a161..00000000
--- a/lib/widgets/patients/profile/PatientHeaderWidgetNoAvatar.dart
+++ /dev/null
@@ -1,73 +0,0 @@
-import 'package:doctor_app_flutter/config/size_config.dart';
-import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-
-class PatientHeaderWidgetNoAvatar extends StatelessWidget {
- final PatiantInformtion patient;
-
- PatientHeaderWidgetNoAvatar(this.patient);
-
- @override
- Widget build(BuildContext context) {
- return Column(
- children: [
- Container(
- margin: EdgeInsets.all(16),
- child: Row(
- children: [
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- patient.firstName + ' ' + patient.lastName,
- fontWeight: FontWeight.bold,
- fontSize: SizeConfig.textMultiplier * 2.2,
- ),
- Row(
- children: [
- AppText(
- "VIP",
- fontWeight: FontWeight.bold,
- fontSize: SizeConfig.textMultiplier * 2.2,
- ),
- SizedBox(
- width: 8,
- ),
- AppText(
- " ${patient.age}",
- fontWeight: FontWeight.normal,
- fontSize: SizeConfig.textMultiplier * 2.0,
- ),
- ],
- ),
- AppText(
- patient.visitType ?? "",
- fontWeight: FontWeight.bold,
- fontSize: SizeConfig.textMultiplier * 2.0,
- ),
- AppText(
- "${patient.companyName != null ? patient.companyName : ""}",
- fontWeight: FontWeight.bold,
- fontSize: SizeConfig.textMultiplier * 2.0,
- ),
- ],
- ),
- ),
- Icon(
- Icons.info_outline,
- color: Colors.black,
- ),
- ],
- ),
- ),
- Container(
- width: double.infinity,
- height: 1,
- color: Color(0xffCCCCCC),
- ),
- ],
- );
- }
-}
diff --git a/lib/widgets/patients/profile/PatientProfileButton.dart b/lib/widgets/patients/profile/PatientProfileButton.dart
index ef285150..36755502 100644
--- a/lib/widgets/patients/profile/PatientProfileButton.dart
+++ b/lib/widgets/patients/profile/PatientProfileButton.dart
@@ -28,6 +28,7 @@ class PatientProfileButton extends StatelessWidget {
final bool isDartIcon;
final IconData dartIcon;
final bool isFromLiveCare;
+ final Color color;
PatientProfileButton({
Key key,
@@ -47,7 +48,7 @@ class PatientProfileButton extends StatelessWidget {
this.isDischargedPatient = false,
this.isSelectInpatient = false,
this.isDartIcon = false,
- this.dartIcon, this.isFromLiveCare = false,
+ this.dartIcon, this.isFromLiveCare = false, this.color,
}) : super(key: key);
@override
@@ -73,7 +74,7 @@ class PatientProfileButton extends StatelessWidget {
children: [
Container(
child: isDartIcon ? Icon(
- dartIcon, size: 30, color: Color(0xFF333C45),) : new Image
+ dartIcon, size: 30, color: color?? Color(0xFF333C45),) : new Image
.asset(
url + icon,
width: 30,
@@ -93,14 +94,14 @@ class PatientProfileButton extends StatelessWidget {
children: [
AppText(
!projectsProvider.isArabic ? this.nameLine1 : nameLine2,
- color: Color(0xFF2B353E),
+ color: color??Color(0xFF2B353E),
fontWeight: FontWeight.w600,
textAlign: TextAlign.left,
fontSize: SizeConfig.textMultiplier * 1.5,
),
AppText(
!projectsProvider.isArabic ? this.nameLine2 : nameLine1,
- color: Color(0xFF2B353E),
+ color: color??Color(0xFF2B353E),
fontWeight: FontWeight.w600,
textAlign: TextAlign.left,
fontSize: SizeConfig.textMultiplier * 1.5,
@@ -116,7 +117,7 @@ class PatientProfileButton extends StatelessWidget {
color: isDisable ? Colors.grey.withOpacity(0.4) : Colors.white,
borderRadius: BorderRadius.all(Radius.circular(10)),
border: Border.fromBorderSide(BorderSide(
- color: Color(0xffBBBBBB),
+ color: color??Color(0xffBBBBBB),
width: 1,
)),
),
diff --git a/lib/widgets/patients/profile/patient-page-header-widget.dart b/lib/widgets/patients/profile/patient-page-header-widget.dart
deleted file mode 100644
index 49ad8f4e..00000000
--- a/lib/widgets/patients/profile/patient-page-header-widget.dart
+++ /dev/null
@@ -1,114 +0,0 @@
-import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
-import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.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/SOAP/GeneralGetReqForSOAP.dart';
-import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
-import 'package:doctor_app_flutter/screens/base/base_view.dart';
-import 'package:doctor_app_flutter/screens/patients/profile/profile_screen/patient_profile_screen.dart';
-import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
-import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-import 'package:provider/provider.dart';
-
-class PatientPageHeaderWidget extends StatelessWidget {
-
- final PatiantInformtion patient;
- PatientPageHeaderWidget(this.patient);
-
- @override
- Widget build(BuildContext context) {
- ProjectViewModel projectViewModel = Provider.of(context);
-
- return BaseView(
- onModelReady: (model) async {
- GeneralGetReqForSOAP generalGetReqForSOAP = GeneralGetReqForSOAP(
- patientMRN: patient.patientMRN??patient.patientId,
- doctorID: '',
- editedBy: '');
- await model.getPatientAllergy(generalGetReqForSOAP);
- if (model.allergiesList.length == 0) {
- await model.getMasterLookup(MasterKeysService.Allergies);
- }
- if (model.allergySeverityList.length == 0) {
- await model.getMasterLookup(MasterKeysService.AllergySeverity);
- }
-
- },
- builder: (_, model, w) => Container(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Padding(
- padding: const EdgeInsets.all(8.0),
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.min,
- children: [
- AvatarWidget(
- Icon(
- patient.genderDescription == "Male"
- ? DoctorApp.male
- : DoctorApp.female_icon,
- size: 70,
- color: Colors.white,
- ),
- ),
- SizedBox(
- width: 20,
- ),
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- SizedBox(
- height: 5,
- ),
- AppText(
- patient.patientDetails.fullName != null ? patient.patientDetails.fullName : patient.firstName,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context).age ,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- SizedBox(
- width: 20,
- ),
- AppText(
- patient.age.toString(),
- color: Colors.black,
- fontWeight: FontWeight.normal,
- ),
- ],
- ),
- model.patientAllergiesList.isNotEmpty && model.getAllergicNames(projectViewModel.isArabic)!='' ?AppText(
- TranslationBase.of(context).allergicTO +" : "+model.getAllergicNames(projectViewModel.isArabic),
- color: Color(0xFFB9382C),
- fontWeight: FontWeight.bold,
- ) : AppText(''),
- ],
- ),
- )
- ],
- ),
- ),
- Container(
- width: double.infinity,
- height: 1,
- color: Color(0xffCCCCCC),
- ),
- SizedBox(
- width: 20,
- ),
- ],
- ),
- ));
- }
-}
diff --git a/lib/widgets/patients/profile/patient-profile-app-bar.dart b/lib/widgets/patients/profile/patient-profile-app-bar.dart
new file mode 100644
index 00000000..83186b02
--- /dev/null
+++ b/lib/widgets/patients/profile/patient-profile-app-bar.dart
@@ -0,0 +1,556 @@
+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/icons_app/doctor_app_icons.dart';
+import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
+import 'package:doctor_app_flutter/util/date-utils.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/shared/app_texts_widget.dart';
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+import 'package:url_launcher/url_launcher.dart';
+
+import 'large_avatar.dart';
+
+class PatientProfileAppBar extends StatelessWidget
+ with PreferredSizeWidget {
+ final PatiantInformtion patient;
+ final double height;
+ final bool isInpatient;
+ final bool isDischargedPatient;
+ final bool isFromLiveCare;
+
+ final String doctorName;
+ final String branch;
+ final DateTime appointmentDate;
+ final String profileUrl;
+ final String invoiceNO;
+ final String orderNo;
+ final bool isPrescriptions;
+ final bool isMedicalFile;
+ final String episode;
+ final String visitDate;
+ final String clinic;
+ final bool isAppointmentHeader;
+ final bool isFromLabResult;
+
+ PatientProfileAppBar(
+ this.patient,
+ {this.height = 0.0,
+ this.isInpatient = false,
+ this.isDischargedPatient = false,
+ this.isFromLiveCare = false,
+ this.doctorName,
+ this.branch,
+ this.appointmentDate,
+ this.profileUrl,
+ this.invoiceNO,
+ this.orderNo,
+ this.isPrescriptions = false,
+ this.clinic,
+ this.isMedicalFile = false,
+ this.episode,
+ this.visitDate,
+ this.isAppointmentHeader = false,
+ this.isFromLabResult = false});
+
+
+ @override
+ Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
+
+ int gender = 1;
+ if (patient.patientDetails != null) {
+ gender = patient.patientDetails.gender;
+ } else {
+ gender = patient.gender;
+ }
+
+ return Container(
+ padding: EdgeInsets.only(
+ left: 0,
+ right: 5,
+ bottom: 5,
+ ),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ ),
+ // height: height == 0
+ // ? isInpatient
+ // ? 215
+ // : isAppointmentHeader
+ // ? 325
+ // : 200
+ // : height,
+ child: Container(
+ padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
+ margin: EdgeInsets.only(top: 50),
+ child: Column(
+ children: [
+ Container(
+ padding: EdgeInsets.only(left: 12.0),
+ child: Row(children: [
+ IconButton(
+ icon: Icon(Icons.arrow_back_ios),
+ color: Color(0xFF2B353E), //Colors.black,
+ onPressed: () => Navigator.pop(context),
+ ),
+ Expanded(
+ child: AppText(
+ patient.firstName != null
+ ? (Helpers.capitalize(patient.firstName) +
+ " " +
+ Helpers.capitalize(patient.lastName))
+ : Helpers.capitalize(patient.fullName??patient.patientDetails.fullName),
+ fontSize: SizeConfig.textMultiplier * 1.8,
+ fontWeight: FontWeight.bold,
+ fontFamily: 'Poppins',
+ color: Color(0xFF2B353E),
+ ),
+ ),
+ gender == 1
+ ? Icon(
+ DoctorApp.male_2,
+ color: Colors.blue,
+ )
+ : Icon(
+ DoctorApp.female_1,
+ color: Colors.pink,
+ ),
+ Container(
+ margin: EdgeInsets.symmetric(horizontal: 4),
+ child: InkWell(
+ onTap: () {
+ launch("tel://" + patient.mobileNumber);
+ },
+ child: Icon(
+ Icons.phone,
+ color: Colors.black87,
+ ),
+ ),
+ ),
+ ]),
+ ),
+ Row(children: [
+ Padding(
+ padding: EdgeInsets.only(left: 12.0),
+ child: Container(
+ width: 60,
+ height: 60,
+ child: Image.asset(
+ gender == 1
+ ? 'assets/images/male_avatar.png'
+ : 'assets/images/female_avatar.png',
+ fit: BoxFit.cover,
+ ),
+ ),
+ ),
+ SizedBox(
+ width: 10,
+ ),
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ patient.patientStatusType != null
+ ? Container(
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ patient.patientStatusType == 43
+ ? AppText(
+ TranslationBase
+ .of(context)
+ .arrivedP,
+ color: Colors.green,
+ fontWeight: FontWeight.bold,
+ fontFamily: 'Poppins',
+ fontSize: 12,
+ )
+ : AppText(
+ TranslationBase.of(context).notArrived,
+ color: Colors.red[800],
+ fontWeight: FontWeight.bold,
+ fontFamily: 'Poppins',
+ fontSize: 12,
+ ),
+ patient.startTime != null
+ ? AppText(
+ patient.startTime != null
+ ? patient.startTime
+ : '',
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ color: Color(0xFF2E303A))
+ : SizedBox()
+ ],
+ ))
+ : SizedBox(),
+
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ RichText(
+ text: TextSpan(
+ style: TextStyle(
+ fontSize: 1.6 * SizeConfig.textMultiplier,
+ color: Colors.black),
+ children: [
+ new TextSpan(
+ text: TranslationBase
+ .of(context)
+ .fileNumber,
+
+ style: TextStyle(
+ fontSize: 10,
+ fontFamily: 'Poppins',
+ color: Color(0xFF575757),
+ fontWeight: FontWeight.w600,
+
+ ),),
+ new TextSpan(
+ text: patient.patientId.toString(),
+ style: TextStyle(
+ fontWeight: FontWeight.w700,
+ fontFamily: 'Poppins',
+ fontSize: 12, color: Color(0xFF2E303A),)),
+ ],
+ ),
+ ),
+ Row(
+ children: [
+ AppText(
+ patient.nationalityName ?? patient.nationality?? patient.nationalityId ?? '',
+ fontWeight: FontWeight.bold,
+ fontSize: 12,
+ ),
+ patient.nationalityFlagURL != null
+ ? ClipRRect(
+ borderRadius: BorderRadius.circular(20.0),
+ child: Image.network(
+ patient.nationalityFlagURL,
+ height: 25,
+ width: 30,
+ errorBuilder: (BuildContext context,
+ Object exception,
+ StackTrace stackTrace) {
+ return Text('No Image');
+ },
+ ))
+ : SizedBox()
+ ],
+ )
+ ],
+ ),
+ Container(
+ child: RichText(
+ text: new TextSpan(
+ style: new TextStyle(
+ fontSize: 1.6 * SizeConfig.textMultiplier,
+ color: Colors.black,
+ fontFamily: 'Poppins',
+ ),
+ children: [
+ new TextSpan(
+ text: TranslationBase
+ .of(context)
+ .age + " : ",
+ style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),)),
+ new TextSpan(
+ text:
+ "${AppDateUtils.getAgeByBirthday(
+ patient.patientDetails != null
+ ? patient.patientDetails.dateofBirth ??
+ ""
+ : patient.dateofBirth ?? "", context,
+ isServerFormat: !isFromLiveCare)}",
+ style: TextStyle(
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ color: Color(0xFF2E303A),)),
+ ],
+ ),
+ ),
+ ),
+
+ if ( patient.appointmentDate != null && patient.appointmentDate.isNotEmpty && !isFromLabResult)
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ AppText(
+ TranslationBase.of(context).appointmentDate +
+ " : ",
+ fontSize: 10,
+ color: Color(0xFF575757),
+ fontWeight: FontWeight.w600,
+ fontFamily: 'Poppins',
+ ),
+ SizedBox(
+ width: 3.5,
+ ),
+ AppText(
+ AppDateUtils
+ .getDayMonthYearDateFormatted(
+ AppDateUtils.convertStringToDate(
+ patient.appointmentDate))
+ ,
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ color: Color(0xFF2E303A),
+ ),
+ SizedBox(
+ height: 0.5,
+ )
+ ],
+ ),
+ if(isFromLabResult)Container(
+ child: RichText(
+ text: new TextSpan(
+ style: new TextStyle(
+ fontSize: 1.6 * SizeConfig.textMultiplier,
+ color: Colors.black,
+ fontFamily: 'Poppins',
+ ),
+ children: [
+ new TextSpan(
+ text: "Result Date: ",
+ style: TextStyle( fontSize: 10,
+ color: Color(0xFF575757),
+ fontWeight: FontWeight.w600,
+ fontFamily: 'Poppins',)),
+ new TextSpan(
+ text:
+ '${AppDateUtils.getDayMonthYearDateFormatted(appointmentDate, isArabic: projectViewModel.isArabic)}',
+ style: TextStyle(
+ fontWeight: FontWeight.w700, fontSize: 12)),
+ ],
+ ),
+ ),
+ ),
+ // if(isInpatient)
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ if(patient.admissionDate != null && patient.admissionDate.isNotEmpty)
+ Container(
+ child: RichText(
+ text: new TextSpan(
+ style: new TextStyle(
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),
+ fontFamily: 'Poppins',
+ ),
+ children: [
+ new TextSpan(
+ text: patient.admissionDate == null
+ ? ""
+ : TranslationBase.of(context)
+ .admissionDate +
+ " : ",
+ style: TextStyle(fontSize: 10)),
+ new TextSpan(
+ text: patient.admissionDate == null
+ ? ""
+ : "${AppDateUtils
+ .getDayMonthYearDateFormatted(
+ (AppDateUtils
+ .getDateTimeFromServerFormat(
+ patient.admissionDate
+ .toString())))}",
+ style: TextStyle(
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ color: Color(0xFF2E303A),)),
+ ]))),
+ if (patient.admissionDate != null)
+ Row(
+ children: [
+ AppText(
+ "${TranslationBase.of(context).numOfDays}: ",
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757)
+ ),
+ if(isDischargedPatient &&
+ patient.dischargeDate != null)
+ AppText(
+ "${AppDateUtils
+ .getDateTimeFromServerFormat(
+ patient.dischargeDate)
+ .difference(AppDateUtils
+ .getDateTimeFromServerFormat(
+ patient.admissionDate))
+ .inDays + 1}",
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ color: Color(0xFF2E303A),
+ )
+ else
+ AppText(
+ "${DateTime
+ .now()
+ .difference(AppDateUtils
+ .getDateTimeFromServerFormat(
+ patient.admissionDate))
+ .inDays + 1}",
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ color: Color(0xFF2E303A),),
+ ],
+ ),
+ ],
+ ),
+ ],
+ ),
+ ),
+ ]),
+ if(isAppointmentHeader)
+ Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ width: 30,
+ height: 30,
+ margin: EdgeInsets.only(
+ left: projectViewModel.isArabic ? 10 : 85,
+ right: projectViewModel.isArabic ? 85 : 10,
+ top: 5),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey[400], width: 2.5),
+ left: BorderSide(
+ color: Colors.grey[400], width: 2.5),
+ )),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 10),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ child: LargeAvatar(
+ name: doctorName ?? "",
+ url: profileUrl,
+ ),
+ width: 25,
+ height: 25,
+ margin: EdgeInsets.only(top: 10),
+ ),
+
+
+ Expanded(
+ flex: 5,
+ child: Container(
+ margin: EdgeInsets.all(10),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment
+ .start,
+ children: [
+ AppText(
+ '${TranslationBase
+ .of(context)
+ .dr}$doctorName',
+ color: Color(0xFF2E303A),
+ fontWeight: FontWeight.w700,
+ fontSize: 12,
+ ),
+ if (orderNo != null &&
+ !isPrescriptions)
+ Row(
+ children: [
+ AppText('Order No: ',
+
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),),
+ AppText(orderNo ?? '',
+ fontSize: 12)
+ ],
+ ),
+ if (invoiceNO != null &&
+ !isPrescriptions)
+ Row(
+ children: [
+ AppText('Invoice: ',
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),),
+ AppText(invoiceNO ?? "",
+ fontSize: 12)
+ ],
+ ),
+ if (branch != null)
+ Row(
+ children: [
+ AppText('Branch: ',
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),),
+ AppText(branch ?? '',
+ fontSize: 12)
+ ],
+ ),
+
+ if (clinic != null)
+ Row(
+ children: [
+ AppText('Clinic: ',
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),),
+ AppText(clinic ?? '',
+ fontSize: 12)
+ ],
+ ),
+ if (isMedicalFile &&
+ episode != null)
+ Row(
+ children: [
+ AppText('Episode: ',
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),),
+ AppText(episode ?? '',
+ fontSize: 12)
+ ],
+ ),
+ if (isMedicalFile &&
+ visitDate != null)
+ Row(
+ children: [
+ AppText('Visit Date: ',
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),),
+ AppText(visitDate ?? '',
+ fontSize: 12)
+ ],
+ ),
+ if (!isMedicalFile)
+ Row(
+
+ children: [
+ AppText(
+ !isPrescriptions
+ ? 'Result Date:'
+ : 'Prescriptions Date ',
+ fontSize: 10, fontWeight: FontWeight.w600,color: Color(0xFF575757),
+ ),
+ AppText(
+ '${AppDateUtils
+ .getDayMonthYearDateFormatted(
+ appointmentDate,
+ isArabic: projectViewModel
+ .isArabic)}',
+ fontSize: 12,
+ )
+ ],
+ )
+ ]),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ],
+ )
+ ],
+ ),
+ ),
+ );
+ }
+ @override
+ Size get preferredSize =>
+ Size(double.maxFinite, height == 0
+ ? isInpatient ? (isFromLabResult?200:170) : isAppointmentHeader ? 290 : 170
+ : height);
+}
diff --git a/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart b/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart
deleted file mode 100644
index 995ac57a..00000000
--- a/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart
+++ /dev/null
@@ -1,371 +0,0 @@
-import 'package:doctor_app_flutter/config/config.dart';
-import 'package:doctor_app_flutter/config/size_config.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/util/date-utils.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/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-import 'package:hexcolor/hexcolor.dart';
-import 'package:intl/intl.dart';
-import 'package:url_launcher/url_launcher.dart';
-
-class PatientProfileHeaderNewDesignAppBar extends StatelessWidget
- with PreferredSizeWidget {
- final PatiantInformtion patient;
- final String patientType;
- final String arrivalType;
- final double height;
- final bool isInpatient;
- final bool isDischargedPatient;
- final bool isFromLiveCare;
-
- PatientProfileHeaderNewDesignAppBar(
- this.patient, this.patientType, this.arrivalType, {this.height = 0.0, this.isInpatient=false, this.isDischargedPatient=false, this.isFromLiveCare = false});
-
- @override
- Widget build(BuildContext context) {
- int gender = 1;
- if (patient.patientDetails != null) {
- gender = patient.patientDetails.gender;
- } else {
- gender = patient.gender;
- }
- return Container(
- padding: EdgeInsets.only(
- left: 0,
- right: 5,
- bottom: 5,
- ),
- decoration: BoxDecoration(
- color: Colors.white,
- ),
- height: height == 0 ? isInpatient? 215:200 : height,
- child: Container(
- padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
- margin: EdgeInsets.only(top: 50),
- child: Column(
- children: [
- Container(
- padding: EdgeInsets.only(left: 12.0),
- child: Row(children: [
- IconButton(
- icon: Icon(Icons.arrow_back_ios),
- color: Colors.black, //Colors.black,
- onPressed: () => Navigator.pop(context),
- ),
- Expanded(
- child: AppText(
- patient.firstName != null
- ? (Helpers.capitalize(patient.firstName) +
- " " +
- Helpers.capitalize(patient.lastName))
- : Helpers.capitalize(patient.fullName??patient.patientDetails.fullName),
- fontSize: SizeConfig.textMultiplier * 1.8,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- ),
- ),
- gender == 1
- ? Icon(
- DoctorApp.male_2,
- color: Colors.blue,
- )
- : Icon(
- DoctorApp.female_1,
- color: Colors.pink,
- ),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 4),
- child: InkWell(
- onTap: () {
- launch("tel://" + patient.mobileNumber);
- },
- child: Icon(
- Icons.phone,
- color: Colors.black87,
- ),
- ),
- ),
- ]),
- ),
- Row(children: [
- Padding(
- padding: EdgeInsets.only(left: 12.0),
- child: Container(
- width: 60,
- height: 60,
- child: Image.asset(
- gender == 1
- ? 'assets/images/male_avatar.png'
- : 'assets/images/female_avatar.png',
- fit: BoxFit.cover,
- ),
- ),
- ),
- SizedBox(
- width: 10,
- ),
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SERVICES_PATIANT2[int.parse(patientType)] ==
- "patientArrivalList"
- ? Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- patient.patientStatusType == 43
- ? AppText(
- TranslationBase.of(context).arrivedP,
- color: Colors.green,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- fontSize: 12,
- )
- : AppText(
- TranslationBase.of(context).notArrived,
- color: Colors.red[800],
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- fontSize: 12,
- ),
- arrivalType == '1'|| patient.arrivedOn == null
- ? AppText(
- patient.startTime != null
- ? patient.startTime
- : '',
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- )
- : AppText(
- patient.arrivedOn != null
- ? AppDateUtils.convertStringToDateFormat(
- patient.arrivedOn,
- 'MM-dd-yyyy HH:mm')
- : '',
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- )
- ],
- ))
- : SizedBox(),
- if (SERVICES_PATIANT2[int.parse(patientType)] ==
- "List_MyOutPatient" && !isFromLiveCare)
- Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context).appointmentDate +
- " : ",
- fontSize: 14,
- ),
- patient.startTime != null
- ? Container(
- height: 15,
- width: 60,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(25),
- color: HexColor("#20A169"),
- ),
- child: AppText(
- patient.startTime??"",
- color: Colors.white,
- fontSize: 1.5 * SizeConfig.textMultiplier,
- textAlign: TextAlign.center,
- fontWeight: FontWeight.bold,
- ),
- )
- : SizedBox(),
- SizedBox(
- width: 3.5,
- ),
- Container(
- child: AppText(
- convertDateFormat2(
- patient.appointmentDate ?? ''),
- fontSize: 1.5 * SizeConfig.textMultiplier,
- fontWeight: FontWeight.bold,
- ),
- ),
- SizedBox(
- height: 0.5,
- )
- ],
- ),
- margin: EdgeInsets.only(
- top: 8,
- ),
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- RichText(
- text: TextSpan(
- style: TextStyle(
- fontSize: 1.6 * SizeConfig.textMultiplier,
- color: Colors.black),
- children: [
- new TextSpan(
- text: TranslationBase.of(context).fileNumber,
- style: TextStyle(
- fontSize: 12, fontFamily: 'Poppins')),
- new TextSpan(
- text: patient.patientId.toString(),
- style: TextStyle(
- fontWeight: FontWeight.w700,
- fontFamily: 'Poppins',
- fontSize: 14)),
- ],
- ),
- ),
- Row(
- children: [
- AppText(
- patient.nationalityName ?? patient.nationality?? patient.nationalityId ?? '',
- fontWeight: FontWeight.bold,
- fontSize: 12,
- ),
- patient.nationalityFlagURL != null
- ? ClipRRect(
- borderRadius: BorderRadius.circular(20.0),
- child: Image.network(
- patient.nationalityFlagURL,
- height: 25,
- width: 30,
- errorBuilder: (BuildContext context,
- Object exception,
- StackTrace stackTrace) {
- return Text('No Image');
- },
- ))
- : SizedBox()
- ],
- )
- ],
- ),
- Container(
- child: RichText(
- text: new TextSpan(
- style: new TextStyle(
- fontSize: 1.6 * SizeConfig.textMultiplier,
- color: Colors.black,
- fontFamily: 'Poppins',
- ),
- children: [
- new TextSpan(
- text: TranslationBase.of(context).age+ " : ",
- style: TextStyle(fontSize: 14)),
- new TextSpan(
- text:
- "${AppDateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth??"" : patient.dateofBirth??"", context,isServerFormat: !isFromLiveCare)}",
- style: TextStyle(
- fontWeight: FontWeight.w700, fontSize: 14)),
- ],
- ),
- ),
- ),
- if(isInpatient)
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- child: RichText(
- text: new TextSpan(
- style: new TextStyle(
- fontSize:
- 2.0 * SizeConfig.textMultiplier,
- color: Colors.black,
- fontFamily: 'Poppins',
- ),
- children: [
- new TextSpan(
- text: patient.admissionDate == null
- ? ""
- : TranslationBase.of(context)
- .admissionDate +
- " : ",
- style: TextStyle(fontSize: 14)),
- new TextSpan(
- text: patient.admissionDate == null
- ? ""
- : "${AppDateUtils.convertDateFromServerFormat(patient.admissionDate.toString(), 'yyyy-MM-dd')}",
- style: TextStyle(
- fontWeight: FontWeight.w700,
- fontSize: 15)),
- ]))),
- if (patient.admissionDate != null)
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).numOfDays}: ",
- fontSize: 15,
- ),
- if(isDischargedPatient && patient.dischargeDate!=null)
- AppText(
- "${AppDateUtils.getDateTimeFromServerFormat(patient.dischargeDate).difference(AppDateUtils.getDateTimeFromServerFormat(patient.admissionDate)).inDays + 1}",
- fontSize: 15,
- fontWeight: FontWeight.w700)
- else
- AppText(
- "${DateTime.now().difference(AppDateUtils.getDateTimeFromServerFormat(patient.admissionDate)).inDays + 1}",
- fontSize: 15,
- fontWeight: FontWeight.w700),
- ],
- ),
- ],
- )
- ],
- ),
- ),
- ]),
- ],
- ),
- ),
- );
- }
-
- convertDateFormat2(String str) {
- String newDate;
- const start = "/Date(";
- if (str.isNotEmpty) {
- const end = "+0300)";
-
- final startIndex = str.indexOf(start);
- final endIndex = str.indexOf(end, startIndex + start.length);
-
- var date = new DateTime.fromMillisecondsSinceEpoch(
- int.parse(str.substring(startIndex + start.length, endIndex)));
- newDate = date.year.toString() +
- "/" +
- date.month.toString().padLeft(2, '0') +
- "/" +
- date.day.toString().padLeft(2, '0');
- }
-
- return newDate??'';
- }
-
- isToday(date) {
- DateTime tempDate = new DateFormat("yyyy-MM-dd").parse(date);
- return DateFormat("yyyy-MM-dd").format(tempDate) ==
- DateFormat("yyyy-MM-dd").format(DateTime.now());
- }
-
- myBoxDecoration() {
- return BoxDecoration(
- border: Border(
- top: BorderSide(
- color: Colors.green,
- width: 5,
- ),
- ),
- borderRadius: BorderRadius.circular(10));
- }
-
- @override
- Size get preferredSize => Size(double.maxFinite, 200);
-}
diff --git a/lib/widgets/patients/profile/patient-profile-header-new-design.dart b/lib/widgets/patients/profile/patient-profile-header-new-design.dart
deleted file mode 100644
index 1db29087..00000000
--- a/lib/widgets/patients/profile/patient-profile-header-new-design.dart
+++ /dev/null
@@ -1,316 +0,0 @@
-import 'package:doctor_app_flutter/config/config.dart';
-import 'package:doctor_app_flutter/config/size_config.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/util/date-utils.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/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-import 'package:hexcolor/hexcolor.dart';
-import 'package:intl/intl.dart';
-import 'package:url_launcher/url_launcher.dart';
-
-class PatientProfileHeaderNewDesign extends StatelessWidget {
- final PatiantInformtion patient;
- final String patientType;
- final String arrivalType;
- final double height;
- final bool isHaveMargin;
-
- PatientProfileHeaderNewDesign(
- this.patient, this.patientType, this.arrivalType,
- {this.height = 0.0, this.isHaveMargin=true});
-
- @override
- Widget build(BuildContext context) {
- int gender = 1;
- if (patient.patientDetails != null) {
- gender = patient.patientDetails.gender;
- } else {
- gender = patient.gender;
- }
-
- return Container(
- padding: EdgeInsets.only(
- left: 0,
- right: 5,
- bottom: 5,
- ),
- decoration: BoxDecoration(
- color: Colors.white,
- ),
- height: height == 0 ? 200 : height,
- child: Container(
- padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
- margin: EdgeInsets.only(top: 50),
- child: Column(
- children: [
- Container(
- padding: EdgeInsets.only(left: 12.0),
- child: Row(children: [
- IconButton(
- icon: Icon(Icons.arrow_back_ios),
- color: Colors.black, //Colors.black,
- onPressed: () => Navigator.pop(context),
- ),
- Expanded(
- child: AppText(
- patient.firstName != null
- ? (Helpers.capitalize(patient.firstName) +
- " " +
- Helpers.capitalize(patient.lastName))
- : Helpers.capitalize(patient.patientDetails.fullName),
- fontSize: SizeConfig.textMultiplier * 2.2,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- ),
- ),
- gender == 1
- ? Icon(
- DoctorApp.male_2,
- color: Colors.blue,
- )
- : Icon(
- DoctorApp.female_1,
- color: Colors.pink,
- ),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 4),
- child: InkWell(
- onTap: () {
- launch("tel://" + patient.mobileNumber);
- },
- child: Icon(
- Icons.phone,
- color: Colors.black87,
- ),
- ),
- ),
- ]),
- ),
- Row(children: [
- Padding(
- padding: EdgeInsets.only(left: 12.0),
- child: Container(
- width: 60,
- height: 60,
- child: Image.asset(
- gender == 1
- ? 'assets/images/male_avatar.png'
- : 'assets/images/female_avatar.png',
- fit: BoxFit.cover,
- ),
- ),
- ),
- SizedBox(
- width: 10,
- ),
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SERVICES_PATIANT2[int.parse(patientType)] ==
- "patientArrivalList"
- ? Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- patient.patientStatusType == 43
- ? AppText(
- TranslationBase.of(context).arrivedP,
- color: Colors.green,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- fontSize: 12,
- )
- : AppText(
- TranslationBase.of(context).notArrived,
- color: Colors.red[800],
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- fontSize: 12,
- ),
- arrivalType == '1' || patient.arrivedOn == null
- ? AppText(
- patient.startTime != null
- ? patient.startTime
- : '',
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- )
- : AppText(
- AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(patient.arrivedOn)),
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- )
- ],
- ))
- : SizedBox(),
- if (SERVICES_PATIANT2[int.parse(patientType)] ==
- "List_MyOutPatient")
- Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context).appointmentDate +
- " : ",
- fontSize: 14,
- ),
- patient.startTime != null
- ? Container(
- height: 15,
- width: 60,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(25),
- color: HexColor("#20A169"),
- ),
- child: AppText(
- patient.startTime ?? "",
- color: Colors.white,
- fontSize: 1.5 * SizeConfig.textMultiplier,
- textAlign: TextAlign.center,
- fontWeight: FontWeight.bold,
- ),
- )
- : SizedBox(),
- SizedBox(
- width: 3.5,
- ),
- Container(
- child: AppText(
- convertDateFormat2(
- patient.appointmentDate.toString() ?? ''),
- fontSize: 1.5 * SizeConfig.textMultiplier,
- fontWeight: FontWeight.bold,
- ),
- ),
- SizedBox(
- height: 0.5,
- )
- ],
- ),
- margin: EdgeInsets.only(
- top: 8,
- ),
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- RichText(
- text: TextSpan(
- style: TextStyle(
- fontSize: 1.6 * SizeConfig.textMultiplier,
- color: Colors.black),
- children: [
- new TextSpan(
- text: TranslationBase.of(context).fileNumber,
- style: TextStyle(
- fontSize: 12, fontFamily: 'Poppins')),
- new TextSpan(
- text: patient.patientId.toString(),
- style: TextStyle(
- fontWeight: FontWeight.w700,
- fontFamily: 'Poppins',
- fontSize: 14)),
- ],
- ),
- ),
- Row(
- children: [
- AppText(
- patient.nationalityName ??
- patient.nationality ??
- patient.nationalityId ??
- '',
- fontWeight: FontWeight.bold,
- fontSize: 12,
- ),
- patient.nationalityFlagURL != null
- ? ClipRRect(
- borderRadius: BorderRadius.circular(20.0),
- child: Image.network(
- patient.nationalityFlagURL,
- height: 25,
- width: 30,
- errorBuilder: (BuildContext context,
- Object exception,
- StackTrace stackTrace) {
- return Text('No Image');
- },
- ))
- : SizedBox()
- ],
- )
- ],
- ),
- Container(
- child: RichText(
- text: new TextSpan(
- style: new TextStyle(
- fontSize: 1.6 * SizeConfig.textMultiplier,
- color: Colors.black,
- fontFamily: 'Poppins',
- ),
- children: [
- new TextSpan(
- text: TranslationBase.of(context).age + " : ",
- style: TextStyle(fontSize: 14)),
- new TextSpan(
- text:
- "${AppDateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth ?? "" : patient.dateofBirth ?? "", context)}",
- style: TextStyle(
- fontWeight: FontWeight.w700, fontSize: 14)),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- ]),
- ],
- ),
- ),
- );
- }
-
- convertDateFormat2(String str) {
- String newDate;
- const start = "/Date(";
- if (str.isNotEmpty) {
- const end = "+0300)";
-
- final startIndex = str.indexOf(start);
- final endIndex = str.indexOf(end, startIndex + start.length);
-
- var date = new DateTime.fromMillisecondsSinceEpoch(
- int.parse(str.substring(startIndex + start.length, endIndex)));
- newDate = date.year.toString() +
- "/" +
- date.month.toString().padLeft(2, '0') +
- "/" +
- date.day.toString().padLeft(2, '0');
- }
-
- return newDate.toString();
- }
-
- isToday(date) {
- DateTime tempDate = new DateFormat("yyyy-MM-dd").parse(date);
- return DateFormat("yyyy-MM-dd").format(tempDate) ==
- DateFormat("yyyy-MM-dd").format(DateTime.now());
- }
-
- myBoxDecoration() {
- return BoxDecoration(
- border: Border(
- top: BorderSide(
- color: Colors.green,
- width: 5,
- ),
- ),
- borderRadius: BorderRadius.circular(10));
- }
-}
diff --git a/lib/widgets/patients/profile/patient-profile-header-new-design_in_patient.dart b/lib/widgets/patients/profile/patient-profile-header-new-design_in_patient.dart
deleted file mode 100644
index c3a8638f..00000000
--- a/lib/widgets/patients/profile/patient-profile-header-new-design_in_patient.dart
+++ /dev/null
@@ -1,242 +0,0 @@
-import 'package:doctor_app_flutter/config/size_config.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/util/date-utils.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/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-import 'package:intl/intl.dart';
-import 'package:url_launcher/url_launcher.dart';
-
-class PatientProfileHeaderNewDesignInPatient extends StatelessWidget {
- final PatiantInformtion patient;
- final String patientType;
- final String arrivalType;
- final double height;
-
- PatientProfileHeaderNewDesignInPatient(
- this.patient, this.patientType, this.arrivalType,
- {this.height = 0.0});
-
- @override
- Widget build(BuildContext context) {
- int gender = 1;
- if (patient.patientDetails != null) {
- gender = patient.patientDetails.gender;
- } else {
- gender = patient.gender;
- }
-
- return Container(
- padding: EdgeInsets.only(
- left: 0,
- right: 5,
- bottom: 5,
- ),
- decoration: BoxDecoration(
- color: Colors.white,
- ),
- height: height == 0 ? 200 : height,
- child: Container(
- padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
- // margin: EdgeInsets.only(top: 50),
- child: Column(
- children: [
- Container(
- padding: EdgeInsets.only(left: 12.0),
- child: Row(children: [
- IconButton(
- icon: Icon(Icons.arrow_back_ios),
- color: Colors.black, //Colors.black,
- onPressed: () => Navigator.pop(context),
- ),
- Expanded(
- child: AppText(
- patient.firstName != null
- ? (Helpers.capitalize(patient.firstName) +
- " " +
- Helpers.capitalize(patient.lastName))
- : Helpers.capitalize(patient.patientDetails.fullName),
- fontSize: SizeConfig.textMultiplier * 2.2,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- ),
- ),
- gender == 1
- ? Icon(
- DoctorApp.male_2,
- color: Colors.blue,
- )
- : Icon(
- DoctorApp.female_1,
- color: Colors.pink,
- ),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 4),
- child: InkWell(
- onTap: () {
- launch("tel://" + patient.mobileNumber);
- },
- child: Icon(
- Icons.phone,
- color: Colors.black87,
- ),
- ),
- ),
- ]),
- ),
- Row(children: [
- Padding(
- padding: EdgeInsets.only(left: 12.0),
- child: Container(
- width: 60,
- height: 60,
- child: Image.asset(
- gender == 1
- ? 'assets/images/male_avatar.png'
- : 'assets/images/female_avatar.png',
- fit: BoxFit.cover,
- ),
- ),
- ),
- SizedBox(
- width: 10,
- ),
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- AppText(
- TranslationBase.of(context).fileNumber,
- fontSize: 1.2 * SizeConfig.textMultiplier,
- ),
- AppText(patient.patientId.toString(),
- fontSize: 1.4 * SizeConfig.textMultiplier,
- fontWeight: FontWeight.w700),
- ],
- ),
- if(patient.admissionDate!=null)
- Row(
- children: [
- AppText(
- AppDateUtils.convertDateFromServerFormat(
- patient.admissionDate, "hh:mm a"),
- fontWeight: FontWeight.bold,
- fontSize: 1.4 * SizeConfig.textMultiplier,
- ),
- ],
- )
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- if(patient.admissionDate!=null)
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).admissionDate}: ",
- fontSize: 1.2 * SizeConfig.textMultiplier,
- ),
- AppText(
- AppDateUtils.convertDateFromServerFormat(
- patient.admissionDate, "dd MMM,yyyy"),
- fontSize: 1.4 * SizeConfig.textMultiplier,
- fontWeight: FontWeight.w700),
- ],
- ),
- Row(
- children: [
- AppText(
- patient.nationalityName ??
- patient.nationality ??
- patient.nationalityId ??
- '',
- fontWeight: FontWeight.bold,
- fontSize: 1.4 * SizeConfig.textMultiplier,
- ),
- patient.nationalityFlagURL != null
- ? ClipRRect(
- borderRadius: BorderRadius.circular(20.0),
- child: Image.network(
- patient.nationalityFlagURL,
- height: 25,
- width: 30,
- errorBuilder: (BuildContext context,
- Object exception,
- StackTrace stackTrace) {
- return Text('No Image');
- },
- ))
- : SizedBox()
- ],
- )
- ],
- ),
- if(patient.admissionDate!=null)
- Row(
- children: [
- AppText(
- "${TranslationBase.of(context).numOfDays}: ",
- fontSize: 1.2 * SizeConfig.textMultiplier,
- ),
- AppText(
- "${DateTime.now().difference(AppDateUtils.getDateTimeFromServerFormat(patient.admissionDate)).inDays + 1}",
- fontSize: 1.4 * SizeConfig.textMultiplier,
- fontWeight: FontWeight.w700),
- ],
- ),
- ],
- ),
- ),
- ]),
- ],
- ),
- ),
- );
- }
-
- convertDateFormat2(String str) {
- String newDate;
- const start = "/Date(";
- if (str.isNotEmpty) {
- const end = "+0300)";
-
- final startIndex = str.indexOf(start);
- final endIndex = str.indexOf(end, startIndex + start.length);
-
- var date = new DateTime.fromMillisecondsSinceEpoch(
- int.parse(str.substring(startIndex + start.length, endIndex)));
- newDate = date.year.toString() +
- "/" +
- date.month.toString().padLeft(2, '0') +
- "/" +
- date.day.toString().padLeft(2, '0');
- }
-
- return newDate.toString();
- }
-
- isToday(date) {
- DateTime tempDate = new DateFormat("yyyy-MM-dd").parse(date);
- return DateFormat("yyyy-MM-dd").format(tempDate) ==
- DateFormat("yyyy-MM-dd").format(DateTime.now());
- }
-
- myBoxDecoration() {
- return BoxDecoration(
- border: Border(
- top: BorderSide(
- color: Colors.green,
- width: 5,
- ),
- ),
- borderRadius: BorderRadius.circular(10));
- }
-}
diff --git a/lib/widgets/patients/profile/patient_profile_header_with_appointment_card.dart b/lib/widgets/patients/profile/patient_profile_header_with_appointment_card.dart
deleted file mode 100644
index f3e01316..00000000
--- a/lib/widgets/patients/profile/patient_profile_header_with_appointment_card.dart
+++ /dev/null
@@ -1,507 +0,0 @@
-import 'package:doctor_app_flutter/config/config.dart';
-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/icons_app/doctor_app_icons.dart';
-import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
-import 'package:doctor_app_flutter/util/date-utils.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/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-import 'package:hexcolor/hexcolor.dart';
-import 'package:intl/intl.dart';
-import 'package:provider/provider.dart';
-import 'package:url_launcher/url_launcher.dart';
-
-import 'large_avatar.dart';
-
-class PatientProfileHeaderWhitAppointment extends StatelessWidget {
-
- final PatiantInformtion patient;
- final String patientType;
- final String arrivalType;
- final String doctorName;
- final String branch;
- final DateTime appointmentDate;
- final String profileUrl;
- final String invoiceNO;
- final String orderNo;
- final bool isPrescriptions;
- final String clinic;
- PatientProfileHeaderWhitAppointment(
- {this.patient,
- this.patientType,
- this.arrivalType,
- this.doctorName,
- this.branch,
- this.appointmentDate,
- this.profileUrl,
- this.invoiceNO,
- this.orderNo, this.isPrescriptions = false, this.clinic});
-
- @override
- Widget build(BuildContext context) {
- int gender = 1;
- if (patient.patientDetails != null) {
- gender = patient.patientDetails.gender;
- } else {
- gender = patient.gender;
- }
-
- ProjectViewModel projectViewModel = Provider.of(context);
- return Container(
- padding: EdgeInsets.only(
- left: 0, right: 5, bottom: 5, top: 5),
- decoration: BoxDecoration(
- color: Colors.white,
- ),
- //height: 300,
- child: Container(
- padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
- margin: EdgeInsets.only(top: 50),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- padding: EdgeInsets.only(left: 12.0),
- child: Row(children: [
- IconButton(
- icon: Icon(Icons.arrow_back_ios),
- color: Colors.black, //Colors.black,
- onPressed: () => Navigator.pop(context),
- ),
- Expanded(
- child: AppText(
- patient.firstName != null ?
- (Helpers.capitalize(patient.firstName) +
- " " +
- Helpers.capitalize(
- patient.lastName)) : Helpers.capitalize(patient.patientDetails.fullName),
- fontSize: SizeConfig.textMultiplier *2.2,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- ),
- ),
- gender == 1
- ? Icon(
- DoctorApp.male_2,
- color: Colors.blue,
- )
- : Icon(
- DoctorApp.female_1,
- color: Colors.pink,
- ),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 4),
- child: InkWell(
- onTap: () {
- launch("tel://" + patient.mobileNumber);
- },
- child: Icon(
- Icons.phone,
- color: Colors.black87,
- ),
- ),
- )
- ]),
- ),
- Row(children: [
- Padding(
- padding: EdgeInsets.only(left: 12.0),
- child: Container(
- width: 60,
- height: 60,
- child: Image.asset(
- gender == 1
- ? 'assets/images/male_avatar.png'
- : 'assets/images/female_avatar.png',
- fit: BoxFit.cover,
- ),
- ),
- ),
- SizedBox(
- width: 10,
- ),
- Expanded(
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.start,
- children: [
- SERVICES_PATIANT2[
- int.parse(patientType)] ==
- "patientArrivalList"
- ? Container(
- child: Row(
- mainAxisAlignment:
- MainAxisAlignment
- .spaceBetween,
- children: [
- patient.patientStatusType ==
- 43
- ? AppText(
- TranslationBase.of(
- context)
- .arrivedP,
- color: Colors.green,
- fontWeight:
- FontWeight.bold,
- fontFamily:
- 'Poppins',
- fontSize: 12,
- )
- : AppText(
- TranslationBase.of(
- context)
- .notArrived,
- color:
- Colors.red[800],
- fontWeight:
- FontWeight.bold,
- fontFamily:
- 'Poppins',
- fontSize: 12,
- ),
- arrivalType == '1' || patient.arrivedOn == null
- ? AppText(
- patient.startTime !=
- null
- ? patient
- .startTime
- : '',
- fontFamily:
- 'Poppins',
- fontWeight:
- FontWeight.w600,
- )
- : AppText(
- AppDateUtils.convertStringToDateFormat(
- patient
- .arrivedOn,
- 'MM-dd-yyyy HH:mm'),
- fontFamily:
- 'Poppins',
- fontWeight:
- FontWeight.w600,
- )
- ],
- ))
- : SizedBox(),
- if (SERVICES_PATIANT2[
- int.parse(patientType)] ==
- "List_MyOutPatient")
- Container(
- child: Row(
- mainAxisAlignment:
- MainAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context)
- .appointmentDate +
- " : ",
- fontSize: 14,
- ),
- patient.startTime != null
- ? Container(
- height: 15,
- width: 60,
- decoration:
- BoxDecoration(
- borderRadius:
- BorderRadius
- .circular(
- 25),
- color: HexColor(
- "#20A169"),
- ),
- child: AppText(
- patient.startTime,
- color: Colors.white,
- fontSize: 1.5 *
- SizeConfig
- .textMultiplier,
- textAlign: TextAlign
- .center,
- fontWeight:
- FontWeight.bold,
- ),
- )
- : SizedBox(),
- SizedBox(
- width: 3.5,
- ),
- Container(
- child: AppText(
- convertDateFormat2(patient.appointmentDate.toString()?? ''),
- fontSize: 1.5 *
- SizeConfig
- .textMultiplier,
- fontWeight:
- FontWeight.bold,
- ),
- ),
- SizedBox(
- height: 0.5,
- )
- ],
- ),
- margin: EdgeInsets.only(
- top: 8,
- ),
- ),
- Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- children: [
- RichText(
- text: TextSpan(
- style: TextStyle(
- fontSize: 1.6 *
- SizeConfig
- .textMultiplier,
- color: Colors.black),
- children: [
- new TextSpan(
- text:
- TranslationBase.of(
- context)
- .fileNumber,
- style: TextStyle(
- fontSize: 12,
- fontFamily:
- 'Poppins')),
- new TextSpan(
- text: patient.patientId
- .toString(),
- style: TextStyle(
- fontWeight:
- FontWeight.w700,
- fontFamily:
- 'Poppins',
- fontSize: 14)),
- ],
- ),
- ),
- Row(
- children: [
- AppText(
- patient.nationalityName ??
- patient.nationality??"",
- fontWeight: FontWeight.bold,
- fontSize: 12,
- ),
- patient.nationality != null
- ? ClipRRect(
- borderRadius:
- BorderRadius
- .circular(
- 20.0),
- child: Image.network(
- patient.nationalityFlagURL,
- height: 25,
- width: 30,
- errorBuilder:
- (BuildContext
- context,
- Object
- exception,
- StackTrace
- stackTrace) {
- return Text(
- 'No Image');
- },
- ))
- : SizedBox()
- ],
- )
- ],
- ),
- Container(
- child: RichText(
- text: new TextSpan(
- style: new TextStyle(
- fontSize: 1.6 *
- SizeConfig.textMultiplier,
- color: Colors.black,
- fontFamily: 'Poppins',
- ),
- children: [
- new TextSpan(
- text: TranslationBase.of(
- context)
- .age +
- " : ",
- style: TextStyle(
- fontSize: 14)),
- new TextSpan(
- text:
- "${AppDateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth ??"": patient.dateofBirth??"", context)}",
- style: TextStyle(
- fontWeight:
- FontWeight.w700,
- fontSize: 14)),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- ]),
- Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- width: 30,
- height: 30,
- margin: EdgeInsets.only(left: projectViewModel.isArabic?10:85, right: projectViewModel.isArabic?85:10,top: 5),
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- border: Border(
- bottom:BorderSide(color: Colors.grey[400],width: 2.5),
- left: BorderSide(color: Colors.grey[400],width: 2.5),
- )
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 10),
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- child: LargeAvatar(
- name: doctorName,
- url: profileUrl,
- ),
- width: 25,
- height: 25,
- margin: EdgeInsets.only(top: 10),
- ),
- Expanded(
- flex: 4,
- child: Container(
- margin: EdgeInsets.all(10),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- '${TranslationBase.of(context).dr}.$doctorName',
- color: Colors.black,
- fontWeight: FontWeight.w600,
- fontSize: 14,
- ),
- if (orderNo != null && !isPrescriptions)
- Row(
- children: [
- AppText(
- 'Order No:',
- color: Colors.grey[800],
- ),
- AppText(
- orderNo ?? '',
- )
- ],
- ),
- if (invoiceNO != null && !isPrescriptions)
- Row(
- children: [
- AppText(
- 'Invoice:',
- color: Colors.grey[800],
- ),
- AppText(
- invoiceNO,
- )
- ],
- ),
- if(isPrescriptions)
- Row(
- children: [
- AppText(
- 'Branch:',
- color: Colors.grey[800],
- ),
- AppText(
- branch?? '',
- )
- ],
- ),
- if(isPrescriptions)
- Row(
- children: [
- AppText(
- 'Clinic:',
- color: Colors.grey[800],
- ),
- AppText(
- clinic?? '',
- )
- ],
- ),
- Row(
- children: [
- AppText(
- !isPrescriptions? 'Result Date:': 'Prescriptions Date',
- color: Colors.grey[800],
- ),
- Expanded(
- child: AppText(
- '${AppDateUtils.getDayMonthYearDateFormatted(appointmentDate, isArabic: projectViewModel.isArabic)}',
- ),
- )
- ],
- )
- ]),
- ),
- ),
-
- ],
- ),
- ),
- ),
- ],
- )
- ],
- ),
- ),
- );
- }
-
- convertDateFormat2(String str) {
- String newDate ="";
- const start = "/Date(";
- const end = "+0300)";
-
- if (str.isNotEmpty) {
- final startIndex = str.indexOf(start);
- final endIndex = str.indexOf(end, startIndex + start.length);
-
- var date = new DateTime.fromMillisecondsSinceEpoch(
- int.parse(str.substring(startIndex + start.length, endIndex)));
- newDate = date.year.toString() +
- "/" +
- date.month.toString().padLeft(2, '0') +
- "/" +
- date.day.toString().padLeft(2, '0');
- }
-
- return newDate.toString();
- }
-
- isToday(date) {
- DateTime tempDate = new DateFormat("yyyy-MM-dd").parse(date);
- return DateFormat("yyyy-MM-dd").format(tempDate) ==
- DateFormat("yyyy-MM-dd").format(DateTime.now());
- }
-
- myBoxDecoration() {
- return BoxDecoration(
- border: Border(
- top: BorderSide(
- color: Colors.green,
- width: 5,
- ),
- ),
- borderRadius: BorderRadius.circular(10));
- }
-}
diff --git a/lib/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart b/lib/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart
deleted file mode 100644
index 5d46e745..00000000
--- a/lib/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.dart
+++ /dev/null
@@ -1,456 +0,0 @@
-import 'package:doctor_app_flutter/config/config.dart';
-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/icons_app/doctor_app_icons.dart';
-import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
-import 'package:doctor_app_flutter/util/date-utils.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/shared/app_texts_widget.dart';
-import 'package:flutter/material.dart';
-import 'package:hexcolor/hexcolor.dart';
-import 'package:intl/intl.dart';
-import 'package:provider/provider.dart';
-import 'package:url_launcher/url_launcher.dart';
-
-import 'large_avatar.dart';
-
-class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget
- with PreferredSizeWidget {
- final PatiantInformtion patient;
- final String patientType;
- final String arrivalType;
- final String doctorName;
- final String branch;
- final DateTime appointmentDate;
- final String profileUrl;
- final String invoiceNO;
- final String orderNo;
- final bool isPrescriptions;
- final bool isMedicalFile;
- final String episode;
- final String vistDate;
-
- final String clinic;
- PatientProfileHeaderWhitAppointmentAppBar(
- {this.patient,
- this.patientType,
- this.arrivalType,
- this.doctorName,
- this.branch,
- this.appointmentDate,
- this.profileUrl,
- this.invoiceNO,
- this.orderNo,
- this.isPrescriptions = false,
- this.clinic,
- this.isMedicalFile = false,
- this.episode,
- this.vistDate});
-
- @override
- Widget build(BuildContext context) {
- ProjectViewModel projectViewModel = Provider.of(context);
- int gender = 1;
- if (patient.patientDetails != null) {
- gender = patient.patientDetails.gender;
- } else {
- gender = patient.gender;
- }
-
- return Container(
- padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
- decoration: BoxDecoration(
- color: Colors.white,
- ),
- //height: 300,
- child: Container(
- padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
- margin: EdgeInsets.only(top: 50),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- padding: EdgeInsets.only(left: 12.0),
- child: Row(children: [
- IconButton(
- icon: Icon(Icons.arrow_back_ios),
- color: Colors.black, //Colors.black,
- onPressed: () => Navigator.pop(context),
- ),
- Expanded(
- child: AppText(
- patient.firstName != null
- ? (Helpers.capitalize(patient.firstName) +
- " " +
- Helpers.capitalize(patient.lastName))
- : Helpers.capitalize(patient.fullName??patient?.patientDetails?.fullName??""),
- fontSize: SizeConfig.textMultiplier * 2.2,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- ),
- ),
- gender == 1
- ? Icon(
- DoctorApp.male_2,
- color: Colors.blue,
- )
- : Icon(
- DoctorApp.female_1,
- color: Colors.pink,
- ),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 4),
- child: InkWell(
- onTap: () {
- launch("tel://" + patient?.mobileNumber??"");
- },
- child: Icon(
- Icons.phone,
- color: Colors.black87,
- ),
- ),
- )
- ]),
- ),
- Row(children: [
- Padding(
- padding: EdgeInsets.only(left: 12.0),
- child: Container(
- width: 60,
- height: 60,
- child: Image.asset(
- gender == 1
- ? 'assets/images/male_avatar.png'
- : 'assets/images/female_avatar.png',
- fit: BoxFit.cover,
- ),
- ),
- ),
- SizedBox(
- width: 10,
- ),
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SERVICES_PATIANT2[int.parse(patientType)] ==
- "patientArrivalList"
- ? Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- patient.patientStatusType == 43
- ? AppText(
- TranslationBase.of(context).arrivedP,
- color: Colors.green,
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- fontSize: 12,
- )
- : AppText(
- TranslationBase.of(context).notArrived,
- color: Colors.red[800],
- fontWeight: FontWeight.bold,
- fontFamily: 'Poppins',
- fontSize: 12,
- ),
- arrivalType == '1' || patient.arrivedOn == null
- ? AppText(
- patient.startTime != null
- ? patient.startTime
- : '',
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- )
- : AppText(
- AppDateUtils.convertStringToDateFormat(
- patient.arrivedOn,
- 'MM-dd-yyyy HH:mm'),
- fontFamily: 'Poppins',
- fontWeight: FontWeight.w600,
- )
- ],
- ))
- : SizedBox(),
- if (SERVICES_PATIANT2[int.parse(patientType)] ==
- "List_MyOutPatient")
- Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- AppText(
- TranslationBase.of(context).appointmentDate +
- " : ",
- fontSize: 14,
- ),
- patient.startTime != null
- ? Container(
- height: 15,
- width: 60,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(25),
- color: HexColor("#20A169"),
- ),
- child: AppText(
- patient.startTime ?? "",
- color: Colors.white,
- fontSize: 1.5 * SizeConfig.textMultiplier,
- textAlign: TextAlign.center,
- fontWeight: FontWeight.bold,
- ),
- )
- : SizedBox(),
- SizedBox(
- width: 3.5,
- ),
- Container(
- child: AppText(
- convertDateFormat2(
- patient.appointmentDate.toString() ?? ''),
- fontSize: 1.5 * SizeConfig.textMultiplier,
- fontWeight: FontWeight.bold,
- ),
- ),
- SizedBox(
- height: 0.5,
- )
- ],
- ),
- margin: EdgeInsets.only(
- top: 8,
- ),
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- RichText(
- text: TextSpan(
- style: TextStyle(
- fontSize: 1.6 * SizeConfig.textMultiplier,
- color: Colors.black),
- children: [
- new TextSpan(
- text: TranslationBase.of(context).fileNumber,
- style: TextStyle(
- fontSize: 12, fontFamily: 'Poppins')),
- new TextSpan(
- text: patient?.patientId?.toString() ?? "",
- style: TextStyle(
- fontWeight: FontWeight.w700,
- fontFamily: 'Poppins',
- fontSize: 14)),
- ],
- ),
- ),
- Row(
- children: [
- AppText(
- patient.nationalityName ??
- patient.nationality ??
- "",
- fontWeight: FontWeight.bold,
- fontSize: 12,
- ),
- patient.nationality != null
- ? ClipRRect(
- borderRadius: BorderRadius.circular(20.0),
- child: Image.network(
- patient?.nationalityFlagURL??"",
- height: 25,
- width: 30,
- errorBuilder: (BuildContext context,
- Object exception,
- StackTrace stackTrace) {
- return Text('No Image');
- },
- ))
- : SizedBox()
- ],
- )
- ],
- ),
- Container(
- child: RichText(
- text: new TextSpan(
- style: new TextStyle(
- fontSize: 1.6 * SizeConfig.textMultiplier,
- color: Colors.black,
- fontFamily: 'Poppins',
- ),
- children: [
- new TextSpan(
- text: TranslationBase.of(context).age + " : ",
- style: TextStyle(fontSize: 14)),
- new TextSpan(
- text:
- "${AppDateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth : patient.dateofBirth, context)}",
- style: TextStyle(
- fontWeight: FontWeight.w700, fontSize: 14)),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- ]),
- Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- width: 30,
- height: 30,
- margin: EdgeInsets.only(
- left: projectViewModel.isArabic ? 10 : 85,
- right: projectViewModel.isArabic ? 85 : 10,
- top: 5),
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- border: Border(
- bottom: BorderSide(color: Colors.grey[400], width: 2.5),
- left: BorderSide(color: Colors.grey[400], width: 2.5),
- )),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 10),
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- child: LargeAvatar(
- name: doctorName ?? "",
- url: profileUrl,
- ),
- width: 25,
- height: 25,
- margin: EdgeInsets.only(top: 10),
- ),
- Expanded(
- flex: 5,
- child: Container(
- margin: EdgeInsets.all(10),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- AppText(
- '${TranslationBase.of(context).dr}$doctorName',
- color: Colors.black,
- fontWeight: FontWeight.w600,
- fontSize: 9,
- ),
- if (orderNo != null && !isPrescriptions)
- Row(
- children: [
- AppText('Order No: ',
- color: Colors.grey[800],
- fontSize: 12),
- AppText(orderNo ?? '', fontSize: 12)
- ],
- ),
- if (invoiceNO != null && !isPrescriptions)
- Row(
- children: