IPD changes

master
parent 0a33d5fd07
commit 5426aae0dc

@ -194,7 +194,7 @@
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
C21500C474806845DCE7C12A /* [CP] Embed Pods Frameworks */, C21500C474806845DCE7C12A /* [CP] Embed Pods Frameworks */,
294E280337160E3088FD37C0 /* [CP] Copy Pods Resources */, 24EE7472FCD545118644D8C4 /* [CP] Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
@ -256,7 +256,7 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
294E280337160E3088FD37C0 /* [CP] Copy Pods Resources */ = { 24EE7472FCD545118644D8C4 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@ -347,14 +347,12 @@
"${BUILT_PRODUCTS_DIR}/MTBBarcodeScanner/MTBBarcodeScanner.framework", "${BUILT_PRODUCTS_DIR}/MTBBarcodeScanner/MTBBarcodeScanner.framework",
"${BUILT_PRODUCTS_DIR}/OrderedSet/OrderedSet.framework", "${BUILT_PRODUCTS_DIR}/OrderedSet/OrderedSet.framework",
"${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
"${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework",
"${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
"${BUILT_PRODUCTS_DIR}/SwiftProtobuf/SwiftProtobuf.framework", "${BUILT_PRODUCTS_DIR}/SwiftProtobuf/SwiftProtobuf.framework",
"${BUILT_PRODUCTS_DIR}/SwiftyGif/SwiftyGif.framework", "${BUILT_PRODUCTS_DIR}/SwiftyGif/SwiftyGif.framework",
"${BUILT_PRODUCTS_DIR}/Toast/Toast.framework",
"${BUILT_PRODUCTS_DIR}/Try/Try.framework", "${BUILT_PRODUCTS_DIR}/Try/Try.framework",
"${BUILT_PRODUCTS_DIR}/barcode_scan2/barcode_scan2.framework", "${BUILT_PRODUCTS_DIR}/barcode_scan2/barcode_scan2.framework",
"${BUILT_PRODUCTS_DIR}/connectivity/connectivity.framework", "${BUILT_PRODUCTS_DIR}/connectivity_plus/connectivity_plus.framework",
"${BUILT_PRODUCTS_DIR}/file_picker/file_picker.framework", "${BUILT_PRODUCTS_DIR}/file_picker/file_picker.framework",
"${BUILT_PRODUCTS_DIR}/flutter_inappwebview_ios/flutter_inappwebview_ios.framework", "${BUILT_PRODUCTS_DIR}/flutter_inappwebview_ios/flutter_inappwebview_ios.framework",
"${BUILT_PRODUCTS_DIR}/flutter_keyboard_visibility/flutter_keyboard_visibility.framework", "${BUILT_PRODUCTS_DIR}/flutter_keyboard_visibility/flutter_keyboard_visibility.framework",
@ -366,7 +364,7 @@
"${BUILT_PRODUCTS_DIR}/pointer_interceptor_ios/pointer_interceptor_ios.framework", "${BUILT_PRODUCTS_DIR}/pointer_interceptor_ios/pointer_interceptor_ios.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences_foundation/shared_preferences_foundation.framework", "${BUILT_PRODUCTS_DIR}/shared_preferences_foundation/shared_preferences_foundation.framework",
"${BUILT_PRODUCTS_DIR}/speech_to_text/speech_to_text.framework", "${BUILT_PRODUCTS_DIR}/speech_to_text/speech_to_text.framework",
"${BUILT_PRODUCTS_DIR}/sqflite/sqflite.framework", "${BUILT_PRODUCTS_DIR}/sqflite_darwin/sqflite_darwin.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ZoomVideoSDK/CptShare/CptShare.framework/CptShare", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZoomVideoSDK/CptShare/CptShare.framework/CptShare",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ZoomVideoSDK/ZoomVideoSDK/ZoomVideoSDK.framework/ZoomVideoSDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZoomVideoSDK/ZoomVideoSDK/ZoomVideoSDK.framework/ZoomVideoSDK",
@ -388,14 +386,12 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MTBBarcodeScanner.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MTBBarcodeScanner.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OrderedSet.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OrderedSet.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftProtobuf.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftProtobuf.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyGif.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyGif.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Toast.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Try.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Try.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/barcode_scan2.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/barcode_scan2.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity_plus.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_picker.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_picker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_inappwebview_ios.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_inappwebview_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_keyboard_visibility.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_keyboard_visibility.framework",
@ -407,7 +403,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/pointer_interceptor_ios.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/pointer_interceptor_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_foundation.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_foundation.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/speech_to_text.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/speech_to_text.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite_darwin.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CptShare.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CptShare.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZoomVideoSDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZoomVideoSDK.framework",
@ -461,7 +457,6 @@
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = { 249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
@ -503,7 +498,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@ -540,6 +535,7 @@
MARKETING_VERSION = 1.4.19; MARKETING_VERSION = 1.4.19;
PRODUCT_BUNDLE_IDENTIFIER = com.hmg.hmgDr; PRODUCT_BUNDLE_IDENTIFIER = com.hmg.hmgDr;
PRODUCT_NAME = Runner; PRODUCT_NAME = Runner;
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
@ -548,7 +544,6 @@
}; };
97C147031CF9000F007C117D /* Debug */ = { 97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
@ -596,7 +591,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@ -606,7 +601,6 @@
}; };
97C147041CF9000F007C117D /* Release */ = { 97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
@ -648,7 +642,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@ -723,6 +717,7 @@
MARKETING_VERSION = 1.4.19; MARKETING_VERSION = 1.4.19;
PRODUCT_BUNDLE_IDENTIFIER = com.hmg.hmgDr; PRODUCT_BUNDLE_IDENTIFIER = com.hmg.hmgDr;
PRODUCT_NAME = Runner; PRODUCT_NAME = Runner;
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";

@ -26,6 +26,7 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
@ -43,11 +44,13 @@
buildConfiguration = "Release" buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES" debugDocumentVersioning = "YES"
debugServiceExtension = "internal" debugServiceExtension = "internal"
enableGPUValidationMode = "1"
allowLocationSimulation = "YES"> allowLocationSimulation = "YES">
<BuildableProductRunnable <BuildableProductRunnable
runnableDebuggingMode = "0"> runnableDebuggingMode = "0">

@ -32,22 +32,22 @@ import OpenTok
private func openVideoChat(result: FlutterResult,kApiKey: String, kSessionId: String,kToken: String,appLang:String, vC_ID: Int,tokenID:String,generalId:String,doctorId:Int,baseUrl:String) { private func openVideoChat(result: FlutterResult,kApiKey: String, kSessionId: String,kToken: String,appLang:String, vC_ID: Int,tokenID:String,generalId:String,doctorId:Int,baseUrl:String) {
let storyboard = UIStoryboard(name: "Main", bundle: nil) // let storyboard = UIStoryboard(name: "Main", bundle: nil)
let identifier = "ViewControllerNav" // let identifier = "ViewControllerNav"
let navVC = storyboard.instantiateViewController(withIdentifier: identifier) as! UINavigationController // let navVC = storyboard.instantiateViewController(withIdentifier: identifier) as! UINavigationController
let videoVC = navVC.viewControllers.first as! VideoCallViewController // let videoVC = navVC.viewControllers.first as! VideoCallViewController
videoVC.kApiKey=kApiKey // videoVC.kApiKey=kApiKey
videoVC.kSessionId=kSessionId // videoVC.kSessionId=kSessionId
videoVC.kToken=kToken // videoVC.kToken=kToken
videoVC.VC_ID = vC_ID // videoVC.VC_ID = vC_ID
videoVC.generalid = generalId // videoVC.generalid = generalId
videoVC.TokenID = tokenID // videoVC.TokenID = tokenID
videoVC.DoctorId = doctorId // videoVC.DoctorId = doctorId
videoVC.baseUrl = baseUrl // videoVC.baseUrl = baseUrl
videoVC.callBack = self // videoVC.callBack = self
videoVC.navigationController?.setNavigationBarHidden(true, animated: false) // videoVC.navigationController?.setNavigationBarHidden(true, animated: false)
navVC.modalPresentationStyle = .fullScreen // navVC.modalPresentationStyle = .fullScreen
window.rootViewController?.present(navVC, animated: true, completion: nil) // window.rootViewController?.present(navVC, animated: true, completion: nil)
} }
} }

@ -6,6 +6,7 @@ import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/service/NavigationService.dart'; import 'package:doctor_app_flutter/core/service/NavigationService.dart';
import 'package:doctor_app_flutter/core/service/hospitals/hospitals_service.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart';
import 'package:doctor_app_flutter/utils/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/utils/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart';
@ -41,6 +42,8 @@ class BaseAppClient {
bool callLog = true; bool callLog = true;
try { try {
Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE); Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE);
if (body?['MemberID'] == null) body?['MemberID'] = HospitalsService.memberId; // changed from null; because create update episode not working
String? token = await sharedPref.getString(TOKEN); String? token = await sharedPref.getString(TOKEN);
if(!isCustomRequest) { if(!isCustomRequest) {
if (profile != null) { if (profile != null) {
@ -125,7 +128,7 @@ class BaseAppClient {
// body['ProjectID'] = 12; // body['ProjectID'] = 12;
// body['DoctorID'] = 1002; //3844083 // body['DoctorID'] = 1002; //3844083
// body['TokenID'] = "@dm!n"; // body!['TokenID'] = "@dm!n";
// print("ProjectID :"); // print("ProjectID :");
// print(body['ProjectID']); // print(body['ProjectID']);
@ -216,7 +219,7 @@ class BaseAppClient {
String? token = await sharedPref.getString(TOKEN); String? token = await sharedPref.getString(TOKEN);
Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE); Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE);
if (body?['MemberID'] == null) body?['MemberID'] = HospitalsService.memberId;
if (profile != null) { if (profile != null) {
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile); DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
if (body!['DoctorID'] == null) { if (body!['DoctorID'] == null) {
@ -273,6 +276,10 @@ class BaseAppClient {
body['TokenID'] = body.containsKey('TokenID') ? body['TokenID'] ?? token : token; body['TokenID'] = body.containsKey('TokenID') ? body['TokenID'] ?? token : token;
body['PatientID'] = body['PatientID'] != null ? body['PatientID'] : patient!.patientId ?? patient.patientMRN; body['PatientID'] = body['PatientID'] != null ? body['PatientID'] : patient!.patientId ?? patient.patientMRN;
body['PatientMRN'] = body['PatientMRN'] != null ? body['PatientMRN'] : patient!.patientId ?? patient.patientMRN;
if (body['ProjectID'] == null) {
body['ProjectID'] = patient?.projectId.toString();
}
body['PatientOutSA'] = 0; //user['OutSA']; //TODO change it body['PatientOutSA'] = 0; //user['OutSA']; //TODO change it
body['SessionID'] = SESSION_ID; //getSe body['SessionID'] = SESSION_ID; //getSe

@ -9,9 +9,9 @@ const ONLY_DATE = "[0-9/]";
const DOCTOR_ROTATION = 'https://doctorrota.hmg.com/'; const DOCTOR_ROTATION = 'https://doctorrota.hmg.com/';
const BASE_URL = 'https://hmgwebservices.com/'; // const BASE_URL = 'https://hmgwebservices.com/';
// const BASE_URL = 'http://10.20.200.111:1010/'; // const BASE_URL = 'http://10.20.200.111:1010/';
// const BASE_URL = 'https://uat.hmgwebservices.com/'; const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/'; // const BASE_URL = 'https://hmgwebservices.com/';
@ -217,6 +217,7 @@ const GET_SICK_LEAVE_PATIENT = "Services/Patients.svc/REST/GetPatientSickLeave";
const GET_MY_OUT_PATIENT = "Services/DoctorApplication.svc/REST/GetMyOutPatient"; const GET_MY_OUT_PATIENT = "Services/DoctorApplication.svc/REST/GetMyOutPatient";
const PATIENT_MEDICAL_REPORT_GET_LIST = "Services/Patients.svc/REST/DAPP_ListMedicalReport"; const PATIENT_MEDICAL_REPORT_GET_LIST = "Services/Patients.svc/REST/DAPP_ListMedicalReport";
const PATIENT_MEDICAL_REPORT_GET_LIST_VIDA_PLUS = "Services/Patients.svc/REST/DAPP_InsertMedicalReport_New";
const PATIENT_MEDICAL_REPORT_GET_TEMPLATE = "Services/Patients.svc/REST/DAPP_GetTemplateByID"; const PATIENT_MEDICAL_REPORT_GET_TEMPLATE = "Services/Patients.svc/REST/DAPP_GetTemplateByID";
const PATIENT_MEDICAL_REPORT_INSERT = "Services/Patients.svc/REST/DAPP_InsertMedicalReport"; const PATIENT_MEDICAL_REPORT_INSERT = "Services/Patients.svc/REST/DAPP_InsertMedicalReport";
const PATIENT_MEDICAL_REPORT_VERIFIED = "Services/Patients.svc/REST/DAPP_VerifiedMedicalReport"; const PATIENT_MEDICAL_REPORT_VERIFIED = "Services/Patients.svc/REST/DAPP_VerifiedMedicalReport";
@ -259,6 +260,7 @@ const GET_DIAGNOSIS_FOR_IN_PATIENT = "Services/DoctorApplication.svc/REST/Doctor
const GET_DIABETIC_CHART_VALUES = "Services/DoctorApplication.svc/REST/DoctorApp_GetDiabeticChartValues"; const GET_DIABETIC_CHART_VALUES = "Services/DoctorApplication.svc/REST/DoctorApp_GetDiabeticChartValues";
const GET_PENDING_ORDERS = "Services/DoctorApplication.svc/REST/DoctorApp_GetPendingOrdersForInPatient"; const GET_PENDING_ORDERS = "Services/DoctorApplication.svc/REST/DoctorApp_GetPendingOrdersForInPatient";
const GET_PENDING_ORDERS_VIDA_PLUS = "Services/DoctorApplication.svc/REST/DoctorApp_GetDoctorProgressNote";
const GET_ADMISSION_ORDERS = "/Services/DoctorApplication.svc/REST/DoctorApp_GetAdmissionOrders"; const GET_ADMISSION_ORDERS = "/Services/DoctorApplication.svc/REST/DoctorApp_GetAdmissionOrders";

@ -1253,5 +1253,6 @@ const Map<String, Map<String, String>> localizedValues = {
"progressNoteCanNotBeEmpty": {"en": "Progress Note Can Not Be Empty", "ar":"تعذر تنفيذ الإجراء"}, "progressNoteCanNotBeEmpty": {"en": "Progress Note Can Not Be Empty", "ar":"تعذر تنفيذ الإجراء"},
"youHavePendingInterventions": {"en": "You Have Pending Interventions. That need your attention", "ar":"لديك تدخلات معلقة. التي تحتاج إلى اهتمامك"}, "youHavePendingInterventions": {"en": "You Have Pending Interventions. That need your attention", "ar":"لديك تدخلات معلقة. التي تحتاج إلى اهتمامك"},
"open": {"en": "Open", "ar":"يفتح"}, "open": {"en": "Open", "ar":"يفتح"},
"chiefComplaintLengthErrorMsg":{"en": "The text is too short; minimum 26 characters required.", "ar":"النص قصير جدًا؛ الحد الأدنى المطلوب هو 26 حرفًا."} "chiefComplaintLengthErrorMsg":{"en": "The text is too short; minimum 26 characters required.", "ar":"النص قصير جدًا؛ الحد الأدنى المطلوب هو 26 حرفًا."},
"filterInPatient":{"en": "Select Dates", "ar":"حدد التواريخ."}
}; };

@ -1,6 +1,7 @@
class PostChiefComplaintRequestModel { class PostChiefComplaintRequestModel {
int? appointmentNo; int? appointmentNo;
int? episodeID; int? episodeID;
String? pomrId;
int? patientMRN; int? patientMRN;
int? admissionNo; int? admissionNo;
String? chiefComplaint; String? chiefComplaint;
@ -24,7 +25,7 @@ class PostChiefComplaintRequestModel {
this.doctorID, this.doctorID,
this.editedBy, this.editedBy,
this.numberOfWeeks, this.numberOfWeeks,
this.admissionNo}); this.admissionNo,this.pomrId});
PostChiefComplaintRequestModel.fromJson(Map<String, dynamic> json) { PostChiefComplaintRequestModel.fromJson(Map<String, dynamic> json) {
appointmentNo = json['AppointmentNo']; appointmentNo = json['AppointmentNo'];
@ -39,6 +40,7 @@ class PostChiefComplaintRequestModel {
doctorID = json['DoctorID']; doctorID = json['DoctorID'];
editedBy = json['EditedBy']; editedBy = json['EditedBy'];
admissionNo = json['AdmissionNo']; admissionNo = json['AdmissionNo'];
pomrId = json[' String? pomrId;'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -58,6 +60,7 @@ class PostChiefComplaintRequestModel {
data['isLactation'] = this.isLactation; data['isLactation'] = this.isLactation;
data['numberOfWeeks'] = this.numberOfWeeks; data['numberOfWeeks'] = this.numberOfWeeks;
data['DoctorID'] = this.doctorID; data['DoctorID'] = this.doctorID;
data['pomrId'] = this.pomrId;
if (editedBy != null) { if (editedBy != null) {
data['EditedBy'] = this.editedBy; data['EditedBy'] = this.editedBy;
} }

@ -1,7 +1,7 @@
class GetEpisodeForInpatientReqModel { class GetEpisodeForInpatientReqModel {
int? patientID; int? patientID;
int? patientTypeID; int? patientTypeID;
int? admissionNo; dynamic? admissionNo;
GetEpisodeForInpatientReqModel( GetEpisodeForInpatientReqModel(
{this.patientID, this.patientTypeID, this.admissionNo}); {this.patientID, this.patientTypeID, this.admissionNo});

@ -64,7 +64,9 @@ class AdmissionOrdersRequestModel {
data['DeviceTypeID'] = this.deviceTypeID; data['DeviceTypeID'] = this.deviceTypeID;
data['TokenID'] = this.tokenID; data['TokenID'] = this.tokenID;
data['PatientID'] = this.patientID; data['PatientID'] = this.patientID;
data['PatientMRN'] = this.patientID;
data['AdmissionNo'] = this.admissionNo; data['AdmissionNo'] = this.admissionNo;
data['AdmissionRequestNo'] = this.admissionNo;
data['SessionID'] = this.sessionID; data['SessionID'] = this.sessionID;
data['ProjectID'] = this.projectID; data['ProjectID'] = this.projectID;
data['SetupID'] = this.setupID; data['SetupID'] = this.setupID;

@ -50,4 +50,32 @@ class GetDiagnosisForInPatientResponseModel {
data['EditedOn'] = this.editedOn; data['EditedOn'] = this.editedOn;
return data; return data;
} }
/*
*
* String? iCDCode10ID;
int? diagnosisTypeID;
int? conditionID;
bool? complexDiagnosis;
String? asciiDesc;
int? createdBy;
String? createdOn;
int? editedBy;
String? editedOn;
String? createdByName;
String? editedByName;
*/
GetDiagnosisForInPatientResponseModel.fromJsonForVidaPlus(json) {
iCDCode10ID = json['selectedIcdCode'];
diagnosisTypeID = json['DiagnosisTypeID'];
conditionID = json['ConditionID'];
complexDiagnosis = json['ComplexDiagnosis'];
asciiDesc = json['selectedDisease'];
createdBy = json['CreatedBy'];
createdOn = json['createdOn'];
editedBy = json['EditedBy'];
editedOn = json['EditedOn'];
createdByName = json['createdBy'];
editedByName = json['EditedByName'];
}
} }

@ -3,11 +3,15 @@ class GetDischargeSummaryReqModel {
int? admissionNo; int? admissionNo;
int? patientType; int? patientType;
int? patientTypeID; int? patientTypeID;
int? clinicId;
int? doctorId;
GetDischargeSummaryReqModel( GetDischargeSummaryReqModel(
{this.patientID, {this.patientID,
this.admissionNo, this.admissionNo,
this.patientType = 1, this.patientType = 1,
this.clinicId = null,
this.doctorId = null,
this.patientTypeID = 1}); this.patientTypeID = 1});
GetDischargeSummaryReqModel.fromJson(Map<String, dynamic> json) { GetDischargeSummaryReqModel.fromJson(Map<String, dynamic> json) {
@ -15,14 +19,20 @@ class GetDischargeSummaryReqModel {
admissionNo = json['AdmissionNo']; admissionNo = json['AdmissionNo'];
patientType = json['PatientType']; patientType = json['PatientType'];
patientTypeID = json['PatientTypeID']; patientTypeID = json['PatientTypeID'];
clinicId = json['ClinicID'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
print("the clinic id is $clinicId");
print("the doctorId id is $doctorId");
data['PatientID'] = this.patientID; data['PatientID'] = this.patientID;
data['PatientMRN'] = this.patientID;
data['AdmissionNo'] = this.admissionNo; data['AdmissionNo'] = this.admissionNo;
data['PatientType'] = this.patientType; data['PatientType'] = this.patientType;
data['PatientTypeID'] = this.patientTypeID; data['PatientTypeID'] = this.patientTypeID;
data['ClinicID'] = this.clinicId;
data['DoctorID'] = this.doctorId;
data['isDentalAllowedBackend'] = false; data['isDentalAllowedBackend'] = false;
return data; return data;

@ -47,6 +47,7 @@ class InsuranceApprovalInPatientRequestModel {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['PatientID'] = this.patientID; data['PatientID'] = this.patientID;
data['PatientMRN'] = this.patientID;
data['PatientTypeID'] = this.patientTypeID; data['PatientTypeID'] = this.patientTypeID;
data['EXuldAPPNO'] = this.eXuldAPPNO; data['EXuldAPPNO'] = this.eXuldAPPNO;
data['ProjectID'] = this.projectID; data['ProjectID'] = this.projectID;

@ -1,5 +1,6 @@
class GetNursingProgressNoteRequestModel { class GetNursingProgressNoteRequestModel {
int? patientID; int? patientID;
int? patientMRN;
int? admissionNo; int? admissionNo;
int? patientTypeID; int? patientTypeID;
int? patientType; int? patientType;
@ -10,6 +11,7 @@ class GetNursingProgressNoteRequestModel {
this.admissionNo, this.admissionNo,
this.patientTypeID = 1, this.patientTypeID = 1,
this.patientType = 1, this.patientType = 1,
this.patientMRN,
this.setupID}); this.setupID});
GetNursingProgressNoteRequestModel.fromJson(Map<String, dynamic> json) { GetNursingProgressNoteRequestModel.fromJson(Map<String, dynamic> json) {
@ -18,6 +20,7 @@ class GetNursingProgressNoteRequestModel {
patientTypeID = json['PatientTypeID']; patientTypeID = json['PatientTypeID'];
patientType = json['PatientType']; patientType = json['PatientType'];
setupID = json['SetupID']; setupID = json['SetupID'];
patientMRN = json['PatientMRN'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -27,6 +30,7 @@ class GetNursingProgressNoteRequestModel {
data['PatientTypeID'] = this.patientTypeID; data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType; data['PatientType'] = this.patientType;
data['SetupID'] = this.setupID; data['SetupID'] = this.setupID;
data['PatientMRN'] = this.patientMRN;
return data; return data;
} }
} }

@ -1,3 +1,5 @@
import 'package:doctor_app_flutter/utils/extenstions_utils.dart';
class NoteModel { class NoteModel {
String? setupID; String? setupID;
int? projectID; int? projectID;
@ -73,6 +75,30 @@ class NoteModel {
conditionDescription = json['ConditionDescription']; conditionDescription = json['ConditionDescription'];
} }
NoteModel.fromJsonForVidaPlusResponse(json){
setupID = json['SetupID'];
projectID = json['ProjectID'];
patientID = json['PatientID'];
patientType = json['PatientType'];
admissionNo = json['AdmissionNo'];
lineItemNo = json['LineItemNo'];
visitType = json['VisitType'];
notes = json['progressNote'];
assessmentDate = json['AssessmentDate'];
visitTime = json['VisitTime'];
status = json['Status'];
nursingRemarks = json['NursingRemarks'];
createdOn = json['CreatedOn'];
editedOn = json['EditedOn'];
createdBy = json['CreatedBy'];
admissionClinicID = int.parse(json['speciality'].isEmpty == true?"-1":json['speciality']);
admissionClinicName = json['specialityName'];
doctorClinicName = json['DoctorClinicName'];
doctorName = json['userFullName'];
visitTypeDesc = json['VisitTypeDesc'];
condition = int.parse(json['patientCondition'].isEmpty == true?"-1":json['patientCondition']);
conditionDescription = json['patientConditionName'];}
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID; data['SetupID'] = this.setupID;

@ -17,6 +17,7 @@ class UpdateNoteReqModel {
bool? patientOutSA; bool? patientOutSA;
int? patientTypeID; int? patientTypeID;
int? conditionId; int? conditionId;
String? patientMRN;
UpdateNoteReqModel( UpdateNoteReqModel(
@ -37,7 +38,8 @@ class UpdateNoteReqModel {
this.isLoginForDoctorApp, this.isLoginForDoctorApp,
this.patientOutSA, this.patientOutSA,
this.patientTypeID, this.patientTypeID,
this.conditionId}); this.conditionId,
this.patientMRN});
UpdateNoteReqModel.fromJson(Map<String, dynamic> json) { UpdateNoteReqModel.fromJson(Map<String, dynamic> json) {
projectID = json['ProjectID']; projectID = json['ProjectID'];
@ -58,6 +60,7 @@ class UpdateNoteReqModel {
patientOutSA = json['PatientOutSA']; patientOutSA = json['PatientOutSA'];
patientTypeID = json['PatientTypeID']; patientTypeID = json['PatientTypeID'];
conditionId = json['ConditionId']; conditionId = json['ConditionId'];
patientMRN = json['PatientMRN'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -80,6 +83,7 @@ class UpdateNoteReqModel {
data['PatientOutSA'] = this.patientOutSA; data['PatientOutSA'] = this.patientOutSA;
data['PatientTypeID'] = this.patientTypeID; data['PatientTypeID'] = this.patientTypeID;
data['ConditionId'] = this.conditionId; data['ConditionId'] = this.conditionId;
data['PatientMRN'] = this.patientMRN;
return data; return data;
} }
} }

@ -12,6 +12,12 @@ class GetReservationsRequestModel {
int? deviceTypeID; int? deviceTypeID;
String? tokenID; String? tokenID;
String? sessionID; String? sessionID;
int? patientMRN;
int? AdmissionRequestNo;
int? PatientTypeID;
int? ResultType;
int? AdmissionNo;
int? LoginDoctorID;
GetReservationsRequestModel( GetReservationsRequestModel(
{this.patientID, {this.patientID,
@ -26,7 +32,14 @@ class GetReservationsRequestModel {
this.patientOutSA, this.patientOutSA,
this.deviceTypeID, this.deviceTypeID,
this.tokenID, this.tokenID,
this.sessionID}); this.patientMRN,
this.sessionID,
this.AdmissionRequestNo = 0,
this.PatientTypeID= 0,
this.ResultType = 0,
this.AdmissionNo = 0,
this.LoginDoctorID ,
});
GetReservationsRequestModel.fromJson(Map<String, dynamic> json) { GetReservationsRequestModel.fromJson(Map<String, dynamic> json) {
patientID = json['PatientID']; patientID = json['PatientID'];
@ -42,6 +55,7 @@ class GetReservationsRequestModel {
deviceTypeID = json['DeviceTypeID']; deviceTypeID = json['DeviceTypeID'];
tokenID = json['TokenID']; tokenID = json['TokenID'];
sessionID = json['SessionID']; sessionID = json['SessionID'];
patientMRN = json['PatientMRN'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -59,6 +73,12 @@ class GetReservationsRequestModel {
data['DeviceTypeID'] = this.deviceTypeID; data['DeviceTypeID'] = this.deviceTypeID;
data['TokenID'] = this.tokenID; data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID; data['SessionID'] = this.sessionID;
data['PatientMRN'] = this.patientMRN;
data['AdmissionRequestNo'] = this.AdmissionRequestNo;
data['PatientTypeID'] = this.PatientTypeID;
data['ResultType'] = this.ResultType;
data['AdmissionNo'] = this.AdmissionNo;
data['LoginDoctorID'] = this.LoginDoctorID;
return data; return data;
} }
} }

@ -101,7 +101,7 @@ class GetReservationsResponseModel {
editedOn = json['EditedOn']; editedOn = json['EditedOn'];
patientName = json['PatientName']; patientName = json['PatientName'];
patientNameN = json['PatientNameN']; patientNameN = json['PatientNameN'];
gender = json['Gender']; gender = json['Gender']?.toString()??"";
dateofBirth = json['DateofBirth']; dateofBirth = json['DateofBirth'];
mobileNumber = json['MobileNumber']; mobileNumber = json['MobileNumber'];
emailAddress = json['EmailAddress']; emailAddress = json['EmailAddress'];

@ -55,6 +55,7 @@ class PatiantInformtion {
int? patientType; int? patientType;
int? patientMRN; int? patientMRN;
String? admissionNo; String? admissionNo;
int? admissionID;
String? admissionDate; String? admissionDate;
DateTime? admissionDateWithDateTimeForm; DateTime? admissionDateWithDateTimeForm;
String? createdOn; String? createdOn;
@ -80,6 +81,12 @@ class PatiantInformtion {
int? vcId; int? vcId;
String? voipToken; String? voipToken;
String? pomrId; String? pomrId;
int? rowId;
int? createdBy;
int? editedBy;
String? editedOn;
PatiantInformtion( PatiantInformtion(
{this.patientDetails, {this.patientDetails,
this.projectId, this.projectId,
@ -156,7 +163,8 @@ class PatiantInformtion {
this.voipToken, this.voipToken,
this.admissionDateWithDateTimeForm, this.admissionDateWithDateTimeForm,
this.appointmentDateWithDateTimeForm, this.appointmentDateWithDateTimeForm,
this.pomrId this.pomrId,
this.admissionID
}); });
PatiantInformtion.fromJson(Map<String, dynamic> json) { PatiantInformtion.fromJson(Map<String, dynamic> json) {
@ -264,7 +272,7 @@ class PatiantInformtion {
consultationNotes = json['ConsultationNotes']; consultationNotes = json['ConsultationNotes'];
patientStatus = json['PatientStatus']; patientStatus = json['PatientStatus'];
voipToken = json['VoipToken']; voipToken = json['VoipToken'];
pomrId = json['pomrId']; pomrId = json['pomrId']??(json["PatientPomrID"]?.toString());
admissionDateWithDateTimeForm = json["AdmissionDate"] != null admissionDateWithDateTimeForm = json["AdmissionDate"] != null
? AppDateUtils.convertStringToDate(json["AdmissionDate"]) ? AppDateUtils.convertStringToDate(json["AdmissionDate"])
: json["admissionDate"] != null : json["admissionDate"] != null
@ -274,6 +282,10 @@ class PatiantInformtion {
appointmentDateWithDateTimeForm = json["AppointmentDate"] != null appointmentDateWithDateTimeForm = json["AppointmentDate"] != null
? AppDateUtils.convertStringToDate(json["AppointmentDate"]) ? AppDateUtils.convertStringToDate(json["AppointmentDate"])
: null; : null;
rowId = json['RowID'];
createdBy = json['CreatedBy'];
editedBy = json['EditedBy'];
admissionID = json['AdmissionID'];
} }
} }

@ -56,6 +56,8 @@ class ProgressNoteRequest {
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp; data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA; data['PatientOutSA'] = this.patientOutSA;
data['PatientTypeID'] = this.patientTypeID; data['PatientTypeID'] = this.patientTypeID;
return data; return data;
} }
} }

@ -15,24 +15,30 @@ class PatientSearchRequestModel {
int? nursingStationID; int? nursingStationID;
int? clinicID = 0; int? clinicID = 0;
int? loginDoctorID; int? loginDoctorID;
int? pageIndex;
int? pageSize;
PatientSearchRequestModel( PatientSearchRequestModel(
{this.doctorID, {this.doctorID,
this.firstName = "0", this.firstName = "",
this.middleName = "0", this.middleName = "",
this.lastName = "0", this.lastName = "",
this.patientMobileNumber = "0", this.patientMobileNumber = "",
this.patientIdentificationID = "0", this.patientIdentificationID = "",
this.patientID = 0, this.patientID = 0,
this.searchType = 1, this.searchType = 1,
this.mobileNo = "", this.mobileNo = "",
this.identificationNo = "0", this.identificationNo = "",
this.from = "0", this.from = "",
this.to = "0", this.to = "",
this.clinicID, this.clinicID = 0,
this.nursingStationID = 0, this.nursingStationID = 0,
this.projectID, this.loginDoctorID}); this.projectID,
this.loginDoctorID,
this.pageIndex = 0 ,
this.pageSize = 10
});
PatientSearchRequestModel.fromJson(Map<String, dynamic> json) { PatientSearchRequestModel.fromJson(Map<String, dynamic> json) {
doctorID = json['DoctorID']; doctorID = json['DoctorID'];
@ -51,11 +57,14 @@ class PatientSearchRequestModel {
clinicID = json['ClinicID']; clinicID = json['ClinicID'];
projectID = json['ProjectID']; projectID = json['ProjectID'];
loginDoctorID = json['LoginDoctorID']; loginDoctorID = json['LoginDoctorID'];
pageIndex = json['PageIndex'];
pageSize = json['PageSize'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['DoctorID'] = this.doctorID; data['DoctorID'] = this.doctorID;
data['MemberID'] = this.doctorID;
data['FirstName'] = this.firstName; data['FirstName'] = this.firstName;
data['MiddleName'] = this.middleName; data['MiddleName'] = this.middleName;
data['LastName'] = this.lastName; data['LastName'] = this.lastName;
@ -71,6 +80,8 @@ class PatientSearchRequestModel {
data['ClinicID'] = this.clinicID; data['ClinicID'] = this.clinicID;
data['ProjectID'] = this.projectID; data['ProjectID'] = this.projectID;
data['LoginDoctorID'] = this.loginDoctorID; data['LoginDoctorID'] = this.loginDoctorID;
data['PageIndex'] = this.pageIndex;
data['PageSize'] = this.pageSize;
return data; return data;
} }
} }

@ -64,6 +64,7 @@ class PendingOrderRequestModel {
data['DeviceTypeID'] = this.deviceTypeID; data['DeviceTypeID'] = this.deviceTypeID;
data['TokenID'] = this.tokenID; data['TokenID'] = this.tokenID;
data['PatientID'] = this.patientID; data['PatientID'] = this.patientID;
data['PatientMRN'] = this.patientID;
data['AdmissionNo'] = this.admissionNo; data['AdmissionNo'] = this.admissionNo;
data['SessionID'] = this.sessionID; data['SessionID'] = this.sessionID;
data['ProjectID'] = this.projectID; data['ProjectID'] = this.projectID;

@ -23,6 +23,10 @@ class ReferralRequest {
String? sessionID; String? sessionID;
bool? isLoginForDoctorApp; bool? isLoginForDoctorApp;
bool? patientOutSA; bool? patientOutSA;
String? diseaseDescription;
String? diseaseCode;
String? toDate;
ReferralRequest( ReferralRequest(
{this.roomID, {this.roomID,
@ -103,6 +107,9 @@ class ReferralRequest {
data['SessionID'] = this.sessionID; data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp; data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA; data['PatientOutSA'] = this.patientOutSA;
data['Diagnosis'] = this.diseaseDescription;
data['DiagnosisCode'] = this.diseaseCode;
data['ToDate'] = this.toDate;
return data; return data;
} }
} }

@ -5,11 +5,15 @@ import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_request_mo
import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart'; import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart'; import 'package:doctor_app_flutter/core/service/base/base_service.dart';
class HospitalsService extends BaseService { class HospitalsService extends BaseService {
static String memberId = "";
List<GetHospitalsResponseModel> hospitals = []; List<GetHospitalsResponseModel> hospitals = [];
List<VidaPlusProjectListModel> vidaPlusProjectListModel = []; List<VidaPlusProjectListModel> vidaPlusProjectListModel = [];
Future getHospitals(GetHospitalsRequestModel getHospitalsRequestModel) async { Future getHospitals(GetHospitalsRequestModel getHospitalsRequestModel) async {
memberId = getHospitalsRequestModel.memberID??"";
hasError = false; hasError = false;
await baseAppClient.post( await baseAppClient.post(
GET_PROJECTS, GET_PROJECTS,

@ -3,6 +3,7 @@ import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/core/model/referral/ReferralRequest.dart'; import 'package:doctor_app_flutter/core/model/referral/ReferralRequest.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart'; import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart';
class ReferralService extends BaseService { class ReferralService extends BaseService {
Future referralPatient( Future referralPatient(
@ -15,8 +16,11 @@ class ReferralService extends BaseService {
int? priority, int? priority,
int? frequency, int? frequency,
String? referringDoctorRemarks, String? referringDoctorRemarks,
String? extension}) async { String? extension,
// await getDoctorProfile(); String? diagnosisCode,
String? diagnosisDescription}) async {
// await getDoctorProfile();
print("the referralClinic is $referralClinic");
ReferralRequest referralRequest = ReferralRequest(); ReferralRequest referralRequest = ReferralRequest();
Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE); Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile!); DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile!);
@ -35,6 +39,11 @@ class ReferralService extends BaseService {
referralRequest.editedBy = doctorProfile!.doctorID; referralRequest.editedBy = doctorProfile!.doctorID;
referralRequest.createdBy = doctorProfile!.doctorID; referralRequest.createdBy = doctorProfile!.doctorID;
referralRequest.patientOutSA = false; referralRequest.patientOutSA = false;
referralRequest.diseaseCode = diagnosisCode;
referralRequest.diseaseDescription = diagnosisDescription;
referralRequest.toDate = AppDateUtils.convertDateToServerFormat(DateTime.now());
var json =referralRequest.toJson();
json["Specialty"] = doctorProfile?.specialty?.first;
await baseAppClient.post( await baseAppClient.post(
REFER_TO_DOCTOR, REFER_TO_DOCTOR,
@ -43,7 +52,7 @@ class ReferralService extends BaseService {
hasError = true; hasError = true;
super.error = error; super.error = error;
}, },
body: referralRequest.toJson(), body: json,
); );
} }
} }

@ -1,4 +1,5 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_request_model.dart';
import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart'; import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart';
import 'package:doctor_app_flutter/lookups/hospital_lookup.dart'; import 'package:doctor_app_flutter/lookups/hospital_lookup.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
@ -72,6 +73,7 @@ class PatientReferralService extends LookupService {
await baseAppClient.post( await baseAppClient.post(
PROJECT_GET_INFO, PROJECT_GET_INFO,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
print("the response is ${response['ProjectInfo'][0]['facilityGroupId']}");
setupID = response['ProjectInfo'][0]['facilityGroupId']; setupID = response['ProjectInfo'][0]['facilityGroupId'];
}, },
onFailure: (String error, int statusCode) { onFailure: (String error, int statusCode) {

@ -2,12 +2,14 @@ import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.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/core/service/base/base_service.dart';
import 'package:flutter/material.dart';
class PatientInPatientService extends BaseService { class PatientInPatientService extends BaseService {
List<PatiantInformtion> inPatientList = []; List<PatiantInformtion> inPatientList = [];
List<PatiantInformtion> myInPatientList = []; List<PatiantInformtion> myInPatientList = [];
Future getInPatientList(PatientSearchRequestModel requestModel, bool isMyInpatient) async { Future getInPatientList(PatientSearchRequestModel requestModel, bool isMyInpatient,
{bool isVidaPlusProject = false}) async {
hasError = false; hasError = false;
await getDoctorProfile(isGetProfile: true); await getDoctorProfile(isGetProfile: true);
requestModel.loginDoctorID = doctorProfile!.doctorID; requestModel.loginDoctorID = doctorProfile!.doctorID;

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/model/SOAP/assessment/patient_previous_diagnosis.dart';
import 'package:doctor_app_flutter/core/model/diabetic_chart/GetDiabeticChartValuesRequestModel.dart'; import 'package:doctor_app_flutter/core/model/diabetic_chart/GetDiabeticChartValuesRequestModel.dart';
import 'package:doctor_app_flutter/core/model/diabetic_chart/GetDiabeticChartValuesResponseModel.dart'; import 'package:doctor_app_flutter/core/model/diabetic_chart/GetDiabeticChartValuesResponseModel.dart';
import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientRequestModel.dart'; import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientRequestModel.dart';
@ -27,6 +28,7 @@ import 'package:doctor_app_flutter/core/model/patient/refer_to_doctor_request.da
import 'package:doctor_app_flutter/core/model/patient/vital_sign/vital_sign_res_model.dart'; import 'package:doctor_app_flutter/core/model/patient/vital_sign/vital_sign_res_model.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.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/core/service/base/base_service.dart';
import 'package:flutter/material.dart';
class PatientService extends BaseService { class PatientService extends BaseService {
List<VitalSignResModel> _patientVitalSignList = []; List<VitalSignResModel> _patientVitalSignList = [];
@ -339,6 +341,29 @@ class PatientService extends BaseService {
); );
} }
Future getVidaPlusProgressNote(patient) async {
hasError = false;
await baseAppClient.post(
GET_PROGRESS_NOTE,
onSuccess: (dynamic response, int statusCode) {
_patientProgressNoteList = [];
// _patientProgressNoteList =
response['ListProgressNote']['resultData'].forEach((v) {
v['data'].forEach((response) {
_patientProgressNoteList.add(new NoteModel.fromJsonForVidaPlusResponse(response));
});
});
},
onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
},
body: patient,
);
}
Future updatePatientProgressNote(UpdateNoteReqModel req) async { Future updatePatientProgressNote(UpdateNoteReqModel req) async {
hasError = false; hasError = false;
@ -524,6 +549,42 @@ class PatientService extends BaseService {
); );
} }
getDiagnosis(PatiantInformtion patient) async {
Map<String, dynamic> request = {
// "hospitalGroupId": 105,
// "hospitalId": 313,
// "patientId": 70023498,
// "patientPomrId": 9907,
// "startRow": 0,
// "endRow": 10,
// "isSelected": true,
// "ProjectID": 313
"hospitalGroupId": await sharedPref.getString(DOCTOR_SETUP_ID),
"hospitalId": patient.projectId,
"patientId": patient.patientId,
"patientPomrId": patient.pomrId,
"startRow": 0,
"endRow": 1000000,
"ProjectID": patient.projectId
};
List<dynamic> dynamicResponse = [];
hasError = false;
await baseAppClient.post(GET_LIST_OF_DIAGNOSIS,
onSuccess: (dynamic response, int statusCode) {
_diagnosisForInPatientList.clear();
dynamicResponse = response['ListDiagnosisDetailsSearch']['resultData'];
response['ListDiagnosisDetailsSearch']['resultData'].forEach((v) =>
_diagnosisForInPatientList.add(GetDiagnosisForInPatientResponseModel.fromJsonForVidaPlus(v)));
}, onFailure: (String error, int statusCode) {
_diagnosisForInPatientList.clear();
hasError = true;
super.error = error;
}, body: request);
return dynamicResponse;
}
Future getDiabeticChartValues(GetDiabeticChartValuesRequestModel getDiabeticChartValuesRequestModel) async { Future getDiabeticChartValues(GetDiabeticChartValuesRequestModel getDiabeticChartValuesRequestModel) async {
hasError = false; hasError = false;
@ -559,4 +620,38 @@ class PatientService extends BaseService {
body: stpMasterListRequestModel.toJson(), body: stpMasterListRequestModel.toJson(),
); );
} }
Future<bool> createProgressNote(
CreateNoteModel data,
PatiantInformtion patient,
) async {
var profile = await getDoctorProfile();
Map<String, dynamic> request = {
"planNote": data.notes,
"PatientMRN": patient.patientMRN,
"EpisodeID": patient.pomrId,
"CreatedByName": patient.doctorName,
"CreatedBy": patient.doctorId,
"Speciality": patient.clinicId,
"ProgressNotesTypes": "DOCTOR_NOTE",
"PatientCondition": data.conditionId,
"ProjectID": patient.projectId
};
var success = false;
await baseAppClient.post(CREATE_PROGRESS_NOTE,
onSuccess: (dynamic response, int statusCode) {
if (response['ListCreateProgressNote'] != null) {
// DrAppToastMsg.showSuccesToast(
// response['ListCreateProgressNote']['message']);
success = true;
}
}, onFailure: (String error, int statusCode) {
success = false;
hasError = true;
super.error = error;
}, body: request);
return success;
}
} }

@ -1,4 +1,5 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart'; import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/core/model/operation_report/create_update_operation_report_request_model.dart'; import 'package:doctor_app_flutter/core/model/operation_report/create_update_operation_report_request_model.dart';
import 'package:doctor_app_flutter/core/model/operation_report/get_operation_details_request_modle.dart'; import 'package:doctor_app_flutter/core/model/operation_report/get_operation_details_request_modle.dart';
@ -6,6 +7,8 @@ import 'package:doctor_app_flutter/core/model/operation_report/get_operation_det
import 'package:doctor_app_flutter/core/model/operation_report/get_reservations_response_model.dart'; import 'package:doctor_app_flutter/core/model/operation_report/get_reservations_response_model.dart';
import 'package:doctor_app_flutter/core/model/operation_report/get_reservations_request_model.dart'; import 'package:doctor_app_flutter/core/model/operation_report/get_reservations_request_model.dart';
import '../../../../config/shared_pref_kay.dart' show DOCTOR_PROFILE;
class OperationReportService extends BaseService { class OperationReportService extends BaseService {
List<GetReservationsResponseModel> _reservationList = []; List<GetReservationsResponseModel> _reservationList = [];
@ -18,9 +21,12 @@ class OperationReportService extends BaseService {
Future getReservations( Future getReservations(
{GetReservationsRequestModel? getReservationsRequestModel, {GetReservationsRequestModel? getReservationsRequestModel,
int? patientId}) async { int? patientId, int? patientMRN}) async {
Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile!);
getReservationsRequestModel = getReservationsRequestModel =
GetReservationsRequestModel(patientID: patientId); GetReservationsRequestModel(patientID: patientId,patientMRN: patientMRN, LoginDoctorID: doctorProfile.doctorID);
hasError = false; hasError = false;
await baseAppClient.post(GET_RESERVATIONS, await baseAppClient.post(GET_RESERVATIONS,

@ -9,14 +9,15 @@ class PatientMedicalReportService extends BaseService {
List<MedicalReportModel> medicalReportList = []; List<MedicalReportModel> medicalReportList = [];
List<MedicalReportTemplate> medicalReportTemplate = []; List<MedicalReportTemplate> medicalReportTemplate = [];
Future getMedicalReportList(PatiantInformtion patient) async { Future getMedicalReportList(PatiantInformtion patient, bool isVidaPlusProject) async {
hasError = false; hasError = false;
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
await getDoctorProfile(); await getDoctorProfile();
body['AdmissionNo'] = patient.admissionNo; body['AdmissionNo'] = isVidaPlusProject ?patient.admissionID : patient.admissionNo;
body['SetupID'] = doctorProfile!.setupID; body['SetupID'] = doctorProfile!.setupID;
// body['ProjectID'] = doctorProfile!.projectID; body['ProjectID'] = doctorProfile!.projectID;
medicalReportList = []; medicalReportList = [];
await baseAppClient.postPatient(PATIENT_MEDICAL_REPORT_GET_LIST, onSuccess: (dynamic response, int statusCode) { await baseAppClient.postPatient(PATIENT_MEDICAL_REPORT_GET_LIST, onSuccess: (dynamic response, int statusCode) {
if (response['DAPP_ListMedicalReportList'] != null) { if (response['DAPP_ListMedicalReportList'] != null) {
response['DAPP_ListMedicalReportList'].forEach((v) { response['DAPP_ListMedicalReportList'].forEach((v) {
@ -33,8 +34,7 @@ class PatientMedicalReportService extends BaseService {
Future getMedicalReportTemplate() async { Future getMedicalReportTemplate() async {
hasError = false; hasError = false;
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body['SetupID'] = "91877";
body['TemplateID'] = 43;
await baseAppClient.post(PATIENT_MEDICAL_REPORT_GET_TEMPLATE, onSuccess: (dynamic response, int statusCode) { await baseAppClient.post(PATIENT_MEDICAL_REPORT_GET_TEMPLATE, onSuccess: (dynamic response, int statusCode) {
medicalReportTemplate.clear(); medicalReportTemplate.clear();
@ -62,11 +62,11 @@ class PatientMedicalReportService extends BaseService {
}, body: body, patient: patient); }, body: body, patient: patient);
} }
Future verifyMedicalReport(PatiantInformtion patient, MedicalReportModel medicalReport) async { Future verifyMedicalReport(PatiantInformtion patient, MedicalReportModel medicalReport, bool? isVidaPlusProject,) async {
hasError = false; hasError = false;
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body['SetupID'] = "91877"; body['SetupID'] = "91877";
body['AdmissionNo'] = patient.admissionNo; body['AdmissionNo'] = isVidaPlusProject == true? patient.admissionID : patient.admissionNo;
body['InvoiceNo'] = medicalReport.invoiceNo; body['InvoiceNo'] = medicalReport.invoiceNo;
body['LineItemNo'] = medicalReport.lineItemNo; body['LineItemNo'] = medicalReport.lineItemNo;
if (body['ProjectID'] == null) { if (body['ProjectID'] == null) {
@ -80,7 +80,7 @@ class PatientMedicalReportService extends BaseService {
}, body: body, patient: patient); }, body: body, patient: patient);
} }
Future addMedicalReport(PatiantInformtion patient, String htmlText) async { Future addMedicalReport(PatiantInformtion patient, String htmlText, bool? isVidaPlusProject) async {
hasError = false; hasError = false;
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body['SetupID'] = body.containsKey('SetupID') body['SetupID'] = body.containsKey('SetupID')
@ -88,15 +88,21 @@ class PatientMedicalReportService extends BaseService {
? body['SetupID'] ? body['SetupID']
: SETUP_ID : SETUP_ID
: SETUP_ID; : SETUP_ID;
body['AdmissionNo'] = int.parse(patient.admissionNo!); print("isVidaPlusProject $isVidaPlusProject");
body['AdmissionNo'] = isVidaPlusProject == true? patient.admissionID ?? -1 :int.parse(patient.admissionNo!);
print('the admission no is ${body['AdmissionNo']}');
body['MedicalReportHTML'] = htmlText; body['MedicalReportHTML'] = htmlText;
body['ProjectID'] = patient.projectId; body['ProjectID'] = patient.projectId;
body['PatientID'] = patient.patientId;
body['DoctorID'] = patient.doctorId; body['DoctorID'] = patient.doctorId;
if(isVidaPlusProject == true) {
body['PatientType'] = patient.patientType;
}
await baseAppClient.postPatient(INSERT_MEDICAL_REPORT, onSuccess: (dynamic response, int statusCode) {}, onFailure: (String error, int statusCode) { await baseAppClient.post(INSERT_MEDICAL_REPORT, onSuccess: (dynamic response, int statusCode) {}, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
super.error = error.toString(); super.error = error.toString();
}, body: body, patient: patient); }, body: body);
} }
Future updateMedicalReport(PatiantInformtion patient, String htmlText, int limitNumber, String invoiceNumber) async { Future updateMedicalReport(PatiantInformtion patient, String htmlText, int limitNumber, String invoiceNumber) async {

@ -359,11 +359,11 @@ class PrescriptionService extends LookupService {
}, body: body); }, body: body);
} }
Future getMedicationForInPatient(PatiantInformtion patient) async { Future getMedicationForInPatient(PatiantInformtion patient, {required bool isVidaPlusProject}) async {
hasError = false; hasError = false;
_getMedicationForInPatientRequestModel = GetMedicationForInPatientRequestModel( _getMedicationForInPatientRequestModel = GetMedicationForInPatientRequestModel(
isDentalAllowedBackend: false, isDentalAllowedBackend: false,
admissionNo: int.parse(patient.admissionNo!), admissionNo: isVidaPlusProject ? patient.admissionID : int.parse(patient.admissionNo!),
projectID: patient.projectId, projectID: patient.projectId,
); );
await baseAppClient.postPatient(GET_MEDICATION_FOR_IN_PATIENT, patient: patient, onSuccess: (dynamic response, int statusCode) { await baseAppClient.postPatient(GET_MEDICATION_FOR_IN_PATIENT, patient: patient, onSuccess: (dynamic response, int statusCode) {

@ -37,6 +37,29 @@ class PendingOrderService extends BaseService {
}, body: pendingOrderRequestModel.toJson()); }, body: pendingOrderRequestModel.toJson());
} }
Future getPendingOrdersForVidaPlus({PendingOrderRequestModel? pendingOrderRequestModel, int? patientId, int? admissionNo,}) async {
pendingOrderRequestModel = PendingOrderRequestModel(
patientID: patientId,
admissionNo: admissionNo,
patientTypeID: 1,
patientType: 1,
);
hasError = false;
await baseAppClient.post(GET_PENDING_ORDERS_VIDA_PLUS, onSuccess: (dynamic response, int statusCode) {
print("Success");
_pendingOrderList.clear();
response['List_DoctorProgressNote'].forEach(
(v) {
_pendingOrderList.add(PendingOrderModel.fromJson(v));
},
);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: pendingOrderRequestModel.toJson());
}
Future getAdmissionOrders({AdmissionOrdersRequestModel? admissionOrdersRequestModel, int? patientId, int? admissionNo}) async { Future getAdmissionOrders({AdmissionOrdersRequestModel? admissionOrdersRequestModel, int? patientId, int? admissionNo}) async {
admissionOrdersRequestModel = AdmissionOrdersRequestModel( admissionOrdersRequestModel = AdmissionOrdersRequestModel(
patientID: patientId, patientID: patientId,

@ -15,9 +15,9 @@ class PatientMedicalReportViewModel extends BaseViewModel {
List<MedicalReportTemplate> get medicalReportTemplate => List<MedicalReportTemplate> get medicalReportTemplate =>
_service.medicalReportTemplate; _service.medicalReportTemplate;
Future getMedicalReportList(PatiantInformtion patient) async { Future getMedicalReportList(PatiantInformtion patient,{bool isVidaPlusProject = false}) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _service.getMedicalReportList(patient); await _service.getMedicalReportList(patient, isVidaPlusProject);
if (_service.hasError) { if (_service.hasError) {
error = _service.error; error = _service.error;
setState(ViewState.ErrorLocal); // ViewState.Error setState(ViewState.ErrorLocal); // ViewState.Error
@ -46,41 +46,41 @@ class PatientMedicalReportViewModel extends BaseViewModel {
} }
Future verifyMedicalReport( Future verifyMedicalReport(
PatiantInformtion patient, MedicalReportModel medicalReport) async { PatiantInformtion patient, MedicalReportModel medicalReport, bool? isVidaPlusProject) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _service.verifyMedicalReport(patient, medicalReport); await _service.verifyMedicalReport(patient, medicalReport, isVidaPlusProject);
if (_service.hasError) { if (_service.hasError) {
error = _service.error; error = _service.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
} else } else
await getMedicalReportList(patient); await getMedicalReportList(patient, isVidaPlusProject: isVidaPlusProject == true);
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future addMedicalReport(PatiantInformtion patient, String htmlText) async { Future addMedicalReport(PatiantInformtion patient, String htmlText, bool? isVidaPlusProject) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _service.addMedicalReport(patient, htmlText); await _service.addMedicalReport(patient, htmlText, isVidaPlusProject);
if (_service.hasError) { if (_service.hasError) {
error = _service.error; error = _service.error;
await getMedicalReportList(patient); await getMedicalReportList(patient, isVidaPlusProject: isVidaPlusProject == true);
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
} else { } else {
await getMedicalReportList(patient); await getMedicalReportList(patient,isVidaPlusProject: isVidaPlusProject == true);
setState(ViewState.Idle); setState(ViewState.Idle);
} }
} }
Future updateMedicalReport(PatiantInformtion patient, String htmlText, Future updateMedicalReport(PatiantInformtion patient, String htmlText,
int limitNumber, String invoiceNumber) async { int limitNumber, String invoiceNumber, bool? isVidaPlusProject) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _service.updateMedicalReport( await _service.updateMedicalReport(
patient, htmlText, limitNumber, invoiceNumber); patient, htmlText, limitNumber, invoiceNumber);
if (_service.hasError) { if (_service.hasError) {
error = _service.error; error = _service.error;
await getMedicalReportList(patient); await getMedicalReportList(patient, isVidaPlusProject: isVidaPlusProject == true);
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
} else { } else {
await getMedicalReportList(patient); await getMedicalReportList(patient,isVidaPlusProject: isVidaPlusProject == true);
setState(ViewState.Idle); setState(ViewState.Idle);
} }
} }

@ -8,6 +8,7 @@ import 'package:doctor_app_flutter/core/service/special_clinics/special_clinic_s
import 'package:doctor_app_flutter/core/model/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart'; import 'package:doctor_app_flutter/core/model/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart'; import 'package:doctor_app_flutter/utils/date-utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import '../../locator.dart'; import '../../locator.dart';
import 'base_view_model.dart'; import 'base_view_model.dart';
@ -132,14 +133,14 @@ class PatientSearchViewModel extends BaseViewModel {
List<PatiantInformtion> filteredInPatientItems = []; List<PatiantInformtion> filteredInPatientItems = [];
List<PatiantInformtion> filteredMyInPatientItems = []; List<PatiantInformtion> filteredMyInPatientItems = [];
Future getInPatientList(PatientSearchRequestModel requestModel, {bool isMyInpatient = false, bool isLocalBusy = false}) async { Future getInPatientList(PatientSearchRequestModel requestModel, {bool isMyInpatient = false, bool isLocalBusy = false, bool isVidaPlusProject = false, bool isForceFullRefresh = false}) async {
await getDoctorProfile(); await getDoctorProfile();
if (isLocalBusy) { if (isLocalBusy) {
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
} else { } else {
setState(ViewState.Busy); setState(ViewState.Busy);
} }
if (inPatientList.length == 0) await _inPatientService.getInPatientList(requestModel, false); if (inPatientList.length == 0 || isForceFullRefresh) await _inPatientService.getInPatientList(requestModel, false, isVidaPlusProject: isVidaPlusProject);
if (_inPatientService.hasError) { if (_inPatientService.hasError) {
error = _inPatientService.error; error = _inPatientService.error;
if (isLocalBusy) { if (isLocalBusy) {
@ -342,4 +343,10 @@ class PatientSearchViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
} }
flushSelectedDates(){
selectedFromDate = null;
selectedToDate = null;
}
} }

@ -430,12 +430,14 @@ class SOAPViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getEpisodeForInpatient(PatiantInformtion patient) async { Future getEpisodeForInpatient(PatiantInformtion patient, bool isVidaPlusProject ) async {
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
var admissionNo = (isVidaPlusProject)? (patient.admissionID??"-1"):int.parse( (patient.admissionNo??"-1")) ;
GetEpisodeForInpatientReqModel getEpisodeForInpatientReqModel = GetEpisodeForInpatientReqModel getEpisodeForInpatientReqModel =
GetEpisodeForInpatientReqModel( GetEpisodeForInpatientReqModel(
patientID: patient.patientId, patientID: patient.patientId,
admissionNo: int.parse(patient.admissionNo!), admissionNo: admissionNo,
patientTypeID: 1); patientTypeID: 1);
await _SOAPService.getEpisodeForInpatient(getEpisodeForInpatientReqModel); await _SOAPService.getEpisodeForInpatient(getEpisodeForInpatientReqModel);
if (_SOAPService.hasError) { if (_SOAPService.hasError) {
@ -932,6 +934,7 @@ class SOAPViewModel extends BaseViewModel {
isLactation: false, isLactation: false,
ispregnant: false, ispregnant: false,
doctorID: '', doctorID: '',
pomrId: patientInfo.pomrId,
numberOfWeeks: 0); numberOfWeeks: 0);
} }

@ -1,5 +1,7 @@
import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart'; import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientRequestModel.dart';
import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientResponseModel.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/core/model/patient/my_referral/PendingReferral.dart'; import 'package:doctor_app_flutter/core/model/patient/my_referral/PendingReferral.dart';
import 'package:doctor_app_flutter/core/model/patient/my_referral/clinic-doctor.dart'; import 'package:doctor_app_flutter/core/model/patient/my_referral/clinic-doctor.dart';
@ -11,6 +13,7 @@ import 'package:doctor_app_flutter/core/service/patient/DischargedPatientService
import 'package:doctor_app_flutter/core/service/patient/MyReferralPatientService.dart'; import 'package:doctor_app_flutter/core/service/patient/MyReferralPatientService.dart';
import 'package:doctor_app_flutter/core/service/patient/ReferralService.dart'; import 'package:doctor_app_flutter/core/service/patient/ReferralService.dart';
import 'package:doctor_app_flutter/core/service/patient/patient-doctor-referral-service.dart'; import 'package:doctor_app_flutter/core/service/patient/patient-doctor-referral-service.dart';
import 'package:doctor_app_flutter/core/service/patient/patient_service.dart';
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -48,6 +51,31 @@ class PatientReferralViewModel extends BaseViewModel {
List<PatiantInformtion> get patientArrivalList => _referralPatientService.patientArrivalList; List<PatiantInformtion> get patientArrivalList => _referralPatientService.patientArrivalList;
PatientService _patientService = locator<PatientService>();
List<dynamic> diagnosisForInPatientList = [];
Future getDiagnosisForInPatient(
GetDiagnosisForInPatientRequestModel requestModel, bool isVidaPlusProject, PatiantInformtion patient) async {
await getDoctorProfile();
setState(ViewState.Busy);
List<dynamic> response = [];
if(isVidaPlusProject){
response = await _patientService.getDiagnosis(patient);
}
if (_patientService.hasError) {
error = _patientService.error;
setState(ViewState.ErrorLocal);
} else {
diagnosisForInPatientList = response;
setState(ViewState.Idle);
}
}
Future getPatientReferral(PatiantInformtion patient) async { Future getPatientReferral(PatiantInformtion patient) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _referralPatientService.getPatientReferral(patient); await _referralPatientService.getPatientReferral(patient);
@ -222,7 +250,7 @@ class PatientReferralViewModel extends BaseViewModel {
} }
} }
Future makeInPatientReferral( Future makeInPatientReferral(bool isVidaPlusProject,
{PatiantInformtion? patient, {PatiantInformtion? patient,
int? projectID, int? projectID,
int? clinicID, int? clinicID,
@ -232,7 +260,8 @@ class PatientReferralViewModel extends BaseViewModel {
String? referralDate, String? referralDate,
String? remarks, String? remarks,
String? ext, String? ext,
bool isLocalBusy = false}) async { bool isLocalBusy = false,
dynamic? diagnosis}) async {
if (isLocalBusy) if (isLocalBusy)
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
else else
@ -241,12 +270,14 @@ class PatientReferralViewModel extends BaseViewModel {
patientID: patient!.patientId, patientID: patient!.patientId,
roomID: patient.roomId, roomID: patient.roomId,
referralClinic: clinicID, referralClinic: clinicID,
admissionNo: int.parse(patient.admissionNo!), admissionNo: isVidaPlusProject?patient.admissionID:int.parse(patient.admissionNo!),
referralDoctor: doctorID, referralDoctor: doctorID,
patientTypeID: patient.patientType, patientTypeID: patient.patientType,
referringDoctorRemarks: remarks, referringDoctorRemarks: remarks,
priority: priority, priority: priority,
frequency: frequencyCode, frequency: frequencyCode,
diagnosisCode: diagnosis['selectedIcdCode'],
diagnosisDescription: diagnosis['selectedDisease'],
extension: ext, extension: ext,
); );
if (_referralService.hasError) { if (_referralService.hasError) {

@ -19,6 +19,7 @@ import 'package:doctor_app_flutter/core/model/patient/vital_sign/vital_sign_res_
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.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/core/service/patient/patient_service.dart';
import '../../config/shared_pref_kay.dart';
import '../../locator.dart'; import '../../locator.dart';
import '../model/note/stp_master_list_req_model.dart'; import '../model/note/stp_master_list_req_model.dart';
import '../model/note/stp_master_list_res_model.dart'; import '../model/note/stp_master_list_res_model.dart';
@ -156,14 +157,27 @@ class PatientViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getPatientProgressNote(patient, {bool isLocalBusy = false}) async { Future getPatientProgressNote(patientRequest,PatiantInformtion patient,
{bool isLocalBusy = false, bool isVidaPlus = false}) async {
if (isLocalBusy) { if (isLocalBusy) {
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
} else { } else {
setState(ViewState.Busy); setState(ViewState.Busy);
} }
if (isVidaPlus) {
await _patientService.getPatientProgressNote(patient); Map<String, dynamic> request = {
"hospitalGroupId": await sharedPref.getString(DOCTOR_SETUP_ID),
"hospitalId": patient.projectId,
"patientId": patient.patientId,
"patientPomrId": patient.pomrId,
"endRow": 10000, // because no information is provided for the end row
"startRow": 0,
"ProjectID": patient.projectId
};
await _patientService.getVidaPlusProgressNote(request);
} else {
await _patientService.getPatientProgressNote(patientRequest);
}
if (_patientService.hasError) { if (_patientService.hasError) {
error = _patientService.error; error = _patientService.error;
if (isLocalBusy) { if (isLocalBusy) {
@ -185,9 +199,14 @@ class PatientViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future createPatientProgressNote(CreateNoteModel req) async { Future createPatientProgressNote(CreateNoteModel req, PatiantInformtion patient,
{bool isVidaPlus = false}) async {
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
await _patientService.createPatientProgressNote(req); if (isVidaPlus) {
await _patientService.createProgressNote(req, patient);
} else {
await _patientService.createPatientProgressNote(req);
}
if (_patientService.hasError) { if (_patientService.hasError) {
error = _patientService.error; error = _patientService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
@ -326,11 +345,16 @@ class PatientViewModel extends BaseViewModel {
} }
Future getDiagnosisForInPatient( Future getDiagnosisForInPatient(
GetDiagnosisForInPatientRequestModel requestModel) async { GetDiagnosisForInPatientRequestModel requestModel, bool isVidaPlusProject, PatiantInformtion patient) async {
await getDoctorProfile(); await getDoctorProfile();
setState(ViewState.Busy); setState(ViewState.Busy);
await _patientService.getDiagnosisForInPatient(requestModel); if(isVidaPlusProject){
await _patientService.getDiagnosis(patient);
}else {
await _patientService.getDiagnosisForInPatient(requestModel);
}
if (_patientService.hasError) { if (_patientService.hasError) {
error = _patientService.error; error = _patientService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
@ -340,7 +364,7 @@ class PatientViewModel extends BaseViewModel {
} }
Future getDiabeticChartValues(PatiantInformtion patient, int resultType, Future getDiabeticChartValues(PatiantInformtion patient, int resultType,
{bool isLocalBusy = false}) async { {bool isLocalBusy = false, bool isVidaPlusProject = false}) async {
await getDoctorProfile(); await getDoctorProfile();
if (isLocalBusy) if (isLocalBusy)
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
@ -350,9 +374,8 @@ class PatientViewModel extends BaseViewModel {
GetDiabeticChartValuesRequestModel requestModel = GetDiabeticChartValuesRequestModel requestModel =
GetDiabeticChartValuesRequestModel( GetDiabeticChartValuesRequestModel(
patientID: patient.patientId, patientID: patient.patientId,
admissionNo: int.parse(patient.admissionNo!), admissionNo:isVidaPlusProject? patient.admissionID ?? -1 : int.parse(patient.admissionNo!),
patientTypeID: 1, patientTypeID: 1,
patientType: 1,
resultType: resultType, resultType: resultType,
); );
await _patientService.getDiabeticChartValues(requestModel); await _patientService.getDiabeticChartValues(requestModel);

@ -15,11 +15,19 @@ class PendingOrdersViewModel extends BaseViewModel {
List<AdmissionOrdersModel> get admissionOrderList => List<AdmissionOrdersModel> get admissionOrderList =>
_pendingOrderService.admissionOrderList; _pendingOrderService.admissionOrderList;
Future getPendingOrders({required int patientId, required int admissionNo}) async { Future getPendingOrders(
{required int patientId,
required int admissionNo,
required bool isVidaPlus}) async {
hasError = false; hasError = false;
setState(ViewState.Busy); setState(ViewState.Busy);
await _pendingOrderService.getPendingOrders( if (isVidaPlus) {
patientId: patientId, admissionNo: admissionNo); await _pendingOrderService.getPendingOrdersForVidaPlus(
patientId: patientId, admissionNo: admissionNo);
} else {
await _pendingOrderService.getPendingOrders(
patientId: patientId, admissionNo: admissionNo);
}
if (_pendingOrderService.hasError) { if (_pendingOrderService.hasError) {
error = _pendingOrderService.error; error = _pendingOrderService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);

@ -155,9 +155,9 @@ class PrescriptionViewModel extends BaseViewModel {
} }
} }
getMedicationForInPatient(PatiantInformtion patient) async { getMedicationForInPatient(PatiantInformtion patient, bool isVidaPlusProject) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _prescriptionService.getMedicationForInPatient(patient); await _prescriptionService.getMedicationForInPatient(patient, isVidaPlusProject: isVidaPlusProject);
if (_prescriptionService.hasError) { if (_prescriptionService.hasError) {
error = _prescriptionService.error!; error = _prescriptionService.error!;
setState(ViewState.Error); setState(ViewState.Error);

@ -18,11 +18,14 @@ class DischargeSummaryViewModel extends BaseViewModel {
Future getPendingDischargeSummary({ Future getPendingDischargeSummary({
required int patientId, required int patientId,
required int admissionNo, required int admissionNo, required int? clinicId, required int? doctorId,
}) async { }) async {
print("the clinic id is $clinicId");
print("the doctorId id is $doctorId");
GetDischargeSummaryReqModel getDischargeSummaryReqModel = GetDischargeSummaryReqModel getDischargeSummaryReqModel =
GetDischargeSummaryReqModel( GetDischargeSummaryReqModel(
admissionNo: admissionNo, patientID: patientId); admissionNo: admissionNo, patientID: patientId, clinicId: clinicId , doctorId:doctorId);
hasError = false; hasError = false;
setState(ViewState.Busy); setState(ViewState.Busy);
await _dischargeSummaryService.getPendingDischargeSummary( await _dischargeSummaryService.getPendingDischargeSummary(

@ -21,7 +21,7 @@ class OperationReportViewModel extends BaseViewModel {
Future getReservations(int patientId) async { Future getReservations(int patientId) async {
hasError = false; hasError = false;
setState(ViewState.Busy); setState(ViewState.Busy);
await _operationReportService.getReservations(patientId: patientId); await _operationReportService.getReservations(patientId: patientId, patientMRN: patientId);
if (_operationReportService.hasError) { if (_operationReportService.hasError) {
error = _operationReportService.error; error = _operationReportService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);

@ -3,6 +3,7 @@ import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.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/authentication_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
@ -36,6 +37,7 @@ import 'package:flutter_zoom_videosdk/native/zoom_videosdk.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:sticky_headers/sticky_headers/widget.dart'; import 'package:sticky_headers/sticky_headers/widget.dart';
import '../../locator.dart';
import '../../utils/notification_permission_utils.dart'; import '../../utils/notification_permission_utils.dart';
import '../video_call_zoom/zoom_video_call.dart'; import '../video_call_zoom/zoom_video_call.dart';
import '../patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart'; import '../patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart';
@ -418,14 +420,16 @@ class _HomeScreenState extends State<HomeScreen> {
)); ));
changeColorIndex(); changeColorIndex();
if (model.doctorProfile != null && !Utils.isVidaPlusInPatientProject(projectsProvider, model.doctorProfile!.projectID!)) { if (model.doctorProfile != null) {
patientCards.add(HomePatientCard( patientCards.add(
HomePatientCard(
gradient: backgroundColors[colorIndex], gradient: backgroundColors[colorIndex],
backgroundIconColor: backgroundIconColors[colorIndex], backgroundIconColor: backgroundIconColors[colorIndex],
cardIcon: DoctorApp.inpatient, cardIcon: DoctorApp.inpatient,
textColor: textColors[colorIndex], textColor: textColors[colorIndex],
text: TranslationBase.of(context).myInPatient, text: TranslationBase.of(context).myInPatient,
onTap: () { onTap: () {
locator<PatientSearchViewModel>().flushSelectedDates();
Navigator.push( Navigator.push(
context, context,
FadePage( FadePage(
@ -487,7 +491,7 @@ class _HomeScreenState extends State<HomeScreen> {
text: TranslationBase.of(context).myOutPatient_2lines, text: TranslationBase.of(context).myOutPatient_2lines,
onTap: () { onTap: () {
String date = AppDateUtils.convertDateToFormat(DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day), 'yyyy-MM-dd'); String date = AppDateUtils.convertDateToFormat(DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day), 'yyyy-MM-dd');
locator<PatientSearchViewModel>().flushSelectedDates();
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(

@ -14,6 +14,9 @@ import '../../routes.dart';
import '../../widgets/shared/errors/error_message.dart'; import '../../widgets/shared/errors/error_message.dart';
class DischargedPatient extends StatefulWidget { class DischargedPatient extends StatefulWidget {
final bool isVidaPlusProject;
const DischargedPatient({super.key, required this.isVidaPlusProject});
@override @override
_DischargedPatientState createState() => _DischargedPatientState(); _DischargedPatientState createState() => _DischargedPatientState();
} }

@ -0,0 +1,253 @@
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
import 'package:doctor_app_flutter/core/enum/view_state.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/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.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';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import '../../../config/config.dart';
class FilterDatePage extends StatefulWidget {
final PatientSearchViewModel patientSearchViewModel;
const FilterDatePage({Key? key, required this.patientSearchViewModel})
: super(key: key);
@override
_FilterDatePageState createState() => _FilterDatePageState();
}
class _FilterDatePageState extends State<FilterDatePage> {
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
var screenSize;
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: TranslationBase.of(context).filterInPatient,
),
SizedBox(
height: 10.0,
),
Center(
child: FractionallySizedBox(
widthFactor: 0.9,
child: Column(
children: [
Container(
color: Colors.white,
child: InkWell(
onTap: () => selectDate(context,
firstDate: getFirstDate(),
lastDate: getLastDate()),
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).fromDate,
widget.patientSearchViewModel
.selectedFromDate !=
null
? "${AppDateUtils.convertStringToDateFormat(widget.patientSearchViewModel.selectedFromDate.toString(), "yyyy-MM-dd")}"
: "",
true,
suffixIcon: Icon(
Icons.calendar_today,
color: Colors.black,
)),
enabled: false,
),
),
),
SizedBox(
height: 10,
),
Container(
color: Colors.white,
child: InkWell(
onTap: () => selectDate(context,
isFromDate: false,
firstDate: getFirstDate(),
lastDate: getLastDate()),
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).toDate,
widget.patientSearchViewModel
.selectedToDate !=
null
? "${AppDateUtils.convertStringToDateFormat(widget.patientSearchViewModel.selectedToDate.toString(), "yyyy-MM-dd")}"
: "",
true,
suffixIcon: Icon(
Icons.calendar_today,
color: Colors.black,
)),
enabled: false,
),
),
),
],
),
),
),
],
),
),
),
),
bottomSheet: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(0.0),
),
border: Border.all(color: HexColor('#707070'), width: 0),
),
height: MediaQuery.of(context).size.height * 0.1,
width: double.infinity,
child: Column(
children: [
SizedBox(
height: 10,
),
Container(
child: FractionallySizedBox(
widthFactor: .80,
child: Center(
child: AppButton(
title: TranslationBase.of(context).search,
padding: 10,
color: AppGlobal.appGreenColor,
onPressed: () async {
if (widget.patientSearchViewModel.selectedFromDate ==
null ||
widget.patientSearchViewModel.selectedToDate ==
null) {
Utils.showErrorToast(
"Please Select All The date Fields ");
} else {
await widget.patientSearchViewModel.getInPatientList(
PatientSearchRequestModel(
from:
"${AppDateUtils.convertDateToFormat(widget.patientSearchViewModel.selectedFromDate!, "yyyy-MM-dd")} 00:00:00",
to: "${AppDateUtils.convertDateToFormat(widget.patientSearchViewModel.selectedToDate!, "yyyy-MM-dd")} 00:00:00",
searchType: null),
isForceFullRefresh: true);
Navigator.of(context).pop();
}
},
),
),
),
),
SizedBox(
height: 5,
),
],
),
));
}
selectDate(BuildContext context,
{bool isFromDate = true, DateTime? firstDate, lastDate}) async {
Utils.hideKeyboard(context);
DateTime currentDate = DateTime.now();
DateTime? selectedDate = isFromDate
? this.widget.patientSearchViewModel.selectedFromDate ?? currentDate
: this.widget.patientSearchViewModel.selectedToDate ?? currentDate;
final DateTime? picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: firstDate!,
lastDate: lastDate,
initialEntryMode: DatePickerEntryMode.calendar,
);
if (picked != null) {
if (isFromDate) {
setState(() {
this.widget.patientSearchViewModel.selectedFromDate = picked;
var date = picked.add(Duration(days: 30));
if (date.isBefore(lastDate)) {
this.widget.patientSearchViewModel.selectedToDate = date;
} else
this.widget.patientSearchViewModel.selectedToDate = lastDate;
});
} else {
setState(() {
this.widget.patientSearchViewModel.selectedToDate = picked;
});
}
}
}
getFirstDate() {
DateTime dateTime = DateTime.now().subtract(Duration(days: 30 * 24));
return DateTime(dateTime.year, dateTime.month, dateTime.day + 1);
}
getLastDate() {
DateTime dateTime = DateTime.now().add(Duration(days: 30 * 24));
return DateTime(dateTime.year, dateTime.month, dateTime.day);
}
InputDecoration textFieldSelectorDecoration(
String hintText, String selectedText, bool isDropDown,
{Icon? suffixIcon}) {
return InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),
borderRadius: BorderRadius.circular(8),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFEFEFEF), width: 2.0),
borderRadius: BorderRadius.circular(8),
),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFEFEFEF), width: 2.0),
borderRadius: BorderRadius.circular(8),
),
hintText: selectedText != null ? selectedText : hintText,
suffixIcon: isDropDown
? suffixIcon != null
? suffixIcon
: Icon(
Icons.keyboard_arrow_down_sharp,
color: Color(0xff2E303A),
)
: null,
hintStyle: TextStyle(
fontSize: 13,
color: Color(0xff2E303A),
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
),
labelText: selectedText != null ? '$hintText\n$selectedText' : null,
labelStyle: TextStyle(
fontSize: 13,
color: Color(0xff2E303A),
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
),
);
}
}

@ -2,6 +2,7 @@ import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.dart'; import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/screens/patients/In_patient/filter_date_page.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_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/app_texts_widget.dart';
@ -22,8 +23,9 @@ class InPatientListPage extends StatefulWidget {
final bool showBottomSheet; final bool showBottomSheet;
final String? selectedClinicName; final String? selectedClinicName;
final Function? onChangeValue; final Function? onChangeValue;
final bool isVidaPlusProject;
InPatientListPage({this.isMyInPatient = false, this.patientSearchViewModel, this.selectedClinicName, this.onChangeValue, this.isAllClinic = false, this.showBottomSheet = false}); InPatientListPage({this.isMyInPatient = false, this.patientSearchViewModel, this.selectedClinicName, this.onChangeValue, this.isAllClinic = false, this.showBottomSheet = false, required this.isVidaPlusProject});
@override @override
_InPatientListPageState createState() => _InPatientListPageState(); _InPatientListPageState createState() => _InPatientListPageState();
@ -135,15 +137,32 @@ class _InPatientListPageState extends State<InPatientListPage> {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
}, },
), ),
suffixIcon: (widget.isVidaPlusProject)?IconButton(
icon: Icon(
DoctorApp.filter_1,
color: Colors.black,
),
iconSize: 20,
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => FilterDatePage(
patientSearchViewModel: widget.patientSearchViewModel!,
),
settings: RouteSettings(name: 'FilterOutPatentDateScreen'),
));
},
):null,
onFieldSubmitted: () {}, onFieldSubmitted: () {},
), ),
widget.patientSearchViewModel!.state == ViewState.Idle widget.patientSearchViewModel!.state == ViewState.Idle
? (widget.isMyInPatient && widget.patientSearchViewModel!.myIinPatientList.length > 0) ? (widget.isMyInPatient && widget.patientSearchViewModel!.myIinPatientList.length > 0)
? ListOfMyInpatient(isAllClinic: widget.isAllClinic, hasQuery: hasQuery, patientSearchViewModel: widget.patientSearchViewModel!) ? ListOfMyInpatient(isAllClinic: widget.isAllClinic, hasQuery: hasQuery, patientSearchViewModel: widget.patientSearchViewModel!, isVidaPlusProject: widget.isVidaPlusProject,)
: widget.patientSearchViewModel!.filteredInPatientItems.length > 0 : widget.patientSearchViewModel!.filteredInPatientItems.length > 0
? (widget.isMyInPatient && widget.patientSearchViewModel!.myIinPatientList.length == 0) ? (widget.isMyInPatient && widget.patientSearchViewModel!.myIinPatientList.length == 0)
? NoData() ? NoData()
: ListOfAllInPatient(isAllClinic: widget.isAllClinic, hasQuery: hasQuery, patientSearchViewModel: widget.patientSearchViewModel!) : ListOfAllInPatient(isAllClinic: widget.isAllClinic, hasQuery: hasQuery, patientSearchViewModel: widget.patientSearchViewModel!, isVidaPlusProject: widget.isVidaPlusProject,)
: NoData() : NoData()
: Center( : Center(
child: Container( child: Container(

@ -6,6 +6,7 @@ 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/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/In_patient/InPatientHeader.dart'; import 'package:doctor_app_flutter/screens/patients/In_patient/InPatientHeader.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart';
import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/utils/tab_utils.dart'; import 'package:doctor_app_flutter/utils/tab_utils.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
@ -33,9 +34,10 @@ class InPatientScreen extends StatefulWidget {
class _InPatientScreenState extends State<InPatientScreen> with SingleTickerProviderStateMixin { class _InPatientScreenState extends State<InPatientScreen> with SingleTickerProviderStateMixin {
late TabController _tabController; late TabController _tabController;
ProjectViewModel? viewModel = null;
int _activeTab = 0; int _activeTab = 0;
int selectedMapId = 0; int selectedMapId = 0;
bool isVidaPlusProject = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -60,11 +62,13 @@ class _InPatientScreenState extends State<InPatientScreen> with SingleTickerProv
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final screenSize = MediaQuery.of(context).size; final screenSize = MediaQuery.of(context).size;
viewModel = Provider.of<ProjectViewModel>(context);
PatientSearchRequestModel requestModel = PatientSearchRequestModel(); PatientSearchRequestModel requestModel = PatientSearchRequestModel();
return BaseView<PatientSearchViewModel>( return BaseView<PatientSearchViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
model.clearPatientList(); model.clearPatientList();
var doctorProfile = await model.getDoctorProfile();
if (widget.specialClinic != null && widget.specialClinic!.clinicID != null) { if (widget.specialClinic != null && widget.specialClinic!.clinicID != null) {
print(widget.specialClinic!.toJson()); print(widget.specialClinic!.toJson());
await model.getSpecialClinicalCareMappingList(widget.specialClinic!.clinicID); await model.getSpecialClinicalCareMappingList(widget.specialClinic!.clinicID);
@ -72,7 +76,27 @@ class _InPatientScreenState extends State<InPatientScreen> with SingleTickerProv
// model.specialClinicalCareMappingList[0].nursingStationID; // model.specialClinicalCareMappingList[0].nursingStationID;
} }
requestModel.clinicID = 0; requestModel.clinicID = 0;
await model.getInPatientList(requestModel); isVidaPlusProject =
Utils.isVidaPlusProject(viewModel!, doctorProfile.projectID ?? -1);
if (isVidaPlusProject) {
DateTime dateTime = DateTime.now();
String currentDate = AppDateUtils.convertDateToFormat(
dateTime,
'yyyy-MM-dd');
print("the current date is $currentDate");
requestModel.from = "$currentDate 00:00:00";
dateTime = dateTime.add(Duration(days: 1));
currentDate = AppDateUtils.convertDateToFormat(
dateTime,
'yyyy-MM-dd');
requestModel.to = "$currentDate 00:00:00";
requestModel.pageSize = 10;
requestModel.pageIndex = 0;
requestModel.searchType = null;
}
await model.getInPatientList(requestModel,
isVidaPlusProject: isVidaPlusProject);
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
@ -90,7 +114,11 @@ class _InPatientScreenState extends State<InPatientScreen> with SingleTickerProv
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
PatientSearchRequestModel requestModel = PatientSearchRequestModel(nursingStationID: selectedMapId, clinicID: 0); PatientSearchRequestModel requestModel = PatientSearchRequestModel(nursingStationID: selectedMapId, clinicID: 0);
await model.getInPatientList(requestModel, isLocalBusy: true); await model.getInPatientList(requestModel,
isLocalBusy: true,
isVidaPlusProject: Utils.isVidaPlusProject(
Provider.of<ProjectViewModel>(context),
requestModel.projectID ?? -1));
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error); DrAppToastMsg.showErrorToast(model.error);
@ -161,15 +189,21 @@ class _InPatientScreenState extends State<InPatientScreen> with SingleTickerProv
isAllClinic: widget.isAllClinic, isAllClinic: widget.isAllClinic,
showBottomSheet: widget.showBottomSheet, showBottomSheet: widget.showBottomSheet,
selectedClinicName: widget.selectedClinicName, selectedClinicName: widget.selectedClinicName,
onChangeValue: onChangeState), onChangeValue: onChangeState,
isVidaPlusProject: isVidaPlusProject,
),
InPatientListPage( InPatientListPage(
isMyInPatient: true, isMyInPatient: true,
patientSearchViewModel: model, patientSearchViewModel: model,
isAllClinic: widget.isAllClinic, isAllClinic: widget.isAllClinic,
showBottomSheet: widget.showBottomSheet, showBottomSheet: widget.showBottomSheet,
selectedClinicName: widget.selectedClinicName, selectedClinicName: widget.selectedClinicName,
onChangeValue: onChangeState), onChangeValue: onChangeState,
DischargedPatient(), isVidaPlusProject: isVidaPlusProject,
),
DischargedPatient(
isVidaPlusProject: isVidaPlusProject,
),
], ],
), ),
), ),

@ -12,11 +12,12 @@ class ListOfAllInPatient extends StatelessWidget {
required this.isAllClinic, required this.isAllClinic,
required this.hasQuery, required this.hasQuery,
required this.patientSearchViewModel, required this.patientSearchViewModel,
required this.isVidaPlusProject,
}) : super(key: key); }) : super(key: key);
final bool isAllClinic; final bool isAllClinic;
final bool hasQuery; final bool hasQuery;
final bool isVidaPlusProject;
final PatientSearchViewModel patientSearchViewModel; final PatientSearchViewModel patientSearchViewModel;
@override @override
@ -55,6 +56,7 @@ class ListOfAllInPatient extends StatelessWidget {
"isInpatient": true, "isInpatient": true,
"arrivalType": "1", "arrivalType": "1",
"isMyPatient": patientSearchViewModel.filteredInPatientItems[index].doctorId == patientSearchViewModel.doctorProfile!.doctorID, "isMyPatient": patientSearchViewModel.filteredInPatientItems[index].doctorId == patientSearchViewModel.doctorProfile!.doctorID,
"isVidaPlusProject": isVidaPlusProject,
}); });
}); });
}, },

@ -11,10 +11,12 @@ class ListOfMyInpatient extends StatelessWidget {
required this.isAllClinic, required this.isAllClinic,
required this.hasQuery, required this.hasQuery,
required this.patientSearchViewModel, required this.patientSearchViewModel,
required this.isVidaPlusProject,
}) : super(key: key); }) : super(key: key);
final bool isAllClinic; final bool isAllClinic;
final bool hasQuery; final bool hasQuery;
final bool isVidaPlusProject;
final PatientSearchViewModel patientSearchViewModel; final PatientSearchViewModel patientSearchViewModel;
@override @override
@ -56,6 +58,7 @@ class ListOfMyInpatient extends StatelessWidget {
"isInpatient": true, "isInpatient": true,
"arrivalType": "1", "arrivalType": "1",
"isMyPatient": true, "isMyPatient": true,
"isVidaPlusProject": isVidaPlusProject,
}); });
}, },
); );

@ -94,7 +94,7 @@ class _InsuranceApprovalScreenNewState
onTap: (){}, onTap: (){},
profileUrl: model profileUrl: model
.insuranceApprovalInPatient[index] .insuranceApprovalInPatient[index]
.doctorImage!, .doctorImage??'',
clinic: model clinic: model
.insuranceApprovalInPatient[index] .insuranceApprovalInPatient[index]
.clinicName!, .clinicName!,

@ -121,7 +121,7 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(50), borderRadius: BorderRadius.circular(50),
child: Image.network( child: Image.network(
model.insuranceApprovalInPatient[indexInsurance].doctorImage!, model.insuranceApprovalInPatient[indexInsurance].doctorImage??'',
fit: BoxFit.fill, fit: BoxFit.fill,
width: 700, width: 700,
), ),

@ -34,11 +34,12 @@ class _AdmissionOrdersScreenState extends State<AdmissionOrdersScreen> {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
bool isVidaPlusProject = routeArgs['isVidaPlusProject'];
if (routeArgs.containsKey('isDischargedPatient')) if (routeArgs.containsKey('isDischargedPatient'))
isDischargedPatient = routeArgs['isDischargedPatient']; isDischargedPatient = routeArgs['isDischargedPatient'];
return BaseView<PendingOrdersViewModel>( return BaseView<PendingOrdersViewModel>(
onModelReady: (model) => model.getAdmissionOrders( onModelReady: (model) => model.getAdmissionOrders(
admissionNo: int.parse(patient.admissionNo!), admissionNo: isVidaPlusProject? patient.admissionID??-1 :int.parse(patient.admissionNo!),
patientId: patient.patientMRN!), patientId: patient.patientMRN!),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,

@ -33,6 +33,7 @@ class _DiabeticChartState extends State<DiabeticChart> {
List<TimeSeriesSales2> timeSeriesData1 = []; List<TimeSeriesSales2> timeSeriesData1 = [];
List<TimeSeriesSales2> timeSeriesData2 = []; List<TimeSeriesSales2> timeSeriesData2 = [];
bool isVidaPlusProject= false;
List<DiabeticType> diabeticType = [ List<DiabeticType> diabeticType = [
DiabeticType(nameAr: "Urine Glucose", nameEn: "Urine Glucose", value: 1), DiabeticType(nameAr: "Urine Glucose", nameEn: "Urine Glucose", value: 1),
@ -47,12 +48,13 @@ class _DiabeticChartState extends State<DiabeticChart> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
isVidaPlusProject = routeArgs['isVidaPlusProject'];
ProjectViewModel projectsProvider = Provider.of(context); ProjectViewModel projectsProvider = Provider.of(context);
return BaseView<PatientViewModel>( return BaseView<PatientViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
selectedDiabeticType = diabeticType[2]; selectedDiabeticType = diabeticType[2];
await model.getDiabeticChartValues(patient, selectedDiabeticType.value!, isLocalBusy: false); await model.getDiabeticChartValues(patient, selectedDiabeticType.value!, isLocalBusy: false, isVidaPlusProject: isVidaPlusProject);
generateData(model); generateData(model);
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
@ -178,6 +180,7 @@ class _DiabeticChartState extends State<DiabeticChart> {
if (model.diabeticChartValuesList.length > 0) { if (model.diabeticChartValuesList.length > 0) {
model.diabeticChartValuesList.toList().forEach( model.diabeticChartValuesList.toList().forEach(
(element) { (element) {
if(element.dateChart == null ) return;
DateTime elementDate = AppDateUtils.getDateTimeFromServerFormat(element.dateChart!); DateTime elementDate = AppDateUtils.getDateTimeFromServerFormat(element.dateChart!);
if (element.resultValue!.toInt() != 0) if (element.resultValue!.toInt() != 0)
timeSeriesData1.add( timeSeriesData1.add(
@ -206,7 +209,7 @@ class _DiabeticChartState extends State<DiabeticChart> {
timeSeriesData2.clear(); timeSeriesData2.clear();
}); });
await model.getDiabeticChartValues(patient, selectedDiabeticType.value!, isLocalBusy: true); await model.getDiabeticChartValues(patient, selectedDiabeticType.value!, isLocalBusy: true, isVidaPlusProject: isVidaPlusProject);
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
Utils.showErrorToast(model.error); Utils.showErrorToast(model.error);
} }

@ -29,6 +29,7 @@ class _ProgressNoteState extends State<DiagnosisScreen> {
bool isDischargedPatient = false; bool isDischargedPatient = false;
AuthenticationViewModel authenticationViewModel = AuthenticationViewModel(); AuthenticationViewModel authenticationViewModel = AuthenticationViewModel();
late ProjectViewModel projectViewModel; late ProjectViewModel projectViewModel;
bool isVidaPlusProject = false;
getDiagnosisForInPatient(BuildContext context, PatientViewModel model, getDiagnosisForInPatient(BuildContext context, PatientViewModel model,
{bool isLocalBusy = false}) async { {bool isLocalBusy = false}) async {
@ -42,11 +43,11 @@ class _ProgressNoteState extends State<DiagnosisScreen> {
print(type); print(type);
GetDiagnosisForInPatientRequestModel getDiagnosisForInPatientRequestModel = GetDiagnosisForInPatientRequestModel getDiagnosisForInPatientRequestModel =
GetDiagnosisForInPatientRequestModel( GetDiagnosisForInPatientRequestModel(
admissionNo: int.parse(patient.admissionNo!), admissionNo: isVidaPlusProject? patient.admissionID : int.parse(patient.admissionNo!),
patientTypeID: patient.patientType, patientTypeID: patient.patientType,
patientID: patient.patientId, patientID: patient.patientId,
); );
model.getDiagnosisForInPatient(getDiagnosisForInPatientRequestModel); model.getDiagnosisForInPatient(getDiagnosisForInPatientRequestModel,isVidaPlusProject,patient);
} }
@override @override
@ -55,6 +56,7 @@ class _ProgressNoteState extends State<DiagnosisScreen> {
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
isVidaPlusProject = routeArgs['isVidaPlusProject'];
if (routeArgs.containsKey('isDischargedPatient')) if (routeArgs.containsKey('isDischargedPatient'))
isDischargedPatient = routeArgs['isDischargedPatient']; isDischargedPatient = routeArgs['isDischargedPatient'];
return BaseView<PatientViewModel>( return BaseView<PatientViewModel>(

@ -12,8 +12,9 @@ import 'discharge_Summary_widget.dart';
class AllDischargeSummary extends StatefulWidget { class AllDischargeSummary extends StatefulWidget {
final Function? changeCurrentTab; final Function? changeCurrentTab;
final PatiantInformtion? patient; final PatiantInformtion? patient;
final bool isVidaPlusProject;
const AllDischargeSummary({this.changeCurrentTab, this.patient}); const AllDischargeSummary({this.changeCurrentTab, this.patient, this.isVidaPlusProject = false});
@override @override
_AllDischargeSummaryState createState() => _AllDischargeSummaryState(); _AllDischargeSummaryState createState() => _AllDischargeSummaryState();
@ -28,7 +29,8 @@ class _AllDischargeSummaryState extends State<AllDischargeSummary> {
onModelReady: (model) { onModelReady: (model) {
model.getAllDischargeSummary( model.getAllDischargeSummary(
patientId: widget.patient!.patientId!, patientId: widget.patient!.patientId!,
admissionNo: int.parse(widget.patient!.admissionNo!), admissionNo: widget.isVidaPlusProject? widget.patient?.admissionID ?? -1 :int.parse(widget.patient!.admissionNo!),
); );
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(

@ -26,6 +26,7 @@ class _DoctorReplyScreenState extends State<DischargeSummaryPage>
late TabController _tabController; late TabController _tabController;
int _activeTab = 0; int _activeTab = 0;
int pageIndex = 1; int pageIndex = 1;
bool isVidaPlusProject = false;
@override @override
void initState() { void initState() {
@ -51,6 +52,7 @@ class _DoctorReplyScreenState extends State<DischargeSummaryPage>
final screenSize = MediaQuery.of(context).size; final screenSize = MediaQuery.of(context).size;
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
isVidaPlusProject = routeArgs['isVidaPlusProject'];
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
@ -119,8 +121,9 @@ class _DoctorReplyScreenState extends State<DischargeSummaryPage>
children: [ children: [
PendingDischargeSummary( PendingDischargeSummary(
patient: patient, patient: patient,
isVidaPlusProject: isVidaPlusProject,
), ),
AllDischargeSummary(patient: patient), AllDischargeSummary(patient: patient, isVidaPlusProject: isVidaPlusProject,),
], ],
), ),
), ),

@ -12,8 +12,9 @@ import 'discharge_Summary_widget.dart';
class PendingDischargeSummary extends StatefulWidget { class PendingDischargeSummary extends StatefulWidget {
final Function? changeCurrentTab; final Function? changeCurrentTab;
final PatiantInformtion? patient; final PatiantInformtion? patient;
final bool isVidaPlusProject;
const PendingDischargeSummary({Key? key, this.changeCurrentTab, this.patient}) const PendingDischargeSummary({Key? key, this.changeCurrentTab, this.patient, this.isVidaPlusProject = false})
: super(key: key); : super(key: key);
@override @override
@ -30,7 +31,9 @@ class _PendingDischargeSummaryState extends State<PendingDischargeSummary> {
onModelReady: (model) { onModelReady: (model) {
model.getPendingDischargeSummary( model.getPendingDischargeSummary(
patientId: widget.patient!.patientId!, patientId: widget.patient!.patientId!,
admissionNo: int.parse(widget.patient!.admissionNo!), clinicId: widget.patient?.clinicId,
doctorId: widget.patient?.doctorId,
admissionNo: widget.isVidaPlusProject? widget.patient?.admissionID ?? -1 :int.parse(widget.patient!.admissionNo!),
); );
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(

@ -23,8 +23,9 @@ class AddVerifyMedicalReport extends StatefulWidget {
final PatientMedicalReportViewModel? model; final PatientMedicalReportViewModel? model;
final MedicalReportStatus? status; final MedicalReportStatus? status;
final String? medicalNote; final String? medicalNote;
final bool? isVidaPlusProject;
const AddVerifyMedicalReport({Key? key, this.patient, this.patientType, this.arrivalType, this.medicalReport, this.model, this.status, this.medicalNote}) : super(key: key); const AddVerifyMedicalReport({Key? key, this.patient, this.patientType, this.arrivalType, this.medicalReport, this.model, this.status, this.medicalNote, this.isVidaPlusProject}) : super(key: key);
@override @override
_AddVerifyMedicalReportState createState() => _AddVerifyMedicalReportState(); _AddVerifyMedicalReportState createState() => _AddVerifyMedicalReportState();
@ -98,8 +99,8 @@ class _AddVerifyMedicalReportState extends State<AddVerifyMedicalReport> {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
widget.medicalReport != null widget.medicalReport != null
? await widget.model!.updateMedicalReport(widget.patient!, txtOfMedicalReport, widget.medicalReport != null ? widget.medicalReport!.lineItemNo! : 0, ? await widget.model!.updateMedicalReport(widget.patient!, txtOfMedicalReport, widget.medicalReport != null ? widget.medicalReport!.lineItemNo! : 0,
widget.medicalReport != null ? widget.medicalReport!.invoiceNo! : "") widget.medicalReport != null ? widget.medicalReport!.invoiceNo! : "", widget.isVidaPlusProject)
: await widget.model!.addMedicalReport(widget.patient!, txtOfMedicalReport); : await widget.model!.addMedicalReport(widget.patient!, txtOfMedicalReport, widget.isVidaPlusProject);
//model.getMedicalReportList(patient); //model.getMedicalReportList(patient);
Navigator.pop(context); Navigator.pop(context);
@ -127,7 +128,7 @@ class _AddVerifyMedicalReportState extends State<AddVerifyMedicalReport> {
txtOfMedicalReport = (await _controller.getText())!; txtOfMedicalReport = (await _controller.getText())!;
if (txtOfMedicalReport.isNotEmpty) { if (txtOfMedicalReport.isNotEmpty) {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await widget.model!.verifyMedicalReport(widget.patient!, widget.medicalReport!); await widget.model!.verifyMedicalReport(widget.patient!, widget.medicalReport!, widget.isVidaPlusProject);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
Navigator.pop(context); Navigator.pop(context);
if (widget.model!.state == ViewState.ErrorLocal) { if (widget.model!.state == ViewState.ErrorLocal) {

@ -33,18 +33,20 @@ class MedicalReportPage extends StatefulWidget {
} }
class _MedicalReportPageState extends State<MedicalReportPage> { class _MedicalReportPageState extends State<MedicalReportPage> {
bool isVidaPlusProject = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
String patientType = routeArgs['patientType']; String patientType = routeArgs['patientType'];
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
isVidaPlusProject = routeArgs['isVidaPlusProject'];
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PatientMedicalReportViewModel>( return BaseView<PatientMedicalReportViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
await model.getDoctorProfile(isGetProfile: true); await model.getDoctorProfile(isGetProfile: true);
await model.getMedicalReportList(patient); await model.getMedicalReportList(patient, isVidaPlusProject: isVidaPlusProject);
await model.getMedicalReportTemplate(); await model.getMedicalReportTemplate();
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
@ -97,6 +99,7 @@ class _MedicalReportPageState extends State<MedicalReportPage> {
arrivalType: arrivalType, arrivalType: arrivalType,
model: model, model: model,
status: MedicalReportStatus.ADD, status: MedicalReportStatus.ADD,
isVidaPlusProject: isVidaPlusProject
), ),
settings: RouteSettings(name: 'AddVerifyMedicalReport'), settings: RouteSettings(name: 'AddVerifyMedicalReport'),
), ),

@ -31,6 +31,7 @@ DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
class ProgressNoteScreen extends StatefulWidget { class ProgressNoteScreen extends StatefulWidget {
final int visitType; final int visitType;
const ProgressNoteScreen({Key? key, required this.visitType}) : super(key: key); const ProgressNoteScreen({Key? key, required this.visitType}) : super(key: key);
@override @override
@ -43,6 +44,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
bool isDischargedPatient = false; bool isDischargedPatient = false;
late AuthenticationViewModel authenticationViewModel; late AuthenticationViewModel authenticationViewModel;
late ProjectViewModel projectViewModel; late ProjectViewModel projectViewModel;
bool isVidaPlusProject = false;
getProgressNoteList(BuildContext context, PatientViewModel model, {bool isLocalBusy = false}) async { getProgressNoteList(BuildContext context, PatientViewModel model, {bool isLocalBusy = false}) async {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
@ -54,12 +56,12 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
ProgressNoteRequest progressNoteRequest = ProgressNoteRequest( ProgressNoteRequest progressNoteRequest = ProgressNoteRequest(
visitType: widget.visitType, visitType: widget.visitType,
// if equal 5 then this will return progress note // if equal 5 then this will return progress note
admissionNo: int.parse(patient.admissionNo!), admissionNo: (isVidaPlusProject)?patient.admissionID:int.parse(patient.admissionNo!),
projectID: patient.projectId, projectID: patient.projectId,
tokenID: token, tokenID: token,
patientTypeID: patient.patientType, patientTypeID: patient.patientType,
languageID: 2); languageID: 2);
model.getPatientProgressNote(progressNoteRequest.toJson(), isLocalBusy: isLocalBusy).then((c) { model.getPatientProgressNote(progressNoteRequest.toJson(),patient, isLocalBusy: isLocalBusy, isVidaPlus: isVidaPlusProject).then((c) {
notesList = model.patientProgressNoteList; notesList = model.patientProgressNoteList;
}); });
} }
@ -71,9 +73,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
isVidaPlusProject = routeArgs['isVidaPlusProject'] ?? false;
if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient']; if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient'];
return BaseView<PatientViewModel>( return BaseView<PatientViewModel>(
onModelReady: (model) => getProgressNoteList(context, model), onModelReady: (model) => getProgressNoteList(context, model, ),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
backgroundColor: Theme.of(context).scaffoldBackgroundColor, backgroundColor: Theme.of(context).scaffoldBackgroundColor,
@ -101,6 +104,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
patient: patient, patient: patient,
visitType: widget.visitType, visitType: widget.visitType,
isUpdate: false, isUpdate: false,
isVidaPlusProject:isVidaPlusProject
), ),
settings: RouteSettings(name: 'UpdateNoteOrder'), settings: RouteSettings(name: 'UpdateNoteOrder'),
), ),
@ -219,7 +223,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
patientOutSA: false, patientOutSA: false,
); );
await model.updatePatientProgressNote(reqModel); await model.updatePatientProgressNote(reqModel);
await getProgressNoteList(context, model, isLocalBusy: true); await getProgressNoteList(context, model, isLocalBusy: true,);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
}); });
}, },
@ -274,7 +278,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
patientOutSA: false, patientOutSA: false,
); );
await model.updatePatientProgressNote(reqModel); await model.updatePatientProgressNote(reqModel);
await getProgressNoteList(context, model, isLocalBusy: true); await getProgressNoteList(context, model, isLocalBusy: true, );
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
}); });
}, },

@ -36,10 +36,11 @@ class UpdateNoteOrder extends StatefulWidget {
final PatiantInformtion patient; final PatiantInformtion patient;
final int? visitType; final int? visitType;
final bool isUpdate; final bool isUpdate;
final bool isVidaPlusProject;
final List<dynamic>? elementList; final List<dynamic>? elementList;
final Function(dynamic)? okFunction; final Function(dynamic)? okFunction;
const UpdateNoteOrder({Key? key, this.note, required this.patientModel, required this.patient, this.visitType, required this.isUpdate, this.elementList, this.okFunction}) : super(key: key); const UpdateNoteOrder({Key? key, this.note, required this.patientModel, required this.patient, this.visitType, required this.isUpdate, this.elementList, this.okFunction, this.isVidaPlusProject = false}) : super(key: key);
@override @override
_UpdateNoteOrderState createState() => _UpdateNoteOrderState(); _UpdateNoteOrderState createState() => _UpdateNoteOrderState();
@ -249,7 +250,7 @@ class _UpdateNoteOrderState extends State<UpdateNoteOrder> {
await widget.patientModel.updatePatientProgressNote(reqModel); await widget.patientModel.updatePatientProgressNote(reqModel);
} else { } else {
CreateNoteModel reqModel = CreateNoteModel( CreateNoteModel reqModel = CreateNoteModel(
admissionNo: int.parse(widget.patient.admissionNo!), admissionNo: (widget.isVidaPlusProject)?widget.patient.admissionID:int.parse(widget.patient.admissionNo!),
createdBy: doctorProfile.doctorID, createdBy: doctorProfile.doctorID,
visitType: widget.visitType, visitType: widget.visitType,
patientID: widget.patient.patientId, patientID: widget.patient.patientId,
@ -259,7 +260,7 @@ class _UpdateNoteOrderState extends State<UpdateNoteOrder> {
notes: progressNoteController.text, notes: progressNoteController.text,
conditionId: selectValue['ParameterCode']); conditionId: selectValue['ParameterCode']);
await widget.patientModel.createPatientProgressNote(reqModel); await widget.patientModel.createPatientProgressNote(reqModel, widget.patient, isVidaPlus: widget.isVidaPlusProject);
} }
if (widget.patientModel.state == ViewState.ErrorLocal) { if (widget.patientModel.state == ViewState.ErrorLocal) {
@ -268,11 +269,11 @@ class _UpdateNoteOrderState extends State<UpdateNoteOrder> {
ProgressNoteRequest progressNoteRequest = ProgressNoteRequest( ProgressNoteRequest progressNoteRequest = ProgressNoteRequest(
visitType: widget.visitType, visitType: widget.visitType,
// if equal 5 then this will return progress note // if equal 5 then this will return progress note
admissionNo: int.parse(widget.patient.admissionNo!), admissionNo: (widget.isVidaPlusProject)?widget.patient.admissionID:int.parse(widget.patient.admissionNo!),
projectID: widget.patient.projectId, projectID: widget.patient.projectId,
patientTypeID: widget.patient.patientType, patientTypeID: widget.patient.patientType,
languageID: 2); languageID: 2);
await widget.patientModel.getPatientProgressNote(progressNoteRequest.toJson()); await widget.patientModel.getPatientProgressNote(progressNoteRequest.toJson(), widget.patient, isVidaPlus: widget.isVidaPlusProject);
} }
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).yourOrderAddedSuccessfully); DrAppToastMsg.showSuccesToast(TranslationBase.of(context).yourOrderAddedSuccessfully);

@ -32,6 +32,7 @@ class _ProgressNoteState extends State<NursingProgressNoteScreen> {
bool isDischargedPatient = false; bool isDischargedPatient = false;
AuthenticationViewModel authenticationViewModel = AuthenticationViewModel(); AuthenticationViewModel authenticationViewModel = AuthenticationViewModel();
late ProjectViewModel projectViewModel; late ProjectViewModel projectViewModel;
bool isVidaPlusProject= false;
getProgressNoteList(BuildContext context, PatientViewModel model, {bool isLocalBusy = false}) async { getProgressNoteList(BuildContext context, PatientViewModel model, {bool isLocalBusy = false}) async {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
@ -40,9 +41,10 @@ class _ProgressNoteState extends State<NursingProgressNoteScreen> {
print(type); print(type);
GetNursingProgressNoteRequestModel getNursingProgressNoteRequestModel = GetNursingProgressNoteRequestModel( GetNursingProgressNoteRequestModel getNursingProgressNoteRequestModel = GetNursingProgressNoteRequestModel(
admissionNo: int.parse(patient.admissionNo!), admissionNo: (isVidaPlusProject)? patient.admissionID :int.parse(patient.admissionNo!),
patientTypeID: patient.patientType, patientTypeID: patient.patientType,
patientID: patient.patientId, patientID: patient.patientId,
patientMRN: patient.patientId,
); );
model.getNursingProgressNote(getNursingProgressNoteRequestModel); model.getNursingProgressNote(getNursingProgressNoteRequestModel);
} }
@ -53,6 +55,7 @@ class _ProgressNoteState extends State<NursingProgressNoteScreen> {
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
isVidaPlusProject = routeArgs['isVidaPlusProject']?? false;
if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient']; if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient'];
return BaseView<PatientViewModel>( return BaseView<PatientViewModel>(
onModelReady: (model) => getProgressNoteList(context, model), onModelReady: (model) => getProgressNoteList(context, model),

@ -19,8 +19,10 @@ class PendingOrdersScreen extends StatelessWidget {
patient = routeArgs['patient']; patient = routeArgs['patient'];
String patientType = routeArgs['patientType']; String patientType = routeArgs['patientType'];
bool isInpatient = routeArgs['isInpatient']; bool isInpatient = routeArgs['isInpatient'];
var isVidaPlus = routeArgs['isVidaPlusProject'];
return BaseView<PendingOrdersViewModel>( return BaseView<PendingOrdersViewModel>(
onModelReady: (model) => model.getPendingOrders(patientId: patient.patientMRN!, admissionNo: int.parse(patient.admissionNo!)), onModelReady: (model) => model.getPendingOrders(patientId: patient.patientMRN!, admissionNo: isVidaPlus? patient.admissionID?? 0 :int.parse(patient.admissionNo!), isVidaPlus: isVidaPlus),
builder: (BuildContext context, PendingOrdersViewModel model, Widget? child) => AppScaffold( builder: (BuildContext context, PendingOrdersViewModel model, Widget? child) => AppScaffold(
appBar: PatientProfileAppBar( appBar: PatientProfileAppBar(
patient, patient,

@ -14,6 +14,7 @@ class PatientProfileCardModel {
final bool isDartIcon; final bool isDartIcon;
final IconData? dartIcon; final IconData? dartIcon;
final Color? color; final Color? color;
final bool isVidaPlusProject;
PatientProfileCardModel( PatientProfileCardModel(
this.nameLine1, this.nameLine1,
@ -29,5 +30,6 @@ class PatientProfileCardModel {
this.isDartIcon = false, this.isDartIcon = false,
this.dartIcon, this.dartIcon,
this.color, this.color,
this.isVidaPlusProject = false,
}); });
} }

@ -68,6 +68,7 @@ String noteValidation ="";
TextEditingController noteController = TextEditingController(); TextEditingController noteController = TextEditingController();
late StreamController<String> videoCallDurationStreamController; late StreamController<String> videoCallDurationStreamController;
late Stream<String> videoCallDurationStream; late Stream<String> videoCallDurationStream;
bool isVidaPlusProject = false;
@override @override
void initState() { void initState() {
@ -95,6 +96,7 @@ String noteValidation ="";
arrivalType = routeArgs['arrivalType']; arrivalType = routeArgs['arrivalType'];
from = routeArgs['from']; from = routeArgs['from'];
to = routeArgs['to']; to = routeArgs['to'];
isVidaPlusProject = routeArgs['isVidaPlusProject']?? false;
isSigned = routeArgs['isSigned'] ?? false; isSigned = routeArgs['isSigned'] ?? false;
if (routeArgs.containsKey("isSearch")) { if (routeArgs.containsKey("isSearch")) {
isFromSearch = routeArgs['isSearch']; isFromSearch = routeArgs['isSearch'];
@ -148,7 +150,7 @@ String noteValidation ="";
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final screenSize = MediaQuery.of(context).size; final screenSize = MediaQuery.of(context).size;
ProjectViewModel projectViewModel = Provider.of<ProjectViewModel>(context); ProjectViewModel projectViewModel = Provider.of<ProjectViewModel>(context, listen: false);
return BaseView<LiveCarePatientViewModel>( return BaseView<LiveCarePatientViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
if (isFromLiveCare && patient.patientStatus == 1) await model.addPatientToDoctorList(patient.vcId!); if (isFromLiveCare && patient.patientStatus == 1) await model.addPatientToDoctorList(patient.vcId!);
@ -202,6 +204,7 @@ String noteValidation ="";
to: to, to: to,
isDischargedPatient: isDischargedPatient, isDischargedPatient: isDischargedPatient,
isFromSearch: isFromSearch, isFromSearch: isFromSearch,
isVidaPlusProject: isVidaPlusProject
) )
: ProfileGridForOther( : ProfileGridForOther(
patient: patient, patient: patient,
@ -231,7 +234,7 @@ String noteValidation ="";
onModelReady: (model) async { onModelReady: (model) async {
model.getDoctorProfile(); model.getDoctorProfile();
if (isInpatient) { if (isInpatient) {
await model.getEpisodeForInpatient(patient); await model.getEpisodeForInpatient(patient, isVidaPlusProject);
} }
}, },
builder: (_, model, w) => Positioned( builder: (_, model, w) => Positioned(
@ -487,7 +490,7 @@ String noteValidation ="";
); );
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
if (patient.admissionNo != null && patient.admissionNo!.isNotEmpty) { if (patient.admissionNo != null && patient.admissionNo!.isNotEmpty) {
PostEpisodeForInpatientRequestModel postEpisodeReqModel = PostEpisodeForInpatientRequestModel(admissionNo: int.parse(patient.admissionNo!), patientID: patient.patientId); PostEpisodeForInpatientRequestModel postEpisodeReqModel = PostEpisodeForInpatientRequestModel(admissionNo: isVidaPlusProject?patient.admissionID:int.parse(patient.admissionNo!), patientID: patient.patientId);
await model.postEpisodeForInPatient(postEpisodeReqModel); await model.postEpisodeForInPatient(postEpisodeReqModel);
} else { } else {
PostEpisodeReqModel postEpisodeReqModel = PostEpisodeReqModel(appointmentNo: int.parse(patient.appointmentNo.toString()), patientMRN: patient.patientMRN); PostEpisodeReqModel postEpisodeReqModel = PostEpisodeReqModel(appointmentNo: int.parse(patient.appointmentNo.toString()), patientMRN: patient.patientMRN);
@ -501,7 +504,7 @@ String noteValidation ="";
} else { } else {
patient.episodeNo = model.episodeID; patient.episodeNo = model.episodeID;
if(Utils.isVidaPlusProject( if(Utils.isVidaPlusProject(
Provider.of<ProjectViewModel>(context), Provider.of<ProjectViewModel>(context, listen: false),
patient.projectId!, patient.projectId!,
)){ )){
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(

@ -15,11 +15,12 @@ class ProfileGridForInPatient extends StatelessWidget {
final bool isInpatient; final bool isInpatient;
final bool isDischargedPatient; final bool isDischargedPatient;
final bool isFromSearch; final bool isFromSearch;
final bool isVidaPlusProject;
String? from; String? from;
String? to; String? to;
ProfileGridForInPatient( ProfileGridForInPatient(
{Key? key, this.patient, this.patientType, this.arrivalType, this.height, this.isInpatient = false, this.from, this.to, this.isDischargedPatient = false, this.isFromSearch = false}) {Key? key, this.patient, this.patientType, this.arrivalType, this.height, this.isInpatient = false, this.from, this.to, this.isDischargedPatient = false, this.isFromSearch = false, required this.isVidaPlusProject})
: super(key: key); : super(key: key);
@override @override
@ -31,6 +32,7 @@ class ProfileGridForInPatient extends StatelessWidget {
VITAL_SIGN_DETAILS, VITAL_SIGN_DETAILS,
'assets/images/svgs/profile_screen/vital signs.svg', 'assets/images/svgs/profile_screen/vital signs.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).lab, TranslationBase.of(context).lab,
@ -38,6 +40,8 @@ class ProfileGridForInPatient extends StatelessWidget {
LAB_RESULT, LAB_RESULT,
'assets/images/svgs/profile_screen/lab results.svg', 'assets/images/svgs/profile_screen/lab results.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).lab, TranslationBase.of(context).lab,
@ -45,6 +49,7 @@ class ProfileGridForInPatient extends StatelessWidget {
ALL_SPECIAL_LAB_RESULT, ALL_SPECIAL_LAB_RESULT,
'assets/images/svgs/profile_screen/lab results.svg', 'assets/images/svgs/profile_screen/lab results.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).radiology, TranslationBase.of(context).radiology,
@ -52,6 +57,7 @@ class ProfileGridForInPatient extends StatelessWidget {
RADIOLOGY_PATIENT, RADIOLOGY_PATIENT,
'assets/images/svgs/profile_screen/Radiology.svg', 'assets/images/svgs/profile_screen/Radiology.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).patient, TranslationBase.of(context).patient,
@ -59,6 +65,7 @@ class ProfileGridForInPatient extends StatelessWidget {
ORDER_PRESCRIPTION_OLD, ORDER_PRESCRIPTION_OLD,
'assets/images/svgs/profile_screen/order prescription.svg', 'assets/images/svgs/profile_screen/order prescription.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).patient, TranslationBase.of(context).patient,
@ -66,6 +73,7 @@ class ProfileGridForInPatient extends StatelessWidget {
ORDER_PRESCRIPTION_NEW, ORDER_PRESCRIPTION_NEW,
'assets/images/svgs/profile_screen/order prescription.svg', 'assets/images/svgs/profile_screen/order prescription.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).progress, TranslationBase.of(context).progress,
@ -74,6 +82,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/Progress notes.svg', 'assets/images/svgs/profile_screen/Progress notes.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isDischargedPatient: isDischargedPatient, isDischargedPatient: isDischargedPatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).order, TranslationBase.of(context).order,
@ -82,6 +91,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/order sheets.svg', 'assets/images/svgs/profile_screen/order sheets.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isDischargedPatient: isDischargedPatient, isDischargedPatient: isDischargedPatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).orders, TranslationBase.of(context).orders,
@ -90,6 +100,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/Order Procedures.svg', 'assets/images/svgs/profile_screen/Order Procedures.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
//onTap: () {}, //onTap: () {},
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).health, TranslationBase.of(context).health,
@ -97,6 +108,7 @@ class ProfileGridForInPatient extends StatelessWidget {
HEALTH_SUMMARY, HEALTH_SUMMARY,
'assets/images/svgs/profile_screen/health summary.svg', 'assets/images/svgs/profile_screen/health summary.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).medical, TranslationBase.of(context).medical,
@ -105,6 +117,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/medical report.svg', 'assets/images/svgs/profile_screen/medical report.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isDisable: false, isDisable: false,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).referral, TranslationBase.of(context).referral,
@ -113,6 +126,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/refer patient.svg', 'assets/images/svgs/profile_screen/refer patient.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isDisable: isDischargedPatient || isFromSearch, isDisable: isDischargedPatient || isFromSearch,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).insurance, TranslationBase.of(context).insurance,
@ -121,6 +135,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/insurance approval.svg', 'assets/images/svgs/profile_screen/insurance approval.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
//onTap: () {}, //onTap: () {},
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).discharge, TranslationBase.of(context).discharge,
@ -128,6 +143,7 @@ class ProfileGridForInPatient extends StatelessWidget {
DISCHARGE_SUMMARY, DISCHARGE_SUMMARY,
'assets/images/svgs/profile_screen/discharge summary.svg', 'assets/images/svgs/profile_screen/discharge summary.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).patientSick, TranslationBase.of(context).patientSick,
@ -136,6 +152,7 @@ class ProfileGridForInPatient extends StatelessWidget {
'assets/images/svgs/profile_screen/patient sick leave.svg', 'assets/images/svgs/profile_screen/patient sick leave.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
//onTap: () {}, //onTap: () {},
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).operation, TranslationBase.of(context).operation,
@ -143,6 +160,7 @@ class ProfileGridForInPatient extends StatelessWidget {
GET_OPERATION_REPORT, GET_OPERATION_REPORT,
'assets/images/svgs/profile_screen/operating report.svg', 'assets/images/svgs/profile_screen/operating report.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject,
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).pending, TranslationBase.of(context).pending,
@ -150,6 +168,7 @@ class ProfileGridForInPatient extends StatelessWidget {
PENDING_ORDERS, PENDING_ORDERS,
'assets/images/svgs/profile_screen/pending orders.svg', 'assets/images/svgs/profile_screen/pending orders.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).admission, TranslationBase.of(context).admission,
@ -157,6 +176,7 @@ class ProfileGridForInPatient extends StatelessWidget {
ADMISSION_ORDERS, ADMISSION_ORDERS,
'assets/images/svgs/profile_screen/admission req.svg', 'assets/images/svgs/profile_screen/admission req.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
"Nursing", "Nursing",
@ -164,6 +184,7 @@ class ProfileGridForInPatient extends StatelessWidget {
NURSING_PROGRESS_NOTE, NURSING_PROGRESS_NOTE,
'assets/images/svgs/profile_screen/Progress notes.svg', 'assets/images/svgs/profile_screen/Progress notes.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).diagnosis, TranslationBase.of(context).diagnosis,
@ -171,6 +192,7 @@ class ProfileGridForInPatient extends StatelessWidget {
DIAGNOSIS_FOR_IN_PATIENT, DIAGNOSIS_FOR_IN_PATIENT,
'assets/images/svgs/profile_screen/diagnosis.svg', 'assets/images/svgs/profile_screen/diagnosis.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).diabetic, TranslationBase.of(context).diabetic,
@ -178,6 +200,7 @@ class ProfileGridForInPatient extends StatelessWidget {
DIABETIC_CHART_VALUES, DIABETIC_CHART_VALUES,
'assets/images/svgs/profile_screen/diabetic chart.svg', 'assets/images/svgs/profile_screen/diabetic chart.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
"VTE", "VTE",
@ -185,6 +208,7 @@ class ProfileGridForInPatient extends StatelessWidget {
VTE_ASSESSMENT, VTE_ASSESSMENT,
'assets/images/svgs/profile_screen/diabetic chart.svg', 'assets/images/svgs/profile_screen/diabetic chart.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
PatientProfileCardModel( PatientProfileCardModel(
TranslationBase.of(context).pharmacy, TranslationBase.of(context).pharmacy,
@ -192,6 +216,7 @@ class ProfileGridForInPatient extends StatelessWidget {
PHARMACY_INTERVENTION, PHARMACY_INTERVENTION,
'assets/images/svgs/profile_screen/medical report.svg', 'assets/images/svgs/profile_screen/medical report.svg',
isInPatient: isInpatient, isInPatient: isInpatient,
isVidaPlusProject: isVidaPlusProject
), ),
]; ];
@ -223,6 +248,7 @@ class ProfileGridForInPatient extends StatelessWidget {
isDisable: item.isDisable, isDisable: item.isDisable,
onTap: item.onTap, onTap: item.onTap,
isLoading: item.isLoading, isLoading: item.isLoading,
isVidaPlusProject: item.isVidaPlusProject
); );
}).toList(), }).toList(),
), ),

@ -1,9 +1,12 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientRequestModel.dart';
import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientResponseModel.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/provider/robot_provider.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/core/viewModel/patient-referral-viewmodel.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.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/screens/base/base_view.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart'; import 'package:doctor_app_flutter/utils/date-utils.dart';
@ -25,6 +28,9 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:speech_to_text/speech_recognition_error.dart'; import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt; import 'package:speech_to_text/speech_to_text.dart' as stt;
import '../../../../../client/base_app_client.dart' show sharedPref;
import '../../../../../config/shared_pref_kay.dart' show SLECTED_PATIENT_TYPE;
class PatientMakeInPatientReferralScreen extends StatefulWidget { class PatientMakeInPatientReferralScreen extends StatefulWidget {
@override @override
_PatientMakeInPatientReferralScreenState createState() => _PatientMakeInPatientReferralScreenState(); _PatientMakeInPatientReferralScreenState createState() => _PatientMakeInPatientReferralScreenState();
@ -34,6 +40,7 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
PatiantInformtion? patient; PatiantInformtion? patient;
List<dynamic>? referToList; List<dynamic>? referToList;
dynamic _referTo; dynamic _referTo;
dynamic? selectedDiagnosis;
dynamic _selectedBranch; dynamic _selectedBranch;
dynamic _selectedClinic; dynamic _selectedClinic;
dynamic _selectedDoctor; dynamic _selectedDoctor;
@ -53,6 +60,8 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
var recognizedWord; var recognizedWord;
var event = RobotProvider(); var event = RobotProvider();
var isVidaPlusProject = false;
@override @override
void initState() { void initState() {
requestPermissions(); requestPermissions();
@ -141,6 +150,7 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
patient = routeArgs['patient']; patient = routeArgs['patient'];
bool isInpatient = routeArgs['isInpatient']; bool isInpatient = routeArgs['isInpatient'];
isVidaPlusProject = routeArgs['isVidaPlusProject'];
referToList = []; referToList = [];
dynamic sameBranch = {"id": 1, "name": TranslationBase.of(context).sameBranch}; dynamic sameBranch = {"id": 1, "name": TranslationBase.of(context).sameBranch};
dynamic otherBranch = {"id": 2, "name": TranslationBase.of(context).otherBranch}; dynamic otherBranch = {"id": 2, "name": TranslationBase.of(context).otherBranch};
@ -149,8 +159,30 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
final screenSize = MediaQuery.of(context).size; final screenSize = MediaQuery.of(context).size;
getDiagnosisForInPatient(BuildContext context, PatientReferralViewModel model,
{bool isLocalBusy = false}) async {
final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
// String type = await sharedPref.getString(SLECTED_PATIENT_TYPE);
//
// print(type);
String type = await sharedPref.getString(SLECTED_PATIENT_TYPE) == '0' ? "2" : "1";
print(type);
GetDiagnosisForInPatientRequestModel getDiagnosisForInPatientRequestModel =
GetDiagnosisForInPatientRequestModel(
admissionNo: isVidaPlusProject? patient.admissionID : int.parse(patient.admissionNo!),
patientTypeID: patient.patientType,
patientID: patient.patientId,
);
model.getDiagnosisForInPatient(getDiagnosisForInPatientRequestModel,isVidaPlusProject,patient);
}
return BaseView<PatientReferralViewModel>( return BaseView<PatientReferralViewModel>(
onModelReady: (model) => model.getReferralFrequencyList(), onModelReady: (model) {
model.getReferralFrequencyList();
getDiagnosisForInPatient(context, model);
},
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
appBarTitle: TranslationBase.of(context).referPatient, appBarTitle: TranslationBase.of(context).referPatient,
@ -434,6 +466,47 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
onChanged: (value) {}, onChanged: (value) {},
onFieldSubmitted: () {}, onFieldSubmitted: () {},
), ),
Visibility(
visible: isVidaPlusProject,
child:
Column(
children: [
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: TranslationBase.of(context).diagnosis,
dropDownText: selectedDiagnosis != null ? selectedDiagnosis['selectedDisease'] : null,
enabled: false,
isTextFieldHasSuffix: true,
validationError: branchError,
onClick: () {
ListSelectDialog dialog = ListSelectDialog(
list: model.diagnosisForInPatientList,
attributeName: 'selectedDisease',
attributeValueId: 'selectedIcdCode',
okText: TranslationBase.of(context).ok,
okFunction: (selectedValue) {
setState(() {
selectedDiagnosis = selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
},
onChanged: (value) {},
onFieldSubmitted: () {},
),
],
),
),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
@ -552,6 +625,7 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
_selectedBranch == null || _selectedBranch == null ||
_selectedClinic == null || _selectedClinic == null ||
_selectedDoctor == null || _selectedDoctor == null ||
( isVidaPlusProject && selectedDiagnosis == null) ||
_remarksController.text == null || _remarksController.text == null ||
_extController.text == null) return; _extController.text == null) return;
{ {
@ -566,7 +640,10 @@ class _PatientMakeInPatientReferralScreenState extends State<PatientMakeInPatien
remarks: _remarksController.text, remarks: _remarksController.text,
priority: _activePriority, priority: _activePriority,
referralDate: appointmentDate, referralDate: appointmentDate,
isLocalBusy: true); diagnosis: selectedDiagnosis,
isLocalBusy: true,
isVidaPlusProject
);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (model.state == ViewState.ErrorLocal) if (model.state == ViewState.ErrorLocal)
DrAppToastMsg.showErrorToast(model.error); DrAppToastMsg.showErrorToast(model.error);

@ -25,9 +25,19 @@ class NewPrescriptionsPage extends StatelessWidget {
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
bool isInpatient = routeArgs['isInpatient']; bool isInpatient = routeArgs['isInpatient'];
bool isFromLiveCare = routeArgs['isFromLiveCare']; bool isFromLiveCare = routeArgs['isFromLiveCare'];
bool isVidaPlusProject = routeArgs['isVidaPlusProject'];
return BaseView<PrescriptionViewModel>( return BaseView<PrescriptionViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
await model.getPrescriptionListNew(mrn: patient.patientMRN, appNo: patient.appointmentNo == null ? 0 : int.parse(patient.appointmentNo.toString())); // if(isVidaPlusProject)
// {
// model.getMedicationForInPatient(patient, isVidaPlusProject);
// }else {
await model.getPrescriptionListNew(
mrn: patient.patientMRN,
appNo: patient.appointmentNo == null
? 0
: int.parse(patient.appointmentNo.toString()));
// }
await model.isPrincipalCovered(patient: patient); await model.isPrincipalCovered(patient: patient);
}, },

@ -27,9 +27,11 @@ class OldPrescriptionsPage extends StatelessWidget {
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
bool isInpatient = routeArgs['isInpatient']; bool isInpatient = routeArgs['isInpatient'];
bool isFromLiveCare = routeArgs['isFromLiveCare']; bool isFromLiveCare = routeArgs['isFromLiveCare'];
bool isVidaPlusProject = routeArgs['isVidaPlusProject'];
var admissionNumber = isVidaPlusProject ? patient.admissionID : patient.admissionNo;
return BaseView<PrescriptionViewModel>( return BaseView<PrescriptionViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
patient.admissionNo == null ? model.getPrescriptions(patient, patientType: patientType, isLocalBusy: false) : model.getMedicationForInPatient(patient); admissionNumber == null ? model.getPrescriptions(patient, patientType: patientType, isLocalBusy: false) : model.getMedicationForInPatient(patient, isVidaPlusProject);
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
@ -39,7 +41,7 @@ class OldPrescriptionsPage extends StatelessWidget {
patient, patient,
isInpatient: isInpatient, isInpatient: isInpatient,
), ),
body: patient.admissionNo == null body: admissionNumber == null
? FractionallySizedBox( ? FractionallySizedBox(
widthFactor: 1.0, widthFactor: 1.0,
child: SingleChildScrollView( child: SingleChildScrollView(
@ -167,6 +169,7 @@ class OldPrescriptionsPage extends StatelessWidget {
patient: patient, patient: patient,
patientType: patientType, patientType: patientType,
arrivalType: arrivalType, arrivalType: arrivalType,
isVidaPlusProject: isVidaPlusProject,
startOn: AppDateUtils.getDateTimeFromServerFormat( startOn: AppDateUtils.getDateTimeFromServerFormat(
model.medicationForInPatient[index].startDatetime!, model.medicationForInPatient[index].startDatetime!,
), ),

@ -21,6 +21,7 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
final DateTime? startOn; final DateTime? startOn;
final DateTime? stopOn; final DateTime? stopOn;
final int? prescriptionIndex; final int? prescriptionIndex;
final bool isVidaPlusProject;
PrescriptionItemsInPatientPage( PrescriptionItemsInPatientPage(
{Key? key, {Key? key,
@ -30,6 +31,7 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
this.arrivalType, this.arrivalType,
this.stopOn, this.stopOn,
this.startOn, this.startOn,
this.isVidaPlusProject = false,
this.prescriptionIndex}); this.prescriptionIndex});
@override @override
@ -38,7 +40,7 @@ class PrescriptionItemsInPatientPage extends StatelessWidget {
return BaseView<PrescriptionViewModel>( return BaseView<PrescriptionViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
if (model.medicationForInPatient.length == 0) { if (model.medicationForInPatient.length == 0) {
await model.getMedicationForInPatient(patient!); await model.getMedicationForInPatient(patient!,isVidaPlusProject);
} }
}, },
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(

@ -1996,6 +1996,7 @@ class TranslationBase {
String get dateFromCanNotBeEmpty => localizedValues['dateFromCanNotBeEmpty']![locale.languageCode]!; String get dateFromCanNotBeEmpty => localizedValues['dateFromCanNotBeEmpty']![locale.languageCode]!;
String get open => localizedValues['open']![locale.languageCode]!; String get open => localizedValues['open']![locale.languageCode]!;
String get chiefComplaintLengthErrorMsg => localizedValues['chiefComplaintLengthErrorMsg']![locale.languageCode]!; String get chiefComplaintLengthErrorMsg => localizedValues['chiefComplaintLengthErrorMsg']![locale.languageCode]!;
String get filterInPatient => localizedValues['filterInPatient']![locale.languageCode]!;
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -31,6 +31,7 @@ class PatientProfileButton extends StatelessWidget {
final IconData? dartIcon; final IconData? dartIcon;
final bool isFromLiveCare; final bool isFromLiveCare;
final Color? color; final Color? color;
final bool isVidaPlusProject;
PatientProfileButton({ PatientProfileButton({
Key? key, Key? key,
@ -53,6 +54,7 @@ class PatientProfileButton extends StatelessWidget {
this.dartIcon, this.dartIcon,
this.isFromLiveCare = false, this.isFromLiveCare = false,
this.color, this.color,
this.isVidaPlusProject = false
}) : super(key: key); }) : super(key: key);
@override @override
@ -152,7 +154,8 @@ class PatientProfileButton extends StatelessWidget {
'isInpatient': isInPatient, 'isInpatient': isInPatient,
'isDischargedPatient': isDischargedPatient, 'isDischargedPatient': isDischargedPatient,
'isSelectInpatient': isSelectInpatient, 'isSelectInpatient': isSelectInpatient,
"isFromLiveCare": isFromLiveCare "isFromLiveCare": isFromLiveCare,
"isVidaPlusProject": isVidaPlusProject
}); });
} }
} }

@ -104,26 +104,28 @@ class AppScaffold extends StatelessWidget {
) )
: null, : null,
bottomSheet: bottomSheet, bottomSheet: bottomSheet,
body: projectProvider.isInternetConnection body:
? baseViewModel != null // projectProvider.isInternetConnection
// ?
baseViewModel != null
? NetworkBaseView( ? NetworkBaseView(
baseViewModel: baseViewModel!, baseViewModel: baseViewModel!,
child: body!, child: body!,
) )
: Stack(children: <Widget>[body!, buildAppLoaderWidget(isLoading)]) : Stack(children: <Widget>[body!, buildAppLoaderWidget(isLoading)])
: Center( // : Center(
child: Column( // child: Column(
mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, // crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ // children: <Widget>[
Image.asset( // Image.asset(
"assets/images/undraw_connected_world_wuay.png", // "assets/images/undraw_connected_world_wuay.png",
height: 250, // height: 250,
), // ),
AppText('No Internet Connection') // AppText('No Internet Connection')
], // ],
), // ),
), // ),
), ),
); );
} }

@ -6,6 +6,7 @@ import '../../../config/config.dart';
class ListSelectDialog extends StatefulWidget { class ListSelectDialog extends StatefulWidget {
final List<dynamic> list; final List<dynamic> list;
final String attributeName; final String attributeName;
final String attributeValueId; final String attributeValueId;
final okText; final okText;

@ -1,4 +1,4 @@
platform :osx, '10.14' platform :osx, '10.15'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'

@ -21,12 +21,14 @@
/* End PBXAggregateTarget section */ /* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
09A1AD8D4F8A8F8725B8D6FC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE4DB06EF7EF7BB27A830F2 /* Pods_Runner.framework */; };
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
78C75CF1E9AAFBFC6E94EB08 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78A3D7D2DFBA3A9BB18C0D2E /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@ -64,7 +66,7 @@
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
33CC10ED2044A3C60003C045 /* doctor_app_flutter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "doctor_app_flutter.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10ED2044A3C60003C045 /* doctor_app_flutter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = doctor_app_flutter.app; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
@ -76,8 +78,16 @@
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; }; 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
4852FA391E6B47E9826C5326 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
717A2BECE9B10C5A295FDEEE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
726FA86DB91B92DEF240189B /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
78A3D7D2DFBA3A9BB18C0D2E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
AEE4DB06EF7EF7BB27A830F2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CD86933CD327D3EB10869278 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
D6F092FFEFB869189B0E20FD /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
E6FB6A5552D457E82E6697A6 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -85,6 +95,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
78C75CF1E9AAFBFC6E94EB08 /* Pods_RunnerTests.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -92,6 +103,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
09A1AD8D4F8A8F8725B8D6FC /* Pods_Runner.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -125,6 +137,7 @@
331C80D6294CF71000263BE5 /* RunnerTests */, 331C80D6294CF71000263BE5 /* RunnerTests */,
33CC10EE2044A3C60003C045 /* Products */, 33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */, D73912EC22F37F3D000D13A0 /* Frameworks */,
B89F1D6939BABE6A1607D6D9 /* Pods */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -172,9 +185,25 @@
path = Runner; path = Runner;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
B89F1D6939BABE6A1607D6D9 /* Pods */ = {
isa = PBXGroup;
children = (
D6F092FFEFB869189B0E20FD /* Pods-Runner.debug.xcconfig */,
E6FB6A5552D457E82E6697A6 /* Pods-Runner.release.xcconfig */,
CD86933CD327D3EB10869278 /* Pods-Runner.profile.xcconfig */,
717A2BECE9B10C5A295FDEEE /* Pods-RunnerTests.debug.xcconfig */,
4852FA391E6B47E9826C5326 /* Pods-RunnerTests.release.xcconfig */,
726FA86DB91B92DEF240189B /* Pods-RunnerTests.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
D73912EC22F37F3D000D13A0 /* Frameworks */ = { D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
AEE4DB06EF7EF7BB27A830F2 /* Pods_Runner.framework */,
78A3D7D2DFBA3A9BB18C0D2E /* Pods_RunnerTests.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@ -186,6 +215,7 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = ( buildPhases = (
81DB0F2B4C82C315490E48DC /* [CP] Check Pods Manifest.lock */,
331C80D1294CF70F00263BE5 /* Sources */, 331C80D1294CF70F00263BE5 /* Sources */,
331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D2294CF70F00263BE5 /* Frameworks */,
331C80D3294CF70F00263BE5 /* Resources */, 331C80D3294CF70F00263BE5 /* Resources */,
@ -204,11 +234,13 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = ( buildPhases = (
12A3D9C72F0E9E29BE35DA27 /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */, 33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */, 33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */, 33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */, 3399D490228B24CF009A79C7 /* ShellScript */,
9F21C32D96BAF43ECAB228AE /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -291,6 +323,28 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
12A3D9C72F0E9E29BE35DA27 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3399D490228B24CF009A79C7 /* ShellScript */ = { 3399D490228B24CF009A79C7 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
@ -329,6 +383,45 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
}; };
81DB0F2B4C82C315490E48DC /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
9F21C32D96BAF43ECAB228AE /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@ -380,6 +473,7 @@
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
331C80DB294CF71000263BE5 /* Debug */ = { 331C80DB294CF71000263BE5 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 717A2BECE9B10C5A295FDEEE /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
@ -394,6 +488,7 @@
}; };
331C80DC294CF71000263BE5 /* Release */ = { 331C80DC294CF71000263BE5 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 4852FA391E6B47E9826C5326 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
@ -408,6 +503,7 @@
}; };
331C80DD294CF71000263BE5 /* Profile */ = { 331C80DD294CF71000263BE5 /* Profile */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 726FA86DB91B92DEF240189B /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
@ -461,7 +557,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14; MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
@ -543,7 +639,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14; MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx; SDKROOT = macosx;
@ -593,7 +689,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14; MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;

@ -4,4 +4,7 @@
<FileRef <FileRef
location = "group:Runner.xcodeproj"> location = "group:Runner.xcodeproj">
</FileRef> </FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace> </Workspace>

@ -1,9 +1,13 @@
import Cocoa import Cocoa
import FlutterMacOS import FlutterMacOS
@NSApplicationMain @main
class AppDelegate: FlutterAppDelegate { class AppDelegate: FlutterAppDelegate {
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true return true
} }
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
return true
}
} }

@ -125,10 +125,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: build_modules name: build_modules
sha256: "0327cb2a9eefba197b63f71872c38bafe4c63b331797a43618d6c270516a6447" sha256: "0126ba5111c4b8f5b1f557beb23eb0bd9266f9114199ff42d9270c29c997b1be"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.11" version: "5.0.18"
build_resolvers: build_resolvers:
dependency: transitive dependency: transitive
description: description:
@ -157,10 +157,10 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: build_web_compilers name: build_web_compilers
sha256: "01cfac85e835d9fe8e87928958586ddbd477d98cfac5af2442cb2df6bbb42dff" sha256: e93b5d5af529269f52b691f7542d859fba82982cadec23b19680c15c70f65378
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.1.1" version: "4.3.0"
built_collection: built_collection:
dependency: transitive dependency: transitive
description: description:
@ -205,10 +205,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.0"
charts_common: charts_common:
dependency: transitive dependency: transitive
description: description:
@ -237,10 +237,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.2"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
@ -253,10 +253,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.0" version: "1.19.1"
connectivity_plus: connectivity_plus:
dependency: "direct main" dependency: "direct main"
description: description:
@ -397,10 +397,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.3"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
@ -945,26 +945,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.7" version: "11.0.2"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.8" version: "3.0.10"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_testing name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
lints: lints:
dependency: transitive dependency: transitive
description: description:
@ -1049,10 +1049,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16+1" version: "0.12.17"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
@ -1065,10 +1065,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -1121,10 +1121,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
path_parsing: path_parsing:
dependency: transitive dependency: transitive
description: description:
@ -1134,21 +1134,21 @@ packages:
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
path_provider: path_provider:
dependency: transitive dependency: "direct overridden"
description: description:
name: path_provider name: path_provider
sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.5"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.4" version: "2.2.20"
path_provider_foundation: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
@ -1534,10 +1534,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.12.1"
sticky_headers: sticky_headers:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1550,10 +1550,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -1590,10 +1590,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.3" version: "0.7.6"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -1630,18 +1630,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_launcher name: url_launcher
sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.1" version: "6.3.2"
url_launcher_android: url_launcher_android:
dependency: transitive dependency: "direct main"
description: description:
name: url_launcher_android name: url_launcher_android
sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.2" version: "6.3.24"
url_launcher_ios: url_launcher_ios:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1726,10 +1726,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.2.0"
visibility_detector: visibility_detector:
dependency: transitive dependency: transitive
description: description:
@ -1803,5 +1803,5 @@ packages:
source: hosted source: hosted
version: "3.1.2" version: "3.1.2"
sdks: sdks:
dart: ">=3.6.0 <3.8.0-z" dart: ">=3.9.0 <3.11.0-z"
flutter: ">=3.27.0" flutter: ">=3.35.0"

Loading…
Cancel
Save