diff --git a/android/app/build.gradle b/android/app/build.gradle
index 9640ea61..5d196986 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -27,7 +27,7 @@ apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
- compileSdkVersion 28
+ compileSdkVersion 30
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@@ -41,19 +41,28 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.cloud.diplomaticquarterapp"
minSdkVersion 21
- targetSdkVersion 28
+ targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
-
+
}
buildTypes {
+ debug {}
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
+ staging {
+ // Specifies a sorted list of fallback build types that the
+ // plugin should try to use when a dependency does not include a
+ // "staging" build type. You may specify as many fallbacks as you
+ // like, and the plugin selects the first build type that's
+ // available in the dependency.
+ matchingFallbacks = ['debug', 'qa', 'release']
+ }
}
}
@@ -63,8 +72,15 @@ flutter {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation "com.google.firebase:firebase-messaging:20.1.0"
- implementation 'pub.devrel:easypermissions:0.4.0'
-
-
+ implementation "com.google.firebase:firebase-messaging:20.3.0"
+ implementation 'pub.devrel:easypermissions:0.4.0'
+ implementation 'com.google.firebase:firebase-inappmessaging-display:17.2.0'
+ implementation 'com.google.guava:guava:27.0.1-android'
+ // Dependency on local binaries
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+
+ // Dependency on a remote binary
+// implementation 'com.example.android:app-magic:12.3'
+
+
}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 8c32edfd..d0751535 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -73,7 +73,7 @@
android:value="2" />
+ android:value="AIzaSyCmevVlr2Bh-c8W1VUzo8gt8JRY7n5PANw"/>
diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt
index 35ce314d..b8a87c8c 100644
--- a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt
+++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt
@@ -1,36 +1,11 @@
package com.cloud.diplomaticquarterapp
-import android.content.ContentResolver
-import android.content.Context
-import android.media.RingtoneManager
-import io.flutter.embedding.android.FlutterActivity
-import io.flutter.embedding.engine.FlutterEngine
-import io.flutter.plugin.common.MethodCall
-import io.flutter.plugin.common.MethodChannel
-import io.flutter.plugins.GeneratedPluginRegistrant
+import androidx.annotation.NonNull;
+ import io.flutter.embedding.android.FlutterFragmentActivity
+ import io.flutter.embedding.engine.FlutterEngine
+ import io.flutter.plugins.GeneratedPluginRegistrant
-class MainActivity : FlutterActivity() {
- override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
- GeneratedPluginRegistrant.registerWith(flutterEngine)
- MethodChannel(flutterEngine.dartExecutor, "crossingthestreams.io/resourceResolver").setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
- if ("drawableToUri" == call.method) {
- val resourceId = this@MainActivity.resources.getIdentifier(call.arguments as String, "drawable", this@MainActivity.packageName)
- result.success(resourceToUriString(this@MainActivity.applicationContext, resourceId))
- }
- if ("getAlarmUri" == call.method) {
- result.success(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM).toString())
- }
- }
- }
-
- companion object {
- private fun resourceToUriString(context: Context, resId: Int): String {
- return (ContentResolver.SCHEME_ANDROID_RESOURCE
- + "://"
- + context.resources.getResourcePackageName(resId)
- + "/"
- + context.resources.getResourceTypeName(resId)
- + "/"
- + context.resources.getResourceEntryName(resId))
- }
- }
+class MainActivity: FlutterFragmentActivity() {
+ override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
+ GeneratedPluginRegistrant.registerWith(flutterEngine);
+ }
}
\ No newline at end of file
diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot
new file mode 100644
index 00000000..ed5f0c34
Binary files /dev/null and b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot differ
diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf
new file mode 100644
index 00000000..8bc25fbb
Binary files /dev/null and b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf differ
diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf
new file mode 100644
index 00000000..4f026897
Binary files /dev/null and b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf differ
diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff
new file mode 100644
index 00000000..91e3d063
Binary files /dev/null and b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff differ
diff --git a/assets/fonts/ar/Cairo-Light/Cairo-Light.eot b/assets/fonts/ar/Cairo-Light/Cairo-Light.eot
new file mode 100644
index 00000000..d76c5391
Binary files /dev/null and b/assets/fonts/ar/Cairo-Light/Cairo-Light.eot differ
diff --git a/assets/fonts/ar/Cairo-Light/Cairo-Light.otf b/assets/fonts/ar/Cairo-Light/Cairo-Light.otf
new file mode 100644
index 00000000..f8812a9c
Binary files /dev/null and b/assets/fonts/ar/Cairo-Light/Cairo-Light.otf differ
diff --git a/assets/fonts/ar/Cairo-Light/Cairo-Light.ttf b/assets/fonts/ar/Cairo-Light/Cairo-Light.ttf
new file mode 100644
index 00000000..840cbc3e
Binary files /dev/null and b/assets/fonts/ar/Cairo-Light/Cairo-Light.ttf differ
diff --git a/assets/fonts/ar/Cairo-Light/Cairo-Light.woff b/assets/fonts/ar/Cairo-Light/Cairo-Light.woff
new file mode 100644
index 00000000..9534bb4b
Binary files /dev/null and b/assets/fonts/ar/Cairo-Light/Cairo-Light.woff differ
diff --git a/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.eot b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.eot
new file mode 100644
index 00000000..98bc2468
Binary files /dev/null and b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.eot differ
diff --git a/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.otf b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.otf
new file mode 100644
index 00000000..73f8bf0a
Binary files /dev/null and b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.otf differ
diff --git a/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.ttf b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.ttf
new file mode 100644
index 00000000..177a3b67
Binary files /dev/null and b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.ttf differ
diff --git a/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.woff b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.woff
new file mode 100644
index 00000000..8d7013cd
Binary files /dev/null and b/assets/fonts/en/WorkSans-Bold/WorkSans-Bold.woff differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.eot b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.eot
new file mode 100644
index 00000000..9541e418
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.eot differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.otf b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.otf
new file mode 100644
index 00000000..be5e0ac4
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.otf differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.ttf b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.ttf
new file mode 100644
index 00000000..0b010ade
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.ttf differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.woff b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.woff
new file mode 100644
index 00000000..12226d75
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Light_0.woff differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Regular.otf b/assets/fonts/en/WorkSans-Light/WorkSans-Regular.otf
new file mode 100644
index 00000000..be88832e
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Regular.otf differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Regular.ttf b/assets/fonts/en/WorkSans-Light/WorkSans-Regular.ttf
new file mode 100644
index 00000000..0ac4520a
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Regular.ttf differ
diff --git a/assets/fonts/en/WorkSans-Light/WorkSans-Regular.woff b/assets/fonts/en/WorkSans-Light/WorkSans-Regular.woff
new file mode 100644
index 00000000..89af38b8
Binary files /dev/null and b/assets/fonts/en/WorkSans-Light/WorkSans-Regular.woff differ
diff --git a/assets/images/AlHabibMedicalService/Wifi-AR.png b/assets/images/AlHabibMedicalService/Wifi-AR.png
new file mode 100644
index 00000000..a8e2d9af
Binary files /dev/null and b/assets/images/AlHabibMedicalService/Wifi-AR.png differ
diff --git a/assets/images/SmartWatches/Apple-Watch-6.png b/assets/images/SmartWatches/Apple-Watch-6.png
new file mode 100644
index 00000000..1e670506
Binary files /dev/null and b/assets/images/SmartWatches/Apple-Watch-6.png differ
diff --git a/assets/images/SmartWatches/apple-watch-1.jpeg b/assets/images/SmartWatches/apple-watch-1.jpeg
new file mode 100644
index 00000000..7262e7eb
Binary files /dev/null and b/assets/images/SmartWatches/apple-watch-1.jpeg differ
diff --git a/assets/images/SmartWatches/apple-watch-2.jpg b/assets/images/SmartWatches/apple-watch-2.jpg
new file mode 100644
index 00000000..f688f740
Binary files /dev/null and b/assets/images/SmartWatches/apple-watch-2.jpg differ
diff --git a/assets/images/SmartWatches/apple-watch-3.jpg b/assets/images/SmartWatches/apple-watch-3.jpg
new file mode 100644
index 00000000..b68c1ced
Binary files /dev/null and b/assets/images/SmartWatches/apple-watch-3.jpg differ
diff --git a/assets/images/SmartWatches/apple-watch-4.jpg b/assets/images/SmartWatches/apple-watch-4.jpg
new file mode 100644
index 00000000..2fc19b67
Binary files /dev/null and b/assets/images/SmartWatches/apple-watch-4.jpg differ
diff --git a/assets/images/SmartWatches/apple-watch-5.jpg b/assets/images/SmartWatches/apple-watch-5.jpg
new file mode 100644
index 00000000..4c497eac
Binary files /dev/null and b/assets/images/SmartWatches/apple-watch-5.jpg differ
diff --git a/assets/images/SmartWatches/fossil-sport.png b/assets/images/SmartWatches/fossil-sport.png
new file mode 100644
index 00000000..207bbbe3
Binary files /dev/null and b/assets/images/SmartWatches/fossil-sport.png differ
diff --git a/assets/images/SmartWatches/heartrate_icon.png b/assets/images/SmartWatches/heartrate_icon.png
new file mode 100644
index 00000000..e228bea4
Binary files /dev/null and b/assets/images/SmartWatches/heartrate_icon.png differ
diff --git a/assets/images/SmartWatches/huawei-watch-2-classic.png b/assets/images/SmartWatches/huawei-watch-2-classic.png
new file mode 100644
index 00000000..0dc44cb6
Binary files /dev/null and b/assets/images/SmartWatches/huawei-watch-2-classic.png differ
diff --git a/assets/images/SmartWatches/huawei-watch-2.png b/assets/images/SmartWatches/huawei-watch-2.png
new file mode 100644
index 00000000..61530239
Binary files /dev/null and b/assets/images/SmartWatches/huawei-watch-2.png differ
diff --git a/assets/images/SmartWatches/lg-watch-sport.jpg b/assets/images/SmartWatches/lg-watch-sport.jpg
new file mode 100644
index 00000000..bd2f25ed
Binary files /dev/null and b/assets/images/SmartWatches/lg-watch-sport.jpg differ
diff --git a/assets/images/SmartWatches/miBand3.jpg b/assets/images/SmartWatches/miBand3.jpg
new file mode 100644
index 00000000..c58f85e5
Binary files /dev/null and b/assets/images/SmartWatches/miBand3.jpg differ
diff --git a/assets/images/SmartWatches/miBand4.jpg b/assets/images/SmartWatches/miBand4.jpg
new file mode 100644
index 00000000..519ef5fb
Binary files /dev/null and b/assets/images/SmartWatches/miBand4.jpg differ
diff --git a/assets/images/SmartWatches/misfit-vapor-2.jpg b/assets/images/SmartWatches/misfit-vapor-2.jpg
new file mode 100644
index 00000000..fe487591
Binary files /dev/null and b/assets/images/SmartWatches/misfit-vapor-2.jpg differ
diff --git a/assets/images/SmartWatches/sleep_data.png b/assets/images/SmartWatches/sleep_data.png
new file mode 100644
index 00000000..dc6661d6
Binary files /dev/null and b/assets/images/SmartWatches/sleep_data.png differ
diff --git a/assets/images/SmartWatches/ticwatche2.png b/assets/images/SmartWatches/ticwatche2.png
new file mode 100644
index 00000000..5ad3d308
Binary files /dev/null and b/assets/images/SmartWatches/ticwatche2.png differ
diff --git a/heartrate_icon.png b/heartrate_icon.png
new file mode 100644
index 00000000..e228bea4
Binary files /dev/null and b/heartrate_icon.png differ
diff --git a/ios/Podfile b/ios/Podfile
index 9712eaff..c2702b3e 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-platform :ios, '9.0'
+# platform :ios, '11.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -10,6 +10,9 @@ project 'Runner', {
'Release' => :release,
}
+# pod 'FBSDKCoreKit'
+# pod 'FBSDKLoginKit'
+
def parse_KV_file(file, separator='=')
file_abs_path = File.expand_path(file)
if !File.exists? file_abs_path
@@ -85,3 +88,4 @@ post_install do |installer|
end
end
end
+
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
deleted file mode 100644
index 005fe83c..00000000
--- a/ios/Podfile.lock
+++ /dev/null
@@ -1,310 +0,0 @@
-PODS:
- - barcode_scan (0.0.1):
- - Flutter
- - MTBBarcodeScanner
- - SwiftProtobuf
- - connectivity (0.0.1):
- - Flutter
- - Reachability
- - connectivity_for_web (0.1.0):
- - Flutter
- - connectivity_macos (0.0.1):
- - Flutter
- - device_info (0.0.1):
- - Flutter
- - Firebase/Core (6.23.0):
- - Firebase/CoreOnly
- - FirebaseAnalytics (= 6.4.2)
- - Firebase/CoreOnly (6.23.0):
- - FirebaseCore (= 6.6.7)
- - Firebase/Messaging (6.23.0):
- - Firebase/CoreOnly
- - FirebaseMessaging (~> 4.3.1)
- - firebase_messaging (0.0.1):
- - Firebase/Core
- - Firebase/Messaging
- - Flutter
- - FirebaseAnalytics (6.4.2):
- - FirebaseCore (~> 6.6)
- - FirebaseInstallations (~> 1.2)
- - GoogleAppMeasurement (= 6.4.2)
- - GoogleUtilities/AppDelegateSwizzler (~> 6.0)
- - GoogleUtilities/MethodSwizzler (~> 6.0)
- - GoogleUtilities/Network (~> 6.0)
- - "GoogleUtilities/NSData+zlib (~> 6.0)"
- - nanopb (= 0.3.9011)
- - FirebaseAnalyticsInterop (1.5.0)
- - FirebaseCore (6.6.7):
- - FirebaseCoreDiagnostics (~> 1.2)
- - FirebaseCoreDiagnosticsInterop (~> 1.2)
- - GoogleUtilities/Environment (~> 6.5)
- - GoogleUtilities/Logger (~> 6.5)
- - FirebaseCoreDiagnostics (1.2.4):
- - FirebaseCoreDiagnosticsInterop (~> 1.2)
- - GoogleDataTransportCCTSupport (~> 3.0)
- - GoogleUtilities/Environment (~> 6.5)
- - GoogleUtilities/Logger (~> 6.5)
- - nanopb (~> 0.3.901)
- - FirebaseCoreDiagnosticsInterop (1.2.0)
- - FirebaseInstallations (1.2.0):
- - FirebaseCore (~> 6.6)
- - GoogleUtilities/Environment (~> 6.6)
- - GoogleUtilities/UserDefaults (~> 6.6)
- - PromisesObjC (~> 1.2)
- - FirebaseInstanceID (4.3.4):
- - FirebaseCore (~> 6.6)
- - FirebaseInstallations (~> 1.0)
- - GoogleUtilities/Environment (~> 6.5)
- - GoogleUtilities/UserDefaults (~> 6.5)
- - FirebaseMessaging (4.3.1):
- - FirebaseAnalyticsInterop (~> 1.5)
- - FirebaseCore (~> 6.6)
- - FirebaseInstanceID (~> 4.3)
- - GoogleUtilities/AppDelegateSwizzler (~> 6.5)
- - GoogleUtilities/Environment (~> 6.5)
- - GoogleUtilities/Reachability (~> 6.5)
- - GoogleUtilities/UserDefaults (~> 6.5)
- - Protobuf (>= 3.9.2, ~> 3.9)
- - Flutter (1.0.0)
- - flutter_flexible_toast (0.0.1):
- - Flutter
- - flutter_inappwebview (0.0.1):
- - Flutter
- - flutter_local_notifications (0.0.1):
- - Flutter
- - flutter_plugin_android_lifecycle (0.0.1):
- - Flutter
- - GoogleAppMeasurement (6.4.2):
- - GoogleUtilities/AppDelegateSwizzler (~> 6.0)
- - GoogleUtilities/MethodSwizzler (~> 6.0)
- - GoogleUtilities/Network (~> 6.0)
- - "GoogleUtilities/NSData+zlib (~> 6.0)"
- - nanopb (= 0.3.9011)
- - GoogleDataTransport (6.0.0)
- - GoogleDataTransportCCTSupport (3.0.0):
- - GoogleDataTransport (~> 6.0)
- - nanopb (~> 0.3.901)
- - GoogleUtilities/AppDelegateSwizzler (6.6.0):
- - GoogleUtilities/Environment
- - GoogleUtilities/Logger
- - GoogleUtilities/Network
- - GoogleUtilities/Environment (6.6.0):
- - PromisesObjC (~> 1.2)
- - GoogleUtilities/Logger (6.6.0):
- - GoogleUtilities/Environment
- - GoogleUtilities/MethodSwizzler (6.6.0):
- - GoogleUtilities/Logger
- - GoogleUtilities/Network (6.6.0):
- - GoogleUtilities/Logger
- - "GoogleUtilities/NSData+zlib"
- - GoogleUtilities/Reachability
- - "GoogleUtilities/NSData+zlib (6.6.0)"
- - GoogleUtilities/Reachability (6.6.0):
- - GoogleUtilities/Logger
- - GoogleUtilities/UserDefaults (6.6.0):
- - GoogleUtilities/Logger
- - hexcolor (0.0.1):
- - Flutter
- - image_cropper (0.0.2):
- - Flutter
- - TOCropViewController (~> 2.5.2)
- - image_picker (0.0.1):
- - Flutter
- - local_auth (0.0.1):
- - Flutter
- - manage_calendar_events (0.0.1):
- - Flutter
- - map_launcher (0.0.1):
- - Flutter
- - MTBBarcodeScanner (5.0.11)
- - nanopb (0.3.9011):
- - nanopb/decode (= 0.3.9011)
- - nanopb/encode (= 0.3.9011)
- - nanopb/decode (0.3.9011)
- - nanopb/encode (0.3.9011)
- - path_provider_linux (0.0.1):
- - Flutter
- - "permission_handler (5.0.1+1)":
- - Flutter
- - PromisesObjC (1.2.8)
- - Protobuf (3.11.4)
- - Reachability (3.2)
- - shared_preferences (0.0.1):
- - Flutter
- - shared_preferences_linux (0.0.1):
- - Flutter
- - shared_preferences_macos (0.0.1):
- - Flutter
- - shared_preferences_web (0.0.1):
- - Flutter
- - SwiftProtobuf (1.10.2)
- - TOCropViewController (2.5.4)
- - url_launcher (0.0.1):
- - Flutter
- - url_launcher_linux (0.0.1):
- - Flutter
- - url_launcher_macos (0.0.1):
- - Flutter
- - url_launcher_web (0.0.1):
- - Flutter
-
-DEPENDENCIES:
- - barcode_scan (from `.symlinks/plugins/barcode_scan/ios`)
- - connectivity (from `.symlinks/plugins/connectivity/ios`)
- - connectivity_for_web (from `.symlinks/plugins/connectivity_for_web/ios`)
- - connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`)
- - device_info (from `.symlinks/plugins/device_info/ios`)
- - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- - Flutter (from `Flutter`)
- - flutter_flexible_toast (from `.symlinks/plugins/flutter_flexible_toast/ios`)
- - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
- - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
- - hexcolor (from `.symlinks/plugins/hexcolor/ios`)
- - image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- - image_picker (from `.symlinks/plugins/image_picker/ios`)
- - local_auth (from `.symlinks/plugins/local_auth/ios`)
- - manage_calendar_events (from `.symlinks/plugins/manage_calendar_events/ios`)
- - map_launcher (from `.symlinks/plugins/map_launcher/ios`)
- - path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
- - permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- - shared_preferences_linux (from `.symlinks/plugins/shared_preferences_linux/ios`)
- - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`)
- - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`)
- - url_launcher (from `.symlinks/plugins/url_launcher/ios`)
- - url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`)
- - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
- - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
-
-SPEC REPOS:
- trunk:
- - Firebase
- - FirebaseAnalytics
- - FirebaseAnalyticsInterop
- - FirebaseCore
- - FirebaseCoreDiagnostics
- - FirebaseCoreDiagnosticsInterop
- - FirebaseInstallations
- - FirebaseInstanceID
- - FirebaseMessaging
- - GoogleAppMeasurement
- - GoogleDataTransport
- - GoogleDataTransportCCTSupport
- - GoogleUtilities
- - MTBBarcodeScanner
- - nanopb
- - PromisesObjC
- - Protobuf
- - Reachability
- - SwiftProtobuf
- - TOCropViewController
-
-EXTERNAL SOURCES:
- barcode_scan:
- :path: ".symlinks/plugins/barcode_scan/ios"
- connectivity:
- :path: ".symlinks/plugins/connectivity/ios"
- connectivity_for_web:
- :path: ".symlinks/plugins/connectivity_for_web/ios"
- connectivity_macos:
- :path: ".symlinks/plugins/connectivity_macos/ios"
- device_info:
- :path: ".symlinks/plugins/device_info/ios"
- firebase_messaging:
- :path: ".symlinks/plugins/firebase_messaging/ios"
- Flutter:
- :path: Flutter
- flutter_flexible_toast:
- :path: ".symlinks/plugins/flutter_flexible_toast/ios"
- flutter_inappwebview:
- :path: ".symlinks/plugins/flutter_inappwebview/ios"
- flutter_local_notifications:
- :path: ".symlinks/plugins/flutter_local_notifications/ios"
- flutter_plugin_android_lifecycle:
- :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
- hexcolor:
- :path: ".symlinks/plugins/hexcolor/ios"
- image_cropper:
- :path: ".symlinks/plugins/image_cropper/ios"
- image_picker:
- :path: ".symlinks/plugins/image_picker/ios"
- local_auth:
- :path: ".symlinks/plugins/local_auth/ios"
- manage_calendar_events:
- :path: ".symlinks/plugins/manage_calendar_events/ios"
- map_launcher:
- :path: ".symlinks/plugins/map_launcher/ios"
- path_provider_linux:
- :path: ".symlinks/plugins/path_provider_linux/ios"
- permission_handler:
- :path: ".symlinks/plugins/permission_handler/ios"
- shared_preferences:
- :path: ".symlinks/plugins/shared_preferences/ios"
- shared_preferences_linux:
- :path: ".symlinks/plugins/shared_preferences_linux/ios"
- shared_preferences_macos:
- :path: ".symlinks/plugins/shared_preferences_macos/ios"
- shared_preferences_web:
- :path: ".symlinks/plugins/shared_preferences_web/ios"
- url_launcher:
- :path: ".symlinks/plugins/url_launcher/ios"
- url_launcher_linux:
- :path: ".symlinks/plugins/url_launcher_linux/ios"
- url_launcher_macos:
- :path: ".symlinks/plugins/url_launcher_macos/ios"
- url_launcher_web:
- :path: ".symlinks/plugins/url_launcher_web/ios"
-
-SPEC CHECKSUMS:
- barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479
- connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
- connectivity_for_web: 2b8584556930d4bd490d82b836bcf45067ce345b
- connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
- device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
- Firebase: 585ae467b3edda6a5444e788fda6888f024d8d6f
- firebase_messaging: 21344b3b3a7d9d325d63a70e3750c0c798fe1e03
- FirebaseAnalytics: 558f7a03d19de451093032c806f39d5f9dff096e
- FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae
- FirebaseCore: a2788a0d5f6c1dff17b8f79b4a73654a8d4bfdbd
- FirebaseCoreDiagnostics: b59c024493a409f8aecba02c99928d0d8431d159
- FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
- FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa
- FirebaseInstanceID: cef67c4967c7cecb56ea65d8acbb4834825c587b
- FirebaseMessaging: 828e66eb357a893e3cebd9ee0f6bc1941447cc94
- Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
- flutter_flexible_toast: 0547e740cae0c33bb7c51bcd931233f4584e1143
- flutter_inappwebview: 69dfbac46157b336ffbec19ca6dfd4638c7bf189
- flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186
- flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
- GoogleAppMeasurement: 2253e99c1f22638cf234c059144660c338ad76c3
- GoogleDataTransport: 061fe7d9b476710e3cd8ea51e8e07d8b67c2b420
- GoogleDataTransportCCTSupport: 0f39025e8cf51f168711bd3fb773938d7e62ddb5
- GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1
- hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89
- image_cropper: 3c16d7651730ffe85897f5a1c4e2547e6b54989a
- image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
- local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd
- manage_calendar_events: 0338d505ea26cdfd20cd883279bc28afa11eca34
- map_launcher: e325db1261d029ff33e08e03baccffe09593ffea
- MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
- nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd
- path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
- permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
- PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6
- Protobuf: 176220c526ad8bd09ab1fb40a978eac3fef665f7
- Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
- shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
- shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78
- shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087
- shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9
- SwiftProtobuf: bec1ae7d686ff73dd09d79866154f4970b891410
- TOCropViewController: 2a1ae1242600b1f2d996fd91a5268b2309a33b5c
- url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
- url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0
- url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
- url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
-
-PODFILE CHECKSUM: 2609452b760cd11039b14039a86564367a3d8ab9
-
-COCOAPODS: 1.9.1
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..1d526a16
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 00000000..18d98100
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 00000000..f9b0d7c5
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ PreviewsEnabled
+
+
+
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
new file mode 100644
index 00000000..a28140cf
--- /dev/null
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 00000000..18d98100
--- /dev/null
+++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 00000000..f9b0d7c5
--- /dev/null
+++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ PreviewsEnabled
+
+
+
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
new file mode 100644
index 00000000..23dd69b8
--- /dev/null
+++ b/ios/Runner/AppDelegate.swift
@@ -0,0 +1,15 @@
+import UIKit
+import Flutter
+import GoogleMaps
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+ override func application(
+ _ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+ ) -> Bool {
+ GMSServices.provideAPIKey("AIzaSyCiiJiHkocPbcziHt9O8rGWavDrxHRQys8")
+ GeneratedPluginRegistrant.register(with: self)
+ return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+ }
+}
diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard
index f3c28516..00abc512 100644
--- a/ios/Runner/Base.lproj/Main.storyboard
+++ b/ios/Runner/Base.lproj/Main.storyboard
@@ -1,8 +1,10 @@
-
-
+
+
+
-
+
+
@@ -14,13 +16,14 @@
-
+
-
+
+
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 792eb95e..b807d9c6 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -22,12 +22,22 @@
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
- NSCalendarsUsageDescription
- We Need to access the calender to add reminder for you
+ io.flutter.embedded_views_preview
+
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
Main
+ NSMicrophoneUsageDescription
+ Need microphone access for uploading videos
+ NSCameraUsageDescription
+ Need camera access for uploading images
+ NSLocationUsageDescription
+ Need location access for updating nearby friends
+ NSLocationWhenInUseUsageDescription
+ This app will use your location to show cool stuffs near you.
+ NSPhotoLibraryUsageDescription
+ Need photo library access for uploading images
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 00000000..308a2a56
--- /dev/null
+++ b/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
diff --git a/lib/config/config.dart b/lib/config/config.dart
index a3ce19e9..c67e2990 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -60,6 +60,8 @@ const GET_NEAREST_HOSPITAL =
const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod';
const GET_PATIENT_ALL_PRES_ORDERS= 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders';
const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID= 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID';
+const UPDATE_PRESS_ORDER = 'Services/Patients.svc/REST/PatientER_UpdatePresOrder';
+const INSERT_ER_INERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder';
///FindUs
const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations';
@@ -270,6 +272,10 @@ const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetP
const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots';
+///Smartwatch Integration Services
+const GET_PATIENT_LAST_RECORD =
+ 'Services/Patients.svc/REST/Med_GetPatientLastRecord';
+
///My Trackers
const GET_DIABETIC_RESULT_AVERAGE =
'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage';
@@ -310,7 +316,6 @@ const H2O_GET_USER_PROGRESS =
"Services/H2ORemainder.svc/REST/H2O_GetUserProgress";
const H2O_INSERT_USER_ACTIVITY =
"Services/H2ORemainder.svc/REST/H2O_InsertUserActivity";
-
//E_Referral Services
const GET_ALL_RELATIONSHIP_TYPES =
@@ -324,8 +329,18 @@ const CREATE_E_REFERRAL = "Services/Patients.svc/REST/CreateEReferral";
const GET_E_REFERRALS = "Services/Patients.svc/REST/GetEReferrals";
+// Home Health Care
+const HHC_GET_ALL_SERVICES = "Services/Patients.svc/REST/PatientER_HHC_GetAllServices";
+const HHC_GET_ALL_CMC_SERVICES = "Services/Patients.svc/REST/PatientER_CMC_GetAllServices";
+const PATIENT_ER_UPDATE_PRES_ORDER ="Services/Patients.svc/REST/PatientER_UpdatePresOrder";
+const GET_ORDER_DETAIL_BY_ID ="Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder";
+const GET_CMC_ORDER_DETAIL_BY_ID ="Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder";
+const GET_CHECK_UP_ITEMS ="Services/Patients.svc/REST/GetCheckUpItems";
+
const TIMER_MIN = 10;
+const GOOGLE_API_KEY = "AIzaSyCmevVlr2Bh-c8W1VUzo8gt8JRY7n5PANw";
+
class AppGlobal {
static var context;
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 41817f33..fbdf2ab5 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -595,6 +595,19 @@ const Map> localizedValues = {
"en": "Service Information",
"ar": "معلومات الخدمة"
},
+ "ServiceInformation": {"en": "Service Information", "ar": "معلومات الخدمة"},
+ "HomeHealthCare": {
+ "en": "Home Health Care",
+ "ar": " الرعاية الصحية المنزلية "
+ },
+ "HomeHealthCareText": {
+ "en":
+ "This service provides a set of home health care services, continuous and comprehensive follow-up in their places of residence for those who cannot access health facilities, such as (laboratory analyzes - radiology - vaccinations - physical therapy), etc.",
+ "ar":
+ "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية – الاشعة – التطعيمات – العلاج الطبيعي)... "
+ },
+ "LoginRegister": {"en": "Login/Register", "ar": "دخول / تسجيل"},
+ "OrderLog": {"en": "Order Log", "ar": " سجل الطلبات"},
"info-lab": {
"en":
"This service allows you to view the results of all laboratory tests performed in Al Habib Medical Group as well as sending the report via e-mail.",
diff --git a/lib/core/enum/OrderService.dart b/lib/core/enum/OrderService.dart
index e6ce24eb..833e0919 100644
--- a/lib/core/enum/OrderService.dart
+++ b/lib/core/enum/OrderService.dart
@@ -1,4 +1,4 @@
-enum OrderService { AMBULANCE }
+enum OrderService { AMBULANCE,HOME_HEALTH_CARE,Comprehensive_Medical_Checkup }
extension SelectedOrderService on OrderService {
int getIdOrderService() {
@@ -6,6 +6,13 @@ extension SelectedOrderService on OrderService {
case OrderService.AMBULANCE:
return 4;
break;
+ case OrderService.Comprehensive_Medical_Checkup:
+ return 3;
+ break;
+ case OrderService.HOME_HEALTH_CARE:
+ return 2;
+ break;
+
}
return 4;
}
@@ -15,6 +22,12 @@ extension SelectedOrderService on OrderService {
case 4:
return OrderService.AMBULANCE;
break;
+ case 2:
+ return OrderService.HOME_HEALTH_CARE;
+ break;
+ case 3:
+ return OrderService.Comprehensive_Medical_Checkup;
+ break;
}
return OrderService.AMBULANCE;
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart
new file mode 100644
index 00000000..6880f9f5
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart
@@ -0,0 +1,68 @@
+class CMCGetItemsRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+ int checkupType;
+
+ CMCGetItemsRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType,
+ this.checkupType});
+
+ CMCGetItemsRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ checkupType = json['CheckupType'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ data['CheckupType'] = this.checkupType;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart
new file mode 100644
index 00000000..6f362baa
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart
@@ -0,0 +1,18 @@
+class CMCGetItemsResponseModel {
+ String itemDescription;
+ String itemName;
+
+ CMCGetItemsResponseModel({this.itemDescription, this.itemName});
+
+ CMCGetItemsResponseModel.fromJson(Map json) {
+ itemDescription = json['ItemDescription'];
+ itemName = json['ItemName'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ItemDescription'] = this.itemDescription;
+ data['ItemName'] = this.itemName;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart
new file mode 100644
index 00000000..534988a7
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart
@@ -0,0 +1,135 @@
+class CMCInsertPresOrderRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+ double latitude;
+ double longitude;
+ int createdBy;
+ int orderServiceID;
+ List patientERCMCInsertServicesList;
+
+ CMCInsertPresOrderRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType,
+ this.latitude,
+ this.longitude,
+ this.createdBy,
+ this.orderServiceID,
+ this.patientERCMCInsertServicesList});
+
+ CMCInsertPresOrderRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ latitude = json['Latitude'];
+ longitude = json['Longitude'];
+ createdBy = json['CreatedBy'];
+ orderServiceID = json['OrderServiceID'];
+ if (json['PatientER_CMC_InsertServicesList'] != null) {
+ patientERCMCInsertServicesList =
+ new List();
+ json['PatientER_CMC_InsertServicesList'].forEach((v) {
+ patientERCMCInsertServicesList
+ .add(new PatientERCMCInsertServicesList.fromJson(v));
+ });
+ }
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ data['Latitude'] = this.latitude;
+ data['Longitude'] = this.longitude;
+ data['CreatedBy'] = this.createdBy;
+ data['OrderServiceID'] = this.orderServiceID;
+ if (this.patientERCMCInsertServicesList != null) {
+ data['PatientER_CMC_InsertServicesList'] =
+ this.patientERCMCInsertServicesList.map((v) => v.toJson()).toList();
+ }
+ return data;
+ }
+}
+
+class PatientERCMCInsertServicesList {
+ int recordID;
+ String serviceID;
+ String selectedServiceName;
+ String selectedServiceNameAR;
+ dynamic price;
+ dynamic vAT;
+ dynamic totalPrice;
+
+ PatientERCMCInsertServicesList(
+ {this.recordID,
+ this.serviceID,
+ this.selectedServiceName,
+ this.selectedServiceNameAR,
+ this.price,
+ this.vAT,
+ this.totalPrice});
+
+ PatientERCMCInsertServicesList.fromJson(Map json) {
+ recordID = json['RecordID'];
+ serviceID = json['ServiceID'];
+ selectedServiceName = json['selectedServiceName'];
+ selectedServiceNameAR = json['selectedServiceNameAR'];
+ price = json['Price'];
+ vAT = json['VAT'];
+ totalPrice = json['TotalPrice'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['RecordID'] = this.recordID;
+ data['ServiceID'] = this.serviceID;
+ data['selectedServiceName'] = this.selectedServiceName;
+ data['selectedServiceNameAR'] = this.selectedServiceNameAR;
+ data['Price'] = this.price;
+ data['VAT'] = this.vAT;
+ data['TotalPrice'] = this.totalPrice;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_request_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_request_model.dart
new file mode 100644
index 00000000..e80b656d
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_request_model.dart
@@ -0,0 +1,72 @@
+class GetCMCServicesRequestModel {
+ int channel;
+ int deviceTypeID;
+ int genderID;
+ String generalid;
+ String identificationNo;
+ String iPAdress;
+ bool isDentalAllowedBackend;
+ int languageID;
+ int patientID;
+ int patientOutSA;
+ int patientType;
+ int patientTypeID;
+ String sessionID;
+ String tokenID;
+ double versionID;
+
+ GetCMCServicesRequestModel(
+ {this.channel,
+ this.deviceTypeID,
+ this.genderID,
+ this.generalid,
+ this.identificationNo,
+ this.iPAdress,
+ this.isDentalAllowedBackend,
+ this.languageID,
+ this.patientID,
+ this.patientOutSA,
+ this.patientType,
+ this.patientTypeID,
+ this.sessionID,
+ this.tokenID,
+ this.versionID});
+
+ GetCMCServicesRequestModel.fromJson(Map json) {
+ channel = json['Channel'];
+ deviceTypeID = json['DeviceTypeID'];
+ genderID = json['GenderID'];
+ generalid = json['generalid'];
+ identificationNo = json['IdentificationNo'];
+ iPAdress = json['IPAdress'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ languageID = json['LanguageID'];
+ patientID = json['PatientID'];
+ patientOutSA = json['PatientOutSA'];
+ patientType = json['PatientType'];
+ patientTypeID = json['PatientTypeID'];
+ sessionID = json['SessionID'];
+ tokenID = json['TokenID'];
+ versionID = json['VersionID'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['Channel'] = this.channel;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['GenderID'] = this.genderID;
+ data['generalid'] = this.generalid;
+ data['IdentificationNo'] = this.identificationNo;
+ data['IPAdress'] = this.iPAdress;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['LanguageID'] = this.languageID;
+ data['PatientID'] = this.patientID;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['PatientType'] = this.patientType;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['SessionID'] = this.sessionID;
+ data['TokenID'] = this.tokenID;
+ data['VersionID'] = this.versionID;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart
new file mode 100644
index 00000000..5f356e2b
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart
@@ -0,0 +1,44 @@
+class GetCMCServicesResponseModel {
+ String description;
+ String descriptionN;
+ int iD;
+ bool isActive;
+ dynamic price;
+ int serviceID;
+ dynamic totalPrice;
+ dynamic vAT;
+
+ GetCMCServicesResponseModel(
+ {this.description,
+ this.descriptionN,
+ this.iD,
+ this.isActive,
+ this.price,
+ this.serviceID,
+ this.totalPrice,
+ this.vAT});
+
+ GetCMCServicesResponseModel.fromJson(Map json) {
+ description = json['Description'];
+ descriptionN = json['DescriptionN'];
+ iD = json['ID'];
+ isActive = json['IsActive'];
+ price = json['Price'];
+ serviceID = json['ServiceID'];
+ totalPrice = json['TotalPrice'];
+ vAT = json['VAT'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['Description'] = this.description;
+ data['DescriptionN'] = this.descriptionN;
+ data['ID'] = this.iD;
+ data['IsActive'] = this.isActive;
+ data['Price'] = this.price;
+ data['ServiceID'] = this.serviceID;
+ data['TotalPrice'] = this.totalPrice;
+ data['VAT'] = this.vAT;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/insert_user_activity_request_model.dart b/lib/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart
similarity index 100%
rename from lib/core/model/AlHabibMedicalService/insert_user_activity_request_model.dart
rename to lib/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart
diff --git a/lib/core/model/AlHabibMedicalService/user_progress_for_month_data_model.dart b/lib/core/model/AlHabibMedicalService/H2O/user_progress_for_month_data_model.dart
similarity index 100%
rename from lib/core/model/AlHabibMedicalService/user_progress_for_month_data_model.dart
rename to lib/core/model/AlHabibMedicalService/H2O/user_progress_for_month_data_model.dart
diff --git a/lib/core/model/AlHabibMedicalService/user_progress_for_today_data_model.dart b/lib/core/model/AlHabibMedicalService/H2O/user_progress_for_today_data_model.dart
similarity index 100%
rename from lib/core/model/AlHabibMedicalService/user_progress_for_today_data_model.dart
rename to lib/core/model/AlHabibMedicalService/H2O/user_progress_for_today_data_model.dart
diff --git a/lib/core/model/AlHabibMedicalService/user_progress_for_week_data_model.dart b/lib/core/model/AlHabibMedicalService/H2O/user_progress_for_week_data_model.dart
similarity index 100%
rename from lib/core/model/AlHabibMedicalService/user_progress_for_week_data_model.dart
rename to lib/core/model/AlHabibMedicalService/H2O/user_progress_for_week_data_model.dart
diff --git a/lib/core/model/AlHabibMedicalService/user_progress_request_model.dart b/lib/core/model/AlHabibMedicalService/H2O/user_progress_request_model.dart
similarity index 100%
rename from lib/core/model/AlHabibMedicalService/user_progress_request_model.dart
rename to lib/core/model/AlHabibMedicalService/H2O/user_progress_request_model.dart
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart
new file mode 100644
index 00000000..7b24c149
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart
@@ -0,0 +1,64 @@
+class HHCGetAllServicesRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+
+ HHCGetAllServicesRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType});
+
+ HHCGetAllServicesRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart
new file mode 100644
index 00000000..e2f39733
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart
@@ -0,0 +1,32 @@
+class HHCGetAllServicesResponseModel {
+ int iD;
+ int serviceID;
+ String description;
+ String descriptionN;
+ bool isActive;
+
+ HHCGetAllServicesResponseModel(
+ {this.iD,
+ this.serviceID,
+ this.description,
+ this.descriptionN,
+ this.isActive});
+
+ HHCGetAllServicesResponseModel.fromJson(Map json) {
+ iD = json['ID'];
+ serviceID = json['ServiceID'];
+ description = json['Description'];
+ descriptionN = json['DescriptionN'];
+ isActive = json['IsActive'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ID'] = this.iD;
+ data['ServiceID'] = this.serviceID;
+ data['Description'] = this.description;
+ data['DescriptionN'] = this.descriptionN;
+ data['IsActive'] = this.isActive;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart
new file mode 100644
index 00000000..bc5a4ddf
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart
@@ -0,0 +1,23 @@
+
+class PatientERHHCInsertServicesList {
+ int recordID;
+ int serviceID;
+ String serviceName;
+
+ PatientERHHCInsertServicesList(
+ {this.recordID, this.serviceID, this.serviceName});
+
+ PatientERHHCInsertServicesList.fromJson(Map json) {
+ recordID = json['RecordID'];
+ serviceID = json['ServiceID'];
+ serviceName = json['ServiceName'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['RecordID'] = this.recordID;
+ data['ServiceID'] = this.serviceID;
+ data['ServiceName'] = this.serviceName;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_request_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_request_model.dart
new file mode 100644
index 00000000..ed55b3a9
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_request_model.dart
@@ -0,0 +1,64 @@
+class GetHHCAllPresOrdersRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+
+ GetHHCAllPresOrdersRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType});
+
+ GetHHCAllPresOrdersRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart
new file mode 100644
index 00000000..5dedac1c
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart
@@ -0,0 +1,132 @@
+class GetHHCAllPresOrdersResponseModel {
+ int iD;
+ String patientID;
+ bool patientOutSA;
+ bool isOutPatient;
+ int projectID;
+ int nearestProjectID;
+ double longitude;
+ double latitude;
+ String appointmentNo;
+ String dischargeID;
+ int lineItemNo;
+ int status;
+ String description;
+ String descriptionN;
+ String createdOn;
+ int serviceID;
+ int createdBy;
+ String editedOn;
+ int editedBy;
+ int channel;
+ dynamic clientRequestID;
+ bool returnedToQueue;
+ dynamic pickupDateTime;
+ dynamic pickupLocationName;
+ dynamic dropoffLocationName;
+ int realRRTHaveTransactions;
+ String nearestProjectDescription;
+ String nearestProjectDescriptionN;
+ String projectDescription;
+ String projectDescriptionN;
+
+ GetHHCAllPresOrdersResponseModel(
+ {this.iD,
+ this.patientID,
+ this.patientOutSA,
+ this.isOutPatient,
+ this.projectID,
+ this.nearestProjectID,
+ this.longitude,
+ this.latitude,
+ this.appointmentNo,
+ this.dischargeID,
+ this.lineItemNo,
+ this.status,
+ this.description,
+ this.descriptionN,
+ this.createdOn,
+ this.serviceID,
+ this.createdBy,
+ this.editedOn,
+ this.editedBy,
+ this.channel,
+ this.clientRequestID,
+ this.returnedToQueue,
+ this.pickupDateTime,
+ this.pickupLocationName,
+ this.dropoffLocationName,
+ this.realRRTHaveTransactions,
+ this.nearestProjectDescription,
+ this.nearestProjectDescriptionN,
+ this.projectDescription,
+ this.projectDescriptionN});
+
+ GetHHCAllPresOrdersResponseModel.fromJson(Map json) {
+ iD = json['ID'];
+ patientID = json['PatientID'];
+ patientOutSA = json['PatientOutSA'];
+ isOutPatient = json['IsOutPatient'];
+ projectID = json['ProjectID'];
+ nearestProjectID = json['NearestProjectID'];
+ longitude = json['Longitude'];
+ latitude = json['Latitude'];
+ appointmentNo = json['AppointmentNo'];
+ dischargeID = json['DischargeID'];
+ lineItemNo = json['LineItemNo'];
+ status = json['Status'];
+ description = json['Description'];
+ descriptionN = json['DescriptionN'];
+ createdOn = json['CreatedOn'];
+ serviceID = json['ServiceID'];
+ createdBy = json['CreatedBy'];
+ editedOn = json['EditedOn'];
+ editedBy = json['EditedBy'];
+ channel = json['Channel'];
+ clientRequestID = json['ClientRequestID'];
+ returnedToQueue = json['ReturnedToQueue'];
+ pickupDateTime = json['PickupDateTime'];
+ pickupLocationName = json['PickupLocationName'];
+ dropoffLocationName = json['DropoffLocationName'];
+ realRRTHaveTransactions = json['RealRRT_HaveTransactions'];
+ nearestProjectDescription = json['NearestProjectDescription'];
+ nearestProjectDescriptionN = json['NearestProjectDescriptionN'];
+ projectDescription = json['ProjectDescription'];
+ projectDescriptionN = json['ProjectDescriptionN'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ID'] = this.iD;
+ data['PatientID'] = this.patientID;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['IsOutPatient'] = this.isOutPatient;
+ data['ProjectID'] = this.projectID;
+ data['NearestProjectID'] = this.nearestProjectID;
+ data['Longitude'] = this.longitude;
+ data['Latitude'] = this.latitude;
+ data['AppointmentNo'] = this.appointmentNo;
+ data['DischargeID'] = this.dischargeID;
+ data['LineItemNo'] = this.lineItemNo;
+ data['Status'] = this.status;
+ data['Description'] = this.description;
+ data['DescriptionN'] = this.descriptionN;
+ data['CreatedOn'] = this.createdOn;
+ data['ServiceID'] = this.serviceID;
+ data['CreatedBy'] = this.createdBy;
+ data['EditedOn'] = this.editedOn;
+ data['EditedBy'] = this.editedBy;
+ data['Channel'] = this.channel;
+ data['ClientRequestID'] = this.clientRequestID;
+ data['ReturnedToQueue'] = this.returnedToQueue;
+ data['PickupDateTime'] = this.pickupDateTime;
+ data['PickupLocationName'] = this.pickupLocationName;
+ data['DropoffLocationName'] = this.dropoffLocationName;
+ data['RealRRT_HaveTransactions'] = this.realRRTHaveTransactions;
+ data['NearestProjectDescription'] = this.nearestProjectDescription;
+ data['NearestProjectDescriptionN'] = this.nearestProjectDescriptionN;
+ data['ProjectDescription'] = this.projectDescription;
+ data['ProjectDescriptionN'] = this.projectDescriptionN;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart
new file mode 100644
index 00000000..04b69b98
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart
@@ -0,0 +1,68 @@
+class GetOrderDetailByOrderIDRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+ int presOrderID;
+
+ GetOrderDetailByOrderIDRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType,
+ this.presOrderID});
+
+ GetOrderDetailByOrderIDRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ presOrderID = json['PresOrderID'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ data['PresOrderID'] = this.presOrderID;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart
new file mode 100644
index 00000000..6fc31ce8
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart
@@ -0,0 +1,52 @@
+class GetOrderDetailByOrderIDResponseModel {
+ int iD;
+ int presOrderID;
+ int hHCServiceID;
+ int createdBy;
+ String createdOn;
+ int editedBy;
+ String editedOn;
+ bool isActive;
+ String description;
+ String descriptionN;
+
+ GetOrderDetailByOrderIDResponseModel(
+ {this.iD,
+ this.presOrderID,
+ this.hHCServiceID,
+ this.createdBy,
+ this.createdOn,
+ this.editedBy,
+ this.editedOn,
+ this.isActive,
+ this.description,
+ this.descriptionN});
+
+ GetOrderDetailByOrderIDResponseModel.fromJson(Map json) {
+ iD = json['ID'];
+ presOrderID = json['PresOrderID'];
+ hHCServiceID = json['HHC_ServiceID'];
+ createdBy = json['CreatedBy'];
+ createdOn = json['CreatedOn'];
+ editedBy = json['EditedBy'];
+ editedOn = json['EditedOn'];
+ isActive = json['IsActive'];
+ description = json['Description'];
+ descriptionN = json['DescriptionN'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ID'] = this.iD;
+ data['PresOrderID'] = this.presOrderID;
+ data['HHC_ServiceID'] = this.hHCServiceID;
+ data['CreatedBy'] = this.createdBy;
+ data['CreatedOn'] = this.createdOn;
+ data['EditedBy'] = this.editedBy;
+ data['EditedOn'] = this.editedOn;
+ data['IsActive'] = this.isActive;
+ data['Description'] = this.description;
+ data['DescriptionN'] = this.descriptionN;
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart
new file mode 100644
index 00000000..6987ee44
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart
@@ -0,0 +1,97 @@
+import 'PatientERHHCInsertServicesList.dart';
+
+class PatientERInsertPresOrderRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+ double latitude;
+ double longitude;
+ int createdBy;
+ int orderServiceID;
+ List patientERHHCInsertServicesList = List();
+
+ PatientERInsertPresOrderRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType,
+ this.latitude,
+ this.longitude,
+ this.createdBy,
+ this.orderServiceID,
+ this.patientERHHCInsertServicesList
+ });
+
+ PatientERInsertPresOrderRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ latitude = json['Latitude'];
+ longitude = json['Longitude'];
+ createdBy = json['CreatedBy'];
+ orderServiceID = json['OrderServiceID'];
+ if (json['PatientER_HHC_InsertServicesList'] != null) {
+ patientERHHCInsertServicesList =
+ new List();
+ json['PatientER_HHC_InsertServicesList'].forEach((v) {
+ patientERHHCInsertServicesList
+ .add(new PatientERHHCInsertServicesList.fromJson(v));
+ });
+ }
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ data['Latitude'] = this.latitude;
+ data['Longitude'] = this.longitude;
+ data['CreatedBy'] = this.createdBy;
+ data['OrderServiceID'] = this.orderServiceID;
+ if (this.patientERHHCInsertServicesList != null) {
+ data['PatientER_HHC_InsertServicesList'] =
+ this.patientERHHCInsertServicesList.map((v) => v.toJson()).toList();
+ }
+ return data;
+ }
+}
diff --git a/lib/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart b/lib/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart
new file mode 100644
index 00000000..3b0ef151
--- /dev/null
+++ b/lib/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart
@@ -0,0 +1,80 @@
+class UpdatePresOrderRequestModel {
+ double versionID;
+ int channel;
+ int languageID;
+ String iPAdress;
+ String generalid;
+ int patientOutSA;
+ String sessionID;
+ bool isDentalAllowedBackend;
+ int deviceTypeID;
+ int patientID;
+ String tokenID;
+ int patientTypeID;
+ int patientType;
+ int presOrderID;
+ int presOrderStatus;
+ int editedBy;
+ String rejectionReason;
+
+ UpdatePresOrderRequestModel(
+ {this.versionID,
+ this.channel,
+ this.languageID,
+ this.iPAdress,
+ this.generalid,
+ this.patientOutSA,
+ this.sessionID,
+ this.isDentalAllowedBackend,
+ this.deviceTypeID,
+ this.patientID,
+ this.tokenID,
+ this.patientTypeID,
+ this.patientType,
+ this.presOrderID,
+ this.presOrderStatus,
+ this.editedBy,
+ this.rejectionReason});
+
+ UpdatePresOrderRequestModel.fromJson(Map json) {
+ versionID = json['VersionID'];
+ channel = json['Channel'];
+ languageID = json['LanguageID'];
+ iPAdress = json['IPAdress'];
+ generalid = json['generalid'];
+ patientOutSA = json['PatientOutSA'];
+ sessionID = json['SessionID'];
+ isDentalAllowedBackend = json['isDentalAllowedBackend'];
+ deviceTypeID = json['DeviceTypeID'];
+ patientID = json['PatientID'];
+ tokenID = json['TokenID'];
+ patientTypeID = json['PatientTypeID'];
+ patientType = json['PatientType'];
+ presOrderID = json['PresOrderID'];
+ presOrderStatus = json['PresOrderStatus'];
+ editedBy = json['EditedBy'];
+ rejectionReason = json['RejectionReason'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['VersionID'] = this.versionID;
+ data['Channel'] = this.channel;
+ data['LanguageID'] = this.languageID;
+ data['IPAdress'] = this.iPAdress;
+ data['generalid'] = this.generalid;
+ data['PatientOutSA'] = this.patientOutSA;
+ data['SessionID'] = this.sessionID;
+ data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+ data['DeviceTypeID'] = this.deviceTypeID;
+ data['PatientID'] = this.patientID;
+ data['TokenID'] = this.tokenID;
+ data['PatientTypeID'] = this.patientTypeID;
+ data['PatientType'] = this.patientType;
+ data['PresOrderID'] = this.presOrderID;
+ data['PresOrderStatus'] = this.presOrderStatus;
+ data['EditedBy'] = this.editedBy;
+ data['RejectionReason'] = this.rejectionReason;
+ return data;
+ }
+}
diff --git a/lib/core/model/er/PatientER.dart b/lib/core/model/er/PatientER.dart
index d0827311..f1694f9e 100644
--- a/lib/core/model/er/PatientER.dart
+++ b/lib/core/model/er/PatientER.dart
@@ -36,7 +36,7 @@ class PatientER {
int projectID;
int createdBy;
int lineItemNo;
- int cost;
+ double cost;
double vAT;
double totalPrice;
String pickupLocationLattitude;
diff --git a/lib/core/model/er/PickUpRequestPresOrder.dart b/lib/core/model/er/PickUpRequestPresOrder.dart
index 9ce3e678..376e30ae 100644
--- a/lib/core/model/er/PickUpRequestPresOrder.dart
+++ b/lib/core/model/er/PickUpRequestPresOrder.dart
@@ -18,7 +18,7 @@ class PickUpRequestPresOrder {
int pickupSpot;
dynamic dropoffLocationId;
int transportationMethodId;
- int cost;
+ double cost;
double vAT;
double totalPrice;
int amountCollected;
diff --git a/lib/core/service/AlHabibMedicalService/H2O_service.dart b/lib/core/service/AlHabibMedicalService/H2O_service.dart
index d44b50ef..c65221c5 100644
--- a/lib/core/service/AlHabibMedicalService/H2O_service.dart
+++ b/lib/core/service/AlHabibMedicalService/H2O_service.dart
@@ -1,9 +1,9 @@
import 'package:diplomaticquarterapp/config/config.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/insert_user_activity_request_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_for_month_data_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_for_today_data_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_for_week_data_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_month_data_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_today_data_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_week_data_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_request_model.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
class H2OService extends BaseService {
diff --git a/lib/core/service/AlHabibMedicalService/cmc_service.dart b/lib/core/service/AlHabibMedicalService/cmc_service.dart
new file mode 100644
index 00000000..dffa6683
--- /dev/null
+++ b/lib/core/service/AlHabibMedicalService/cmc_service.dart
@@ -0,0 +1,115 @@
+import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hHC_all_pres_orders_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+
+import '../base_service.dart';
+
+class CMCService extends BaseService {
+ List cmcAllServicesList = List();
+ List cmcAllPresOrdersList = List();
+
+ List cmcAllOrderDetail = List();
+ List checkupItemsList = List();
+
+ bool isOrderUpdated;
+
+ Future getCMCAllServices() async {
+
+
+ GetCMCServicesRequestModel getCMCServicesRequestModel= new GetCMCServicesRequestModel(genderID: user.gender, identificationNo: user.patientIdentificationNo);
+ hasError = false;
+ await baseAppClient.post(HHC_GET_ALL_CMC_SERVICES,
+ onSuccess: (dynamic response, int statusCode) {
+ cmcAllServicesList.clear();
+ response['PatientER_CMC_GetAllServicesList'].forEach((data) {
+ cmcAllServicesList.add(GetCMCServicesResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: getCMCServicesRequestModel.toJson());
+ }
+
+
+
+ Future getCmcAllPresOrders() async {
+
+ GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel= GetHHCAllPresOrdersRequestModel();
+ hasError = false;
+ await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
+ onSuccess: (dynamic response, int statusCode) {
+ cmcAllPresOrdersList.clear();
+ response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
+ if (data['ServiceID'] == 3)
+ cmcAllPresOrdersList
+ .add(GetHHCAllPresOrdersResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: getHHCAllPresOrdersRequestModel.toJson());
+ }
+
+ Future getOrderDetailByOrderID(GetOrderDetailByOrderIDRequestModel getOrderDetailByOrderIDRequestModel) async {
+
+ hasError = false;
+ await baseAppClient.post(GET_CMC_ORDER_DETAIL_BY_ID,
+ onSuccess: (dynamic response, int statusCode) {
+ cmcAllOrderDetail.clear();
+ response['PatientER_CMC_GetTransactionsForOrderList'].forEach((data) {
+ cmcAllOrderDetail.add(GetOrderDetailByOrderIDResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: getOrderDetailByOrderIDRequestModel.toJson());
+ }
+
+
+ Future getCheckupItems(CMCGetItemsRequestModel cMCGetItemsRequestModel) async {
+
+ hasError = false;
+ await baseAppClient.post(GET_CHECK_UP_ITEMS,
+ onSuccess: (dynamic response, int statusCode) {
+ checkupItemsList.clear();
+ response['GetCheckUpItemsList'].forEach((data) {
+ checkupItemsList.add(CMCGetItemsResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: cMCGetItemsRequestModel.toJson());
+ }
+
+ Future updateCmcPresOrder(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
+
+ hasError = false;
+ await baseAppClient.post(PATIENT_ER_UPDATE_PRES_ORDER,
+ onSuccess: (dynamic response, int statusCode) {
+ isOrderUpdated = true;
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: updatePresOrderRequestModel.toJson());
+ }
+
+ Future insertPresPresOrder({CMCInsertPresOrderRequestModel order}) async {
+
+ hasError = false;
+ await baseAppClient.post(PATIENT_ER_UPDATE_PRES_ORDER,
+ onSuccess: (dynamic response, int statusCode) {
+ isOrderUpdated = true;
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: order.toJson());
+ }
+}
diff --git a/lib/core/service/AlHabibMedicalService/home_health_care_service.dart b/lib/core/service/AlHabibMedicalService/home_health_care_service.dart
new file mode 100644
index 00000000..e636321b
--- /dev/null
+++ b/lib/core/service/AlHabibMedicalService/home_health_care_service.dart
@@ -0,0 +1,93 @@
+import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hHC_all_pres_orders_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+
+import '../base_service.dart';
+
+class HomeHealthCareService extends BaseService {
+ List hhcAllServicesList = List();
+ List hhcAllPresOrdersList = List();
+
+ List hhcAllOrderDetail = List();
+
+ bool isOrderUpdated;
+
+ Future getHHCAllServices(
+ HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel) async {
+ hasError = false;
+ await baseAppClient.post(HHC_GET_ALL_SERVICES,
+ onSuccess: (dynamic response, int statusCode) {
+ hhcAllServicesList.clear();
+ response['PatientER_HHC_GetAllServicesList'].forEach((data) {
+ hhcAllServicesList.add(HHCGetAllServicesResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: hHCGetAllServicesRequestModel.toJson());
+ }
+
+ Future getHHCAllPresOrders() async {
+ GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel =
+ GetHHCAllPresOrdersRequestModel();
+ hasError = false;
+ await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
+ onSuccess: (dynamic response, int statusCode) {
+ hhcAllPresOrdersList.clear();
+ response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
+ if (data['ServiceID'] == 2)
+ hhcAllPresOrdersList
+ .add(GetHHCAllPresOrdersResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: getHHCAllPresOrdersRequestModel.toJson());
+ }
+
+ Future getOrderDetailByOrderID(int presOrderID) async {
+ hasError = false;
+ Map body = Map();
+ body['PresOrderID'] = presOrderID;
+ body['isDentalAllowedBackend'] = false;
+ await baseAppClient.post(GET_ORDER_DETAIL_BY_ID,
+ onSuccess: (dynamic response, int statusCode) {
+ hhcAllOrderDetail.clear();
+ response['PatientER_HHC_GetTransactionsForOrderList'].forEach((data) {
+ hhcAllOrderDetail
+ .add(GetOrderDetailByOrderIDResponseModel.fromJson(data));
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: body);
+ }
+
+ Future updateHHCPresOrder(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
+ hasError = false;
+ await baseAppClient.post(PATIENT_ER_UPDATE_PRES_ORDER,
+ onSuccess: (dynamic response, int statusCode) {
+ isOrderUpdated = true;
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: updatePresOrderRequestModel.toJson());
+ }
+
+ Future insertPresPresOrder({PatientERInsertPresOrderRequestModel order}) async {
+ hasError = false;
+ await baseAppClient.post(INSERT_ER_INERT_PRES_ORDER,
+ onSuccess: (dynamic response, int statusCode) {
+
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: order.toJson());
+ }
+}
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index 237245f8..d2bfa4fa 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -83,6 +83,7 @@ class BaseAppClient {
print("URL : $url");
print("Body : ${json.encode(body)}");
+ var ss = json.encode(body);
if (await Utils.checkConnection()) {
final response = await http.post(url.trim(),
diff --git a/lib/core/service/er/am_service.dart b/lib/core/service/er/am_service.dart
index b654e0eb..2e9460b8 100644
--- a/lib/core/service/er/am_service.dart
+++ b/lib/core/service/er/am_service.dart
@@ -2,8 +2,10 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart';
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
+import 'package:flutter/cupertino.dart';
import '../base_service.dart';
class AmService extends BaseService {
@@ -35,6 +37,7 @@ class AmService extends BaseService {
Future getPatientAllPresOrdersList() async {
hasError = false;
hasPendingOrder = false;
+ pickUpRequestPresOrder = null;
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
onSuccess: (dynamic response, int statusCode) {
patientAllPresOrdersList.clear();
@@ -58,12 +61,11 @@ class AmService extends BaseService {
Future getOrderDetails() async {
hasError = false;
- hasPendingOrder = false;
Map body = Map();
body['PresOrderID'] = pendingOrderID;
+ body['isDentalAllowedBackend'] = false;
await baseAppClient.post(GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID,
onSuccess: (dynamic response, int statusCode) {
- patientAllPresOrdersList.clear();
response['PatientER_RRT_GetPickUpRequestByPresOrderIDList']
.forEach((item) {
pickUpRequestPresOrder = PickUpRequestPresOrder.fromJson(item);
@@ -71,6 +73,35 @@ class AmService extends BaseService {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
- }, body: Map());
+ }, body: body);
+ }
+
+ Future updatePressOrder({@required int presOrderID}) async {
+ hasError = false;
+ Map body = Map();
+ body['PresOrderID'] = presOrderID;
+ body['EditedBy'] = 3;
+ body['RejectionReason'] = '';
+ body['PresOrderStatus'] = OrderService.AMBULANCE.getIdOrderService();
+ body['isDentalAllowedBackend'] = false;
+ await baseAppClient.post(UPDATE_PRESS_ORDER,
+ onSuccess: (dynamic response, int statusCode) {
+
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: body);
+ }
+
+ Future insertERPressOrder({@required PatientER patientER}) async {
+ hasError = false;
+
+ await baseAppClient.post(INSERT_ER_INERT_PRES_ORDER,
+ onSuccess: (dynamic response, int statusCode) {
+
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: patientER.toJson());
}
}
diff --git a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart
index 73a56d9b..15b00e37 100644
--- a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart
+++ b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart
@@ -1,8 +1,8 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/insert_user_activity_request_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_for_month_data_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_for_today_data_model.dart';
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/user_progress_for_week_data_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_month_data_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_today_data_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_week_data_model.dart';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/H2O_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:charts_flutter/flutter.dart' as charts;
diff --git a/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart
new file mode 100644
index 00000000..bf3404a9
--- /dev/null
+++ b/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart
@@ -0,0 +1,110 @@
+import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/cmc_service.dart';
+import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
+
+import '../../../locator.dart';
+
+class CMCViewModel extends BaseViewModel {
+ CMCService _cMCService =
+ locator();
+
+ List get cmcAllServicesList =>
+
+ _cMCService.cmcAllServicesList;
+
+ List get cmcAllPresOrders =>
+ _cMCService.cmcAllPresOrdersList;
+
+ List get cmcAllOrderDetail =>
+ _cMCService.cmcAllOrderDetail;
+ List get checkupItems =>
+ _cMCService.checkupItemsList;
+
+ bool get isOrderUpdated => _cMCService.isOrderUpdated;
+
+ Future getCMCAllServices() async {
+ await _cMCService
+ .getCMCAllServices();
+ CMCGetItemsRequestModel cMCGetItemsRequestModel = new CMCGetItemsRequestModel(checkupType: cmcAllServicesList[0].iD);
+
+ await getCheckupItems(cMCGetItemsRequestModel: cMCGetItemsRequestModel,isFirst: true);
+ if (_cMCService.hasError) {
+ error = _cMCService.error;
+ setState(ViewState.Error);
+ } else {
+ setState(ViewState.Idle);
+ }
+ }
+ Future getCheckupItems({CMCGetItemsRequestModel cMCGetItemsRequestModel, bool isFirst = false}) async {
+ if(!isFirst)
+ setState(ViewState.Busy);
+ await _cMCService.getCheckupItems(cMCGetItemsRequestModel);
+ if (_cMCService.hasError) {
+ error = _cMCService.error;
+ setState(ViewState.Error);
+ }
+ if(!isFirst)
+ setState(ViewState.Idle);
+ }
+
+ Future getCmcAllPresOrders() async {
+ setState(ViewState.Busy);
+ await _cMCService.getCmcAllPresOrders();
+ if (_cMCService.hasError) {
+ error = _cMCService.error;
+ setState(ViewState.Error);
+ } else {
+ var pendingOrder = _cMCService.cmcAllPresOrdersList.firstWhere(
+ (element) => element.status == 1 || element.status == 2,
+ orElse: () => null);
+ if (pendingOrder != null) {
+ await getOrderDetailByOrderID(pendingOrder);
+ setState(ViewState.Idle);
+ } else {
+ getCMCAllServices();
+ }
+ }
+ }
+
+ Future updateCmcPresOrder(
+ UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
+ setState(ViewState.BusyLocal);
+ await _cMCService.updateCmcPresOrder(
+ updatePresOrderRequestModel);
+ if (_cMCService.hasError) {
+ error = _cMCService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ setState(ViewState.Idle);
+ }
+ }
+
+ Future getOrderDetailByOrderID(GetHHCAllPresOrdersResponseModel order) async {
+ GetOrderDetailByOrderIDRequestModel getOrderDetailByOrderIDRequestModel =
+ GetOrderDetailByOrderIDRequestModel(presOrderID: order.iD);
+ await _cMCService
+ .getOrderDetailByOrderID(getOrderDetailByOrderIDRequestModel);
+ }
+ //TODO check it in uat
+ Future insertPresPresOrder({CMCInsertPresOrderRequestModel order}) async {
+ setState(ViewState.Busy);
+ order.createdBy = user.patientID;
+ order.orderServiceID = OrderService.Comprehensive_Medical_Checkup.getIdOrderService();
+ await _cMCService.insertPresPresOrder(order: order);
+ if (_cMCService.hasError) {
+ error = _cMCService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ getCmcAllPresOrders();
+ }
+ }
+}
\ No newline at end of file
diff --git a/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart
new file mode 100644
index 00000000..031d0a0c
--- /dev/null
+++ b/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart
@@ -0,0 +1,97 @@
+import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/home_health_care_service.dart';
+import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
+
+import '../../../locator.dart';
+
+class HomeHealthCareViewModel extends BaseViewModel {
+ HomeHealthCareService _homeHealthCareService =
+ locator();
+
+ List get hhcAllServicesList =>
+ _homeHealthCareService.hhcAllServicesList;
+
+ List get hhcAllPresOrders =>
+ _homeHealthCareService.hhcAllPresOrdersList;
+
+ List get hhcAllOrderDetail =>
+ _homeHealthCareService.hhcAllOrderDetail;
+
+ bool get isOrderUpdated => _homeHealthCareService.isOrderUpdated;
+
+ GetHHCAllPresOrdersResponseModel pendingOrder;
+
+ List patientERHHCInsertServicesList = List();
+
+ Future getHHCAllServices() async {
+ HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel =
+ new HHCGetAllServicesRequestModel();
+ //setState(ViewState.Busy);
+ await _homeHealthCareService
+ .getHHCAllServices(hHCGetAllServicesRequestModel);
+ if (_homeHealthCareService.hasError) {
+ error = _homeHealthCareService.error;
+ setState(ViewState.Error);
+ } else {
+ setState(ViewState.Idle);
+ }
+ }
+
+ Future getHHCAllPresOrders() async {
+ pendingOrder = null;
+ setState(ViewState.Busy);
+ await _homeHealthCareService.getHHCAllPresOrders();
+ if (_homeHealthCareService.hasError) {
+ error = _homeHealthCareService.error;
+ setState(ViewState.Error);
+ } else {
+ pendingOrder = _homeHealthCareService.hhcAllPresOrdersList
+ .firstWhere((element) => element.status == 1 || element.status == 2,
+ orElse: () => null);
+ if (pendingOrder != null) {
+ await _homeHealthCareService.getOrderDetailByOrderID(pendingOrder.iD);
+ setState(ViewState.Idle);
+ } else {
+ getHHCAllServices();
+ }
+
+ }
+ }
+
+ Future updateHHCPresOrder(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
+ setState(ViewState.Busy);
+ await _homeHealthCareService.updateHHCPresOrder(
+ updatePresOrderRequestModel);
+ if (_homeHealthCareService.hasError) {
+ error = _homeHealthCareService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ setState(ViewState.Idle);
+ }
+ }
+
+ Future insertPresPresOrder({PatientERInsertPresOrderRequestModel order}) async {
+ setState(ViewState.Busy);
+ order.createdBy = user.patientID;
+ order.orderServiceID = OrderService.HOME_HEALTH_CARE.getIdOrderService();
+ await _homeHealthCareService.insertPresPresOrder(order: order);
+ if (_homeHealthCareService.hasError) {
+ error = _homeHealthCareService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ getHHCAllPresOrders();
+ }
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/lib/core/viewModels/er/am_request_view_model.dart b/lib/core/viewModels/er/am_request_view_model.dart
index fbd3d95d..2cf8e877 100644
--- a/lib/core/viewModels/er/am_request_view_model.dart
+++ b/lib/core/viewModels/er/am_request_view_model.dart
@@ -1,5 +1,7 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
+import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart';
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/service/er/am_service.dart';
@@ -7,6 +9,7 @@ import 'package:diplomaticquarterapp/core/service/hospital_service.dart';
import 'package:diplomaticquarterapp/core/service/medical/medical_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
+import 'package:flutter/cupertino.dart';
import '../base_view_model.dart';
import '../../../locator.dart';
@@ -28,6 +31,8 @@ class AmRequestViewModel extends BaseViewModel {
bool get hasPendingOrder =>_amService.hasPendingOrder;
+ PickUpRequestPresOrder get pickUpRequestPresOrder =>_amService.pickUpRequestPresOrder;
+
Future getAppointmentHistory() async {
setState(ViewState.BusyLocal);
await _medicalService.getAppointmentHistory(isActiveAppointment: true);
@@ -73,10 +78,31 @@ class AmRequestViewModel extends BaseViewModel {
Future getOrderDetails() async {
setState(ViewState.Busy);
await _amService.getOrderDetails();
- if (_hospitalService.hasError) {
- error = _hospitalService.error;
+ if (_amService.hasError) {
+ error = _amService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
+
+ Future updatePressOrder({@required int presOrderID}) async {
+ setState(ViewState.Busy);
+ await _amService.updatePressOrder(presOrderID: presOrderID);
+ if (_amService.hasError) {
+ error = _amService.error;
+ setState(ViewState.Error);
+ } else
+ getPatientAllPresOrdersList();
+ }
+
+ Future insertERPressOrder({@required PatientER patientER}) async {
+ setState(ViewState.Busy);
+ await _amService.insertERPressOrder(patientER: patientER);
+ if (_amService.hasError) {
+ error = _amService.error;
+ setState(ViewState.ErrorLocal);
+ } else
+ getAmRequestOrders();
+
+ }
}
diff --git a/lib/core/viewModels/qr_view_model.dart b/lib/core/viewModels/qr_view_model.dart
index cc03d9ab..03c88462 100644
--- a/lib/core/viewModels/qr_view_model.dart
+++ b/lib/core/viewModels/qr_view_model.dart
@@ -1,6 +1,6 @@
import 'dart:convert';
-import 'package:barcode_scan/platform_wrapper.dart';
+// import 'package:barcode_scan/platform_wrapper.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/qr/qr_parking_model.dart';
@@ -14,25 +14,26 @@ class QrViewModel extends BaseViewModel {
QRParkingModel qrParkingModel;
readQr() async {
- var result = await BarcodeScanner.scan();
- var data = json.decode(result.rawContent);
- var qRParkingID = data['QRParkingID'];
- setState(ViewState.BusyLocal);
- await _qrService.getQRParkingByID(qRParkingID);
- if (_qrService.hasError) {
- error = _qrService.error;
- setState(ViewState.ErrorLocal);
- } else {
- if (_qrService.qRParkingList.length > 0) {
- qrParkingModel = _qrService.qRParkingList[0];
- await sharedPref.setObject(IS_GO_TO_PARKING, qrParkingModel);
- isSavePark = true;
- setState(ViewState.Idle);
- } else {
- error = "Invalid Qr Code";
- setState(ViewState.ErrorLocal);
- }
- }
+ //TODO fix the barcode scan
+ // var result = await BarcodeScanner.scan();
+ // var data = json.decode(result.rawContent);
+ // var qRParkingID = data['QRParkingID'];
+ // setState(ViewState.BusyLocal);
+ // await _qrService.getQRParkingByID(qRParkingID);
+ // if (_qrService.hasError) {
+ // error = _qrService.error;
+ // setState(ViewState.ErrorLocal);
+ // } else {
+ // if (_qrService.qRParkingList.length > 0) {
+ // qrParkingModel = _qrService.qRParkingList[0];
+ // await sharedPref.setObject(IS_GO_TO_PARKING, qrParkingModel);
+ // isSavePark = true;
+ // setState(ViewState.Idle);
+ // } else {
+ // error = "Invalid Qr Code";
+ // setState(ViewState.ErrorLocal);
+ // }
+ // }
}
getIsSaveParking() async {
diff --git a/lib/locator.dart b/lib/locator.dart
index e6140ce1..a71d7964 100644
--- a/lib/locator.dart
+++ b/lib/locator.dart
@@ -2,11 +2,14 @@ import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/H2O_serv
import 'package:diplomaticquarterapp/core/service/qr_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/user_information_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import 'package:get_it/get_it.dart';
+import 'core/service/AlHabibMedicalService/cmc_service.dart';
import 'core/service/AlHabibMedicalService/e_referral_service.dart';
+import 'core/service/AlHabibMedicalService/home_health_care_service.dart';
import 'core/service/AuthenticatedUserObject.dart';
import 'core/service/appointment_rate_service.dart';
import 'core/service/blood/blood_details_servies.dart';
@@ -39,6 +42,7 @@ import 'core/service/medical/prescriptions_service.dart';
import 'core/service/medical/radiology_service.dart';
import 'core/service/medical/reports_monthly_service.dart';
import 'core/service/medical/vital_sign_service.dart';
+import 'core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
import 'core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
import 'core/viewModels/appointment_rate_view_model.dart';
import 'core/viewModels/blooddonation/blood_details_view_model.dart';
@@ -104,6 +108,8 @@ void setupLocator() {
locator.registerLazySingleton(() => ErService());
locator.registerLazySingleton(() => AmService());
locator.registerLazySingleton(() => EReferralService());
+ locator.registerLazySingleton(() => HomeHealthCareService());
+ locator.registerLazySingleton(() => CMCService());
locator.registerLazySingleton(() => PatientSickLeaveService());
@@ -165,7 +171,6 @@ void setupLocator() {
locator.registerFactory(() => AddNewChildViewModel());
locator.registerFactory(() => H2OViewModel());
-
locator.registerFactory(() => BloodSugarViewMode());
locator.registerFactory(() => BloodPressureViewMode());
locator.registerFactory(() => WeightPressureViewMode());
@@ -173,4 +178,7 @@ void setupLocator() {
locator.registerFactory(() => ActiveMedicationsViewModel());
locator.registerFactory(() => AskDoctorViewModel());
locator.registerFactory(() => AllergiesViewModel());
+ locator.registerFactory(() => HomeHealthCareViewModel());
+ locator.registerFactory(() => CMCViewModel());
+
}
diff --git a/lib/main.dart b/lib/main.dart
index d8e3307d..9cb5cb78 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -54,6 +54,7 @@ class MyApp extends StatelessWidget {
const Locale('en', ''), // English
],
theme: ThemeData(
+ fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans',
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light,
@@ -66,8 +67,7 @@ class MyApp extends StatelessWidget {
hintColor: Colors.grey[400],
disabledColor: Colors.grey[300],
errorColor: Color.fromRGBO(235, 80, 60, 1.0),
- scaffoldBackgroundColor:
- HexColor('#E9E9E9'), // Colors.grey[100],
+ scaffoldBackgroundColor: HexColor('#E9E9E9'), // Colors.grey[100],
textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
textSelectionHandleColor: Colors.grey,
canvasColor: Colors.white,
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_cancel_order_dialog.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_cancel_order_dialog.dart
new file mode 100644
index 00000000..45bf01b7
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_cancel_order_dialog.dart
@@ -0,0 +1,104 @@
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+// ignore: must_be_immutable
+class ConfirmCancelOrderDialog extends StatefulWidget {
+ final CMCViewModel model;
+ final Function onTap;
+
+
+ ConfirmCancelOrderDialog(
+ {Key key, this.model, this.onTap});
+
+ @override
+ _ConfirmCancelOrderDialogState createState() => _ConfirmCancelOrderDialogState();
+}
+
+class _ConfirmCancelOrderDialogState extends State {
+ @override
+ void initState() {
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return SimpleDialog(
+ contentPadding: EdgeInsets.fromLTRB(28.0, 24.0, 28.0, 0.0),
+ title: Center(
+ child: Texts(
+ "Confirm",
+ color: Colors.black,
+ ),
+ ),
+ children: [
+ Column(
+ children: [
+ Divider(),
+ Center(
+ child: Texts(
+ "Are you sure!! want to cancel this order",
+ color: Colors.grey,
+ ),
+ ),
+ SizedBox(
+ height: 5.0,
+ ),
+ Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ Navigator.pop(context);
+ },
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Container(
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context).cancel.toUpperCase(),
+ color: Colors.red,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ Container(
+ width: 1,
+ height: 30,
+ color: Colors.grey[500],
+ ),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () async{
+ widget.onTap();
+ Navigator.pop(context);
+ },
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context).ok,
+ fontWeight: FontWeight.w400,
+ )),
+ ),
+ ),
+ ),
+ ],
+ )
+ ],
+ )
+ ],
+ );
+ }
+}
+
+
+
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart
new file mode 100644
index 00000000..532396cc
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart
@@ -0,0 +1,346 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_cancel_order_dialog.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/StepsWidget.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/material.dart';
+import 'package:geolocator/geolocator.dart';
+
+import 'new_cmc_step_one_page.dart';
+import 'new_cmc_step_three_page.dart';
+import 'new_cmc_step_tow_page.dart';
+
+class NewCMCPage extends StatefulWidget {
+ NewCMCPage({this.model});
+
+ final CMCViewModel model;
+
+ @override
+ _NewCMCPageState createState() =>
+ _NewCMCPageState();
+}
+
+class _NewCMCPageState extends State
+ with TickerProviderStateMixin {
+ PageController _controller;
+ int _currentIndex = 1;
+
+ double _latitude;
+ double _longitude;
+
+ CMCInsertPresOrderRequestModel cMCInsertPresOrderRequestModel;
+
+ @override
+ void initState() {
+ super.initState();
+ PatientERCMCInsertServicesList patientERCMCInsertServicesList;
+ if (widget.model.cmcAllServicesList.length > 0) {
+ patientERCMCInsertServicesList = new PatientERCMCInsertServicesList(
+ price: widget.model.cmcAllServicesList[0].price,
+ serviceID: widget.model.cmcAllServicesList[0].serviceID.toString(),
+ selectedServiceName: widget.model.cmcAllServicesList[0].description,
+ selectedServiceNameAR: widget.model.cmcAllServicesList[0].description,
+ recordID: 1,
+ totalPrice: widget.model.cmcAllServicesList[0].totalPrice,
+ vAT: widget.model.cmcAllServicesList[0].vAT);
+ cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(
+ patientERCMCInsertServicesList: [patientERCMCInsertServicesList]);
+ }
+
+ cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(
+ patientERCMCInsertServicesList: patientERCMCInsertServicesList != null
+ ? [patientERCMCInsertServicesList]
+ : []);
+
+ _controller = new PageController();
+
+ _getCurrentLocation();
+ }
+
+ _getCurrentLocation() async {
+ await getLastKnownPosition().then((value) {
+ _latitude = value.latitude;
+ _longitude = value.longitude;
+ }).catchError((e) {
+ _longitude = 0;
+ _latitude = 0;
+ });
+ }
+
+ @override
+ void dispose() {
+ super.dispose();
+ }
+
+ changePageViewIndex(pageIndex) {
+ _controller.jumpToPage(pageIndex);
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ void showConfirmMessage(
+ CMCViewModel model, GetOrderDetailByOrderIDResponseModel order) {
+ showDialog(
+ context: context,
+ child: ConfirmCancelOrderDialog(
+ model: model,
+ onTap: () async {
+ UpdatePresOrderRequestModel updatePresOrderRequestModel =
+ UpdatePresOrderRequestModel(
+ presOrderID: order.presOrderID,
+ rejectionReason: "",
+ presOrderStatus: 4, editedBy: 3);
+ await model.updateCmcPresOrder(updatePresOrderRequestModel);
+ if (model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ } else {
+ AppToast.showSuccessToast(message: "Done Successfully");
+ await model.getCmcAllPresOrders();
+ }
+ },
+ ));
+ }
+ return Scaffold(
+ body: SafeArea(
+ child: SingleChildScrollView(
+ child: Container(
+ height: MediaQuery.of(context).size.height * 0.8,
+ child: Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(left: MediaQuery.of(context).size.width*0.05, right: MediaQuery.of(context).size.width*0.05),
+ child: StepsWidget(
+ index: _currentIndex,
+ changeCurrentTab: changePageViewIndex,
+ ),
+ ),
+ Expanded(
+ child: PageView(
+ physics: NeverScrollableScrollPhysics(),
+ controller: _controller,
+ onPageChanged: (index) {
+ setState(() {
+ _currentIndex = index;
+ });
+ },
+ scrollDirection: Axis.horizontal,
+ children: [
+ widget.model.cmcAllOrderDetail.length != 0
+ ? FractionallySizedBox(
+ heightFactor: 0.8,
+ widthFactor: 0.9,
+ child: Container(
+ width: double.infinity,
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(
+ border:
+ Border.all(color: Colors.grey, width: 1),
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Request ID",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ widget.model.cmcAllOrderDetail[0].iD.toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Status",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ "Pending",
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Pickup Date",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ DateUtil.getDayMonthYearDateFormatted(
+ DateUtil.convertStringToDate(
+ widget.model.cmcAllOrderDetail[0]
+ .createdOn)),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Service Name",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ widget.model.cmcAllOrderDetail[0].description
+ .toString() ??
+ widget.model.cmcAllOrderDetail[0]
+ .descriptionN
+ .toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Center(
+ child: Container(
+ width: MediaQuery
+ .of(context)
+ .size
+ .width *
+ 0.85,
+ child: SecondaryButton(
+ label: "Cancel".toUpperCase(),
+ onTap: () {
+ showConfirmMessage(widget.model,
+ widget.model.cmcAllOrderDetail[0]);
+ }
+ ,
+ color: Colors.red[800],
+ disabled: false,
+ textColor: Theme
+ .of(context)
+ .backgroundColor),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+ ),
+ )
+ : NewCMCStepOnePage(
+ changePageViewIndex: changePageViewIndex,
+ cMCInsertPresOrderRequestModel:
+ cMCInsertPresOrderRequestModel,
+ model: widget.model,
+ ),
+ NewCMCStepTowPage(
+ longitude: _longitude,
+ latitude: _latitude,
+ changePageViewIndex: changePageViewIndex,
+ cmcInsertPresOrderRequestModel: cMCInsertPresOrderRequestModel,
+ model: widget.model,
+ ), NewCMCStepThreePage(
+ changePageViewIndex: changePageViewIndex,
+ cmcInsertPresOrderRequestModel: cMCInsertPresOrderRequestModel,
+ model: widget.model,
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart
new file mode 100644
index 00000000..02d099b4
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart
@@ -0,0 +1,231 @@
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+class NewCMCStepOnePage extends StatefulWidget {
+ final CMCInsertPresOrderRequestModel cMCInsertPresOrderRequestModel;
+ final Function changePageViewIndex;
+ final CMCViewModel model;
+
+ const NewCMCStepOnePage(
+ {Key key,
+ this.cMCInsertPresOrderRequestModel,
+ this.model,
+ this.changePageViewIndex})
+ : super(key: key);
+
+ @override
+ _NewCMCStepOnePageState createState() => _NewCMCStepOnePageState();
+}
+
+class _NewCMCStepOnePageState extends State {
+ @override
+ void initState() {
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: false,
+ baseViewModel: widget.model,
+ body: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.all(12),
+ child: Center(
+ child: Column(
+ children: [
+ FractionallySizedBox(
+ widthFactor: 0.94,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 20,
+ ),
+ Texts(
+ "Select Home Health Care Services",
+ textAlign: TextAlign.center,
+ ),
+ Column(
+ children:
+ widget.model.cmcAllServicesList.map((service) {
+ return Container(
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(
+ border:
+ Border.all(color: Colors.grey, width: 1),
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ children: [
+ Row(
+ children: [
+ Radio(
+ value: service.serviceID,
+ activeColor: Colors.red[800],
+ onChanged: (newValue) async {
+ PatientERCMCInsertServicesList
+ patientERCMCInsertServicesList =
+ new PatientERCMCInsertServicesList(
+ price: service.price,
+ serviceID: service.serviceID
+ .toString(),
+ selectedServiceName:
+ service.description,
+ selectedServiceNameAR:
+ service.description,
+ recordID: 1,
+ totalPrice:
+ service.totalPrice,
+ vAT: service.vAT);
+ setState(() {
+ widget
+ .cMCInsertPresOrderRequestModel
+ .patientERCMCInsertServicesList = [
+ patientERCMCInsertServicesList
+ ];
+ });
+ CMCGetItemsRequestModel
+ cMCGetItemsRequestModel =
+ new CMCGetItemsRequestModel(
+ checkupType: newValue);
+ await widget.model.getCheckupItems(
+ cMCGetItemsRequestModel:
+ cMCGetItemsRequestModel);
+ },
+ groupValue: widget
+ .cMCInsertPresOrderRequestModel
+ .patientERCMCInsertServicesList
+ .length >
+ 0
+ ? int.parse(widget
+ .cMCInsertPresOrderRequestModel
+ .patientERCMCInsertServicesList[
+ 0]
+ .serviceID)
+ : 1),
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(20.0),
+ child: Texts(
+ service.description,
+ fontSize: 15,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ );
+ }).toList(),
+ ),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 30,
+ ),
+ Container(
+ color: Colors.white,
+ width: double.infinity,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: widget.model.checkupItems.map((item) {
+ return Center(
+ child: FractionallySizedBox(
+ widthFactor: 1,
+ child: Container(
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 5, top: 5),
+ decoration: BoxDecoration(
+ border: BorderDirectional(
+ bottom: BorderSide(
+ style: BorderStyle.solid,
+ width: 0.5,
+ color: Colors.grey)),
+ //borderRadius: ,
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ item.itemName,
+ fontSize: 15,
+ ),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }).toList()),
+ )
+ ],
+ ),
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ label: "Next",
+ textColor: Theme.of(context).backgroundColor,
+ onTap: () {
+ if (widget.cMCInsertPresOrderRequestModel.patientERCMCInsertServicesList.length = null) {
+ int index = widget.model.cmcAllServicesList.length;
+ PatientERCMCInsertServicesList
+ patientERCMCInsertServicesList =
+ new PatientERCMCInsertServicesList(
+ price: widget.model.cmcAllServicesList[index-1].price,
+ serviceID: widget.model.cmcAllServicesList[index-1].serviceID.toString(),
+ selectedServiceName: widget.model.cmcAllServicesList[index-1].description,
+ selectedServiceNameAR: widget.model.cmcAllServicesList[index-1].description,
+ recordID: 1,
+ totalPrice: widget.model.cmcAllServicesList[index-1].totalPrice,
+ vAT: widget.model.cmcAllServicesList[index-1].vAT);
+
+ widget.cMCInsertPresOrderRequestModel
+ .patientERCMCInsertServicesList = [
+ patientERCMCInsertServicesList
+ ];
+
+ widget.changePageViewIndex(1);
+ }
+ },
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart
new file mode 100644
index 00000000..e48bb5d5
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart
@@ -0,0 +1,165 @@
+import 'dart:async';
+
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:google_maps_flutter/google_maps_flutter.dart';
+
+class NewCMCStepThreePage extends StatefulWidget {
+ final CMCInsertPresOrderRequestModel cmcInsertPresOrderRequestModel;
+ final Function changePageViewIndex;
+ final CMCViewModel model;
+
+ NewCMCStepThreePage(
+ {Key key,
+ this.changePageViewIndex,
+ this.model,
+ this.cmcInsertPresOrderRequestModel});
+
+ @override
+ _NewCMCStepThreePageState createState() =>
+ _NewCMCStepThreePageState();
+}
+
+class _NewCMCStepThreePageState
+ extends State {
+ Completer _controller = Completer();
+
+ static CameraPosition _kGooglePlex = CameraPosition(
+ target: LatLng(37.42796133580664, -122.085749655962),
+ zoom: 14.4746,
+ );
+ final Set markers = new Set();
+
+ @override
+ void initState() {
+ if (widget.cmcInsertPresOrderRequestModel.latitude != null) {
+ markers.clear();
+ markers.add(
+ Marker(
+ markerId: MarkerId(
+ widget.cmcInsertPresOrderRequestModel.latitude.hashCode
+ .toString(),
+ ),
+ position: LatLng(
+ widget.cmcInsertPresOrderRequestModel.latitude,
+ widget.cmcInsertPresOrderRequestModel.longitude)),
+ );
+ _kGooglePlex = CameraPosition(
+ target: LatLng(widget.cmcInsertPresOrderRequestModel.latitude,
+ widget.cmcInsertPresOrderRequestModel.longitude),
+ zoom: 14.4746,
+ );
+ }
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowDecPage: false,
+ baseViewModel: widget.model,
+ body: SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Container(
+ height: 400,
+ width: double.maxFinite,
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Order Details'),
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(12)),
+ padding: EdgeInsets.all(8),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Location :'),
+ SizedBox(
+ height: 12,
+ ),
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Container(
+ height: 200,
+ child: GoogleMap(
+ mapType: MapType.normal,
+ markers: markers,
+ initialCameraPosition: _kGooglePlex,
+ onMapCreated: (GoogleMapController controller) {
+ _controller.complete(controller);
+ },
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Selected Service :'),
+ ...List.generate(
+ widget.cmcInsertPresOrderRequestModel.patientERCMCInsertServicesList.length,
+ (index) => Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ 'Service Name :',
+ fontSize: 12,
+ ),
+ SizedBox(
+ height: 5,
+ ),
+ Texts(
+ widget
+ .cmcInsertPresOrderRequestModel.patientERCMCInsertServicesList[index]
+ .selectedServiceName,
+ fontSize: 15,
+ bold: true,
+ ),
+ ],
+ ),
+ ),
+ )
+ ],
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ label: "Confirm",
+ onTap: () async {
+ await widget.model.insertPresPresOrder(order: widget.cmcInsertPresOrderRequestModel);
+ if (widget.model.state != ViewState.ErrorLocal) {
+ widget.changePageViewIndex(0);
+ }
+ },
+ textColor: Theme.of(context).backgroundColor),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_tow_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_tow_page.dart
new file mode 100644
index 00000000..27cddfe3
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_tow_page.dart
@@ -0,0 +1,113 @@
+import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/others/close_back.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:google_maps_place_picker/google_maps_place_picker.dart';
+import 'package:google_maps_flutter/google_maps_flutter.dart';
+import 'package:provider/provider.dart';
+
+class NewCMCStepTowPage extends StatefulWidget {
+ final Function(PickResult) onPick;
+ final double latitude;
+ final double longitude;
+ final CMCInsertPresOrderRequestModel cmcInsertPresOrderRequestModel;
+ final Function changePageViewIndex;
+ final CMCViewModel model;
+
+ const NewCMCStepTowPage(
+ {Key key,
+ this.onPick,
+ this.latitude,
+ this.longitude,
+ this.cmcInsertPresOrderRequestModel,
+ this.changePageViewIndex,
+ this.model})
+ : super(key: key);
+
+ @override
+ _NewCMCStepTowPageState createState() =>
+ _NewCMCStepTowPageState();
+}
+
+class _NewCMCStepTowPageState
+ extends State {
+ double latitude = 0;
+ double longitude = 0;
+
+ @override
+ void initState() {
+ if (widget.cmcInsertPresOrderRequestModel.latitude == null) {
+ latitude = widget.latitude;
+ longitude = widget.longitude;
+ } else {
+ latitude = widget.cmcInsertPresOrderRequestModel.latitude;
+ longitude = widget.cmcInsertPresOrderRequestModel.longitude;
+ }
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
+ return AppScaffold(
+ isShowDecPage: false,
+ body: PlacePicker(
+ apiKey: GOOGLE_API_KEY,
+ enableMyLocationButton: true,
+ automaticallyImplyAppBarLeading: false,
+ autocompleteOnTrailingWhitespace: true,
+ selectInitialPosition: true,
+ autocompleteLanguage: projectViewModel.currentLanguage,
+ enableMapTypeButton: true,
+ onPlacePicked: (PickResult result) {
+ print(result.adrAddress);
+ widget.changePageViewIndex(3);
+ },
+ selectedPlaceWidgetBuilder:
+ (_, selectedPlace, state, isSearchBarFocused) {
+ print("state: $state, isSearchBarFocused: $isSearchBarFocused");
+ return isSearchBarFocused
+ ? Container()
+ : FloatingCard(
+ bottomPosition: 0.0,
+ leftPosition: 0.0,
+ rightPosition: 0.0,
+ width: 500,
+ borderRadius: BorderRadius.circular(12.0),
+ child: state == SearchingState.Searching
+ ? Center(child: CircularProgressIndicator())
+ : Container(
+ margin: EdgeInsets.all(12),
+ child: SecondaryButton(
+ color: Colors.grey[800],
+ textColor: Colors.white,
+ onTap: () {
+ setState(() {
+ widget.cmcInsertPresOrderRequestModel
+ .latitude =
+ selectedPlace.geometry.location.lat;
+ widget.cmcInsertPresOrderRequestModel
+ .longitude =
+ selectedPlace.geometry.location.lng;
+ });
+ widget.changePageViewIndex(3);
+ },
+ label: TranslationBase.of(context).next,
+ ),
+ ),
+ );
+ },
+ initialPosition: LatLng(latitude, longitude),
+ useCurrentLocation: true,
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_index_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_index_page.dart
new file mode 100644
index 00000000..e8e9eccc
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_index_page.dart
@@ -0,0 +1,68 @@
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:hexcolor/hexcolor.dart';
+import 'cmc_page.dart';
+
+class CMCIndexPage extends StatelessWidget {
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: TranslationBase.of(context).serviceInformation,
+ body: SingleChildScrollView(
+ padding: EdgeInsets.all(12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "CMC",
+ fontWeight: FontWeight.normal,
+ fontSize: 25,
+ color: Color(0xff60686b),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts(
+ "This service is designed to help you to set drinking water goals and track the volume of water you are drinking on a daily basis. This service allows for schedule reminders and offers a basic statistical analysis of the amount of what you have consumed over the course of a day, week or month.",
+ fontWeight: FontWeight.normal,
+ fontSize: 17,
+ ),
+ SizedBox(
+ height: 22,
+ ),
+ Center(
+ child: Image.asset(
+ 'assets/images/AlHabibMedicalService/Wifi-AR.png')),
+ SizedBox(
+ height: 77,
+ ),
+ ],
+ )),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: CMCPage(),
+ ),
+ ),
+ label: "CMC",
+ textColor: Theme.of(context).backgroundColor),
+ ),
+ ],
+ ),
+ ));
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart
new file mode 100644
index 00000000..385d0da3
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart
@@ -0,0 +1,130 @@
+import 'dart:ui';
+
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+import 'NewCMC/new_cmc_page.dart';
+import 'orders_log_details_page.dart';
+
+class CMCPage extends StatefulWidget {
+ @override
+ _CMCPageState createState() => _CMCPageState();
+}
+
+class _CMCPageState extends State
+ with SingleTickerProviderStateMixin {
+ TabController _tabController;
+
+ @override
+ void initState() {
+ super.initState();
+ _tabController = TabController(length: 2, vsync: this);
+ }
+
+ @override
+ void dispose() {
+ super.dispose();
+ _tabController.dispose();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return BaseView(
+ onModelReady: (model){
+ model.getCmcAllPresOrders();
+ },
+ builder: (_, model, widget) => AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: TranslationBase.of(context).homeHealthCare,
+ body: Scaffold(
+ extendBodyBehindAppBar: true,
+ appBar: PreferredSize(
+ preferredSize: Size.fromHeight(65.0),
+ child: Stack(
+ children: [
+ Positioned(
+ bottom: 1,
+ left: 0,
+ right: 0,
+ child: BackdropFilter(
+ filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
+ child: Container(
+ color: Theme.of(context)
+ .scaffoldBackgroundColor
+ .withOpacity(0.8),
+ height: 70.0,
+ ),
+ ),
+ ),
+ Center(
+ child: Container(
+ height: 60.0,
+ margin: EdgeInsets.only(top: 10.0),
+ width: MediaQuery.of(context).size.width * 0.9,
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Theme.of(context).dividerColor,
+ width: 0.7),
+ ),
+ color: Colors.white),
+ child: Center(
+ child: TabBar(
+ isScrollable: true,
+ controller: _tabController,
+ indicatorWeight: 5.0,
+ indicatorSize: TabBarIndicatorSize.label,
+ indicatorColor: Colors.red[800],
+ labelColor: Theme.of(context).primaryColor,
+ labelPadding:
+ EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
+ unselectedLabelColor: Colors.grey[800],
+ tabs: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.37,
+ child: Center(
+ child: Texts("CMC Service"),
+ ),
+ ),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.37,
+ child: Center(
+ child: Texts(TranslationBase.of(context).orderLog),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ body: Column(
+ children: [
+ Expanded(
+ child: TabBarView(
+ physics: BouncingScrollPhysics(),
+ controller: _tabController,
+ children: [
+ NewCMCPage(
+ model: model,
+ ),
+ OrdersLogDetailsPage(
+ model: model,
+ )
+ ],
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart
new file mode 100644
index 00000000..6c915a4c
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart
@@ -0,0 +1,250 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+
+import 'Dialog/confirm_cancel_order_dialog.dart';
+
+class OrdersLogDetailsPage extends StatelessWidget {
+ final CMCViewModel model;
+
+ const OrdersLogDetailsPage({Key key, this.model}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ void showConfirmMessage(
+ CMCViewModel model, GetHHCAllPresOrdersResponseModel order) {
+ showDialog(
+ context: context,
+ child: ConfirmCancelOrderDialog(
+ model: model,
+ onTap: () async {
+ UpdatePresOrderRequestModel updatePresOrderRequestModel =
+ UpdatePresOrderRequestModel(
+ presOrderID: order.iD,
+ rejectionReason: "",
+ presOrderStatus: 4, editedBy: 3);
+ await model.updateCmcPresOrder(updatePresOrderRequestModel);
+ if(model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ } else {
+ AppToast.showSuccessToast(message: "Done Successfully");
+ await model.getCmcAllPresOrders();
+ }
+ },
+ ));
+ }
+
+ return AppScaffold(
+ isShowAppBar: false,
+ baseViewModel: model,
+ body: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.all(12),
+ child: Center(
+ child: FractionallySizedBox(
+ widthFactor: 0.94,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 50,
+ ),
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: model.cmcAllPresOrders.map((order) {
+ return Container(
+ width: double.infinity,
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(
+ border:
+ Border.all(color: Colors.grey, width: 1),
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Request ID",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ order.iD.toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Status",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ order.description,
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Pickup Date",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ DateUtil.getDayMonthYearDateFormatted(
+ DateUtil.convertStringToDate(
+ order.createdOn)),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Location",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ order.nearestProjectDescription
+ .toString() ??
+ order.nearestProjectDescriptionN
+ .toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ if (order.status == 1 ||order.status == 2 )
+ Center(
+ child: Container(
+ width: MediaQuery
+ .of(context)
+ .size
+ .width *
+ 0.85,
+ child: SecondaryButton(
+ label: "Cancel".toUpperCase(),
+ onTap: () {
+ showConfirmMessage(model, order);
+ }
+ ,
+ color: Colors.red[800],
+ disabled: false,
+ textColor: Theme
+ .of(context)
+ .backgroundColor),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+ );
+ }).toList())
+ ],
+ ),
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart
index 5787af66..fb2b94c6 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart
@@ -1,5 +1,3 @@
-
-
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/create_e_referral_request_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart';
import 'package:flutter/material.dart';
@@ -8,7 +6,6 @@ import 'new_e_referral_step_three_page.dart';
import 'new_e_referral_step_two_page.dart';
class StartIndexForNewEReferral extends StatefulWidget {
-
StartIndexForNewEReferral();
@override
@@ -22,8 +19,8 @@ class _StartIndexForNewEReferralState extends State
int _currentIndex = 1;
int pageSelected = 2;
-
- CreateEReferralRequestModel createEReferralRequestModel = new CreateEReferralRequestModel();
+ CreateEReferralRequestModel createEReferralRequestModel =
+ new CreateEReferralRequestModel();
@override
void initState() {
@@ -46,7 +43,7 @@ class _StartIndexForNewEReferralState extends State
body: SafeArea(
child: SingleChildScrollView(
child: Container(
- height: MediaQuery.of(context).size.height,
+ height: MediaQuery.of(context).size.height * 0.9,
child: PageView(
physics: NeverScrollableScrollPhysics(),
controller: _controller,
@@ -64,12 +61,10 @@ class _StartIndexForNewEReferralState extends State
NewEReferralStepTowPage(
changePageViewIndex: changePageViewIndex,
createEReferralRequestModel: createEReferralRequestModel,
-
),
NewEReferralStepThreePage(
changePageViewIndex: changePageViewIndex,
createEReferralRequestModel: createEReferralRequestModel,
-
),
],
),
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart
index 6460de03..62799c6d 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart
@@ -95,7 +95,7 @@ class _NewEReferralStepOnePageState extends State {
margin: EdgeInsets.all(12),
child: Center(
child: FractionallySizedBox(
- widthFactor: 0.94,
+ widthFactor: 0.9,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart
index ef0be383..c837bd2a 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart
@@ -19,7 +19,7 @@ class EReferralIndexPage extends StatelessWidget {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: "Service Information",
+ appBarTitle: TranslationBase.of(context).serviceInformation,
body: SingleChildScrollView(
padding: EdgeInsets.all(12),
child: Column(
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/Dialog/confirm_cancel_order_dialog.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/Dialog/confirm_cancel_order_dialog.dart
new file mode 100644
index 00000000..17be8edd
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/Dialog/confirm_cancel_order_dialog.dart
@@ -0,0 +1,103 @@
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+// ignore: must_be_immutable
+class ConfirmCancelOrderDialog extends StatefulWidget {
+ final HomeHealthCareViewModel model;
+ final Function onTap;
+
+
+ ConfirmCancelOrderDialog(
+ {Key key, this.model, this.onTap});
+
+ @override
+ _ConfirmCancelOrderDialogState createState() => _ConfirmCancelOrderDialogState();
+}
+
+class _ConfirmCancelOrderDialogState extends State {
+ @override
+ void initState() {
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return SimpleDialog(
+ contentPadding: EdgeInsets.fromLTRB(28.0, 24.0, 28.0, 0.0),
+ title: Center(
+ child: Texts(
+ "Confirm",
+ color: Colors.black,
+ ),
+ ),
+ children: [
+ Column(
+ children: [
+ Divider(),
+ Center(
+ child: Texts(
+ "Are you sure!! want to cancel this order",
+ color: Colors.grey,
+ ),
+ ),
+ SizedBox(
+ height: 5.0,
+ ),
+ Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ Navigator.pop(context);
+ },
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Container(
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context).cancel.toUpperCase(),
+ color: Colors.red,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ Container(
+ width: 1,
+ height: 30,
+ color: Colors.grey[500],
+ ),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () async{
+ widget.onTap();
+ Navigator.pop(context);
+ },
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context).ok,
+ fontWeight: FontWeight.w400,
+ )),
+ ),
+ ),
+ ),
+ ],
+ )
+ ],
+ )
+ ],
+ );
+ }
+}
+
+
+
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart
new file mode 100644
index 00000000..1dbee1b5
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_one_page.dart
@@ -0,0 +1,177 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:geolocator/geolocator.dart';
+import 'package:google_maps_place_picker/google_maps_place_picker.dart';
+
+class NewHomeHealthCareStepOnePage extends StatefulWidget {
+ final PatientERInsertPresOrderRequestModel
+ patientERInsertPresOrderRequestModel;
+ final Function changePageViewIndex;
+ final HomeHealthCareViewModel model;
+
+ const NewHomeHealthCareStepOnePage(
+ {Key key,
+ this.patientERInsertPresOrderRequestModel,
+ this.model,
+ this.changePageViewIndex})
+ : super(key: key);
+
+ @override
+ _NewHomeHealthCareStepOnePageState createState() =>
+ _NewHomeHealthCareStepOnePageState();
+}
+
+class _NewHomeHealthCareStepOnePageState extends State {
+
+ PickResult _result;
+
+
+ @override
+ void initState() {
+ if (widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList == null)
+ widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList = [];
+ super.initState();
+ }
+
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: false,
+ baseViewModel: widget.model,
+ body: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.only(
+ left: MediaQuery.of(context).size.width * 0.05,
+ right: MediaQuery.of(context).size.width * 0.05),
+ child: Center(
+ child: FractionallySizedBox(
+ widthFactor: 1,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Texts(
+ "Select Home Health Care Services",
+ textAlign: TextAlign.center,
+ ),
+ Column(
+ children: widget.model.hhcAllServicesList.map((service) {
+ return Container(
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(
+ border: Border.all(color: Colors.grey, width: 1),
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ children: [
+ Row(
+ children: [
+ Checkbox(
+ value: isServiceSelected(service.serviceID),
+ activeColor: Colors.red[800],
+ onChanged: (bool newValue) {
+ setState(() {
+ if (!isServiceSelected(
+ service.serviceID))
+ widget
+ .patientERInsertPresOrderRequestModel
+ .patientERHHCInsertServicesList
+ .add(PatientERHHCInsertServicesList(
+ recordID: widget
+ .patientERInsertPresOrderRequestModel
+ .patientERHHCInsertServicesList
+ .length,
+ serviceID: service.serviceID,
+ serviceName:
+ service.description));
+ else
+ removeSelected(service.serviceID);
+ // widget.patientERInsertPresOrderRequestModel
+ // isPatientInsured = newValue;
+ });
+ }),
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(20.0),
+ child: Texts(
+ service.description,
+ fontSize: 15,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ );
+ }).toList(),
+ )
+ ],
+ ),
+ ),
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ label: "Next",
+ disabled: this
+ .widget
+ .patientERInsertPresOrderRequestModel
+ .patientERHHCInsertServicesList
+ .length == 0,
+ onTap: (){
+ widget.changePageViewIndex(1);
+ },
+ textColor: Theme.of(context).backgroundColor),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ isServiceSelected(int serviceId) {
+ Iterable patientERHHCInsertServicesList =
+ widget
+ .patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList
+ .where((element) => serviceId == element.serviceID);
+ if (patientERHHCInsertServicesList.length > 0) {
+ return true;
+ }
+ return false;
+ }
+
+ removeSelected(int serviceId) {
+ Iterable patientERHHCInsertServicesList =
+ widget
+ .patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList
+ .where((element) => serviceId == element.serviceID);
+
+ if (patientERHHCInsertServicesList.length > 0)
+ setState(() {
+ widget
+ .patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList
+ .remove(patientERHHCInsertServicesList.first);
+ });
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_three_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_three_page.dart
new file mode 100644
index 00000000..aca2f3c2
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_three_page.dart
@@ -0,0 +1,172 @@
+import 'dart:async';
+
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:google_maps_flutter/google_maps_flutter.dart';
+
+class NewHomeHealthCareStepThreePage extends StatefulWidget {
+ final PatientERInsertPresOrderRequestModel
+ patientERInsertPresOrderRequestModel;
+ final Function changePageViewIndex;
+ final HomeHealthCareViewModel model;
+
+ NewHomeHealthCareStepThreePage(
+ {Key key,
+ this.patientERInsertPresOrderRequestModel,
+ this.changePageViewIndex,
+ this.model});
+
+ @override
+ _NewHomeHealthCareStepThreePageState createState() =>
+ _NewHomeHealthCareStepThreePageState();
+}
+
+class _NewHomeHealthCareStepThreePageState
+ extends State {
+ Completer _controller = Completer();
+
+ static CameraPosition _kGooglePlex = CameraPosition(
+ target: LatLng(37.42796133580664, -122.085749655962),
+ zoom: 14.4746,
+ );
+ final Set markers = new Set();
+
+ @override
+ void initState() {
+ if (widget.patientERInsertPresOrderRequestModel.latitude != null) {
+ markers.clear();
+ markers.add(
+ Marker(
+ markerId: MarkerId(
+ widget.patientERInsertPresOrderRequestModel.latitude.hashCode
+ .toString(),
+ ),
+ position: LatLng(
+ widget.patientERInsertPresOrderRequestModel.latitude,
+ widget.patientERInsertPresOrderRequestModel.longitude)),
+ );
+ _kGooglePlex = CameraPosition(
+ target: LatLng(widget.patientERInsertPresOrderRequestModel.latitude,
+ widget.patientERInsertPresOrderRequestModel.longitude),
+ zoom: 14.4746,
+ );
+ }
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowDecPage: false,
+ baseViewModel: widget.model,
+ body: SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Container(
+ width: double.maxFinite,
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Order Details'),
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(12)),
+ padding: EdgeInsets.all(8),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Location :'),
+ SizedBox(
+ height: 12,
+ ),
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Container(
+ height: 200,
+ child: GoogleMap(
+ mapType: MapType.normal,
+ markers: markers,
+ initialCameraPosition: _kGooglePlex,
+ onMapCreated: (GoogleMapController controller) {
+ _controller.complete(controller);
+ },
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Selected Service :'),
+ ...List.generate(
+ widget.patientERInsertPresOrderRequestModel
+ .patientERHHCInsertServicesList.length,
+ (index) => Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ 'Service Name :',
+ fontSize: 12,
+ ),
+ SizedBox(
+ height: 5,
+ ),
+ Texts(
+ widget
+ .patientERInsertPresOrderRequestModel
+ .patientERHHCInsertServicesList[index]
+ .serviceName,
+ fontSize: 15,
+ bold: true,
+ ),
+ ],
+ ),
+ ),
+ )
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 57,
+ ),
+ ],
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ label: "Confirm",
+ disabled: widget.patientERInsertPresOrderRequestModel
+ .patientERHHCInsertServicesList.length ==
+ 0,
+ onTap: () async {
+ await widget.model.insertPresPresOrder(
+ order: widget.patientERInsertPresOrderRequestModel);
+ if (widget.model.state != ViewState.ErrorLocal) {
+ widget.changePageViewIndex(0);
+ }
+ },
+ textColor: Theme.of(context).backgroundColor),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart
new file mode 100644
index 00000000..3f522a1f
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart
@@ -0,0 +1,112 @@
+import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/others/close_back.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:google_maps_place_picker/google_maps_place_picker.dart';
+import 'package:google_maps_flutter/google_maps_flutter.dart';
+import 'package:provider/provider.dart';
+
+class NewHomeHealthCareStepTowPage extends StatefulWidget {
+ final Function(PickResult) onPick;
+ final double latitude;
+ final double longitude;
+ final PatientERInsertPresOrderRequestModel
+ patientERInsertPresOrderRequestModel;
+ final Function changePageViewIndex;
+ final HomeHealthCareViewModel model;
+
+ const NewHomeHealthCareStepTowPage(
+ {Key key,
+ this.onPick,
+ this.latitude,
+ this.longitude,
+ this.patientERInsertPresOrderRequestModel,
+ this.changePageViewIndex,
+ this.model})
+ : super(key: key);
+
+ @override
+ _NewHomeHealthCareStepTowPageState createState() =>
+ _NewHomeHealthCareStepTowPageState();
+}
+
+class _NewHomeHealthCareStepTowPageState
+ extends State {
+ double latitude = 0;
+ double longitude = 0;
+
+ @override
+ void initState() {
+ if (widget.patientERInsertPresOrderRequestModel.latitude == null) {
+ latitude = widget.latitude;
+ longitude = widget.longitude;
+ } else {
+ latitude = widget.patientERInsertPresOrderRequestModel.latitude;
+ longitude = widget.patientERInsertPresOrderRequestModel.longitude;
+ }
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
+ return AppScaffold(
+ isShowDecPage: false,
+ body: PlacePicker(
+ apiKey: GOOGLE_API_KEY,
+ enableMyLocationButton: true,
+ automaticallyImplyAppBarLeading: false,
+ autocompleteOnTrailingWhitespace: true,
+ selectInitialPosition: true,
+ autocompleteLanguage: projectViewModel.currentLanguage,
+ enableMapTypeButton: true,
+ onPlacePicked: (PickResult result) {
+ print(result.adrAddress);
+ widget.changePageViewIndex(3);
+ },
+ selectedPlaceWidgetBuilder:
+ (_, selectedPlace, state, isSearchBarFocused) {
+ print("state: $state, isSearchBarFocused: $isSearchBarFocused");
+ return isSearchBarFocused
+ ? Container()
+ : FloatingCard(
+ bottomPosition: 0.0,
+ leftPosition: 0.0,
+ rightPosition: 0.0,
+ width: 500,
+ borderRadius: BorderRadius.circular(12.0),
+ child: state == SearchingState.Searching
+ ? Center(child: CircularProgressIndicator())
+ : Container(
+ margin: EdgeInsets.all(12),
+ child: SecondaryButton(
+ color: Colors.grey[800],
+ textColor: Colors.white,
+ onTap: () {
+ setState(() {
+ widget.patientERInsertPresOrderRequestModel
+ .latitude =
+ selectedPlace.geometry.location.lat;
+ widget.patientERInsertPresOrderRequestModel
+ .longitude =
+ selectedPlace.geometry.location.lng;
+ });
+ widget.changePageViewIndex(3);
+ },
+ label: TranslationBase.of(context).next,
+ ),
+ ),
+ );
+ },
+ initialPosition: LatLng(latitude, longitude),
+ useCurrentLocation: true,
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_home_health_care_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_home_health_care_page.dart
new file mode 100644
index 00000000..87a33c6d
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_home_health_care_page.dart
@@ -0,0 +1,325 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/Dialog/confirm_cancel_order_dialog.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_three_page.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/material.dart';
+import 'package:geolocator/geolocator.dart';
+
+import '../StepsWidget.dart';
+import 'new_Home_health_care_step_one_page.dart';
+
+class NewHomeHealthCarePage extends StatefulWidget {
+ NewHomeHealthCarePage({this.model});
+
+ final HomeHealthCareViewModel model;
+ @override
+ _NewHomeHealthCarePageState createState() => _NewHomeHealthCarePageState();
+}
+
+class _NewHomeHealthCarePageState extends State
+ with TickerProviderStateMixin {
+ PageController _controller;
+ int _currentIndex = 1;
+ double _latitude;
+ double _longitude;
+
+ PatientERInsertPresOrderRequestModel patientERInsertPresOrderRequestModel =
+ new PatientERInsertPresOrderRequestModel();
+
+ @override
+ void initState() {
+ super.initState();
+ _controller = new PageController();
+ _getCurrentLocation();
+ }
+
+ _getCurrentLocation() async {
+ await getLastKnownPosition().then((value) {
+ _latitude = value.latitude;
+ _longitude = value.longitude;
+ }).catchError((e) {
+ _longitude = 0;
+ _latitude = 0;
+ });
+ }
+
+ @override
+ void dispose() {
+ super.dispose();
+ }
+
+ _changeCurrentTab(int tab) {
+ setState(() {
+ _currentIndex = tab;
+ });
+ _controller.animateToPage(tab,
+ duration: Duration(milliseconds: 800), curve: Curves.easeOutQuart);
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ void showConfirmMessage(HomeHealthCareViewModel model,
+ GetOrderDetailByOrderIDResponseModel order) {
+ showDialog(
+ context: context,
+ child: ConfirmCancelOrderDialog(
+ model: model,
+ onTap: () async {
+ UpdatePresOrderRequestModel updatePresOrderRequestModel =
+ UpdatePresOrderRequestModel(
+ presOrderID: order.presOrderID,
+ rejectionReason: "",
+ presOrderStatus: 4,
+ editedBy: 3);
+ await model.updateHHCPresOrder(updatePresOrderRequestModel);
+ if (model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ } else {
+ AppToast.showSuccessToast(message: "Done Successfully");
+ await model.getHHCAllPresOrders();
+ // await model.getHHCAllServices();
+ }
+ },
+ ));
+ }
+
+ return Scaffold(
+ body: SafeArea(
+ child: SingleChildScrollView(
+ child: Container(
+ height: MediaQuery.of(context).size.height * 0.8,
+ child: Column(
+ children: [
+
+ Container(
+ margin: EdgeInsets.only(left: MediaQuery.of(context).size.width*0.05, right: MediaQuery.of(context).size.width*0.05),
+ child: StepsWidget(
+ index: _currentIndex,
+ changeCurrentTab: _changeCurrentTab,
+ ),
+ ),
+ Expanded(
+ child: PageView(
+ physics: NeverScrollableScrollPhysics(),
+ controller: _controller,
+ onPageChanged: (index) {
+ setState(() {
+ _currentIndex = index;
+ });
+ },
+ scrollDirection: Axis.horizontal,
+ children: [
+ widget.model.pendingOrder != null
+ ? FractionallySizedBox(
+ widthFactor: 0.9,
+ child: SingleChildScrollView(
+ child: Container(
+ width: double.infinity,
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(
+ border: Border.all(color: Colors.grey, width: 1),
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Request ID",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ widget.model.pendingOrder.iD.toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Status",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ widget.model.pendingOrder.description,
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Pickup Date",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ DateUtil.getDayMonthYearDateFormatted(
+ DateUtil.convertStringToDate(widget
+ .model.pendingOrder.createdOn)),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ ...List.generate(
+ widget.model.hhcAllOrderDetail.length,
+ (index) => Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Service Name",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ widget.model.hhcAllOrderDetail[index]
+ .description,
+ fontSize: 22,
+ bold: true,
+ ),
+ ],
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Center(
+ child: Container(
+ width:
+ MediaQuery.of(context).size.width * 0.85,
+ child: SecondaryButton(
+ label: "Cancel".toUpperCase(),
+ onTap: () {
+ showConfirmMessage(widget.model,
+ widget.model.hhcAllOrderDetail[0]);
+ },
+ color: Colors.red[800],
+ disabled: false,
+ textColor:
+ Theme.of(context).backgroundColor),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+ ),
+ ),
+ )
+ : NewHomeHealthCareStepOnePage(
+ changePageViewIndex: _changeCurrentTab,
+ patientERInsertPresOrderRequestModel: patientERInsertPresOrderRequestModel,
+ model: widget.model,
+ ),
+ NewHomeHealthCareStepTowPage(
+ latitude: _latitude,
+ longitude: _longitude,
+ changePageViewIndex: _changeCurrentTab,
+ patientERInsertPresOrderRequestModel: patientERInsertPresOrderRequestModel,
+ model: widget.model,
+ ),
+ NewHomeHealthCareStepThreePage(
+ changePageViewIndex: _changeCurrentTab,
+ patientERInsertPresOrderRequestModel: patientERInsertPresOrderRequestModel,
+ model: widget.model,
+ )
+
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/StepsWidget.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/StepsWidget.dart
new file mode 100644
index 00000000..370544d0
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/StepsWidget.dart
@@ -0,0 +1,181 @@
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+
+class StepsWidget extends StatelessWidget {
+ final int index;
+ final Function changeCurrentTab;
+
+ StepsWidget({Key key, this.index, this.changeCurrentTab});
+
+ @override
+ Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
+ return !projectViewModel.isArabic? Stack(
+ children: [
+ Container(
+ height: 50,
+ width: MediaQuery.of(context).size.width,
+ color: Colors.transparent,
+ child: Center(
+ child: Divider(
+ color: Colors.grey,
+ height: 0.75,
+ thickness: 0.75,
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: 0,
+ child: InkWell(
+ onTap: () => changeCurrentTab(0),
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '1',
+ color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: MediaQuery.of(context).size.width * 0.42,
+ child: InkWell(
+ onTap: () => index >= 2 ? changeCurrentTab(1) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '2',
+ color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ right: 0,
+ child: InkWell(
+ onTap: () => index == 2 ?changeCurrentTab(3) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ shape: BoxShape.circle,
+ border: Border.all(color: Colors.black,width: 0.75),
+ color: index == 2 ? Colors.grey[800] : Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '3',
+ color: index == 2 ? Colors.white : Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+
+ ],
+ ):Stack(
+ children: [
+ Container(
+ height: 50,
+ width: MediaQuery.of(context).size.width,
+ color: Colors.transparent,
+ child: Center(
+ child: Divider(
+ color: Colors.grey,
+ height: 0.75,
+ thickness: 0.75,
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ right: 0,
+ child: InkWell(
+ onTap: () => changeCurrentTab(0),
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '1',
+ color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: MediaQuery.of(context).size.width * 0.42,
+ child: InkWell(
+ onTap: () => index >= 2 ? changeCurrentTab(1) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '2',
+ color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: 0,
+ child: InkWell(
+ onTap: () => index == 2 ?changeCurrentTab(3) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ shape: BoxShape.circle,
+ border: Border.all(color: Colors.black,width: 0.75),
+ color: index == 2 ? Colors.grey[800] : Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '3',
+ color: index == 2 ? Colors.white : Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_index_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_index_page.dart
new file mode 100644
index 00000000..fa0799f9
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_index_page.dart
@@ -0,0 +1,69 @@
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:hexcolor/hexcolor.dart';
+
+import 'home_health_care_page.dart';
+
+class HomeHealthCareIndexPage extends StatelessWidget {
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: TranslationBase.of(context).serviceInformation,
+ body: SingleChildScrollView(
+ padding: EdgeInsets.all(12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ TranslationBase.of(context).homeHealthCare,
+ fontWeight: FontWeight.normal,
+ fontSize: 25,
+ color: Color(0xff60686b),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts(
+ TranslationBase.of(context).homeHealthCareText,
+ fontWeight: FontWeight.normal,
+ fontSize: 17,
+ ),
+ SizedBox(
+ height: 22,
+ ),
+ Center(
+ child: Image.asset(
+ 'assets/images/AlHabibMedicalService/Wifi-AR.png')),
+ SizedBox(
+ height: 77,
+ ),
+ ],
+ )),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: HomeHealthCarePage(),
+ ),
+ ),
+ label: TranslationBase.of(context).loginRegister,
+ textColor: Theme.of(context).backgroundColor),
+ ),
+ ],
+ ),
+ ));
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart
new file mode 100644
index 00000000..8f4821f6
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart
@@ -0,0 +1,132 @@
+import 'dart:ui';
+
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
+import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+import 'NewHomeHealthCare/new_home_health_care_page.dart';
+import 'orders_log_details_page.dart';
+
+class HomeHealthCarePage extends StatefulWidget {
+ @override
+ _HomeHealthCarePageState createState() => _HomeHealthCarePageState();
+}
+
+class _HomeHealthCarePageState extends State
+ with SingleTickerProviderStateMixin {
+ TabController _tabController;
+
+ @override
+ void initState() {
+ super.initState();
+ _tabController = TabController(length: 2, vsync: this);
+ }
+
+ @override
+ void dispose() {
+ super.dispose();
+ _tabController.dispose();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return BaseView(
+ onModelReady: (model){
+ // model.getHHCAllServices();
+ model.getHHCAllPresOrders();
+ },
+ builder: (_, model, widget) => AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: TranslationBase.of(context).homeHealthCare,
+ body: Scaffold(
+ extendBodyBehindAppBar: true,
+ appBar: PreferredSize(
+ preferredSize: Size.fromHeight(65.0),
+ child: Stack(
+ children: [
+ Positioned(
+ bottom: 1,
+ left: 0,
+ right: 0,
+ child: BackdropFilter(
+ filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
+ child: Container(
+ color: Theme.of(context)
+ .scaffoldBackgroundColor
+ .withOpacity(0.8),
+ height: 70.0,
+ ),
+ ),
+ ),
+ Center(
+ child: Container(
+ height: 60.0,
+ margin: EdgeInsets.only(top: 10.0),
+ width: MediaQuery.of(context).size.width * 0.9,
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Theme.of(context).dividerColor,
+ width: 0.7),
+ ),
+ color: Colors.white),
+ child: Center(
+ child: TabBar(
+ isScrollable: true,
+ controller: _tabController,
+ indicatorWeight: 5.0,
+ indicatorSize: TabBarIndicatorSize.label,
+ indicatorColor: Colors.red[800],
+ labelColor: Theme.of(context).primaryColor,
+ labelPadding:
+ EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
+ unselectedLabelColor: Colors.grey[800],
+ tabs: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.37,
+ child: Center(
+ child: Texts(TranslationBase.of(context).homeHealthCare),
+ ),
+ ),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.37,
+ child: Center(
+ child: Texts(TranslationBase.of(context).orderLog),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ body: Column(
+ children: [
+ Expanded(
+ child: TabBarView(
+ physics: BouncingScrollPhysics(),
+ controller: _tabController,
+ children: [
+ NewHomeHealthCarePage(
+ model: model,
+ ),
+ OrdersLogDetailsPage(
+ model: model,
+ )
+ ],
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart
new file mode 100644
index 00000000..0cfedb41
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart
@@ -0,0 +1,251 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+
+import 'Dialog/confirm_cancel_order_dialog.dart';
+
+class OrdersLogDetailsPage extends StatelessWidget {
+ final HomeHealthCareViewModel model;
+
+ const OrdersLogDetailsPage({Key key, this.model}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ void showConfirmMessage(
+ HomeHealthCareViewModel model, GetHHCAllPresOrdersResponseModel order) {
+ showDialog(
+ context: context,
+ child: ConfirmCancelOrderDialog(
+ model: model,
+ onTap: () async {
+ UpdatePresOrderRequestModel updatePresOrderRequestModel =
+ UpdatePresOrderRequestModel(
+ presOrderID: order.iD,
+ rejectionReason: "",
+ presOrderStatus: 4, editedBy: 3);
+ await model.updateHHCPresOrder(updatePresOrderRequestModel);
+ if(model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ } else {
+ AppToast.showSuccessToast(message: "Done Successfully");
+ await model.getHHCAllPresOrders();
+ // await model.getHHCAllServices();
+ }
+ },
+ ));
+ }
+
+ return AppScaffold(
+ isShowAppBar: false,
+ baseViewModel: model,
+ body: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.all(12),
+ child: Center(
+ child: FractionallySizedBox(
+ widthFactor: 0.94,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 50,
+ ),
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: model.hhcAllPresOrders.map((order) {
+ return Container(
+ width: double.infinity,
+ margin: EdgeInsets.only(top: 15),
+ decoration: BoxDecoration(
+ border:
+ Border.all(color: Colors.grey, width: 1),
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Request ID",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ order.iD.toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Status",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ order.description,
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Pickup Date",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ DateUtil.getDayMonthYearDateFormatted(
+ DateUtil.convertStringToDate(
+ order.createdOn)),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(
+ left: 15, bottom: 15, top: 15),
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Colors.grey,
+ width: 1.0,
+ ),
+ ),
+ // borderRadius: BorderRadius.circular(12),
+ color: Colors.white),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Texts(
+ "Location",
+ bold: false,
+ fontSize: 13,
+ ),
+ SizedBox(
+ height: 4,
+ ),
+ Texts(
+ order.nearestProjectDescription
+ .toString() ??
+ order.nearestProjectDescriptionN
+ .toString(),
+ fontSize: 22,
+ ),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ if (order.status == 1 ||order.status == 2 )
+ Center(
+ child: Container(
+ width: MediaQuery
+ .of(context)
+ .size
+ .width *
+ 0.85,
+ child: SecondaryButton(
+ label: "Cancel".toUpperCase(),
+ onTap: () {
+ showConfirmMessage(model, order);
+ }
+ ,
+ color: Colors.red[800],
+ disabled: false,
+ textColor: Theme
+ .of(context)
+ .backgroundColor),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+ );
+ }).toList())
+ ],
+ ),
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
index 24d9e69d..ea98921d 100644
--- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
+++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
@@ -1,36 +1,32 @@
+import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
+import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/%E2%80%8B%20health_calculators.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h2o_index_page.dart';
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/%E2%80%8B%20health_calculators.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_converter.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/my_web_view.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/parking_page.dart';
-import 'package:diplomaticquarterapp/pages/Blood/advance_payment_page.dart';
import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart';
-
import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/child_vaccines_page.dart';
import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart';
import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart';
import 'package:diplomaticquarterapp/pages/family/my-family.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
-
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/pages/symptom-checker/info.dart';
import 'package:diplomaticquarterapp/routes.dart';
+import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/services)contaniner.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/services)contaniner.dart';
-import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:url_launcher/url_launcher.dart';
-import 'package:webview_flutter/webview_flutter.dart';
-
-import 'h2o/h2o_page.dart';
class AllHabibMedicalService extends StatefulWidget {
@override
@@ -38,6 +34,17 @@ class AllHabibMedicalService extends StatefulWidget {
}
class _AllHabibMedicalServiceState extends State {
+ AppSharedPreferences sharedPref = AppSharedPreferences();
+ AuthenticatedUser authUser = new AuthenticatedUser();
+
+ @override
+ void initState() {
+ WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
+ getAuthUser();
+ });
+ super.initState();
+ }
+
@override
Widget build(BuildContext context) {
return AppScaffold(
@@ -178,7 +185,10 @@ class _AllHabibMedicalServiceState extends State {
ServicesContainer(
onTap: () => Navigator.push(
context,
- FadePage(page: EReferralIndexPage()),
+ FadePage(
+ page: authUser.patientID == null
+ ? EReferralIndexPage()
+ : EReferralPage()),
),
imageLocation: 'assets/images/ereferral_service_icon.png',
title: 'E-Referral',
@@ -317,4 +327,15 @@ class _AllHabibMedicalServiceState extends State {
),
);
}
+
+ getAuthUser() async {
+ if (await this.sharedPref.getObject(USER_PROFILE) != null) {
+ var data = AuthenticatedUser.fromJson(
+ await this.sharedPref.getObject(USER_PROFILE));
+ setState(() {
+ authUser = data;
+ });
+ print(authUser.patientID);
+ }
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart b/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart
index 2b2873e4..90386827 100644
--- a/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart
@@ -1,4 +1,4 @@
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/insert_user_activity_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart';
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
diff --git a/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart b/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart
index 68ce1936..e6e05ee6 100644
--- a/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart
@@ -1,6 +1,6 @@
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h2o_page.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/CarouselSlider.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@@ -13,61 +13,57 @@ class H2OPageIndexPage extends StatelessWidget {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: "Service Information",
+ appBarTitle: TranslationBase.of(context).serviceInformation,
body: SingleChildScrollView(
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Texts(
- "Water Tracker:",
- fontWeight: FontWeight.normal,
- fontSize: 25,
- color: HexColor("#60686b"),
- ),
- SizedBox(
- height: 12,
- ),
- Texts(
- "This service is designed to help you to set drinking water goals and track the volume of water you are drinking on a daily basis. This service allows for schedule reminders and offers a basic statistical analysis of the amount of what you have consumed over the course of a day, week or month.",
- fontWeight: FontWeight.normal,
- fontSize: 17,
- ),
- SizedBox(
- height: 22,
- ),
- Center(
- child: SizedBox(
- height: MediaQuery.of(context).size.height * 0.55,
- width: MediaQuery.of(context).size.width * 0.50,
- child: CarouselSlider(
- imagesUrlList: [
- "https://hmgwebservices.com/Images/MobileApp/images-info-home/referal/en/0.png",
- "https://hmgwebservices.com/Images/MobileApp/images-info-home/referal/en/1.png"
- ],
- ),
- ),
- ),
- SizedBox(
- height: 77,
- ),
- ],
- )),
+ children: [
+ Texts(
+ "Water Tracker:",
+ fontWeight: FontWeight.normal,
+ fontSize: 25,
+ color: HexColor("#60686b"),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts(
+ "This service is designed to help you to set drinking water goals and track the volume of water you are drinking on a daily basis. This service allows for schedule reminders and offers a basic statistical analysis of the amount of what you have consumed over the course of a day, week or month.",
+ fontWeight: FontWeight.normal,
+ fontSize: 17,
+ ),
+ SizedBox(
+ height: 22,
+ ),
+ Center(
+ child: Image.asset(
+ 'assets/images/AlHabibMedicalService/Wifi-AR.png')),
+ SizedBox(
+ height: 77,
+ ),
+ ],
+ )),
bottomSheet: Container(
height: MediaQuery.of(context).size.height * 0.10,
width: double.infinity,
child: Column(
children: [
Container(
- width: MediaQuery.of(context).size.width * 0.9,
+ width: MediaQuery
+ .of(context)
+ .size
+ .width * 0.9,
child: SecondaryButton(
onTap: () =>
Navigator.push(context, FadePage(page: H2OPage())),
label: "Water Tracker",
- textColor: Theme.of(context).backgroundColor),
+ textColor: Theme
+ .of(context)
+ .backgroundColor),
),
],
),
- ));
+ ),);
}
}
diff --git a/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart b/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart
index a2fa1adf..7eaed1a8 100644
--- a/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart
@@ -1,6 +1,6 @@
import 'dart:math' as math;
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/insert_user_activity_request_model.dart';
+import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/insert_user_activity_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
diff --git a/lib/pages/BookAppointment/components/DocAvailableAppointments.dart b/lib/pages/BookAppointment/components/DocAvailableAppointments.dart
index 88116cd9..3e9ae0cd 100644
--- a/lib/pages/BookAppointment/components/DocAvailableAppointments.dart
+++ b/lib/pages/BookAppointment/components/DocAvailableAppointments.dart
@@ -235,7 +235,7 @@ class _DocAvailableAppointmentsState extends State
return children;
},
),
- onDaySelected: (date, events) {
+ onDaySelected: (date, events,format) {
_onDaySelected(date, events);
_animationController.forward(from: 0.0);
},
@@ -385,8 +385,8 @@ class _DocAvailableAppointmentsState extends State
color: _calendarController.isSelected(date)
? Colors.green[400]
: _calendarController.isToday(date)
- ? Colors.brown[300]
- : Colors.blue[400],
+ ? Colors.brown[300]
+ : Colors.blue[400],
),
width: 40.0,
height: 40.0,
diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart
index 060a8132..9f2418fd 100644
--- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart
+++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart
@@ -348,8 +348,8 @@ class _CovidTimeSlotsState extends State
return children;
},
),
- onDaySelected: (date, events) {
- _onDaySelected(date, events);
+ onDaySelected: (date, event,formats) {
+ _onDaySelected(date, event,);
_animationController.forward(from: 0.0);
},
onVisibleDaysChanged: _onVisibleDaysChanged,
diff --git a/lib/pages/ErService/AmbulanceReq.dart b/lib/pages/ErService/AmbulanceReq.dart
index ec96f482..413d80e6 100644
--- a/lib/pages/ErService/AmbulanceReq.dart
+++ b/lib/pages/ErService/AmbulanceReq.dart
@@ -3,6 +3,9 @@ import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_history_page.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_page.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:ui';
@@ -66,7 +69,7 @@ class _AmbulanceReqState extends State
child: Container(
height: 60.0,
margin: EdgeInsets.only(top: 10.0),
- width: MediaQuery.of(context).size.width * 0.9,
+ width: MediaQuery.of(context).size.width * 0.93,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
@@ -114,9 +117,7 @@ class _AmbulanceReqState extends State
physics: BouncingScrollPhysics(),
controller: _tabController,
children: [
- model.hasPendingOrder
- ? Container()
- : AmbulanceRequestIndexPage(
+ AmbulanceRequestIndexPage(
amRequestViewModel: model,
),
OrderLogPage(
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart
index 55e75e22..5f303846 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart
@@ -1,8 +1,13 @@
import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/pages/ErService/widgets/StepsWidget.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
import 'BillAmount.dart';
import 'PickupLocation.dart';
@@ -15,7 +20,8 @@ class AmbulanceRequestIndexPage extends StatefulWidget {
AmbulanceRequestIndexPage({Key key, this.amRequestViewModel});
@override
- _AmbulanceRequestIndexPageState createState() => _AmbulanceRequestIndexPageState();
+ _AmbulanceRequestIndexPageState createState() =>
+ _AmbulanceRequestIndexPageState();
}
class _AmbulanceRequestIndexPageState extends State {
@@ -40,48 +46,124 @@ class _AmbulanceRequestIndexPageState extends State {
@override
Widget build(BuildContext context) {
return AppScaffold(
- body: Column(
- children: [
- SizedBox(
- height: 80,
- ),
- Container(
- margin: EdgeInsets.only(left: 12, right: 12),
- child: StepsWidget(
- index: currentIndex,
- changeCurrentTab: _changeCurrentTab,
- )),
- Expanded(
- child: PageView(
- physics: NeverScrollableScrollPhysics(),
- controller: pageController,
- children: [
- //Container(),
- SelectTransportationMethod(
- changeCurrentTab: _changeCurrentTab,
- patientER: _patientER,
- amRequestViewModel: widget.amRequestViewModel,
+ body: widget.amRequestViewModel.pickUpRequestPresOrder != null
+ ? Column(
+ children: [
+ SizedBox(
+ height: 80,
),
- PickupLocation(
- changeCurrentTab: _changeCurrentTab,
- patientER: _patientER,
- amRequestViewModel: widget.amRequestViewModel,
+ Container(
+ margin: EdgeInsets.only(left: 18, right: 18),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(2),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ OrderLogItem(
+ title: 'Request ID',
+ value: widget.amRequestViewModel.pickUpRequestPresOrder
+ .presOrderID
+ .toString(),
+ ),
+ OrderLogItem(
+ title: 'Status',
+ value: widget.amRequestViewModel.pickUpRequestPresOrder
+ .ambulateDescription,
+ ),
+ OrderLogItem(
+ title: 'Last edit time',
+ value: DateUtil.getDayMonthYearDateFormatted(
+ DateUtil.convertStringToDate(widget
+ .amRequestViewModel
+ .pickUpRequestPresOrder
+ .lastEditDate)),
+ ),
+ OrderLogItem(
+ title: 'Pickup Location',
+ value: widget.amRequestViewModel.pickUpRequestPresOrder
+ .pickupLocationName,
+ ),
+ OrderLogItem(
+ title: 'Drop off Location',
+ value: widget.amRequestViewModel.pickUpRequestPresOrder
+ .dropoffLocationName,
+ ),
+ OrderLogItem(
+ title: 'Trasfaer way',
+ value: widget
+ .amRequestViewModel.pickUpRequestPresOrder.title,
+ ),
+ Container(
+ padding: EdgeInsets.all(10),
+ width: double.maxFinite,
+ margin: EdgeInsets.only(bottom: 4, left: 4, right: 4),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.only(
+ bottomRight: Radius.circular(12),
+ bottomLeft: Radius.circular(12),
+ ),
+ color: Colors.white),
+ child: SecondaryButton(
+ color: Colors.red[900],
+ textColor: Colors.white,
+ label: TranslationBase.of(context).cancel,
+ onTap: () {
+ widget.amRequestViewModel.updatePressOrder(
+ presOrderID: widget.amRequestViewModel
+ .pickUpRequestPresOrder.presOrderID);
+ },
+ ),
+ )
+ ],
+ ),
),
- BillAmount(
- changeCurrentTab: _changeCurrentTab,
- patientER: _patientER,
- amRequestViewModel: widget.amRequestViewModel,
+ ],
+ )
+ : Column(
+ children: [
+ SizedBox(
+ height: 80,
+ ),
+ Container(
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: StepsWidget(
+ index: currentIndex,
+ changeCurrentTab: _changeCurrentTab,
+ ),
),
- Summary(
- changeCurrentTab: _changeCurrentTab,
- patientER: _patientER,
- amRequestViewModel: widget.amRequestViewModel,
+ Expanded(
+ child: PageView(
+ physics: NeverScrollableScrollPhysics(),
+ controller: pageController,
+ children: [
+ //Container(),
+ SelectTransportationMethod(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ PickupLocation(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ BillAmount(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ Summary(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ ],
+ ),
),
],
),
- ),
- ],
- ),
);
}
}
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
index 795f4dcc..b99596c8 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
@@ -8,8 +8,10 @@ import 'package:diplomaticquarterapp/pages/ErService/widgets/AppointmentCard.dar
import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
import 'package:diplomaticquarterapp/uitl/ProgressDialog.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -61,7 +63,6 @@ class _PickupLocationState extends State {
_longitude = 0;
_latitude = 0;
});
- // currentLocation = LatLng(position.latitude, position.longitude);
}
@override
@@ -81,24 +82,42 @@ class _PickupLocationState extends State {
SizedBox(
height: 15,
),
- Container(
- padding: EdgeInsets.all(12),
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- borderRadius: BorderRadius.circular(8),
- border: Border.all(color: Colors.grey, width: 0.5),
- color: Colors.white,
- ),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Texts('Select From Map'),
- Icon(
- FontAwesomeIcons.mapMarkerAlt,
- size: 24,
- color: Colors.black,
- )
- ],
+ InkWell(
+ onTap: (){
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => PickupLocationFromMap(
+ latitude: _latitude,
+ longitude: _longitude,
+ onPick: (value) {
+ setState(() {
+ _result = value;
+ });
+ },
+ ),
+ ),
+ );
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts(getSelectFromMapName()),
+ Icon(
+ FontAwesomeIcons.mapMarkerAlt,
+ size: 24,
+ color: Colors.black,
+ )
+ ],
+ ),
),
),
SizedBox(
@@ -263,7 +282,7 @@ class _PickupLocationState extends State {
),
],
),
- if (widget.patientER.direction == 1)
+ if (widget.patientER.direction == 0)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -309,18 +328,14 @@ class _PickupLocationState extends State {
Navigator.push(
context,
MaterialPageRoute(
- builder: (context) => PlacePicker(
- apiKey: 'AIzaSyCiD4YqVqLNYbt8-htvFy4Wp8XSph9E3wM',
- // Put YOUR OWN KEY here.
- onPlacePicked: (PickResult result) {
- print(result.adrAddress);
+ builder: (context) => PickupLocationFromMap(
+ latitude: _latitude,
+ longitude: _longitude,
+ onPick: (value) {
setState(() {
- _result = result;
+ _result = value;
});
- Navigator.of(context).pop();
},
- initialPosition: LatLng(_latitude, _longitude),
- useCurrentLocation: true,
),
),
);
@@ -336,7 +351,7 @@ class _PickupLocationState extends State {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- Texts('Select From Map'),
+ Texts(getSelectFromMapName()),
Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
@@ -348,7 +363,6 @@ class _PickupLocationState extends State {
),
],
),
- //TODO show dialog projects
SizedBox(
height: 45,
@@ -361,44 +375,57 @@ class _PickupLocationState extends State {
color: Colors.grey[800],
textColor: Colors.white,
onTap: () {
- if(_result==null || _selectedHospital == null)
- AppToast.showErrorToast(message: 'please select all fields');
+ if (_result == null || _selectedHospital == null)
+ AppToast.showErrorToast(
+ message: 'please select all fields');
else
- setState(() {
- widget.patientER.pickupSpot = _isInsideHome ? 1 : 0;
- if (widget.patientER.direction == 0) {
- widget.patientER.pickupLocationLattitude = _result.geometry.location.lat.toString();
- widget.patientER.pickupLocationLongitude = _result.geometry.location.lng.toString();
- widget.patientER.dropoffLocationLattitude = _selectedHospital.latitude;
- widget.patientER.dropoffLocationLongitude = _selectedHospital.longitude;
-
- } else {
- widget.patientER.pickupLocationLattitude = _selectedHospital.latitude;
- widget.patientER.pickupLocationLongitude = _selectedHospital.longitude;
- widget.patientER.dropoffLocationLattitude = _result.geometry.location.lat.toString();
- widget.patientER.dropoffLocationLongitude = _result.geometry.location.lng.toString();
- }
+ setState(() {
+ widget.patientER.pickupSpot = _isInsideHome ? 1 : 0;
+ if (widget.patientER.direction == 0) {
+ widget.patientER.pickupLocationLattitude = _result.geometry.location.lat.toString();
+ widget.patientER.pickupLocationLongitude = _result.geometry.location.lng.toString();
+ widget.patientER.dropoffLocationLattitude = _selectedHospital.latitude;
+ widget.patientER.dropoffLocationLongitude = _selectedHospital.longitude;
+ } else {
+ widget.patientER.pickupLocationLattitude = _selectedHospital.latitude;
+ widget.patientER.pickupLocationLongitude = _selectedHospital.longitude;
+ widget.patientER.dropoffLocationLattitude = _result.geometry.location.lat.toString();
+ widget.patientER.dropoffLocationLongitude = _result.geometry.location.lng.toString();
+ }
- widget.patientER.latitude = widget.patientER.pickupLocationLattitude;
- widget.patientER.longitude = widget.patientER.pickupLocationLongitude;
+ widget.patientER.latitude = widget.patientER.pickupLocationLattitude;
+ widget.patientER.longitude = widget.patientER.pickupLocationLongitude;
+ widget.patientER.dropoffLocationName = _selectedHospital.name;
+ widget.patientER.createdBy = widget.amRequestViewModel.user.patientID;
+ widget.patientER.isOutPatient = widget.amRequestViewModel.user.outSA;
+ widget.patientER.patientIdentificationID = widget.amRequestViewModel.user.patientIdentificationNo;
+ widget.patientER.pickupDateTime = DateUtil.convertDateToStringLocation(DateTime.now());
+ widget.patientER.pickupLocationName = _result.formattedAddress;
+ widget.patientER.projectID = widget.amRequestViewModel.user.projectID;
+ widget.patientER.requesterFileNo = widget.amRequestViewModel.user.patientID;
+ widget.patientER.requesterIsOutSA = false;
+ widget.patientER.lineItemNo =0;
+ widget.patientER.requesterMobileNo = widget.amRequestViewModel.user.mobileNumber;
- if(_haveAppointment == HaveAppointment.YES){
- widget.patientER.appointmentNo = myAppointment.appointmentNo.toString();
- widget.patientER.appointmentClinicName = myAppointment.clinicName;
- widget.patientER.appointmentDoctorName = myAppointment.doctorNameObj;
- widget.patientER.appointmentBranch = myAppointment.projectName;
- widget.patientER.appointmentTime = myAppointment.appointmentDate;
- }else{
- widget.patientER.appointmentNo ="0";
- widget.patientER.appointmentClinicName = null;
- widget.patientER.appointmentDoctorName = null;
- widget.patientER.appointmentBranch = null;
- widget.patientER.appointmentTime = null;
- }
+ if (_haveAppointment == HaveAppointment.YES) {
+ widget.patientER.appointmentNo = myAppointment.appointmentNo.toString();
+ widget.patientER.appointmentClinicName = myAppointment.clinicName;
+ widget.patientER.appointmentDoctorName = myAppointment.doctorNameObj;
+ widget.patientER.appointmentBranch = myAppointment.projectName;
+ widget.patientER.appointmentTime = myAppointment.appointmentDate;
+ widget.patientER.haveAppointment = true;
+ } else {
+ widget.patientER.appointmentNo = "0";
+ widget.patientER.appointmentClinicName = null;
+ widget.patientER.appointmentDoctorName = null;
+ widget.patientER.appointmentBranch = null;
+ widget.patientER.appointmentTime = null;
+ widget.patientER.haveAppointment = false;
+ }
- widget.patientER.pickupSpot = _isInsideHome ? 1 : 0;
- widget.changeCurrentTab(2);
- });
+ widget.patientER.pickupSpot = _isInsideHome ? 1 : 0;
+ widget.changeCurrentTab(2);
+ });
},
label: 'Next',
),
@@ -428,6 +455,10 @@ class _PickupLocationState extends State {
return _selectedHospital == null ? title : _selectedHospital.name;
}
+ String getSelectFromMapName() {
+ return _result != null ? _result.formattedAddress : 'Select From Map';
+ }
+
getAppointment() {
ProgressDialogUtil.showProgressDialog(context);
widget.amRequestViewModel.getAppointmentHistory().then((value) {
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
index 59c3b85c..01683b55 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
@@ -284,8 +284,9 @@ class _SelectTransportationMethodState
textColor: Colors.white,
onTap: () {
setState(() {
- widget.patientER.direction = _direction == Direction.ToHospital ? 0 : 1;
- widget.patientER.tripType = _way == Way.TwoWays ? 2 : 1;
+ widget.patientER.transportationMethodId =(widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1);
+ widget.patientER.direction = _direction == Direction.ToHospital ? 1 : 0;
+ widget.patientER.tripType = _way == Way.TwoWays ? 0 : 1;
widget.patientER.selectedAmbulate = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1);
widget.patientER.patientERTransportationMethod = _erTransportationMethod;
widget.patientER.orderServiceID = _orderService.getIdOrderService();
@@ -294,7 +295,6 @@ class _SelectTransportationMethodState
widget.patientER.cost = _erTransportationMethod.price;
widget.patientER.vAT = _erTransportationMethod.vAT ?? 0;
widget.patientER.totalPrice = _erTransportationMethod.totalPrice;
-
widget.changeCurrentTab(1);
});
},
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
index 4c189707..7696dd09 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
@@ -17,6 +17,7 @@ class Summary extends StatefulWidget {
_SummaryState createState() => _SummaryState();
}
+//TODO it should be dynamic
class _SummaryState extends State {
@override
Widget build(BuildContext context) {
@@ -30,7 +31,6 @@ class _SummaryState extends State {
SizedBox(height: 5,),
Container(
width: double.infinity,
-
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white,
@@ -92,9 +92,11 @@ class _SummaryState extends State {
child:SecondaryButton(
color: Colors.grey[800],
textColor: Colors.white,
- label: 'Next',
+ label: 'Send',
+ onTap: () async {
+ await widget.amRequestViewModel.insertERPressOrder(patientER: widget.patientER);
- // onTap: ()=> widget.changeCurrentTab(2),
+ }
),
)
],
diff --git a/lib/pages/ErService/OrderLogPage.dart b/lib/pages/ErService/OrderLogPage.dart
index cbb508e5..6929cd0b 100644
--- a/lib/pages/ErService/OrderLogPage.dart
+++ b/lib/pages/ErService/OrderLogPage.dart
@@ -1,6 +1,8 @@
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:flutter/cupertino.dart';
@@ -53,6 +55,28 @@ class OrderLogPage extends StatelessWidget {
value: amRequestViewModel
.patientAllPresOrdersList[index].dropoffLocationName,
),
+ if(amRequestViewModel.patientAllPresOrdersList[index].status==1)
+ Container(
+ padding: EdgeInsets.all(10),
+ width: double.maxFinite,
+ margin: EdgeInsets.only(bottom: 4,left: 4,right: 4),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.only(
+ bottomRight: Radius.circular(12),
+ bottomLeft: Radius.circular(12),
+ ),
+ color: Colors.white
+ ),
+ child: SecondaryButton(
+ color: Colors.red[900],
+ textColor: Colors.white,
+ label: TranslationBase.of(context).cancel,
+ onTap: () {
+ amRequestViewModel.updatePressOrder(presOrderID:amRequestViewModel.pickUpRequestPresOrder.presOrderID );
+
+ },
+ ),
+ )
],
),
),
diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart
index e3538277..db2b0643 100644
--- a/lib/pages/MyAppointments/AppointmentDetails.dart
+++ b/lib/pages/MyAppointments/AppointmentDetails.dart
@@ -172,7 +172,7 @@ class _AppointmentDetailsState extends State
physics: NeverScrollableScrollPhysics(),
children: [
AppointmentActions(appo: widget.appo, tabController: _tabController, enableFooterButton: enableFooterButton),
- DocAvailableAppointments(doctor: getDoctorObject())
+ DocAvailableAppointments(doctor: getDoctorObject(), isLiveCareAppointment: widget.appo.isLiveCareAppointment)
],
controller: _tabController,
),
diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart
index 7c20b53d..9ba57084 100644
--- a/lib/pages/ToDoList/ToDo.dart
+++ b/lib/pages/ToDoList/ToDo.dart
@@ -139,7 +139,7 @@ class _ToDoState extends State {
flex: 3,
child: Container(
margin: EdgeInsets.only(
- top: 20.0, left: 20.0, right: 20.0),
+ top: 10.0, left: 20.0, right: 20.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
diff --git a/lib/pages/ToDoList/payment_method_select.dart b/lib/pages/ToDoList/payment_method_select.dart
index a44d8b3d..a6936083 100644
--- a/lib/pages/ToDoList/payment_method_select.dart
+++ b/lib/pages/ToDoList/payment_method_select.dart
@@ -1,5 +1,4 @@
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
@@ -69,7 +68,7 @@ class _PaymentMethodState extends State {
child: Container(
child: InkWell(
onTap: () {
- updateSelectedPaymentMethod("SADAD");
+ updateSelectedPaymentMethod("VISA");
},
child: Card(
elevation: 3.0,
@@ -77,7 +76,7 @@ class _PaymentMethodState extends State {
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
- side: selectedPaymentMethod == "SADAD"
+ side: selectedPaymentMethod == "VISA"
? BorderSide(
color: Colors.green, width: 5.0)
: BorderSide(
@@ -88,12 +87,41 @@ class _PaymentMethodState extends State {
padding: EdgeInsets.all(7.0),
width: MediaQuery.of(context).size.width * 0.45,
child: Image.asset(
- "assets/images/new-design/sadad.png"),
+ "assets/images/new-design/visa.png"),
),
),
),
),
),
+// Expanded(
+// child: Container(
+// child: InkWell(
+// onTap: () {
+// updateSelectedPaymentMethod("SADAD");
+// },
+// child: Card(
+// elevation: 3.0,
+// margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
+// color: Colors.white,
+// shape: RoundedRectangleBorder(
+// borderRadius: BorderRadius.circular(10),
+// side: selectedPaymentMethod == "SADAD"
+// ? BorderSide(
+// color: Colors.green, width: 5.0)
+// : BorderSide(
+// color: Colors.transparent, width: 0.0),
+// ),
+// child: Container(
+// height: 120.0,
+// padding: EdgeInsets.all(7.0),
+// width: MediaQuery.of(context).size.width * 0.45,
+// child: Image.asset(
+// "assets/images/new-design/sadad.png"),
+// ),
+// ),
+// ),
+// ),
+// ),
],
),
),
@@ -102,35 +130,6 @@ class _PaymentMethodState extends State {
child: Flex(
direction: Axis.horizontal,
children: [
- Expanded(
- child: Container(
- child: InkWell(
- onTap: () {
- updateSelectedPaymentMethod("VISA");
- },
- child: Card(
- elevation: 3.0,
- margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
- color: Colors.white,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10),
- side: selectedPaymentMethod == "VISA"
- ? BorderSide(
- color: Colors.green, width: 5.0)
- : BorderSide(
- color: Colors.transparent, width: 0.0),
- ),
- child: Container(
- height: 120.0,
- padding: EdgeInsets.all(7.0),
- width: MediaQuery.of(context).size.width * 0.45,
- child: Image.asset(
- "assets/images/new-design/visa.png"),
- ),
- ),
- ),
- ),
- ),
Expanded(
child: Container(
child: InkWell(
@@ -160,14 +159,6 @@ class _PaymentMethodState extends State {
),
),
),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 25.0),
- child: Flex(
- direction: Axis.horizontal,
- children: [
Expanded(
child: Container(
child: InkWell(
@@ -200,6 +191,13 @@ class _PaymentMethodState extends State {
],
),
),
+ Container(
+ margin: EdgeInsets.only(top: 25.0),
+ child: Flex(
+ direction: Axis.horizontal,
+ children: [],
+ ),
+ ),
],
),
),
diff --git a/lib/pages/ToDoList/widgets/paymentDialog.dart b/lib/pages/ToDoList/widgets/paymentDialog.dart
index d79a1ead..2fbcbcc1 100644
--- a/lib/pages/ToDoList/widgets/paymentDialog.dart
+++ b/lib/pages/ToDoList/widgets/paymentDialog.dart
@@ -24,7 +24,7 @@ class _PaymentDialogState extends State {
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)),
child: Container(
- height: MediaQuery.of(context).size.height * 0.67,
+ height: 510.0,
width: 450.0,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart
index ebb0305a..2744d3a6 100644
--- a/lib/pages/landing/home_page.dart
+++ b/lib/pages/landing/home_page.dart
@@ -1,6 +1,8 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_index_page.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_index_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/all_habib_medical_service_page.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/contact_us_page.dart';
import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-drivethru-location.dart';
@@ -96,10 +98,10 @@ class _HomePageState extends State {
Container(
margin: EdgeInsets.only(
top: 15.0, left: 3.5, right: 3.5),
- child: SvgPicture.asset(
- 'assets/images/new-design/covid-19-car.svg',
- width: 45.0,
- height: 45.0),
+ child: SvgPicture.asset(
+ 'assets/images/new-design/covid-19-car.svg',
+ width: 45.0,
+ height: 45.0),
),
Container(
margin: EdgeInsets.only(
@@ -173,11 +175,11 @@ class _HomePageState extends State {
.withOpacity(0.3),
borderRadius: BorderRadius.all(
Radius.circular(5))),
- child: SvgPicture.asset(
- projectViewModel.isArabic
- ? 'assets/images/new-design/livecare_arabic_logo.svg'
- : 'assets/images/new-design/liveCare_white_logo.svg',
- ),
+ child: SvgPicture.asset(
+ projectViewModel.isArabic
+ ? 'assets/images/new-design/livecare_arabic_logo.svg'
+ : 'assets/images/new-design/liveCare_white_logo.svg',
+ ),
),
),
),
@@ -438,6 +440,14 @@ class _HomePageState extends State {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
DashboardItem(
+ onTap: () {
+ Navigator.push(
+ context,
+ FadePage(
+ page: HomeHealthCareIndexPage(),
+ ),
+ );
+ },
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
@@ -496,6 +506,14 @@ class _HomePageState extends State {
imageName: 'al-habib_onlne_pharmacy_bg.png',
),
DashboardItem(
+ onTap: (){
+ Navigator.push(
+ context,
+ FadePage(
+ page: CMCIndexPage(),
+ ),
+ );
+ },
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
@@ -686,7 +704,7 @@ class _HomePageState extends State {
),
),
height: 100,
- imageName: 'hmg_services_bg.png',
+ imageName: 'contact_us_bg.png',
opacity: 0.5,
color: Colors.grey[700],
width: MediaQuery.of(context).size.width * 0.45,
diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart
index dcfa3ba8..1ca6c2eb 100644
--- a/lib/pages/landing/landing_page.dart
+++ b/lib/pages/landing/landing_page.dart
@@ -123,25 +123,25 @@ class _LandingPageState extends State with WidgetsBindingObserver {
AppGlobal.context = context;
});
_requestIOSPermissions();
- pageController = PageController(keepPage: true);
- _firebaseMessaging.setAutoInitEnabled(true);
-
- if (Platform.isIOS) {
- _firebaseMessaging.requestNotificationPermissions();
- }
-
- _firebaseMessaging.getToken().then((String token) {
- sharedPref.setString(PUSH_TOKEN, token);
- if (token != null) {
- checkUserStatus(token);
- }
- requestPermissions();
- }).catchError((err) {
- print(err);
- });
+ pageController = PageController(keepPage: true);
+ // _firebaseMessaging.setAutoInitEnabled(true);
+ //
+ // if (Platform.isIOS) {
+ // _firebaseMessaging.requestNotificationPermissions();
+ // }
+ //
+ // _firebaseMessaging.getToken().then((String token) {
+ // sharedPref.setString(PUSH_TOKEN, token);
+ // if (token != null) {
+ // checkUserStatus(token);
+ // }
+ // requestPermissions();
+ // }).catchError((err) {
+ // print(err);
+ // });
//_firebase Background message handler
- _firebaseMessaging.configure(
+ // _firebaseMessaging.configure(
// onMessage: (Map message) async {
// showDialog("onMessage: $message");
// print("onMessage: $message");
@@ -254,7 +254,7 @@ class _LandingPageState extends State with WidgetsBindingObserver {
// print("Is Call Not Found iOS");
// }
// },
- );
+ // );
}
showDialogs(String message) {
@@ -346,14 +346,14 @@ class _LandingPageState extends State with WidgetsBindingObserver {
},
),
actions: [
- IconButton(
- iconSize: 70,
- icon: SvgPicture.asset('assets/images/svg/robort_svg.svg',
- height: 100, width: 100, fit: BoxFit.cover),
- onPressed: () {
- triggerRobot();
- } //do something,
- )
+ // IconButton(
+ // iconSize: 70,
+ // icon: SvgPicture.asset('assets/images/svg/robort_svg.svg',
+ // height: 100, width: 100, fit: BoxFit.cover),
+ // onPressed: () {
+ // triggerRobot();
+ // } //do something,
+ // )
],
centerTitle: true,
),
diff --git a/lib/pages/livecare/widgets/clinic_card.dart b/lib/pages/livecare/widgets/clinic_card.dart
index 99c4b271..56613034 100644
--- a/lib/pages/livecare/widgets/clinic_card.dart
+++ b/lib/pages/livecare/widgets/clinic_card.dart
@@ -36,13 +36,13 @@ class _State extends State {
return Row(
children: [
Card(
- margin: EdgeInsets.fromLTRB(13.0, 10.0, 8.0, 8.0),
+ margin: EdgeInsets.fromLTRB(15.0, 10.0, 8.0, 8.0),
color: widget.isSelected ? Colors.blue : Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
child: Container(
- width: MediaQuery.of(context).size.width * 0.8,
+ width: MediaQuery.of(context).size.width * 0.75,
padding: EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart
index c1f5eb75..083af9f7 100644
--- a/lib/pages/livecare/widgets/clinic_list.dart
+++ b/lib/pages/livecare/widgets/clinic_list.dart
@@ -17,8 +17,11 @@ import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
+import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart';
@@ -81,7 +84,13 @@ class _clinic_listState extends State {
service
.getERAppointmentFees(selectedClinicID, context)
.then((res) {
- erAppointmentFeesResponse = ERAppointmentFeesResponse.fromJson(res);
+ if (res['HasAppointment'] == true) {
+ isError = true;
+ showLiveCareCancelDialog(res['ErrorEndUserMessage'], res);
+ } else {
+ erAppointmentFeesResponse = ERAppointmentFeesResponse.fromJson(res);
+ isError = false;
+ }
})
.catchError((err) {
print(err);
@@ -97,10 +106,57 @@ class _clinic_listState extends State {
});
}
+ showLiveCareCancelDialog(String msg, res) {
+ ConfirmDialog dialog = new ConfirmDialog(
+ context: context,
+ confirmMessage: msg,
+ okText: TranslationBase.of(context).confirm,
+ cancelText: TranslationBase.of(context).cancel_nocaps,
+ okFunction: () =>
+ {cancelAppointment(res)},
+ cancelFunction: () => {});
+ dialog.showAlertDialog(context);
+ }
+
+ cancelAppointment(res) {
+ AppoitmentAllHistoryResultList appo = AppoitmentAllHistoryResultList();
+ appo.clinicID = res['ClinicID'];
+ appo.doctorID = res['DoctorID'];
+ appo.endTime = res['EndTime'];
+ appo.projectID = res['ProjectID'];
+ appo.startTime = res['StrAppointmentDate'];
+ appo.appointmentNo = res['AppointmentID'];
+ appo.isLiveCareAppointment = true;
+ appo.originalClinicID = 0;
+ appo.originalProjectID = res['ProjectID'];
+ appo.appointmentDate = res['AppointmentDate'];
+
+ ConfirmDialog.closeAlertDialog(context);
+ DoctorsListService service = new DoctorsListService();
+ service
+ .cancelAppointment(appo, context)
+ .then((res) {
+ print(res);
+ if (res['MessageStatus'] == 1) {
+ AppToast.showSuccessToast(message: res['ErrorEndUserMessage']);
+ } else {
+ AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
+ }
+ })
+ .catchError((err) {
+ print(err);
+ })
+ .showProgressBar(
+ text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6))
+ .then((value) {
+ startLiveCare();
+ });
+ }
+
getERAppointmentTime(GetERAppointmentFeesList getERAppointmentFeesList) {
LiveCareService service = new LiveCareService();
service.getERAppointmentTime(selectedClinicID, context).then((res) {
- print(res['WatingtimeInteger']);
+ print(res);
showLiveCarePaymentDialog(
getERAppointmentFeesList, res['WatingtimeInteger']);
}).catchError((err) {
diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart
index cc5df0a6..8847aaa1 100644
--- a/lib/pages/medical/balance/confirm_payment_page.dart
+++ b/lib/pages/medical/balance/confirm_payment_page.dart
@@ -247,8 +247,8 @@ class ConfirmPaymentPage extends StatelessWidget {
DoctorsListService service = new DoctorsListService();
service
.checkPaymentStatus(
- Utils.getAppointmentTransID(
- appo.projectID, appo.clinicID, appo.appointmentNo),
+ Utils.getAdvancePaymentTransID(
+ appo.projectID, authenticatedUser.patientID),
AppGlobal.context)
.then((res) {
print("Printing Payment Status Reponse!!!!");
@@ -302,5 +302,4 @@ class ConfirmPaymentPage extends StatelessWidget {
Future navigateToHome(context) async {
Navigator.of(context).pushNamed(HOME);
}
-
}
diff --git a/lib/pages/medical/medical_profile_page.dart b/lib/pages/medical/medical_profile_page.dart
index e7d75e7f..61f22aca 100644
--- a/lib/pages/medical/medical_profile_page.dart
+++ b/lib/pages/medical/medical_profile_page.dart
@@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/pages/MyAppointments/MyAppointments.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/patient_sick_leave_page.dart';
import 'package:diplomaticquarterapp/pages/medical/reports/monthly_reports.dart';
+import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/smart_watch_instructions.dart';
import 'package:diplomaticquarterapp/pages/vaccine/my_vaccines_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/radiology/radiology_home_page.dart';
@@ -407,10 +408,10 @@ class _MedicalProfilePageState extends State {
flex: 1,
child: InkWell(
//TODO
-// onTap: () {
-// Navigator.push(
-// context, FadePage(page: DoctorHomePage()));
-// },
+ onTap: () {
+ Navigator.push(
+ context, FadePage(page: SmartWatchInstructions()));
+ },
child: MedicalProfileItem(
title: TranslationBase.of(context)
.smartWatches,
diff --git a/lib/pages/medical/smart_watch_health_data/health_data_list.dart b/lib/pages/medical/smart_watch_health_data/health_data_list.dart
new file mode 100644
index 00000000..2f9a3e60
--- /dev/null
+++ b/lib/pages/medical/smart_watch_health_data/health_data_list.dart
@@ -0,0 +1,145 @@
+import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+
+class HealthDataList extends StatefulWidget {
+ @override
+ _HealthDataListState createState() => _HealthDataListState();
+}
+
+class _HealthDataListState extends State {
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ appBarTitle: "Smartwatches",
+ isShowAppBar: true,
+ body: Container(
+ height: MediaQuery.of(context).size.height,
+ margin: EdgeInsets.all(20.0),
+ child: SingleChildScrollView(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Row(
+ children: [
+ Container(
+ child: Image.asset(
+ "assets/images/SmartWatches/heartrate_icon.png",
+ width: 60.0,
+ height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
+ child: Text("Heart Rate",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
+ Divider(
+ color: Colors.grey[500],
+ ),
+ Row(
+ children: [
+ Container(
+ child: Image.asset(
+ "assets/images/SmartWatches/sleep_data.png",
+ width: 60.0,
+ height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
+ child: Text("Sleep Data",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
+ Divider(
+ color: Colors.grey[500],
+ ),
+ Row(
+ children: [
+ Container(
+ child: Image.asset(
+ "assets/images/SmartWatches/heartrate_icon.png",
+ width: 60.0,
+ height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
+ child: Text("Steps",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
+ Divider(
+ color: Colors.grey[500],
+ ),
+ Row(
+ children: [
+ Container(
+ child: Image.asset(
+ "assets/images/SmartWatches/heartrate_icon.png",
+ width: 60.0,
+ height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
+ child: Text("Distance",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
+ Divider(
+ color: Colors.grey[500],
+ ),
+ Row(
+ children: [
+ Container(
+ child: Image.asset(
+ "assets/images/SmartWatches/heartrate_icon.png",
+ width: 60.0,
+ height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
+ child: Text("Energy",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
+ Divider(
+ color: Colors.grey[500],
+ ),
+ ],
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ width: double.infinity,
+ height: MediaQuery.of(context).size.height * 0.1,
+ color: Colors.grey[100],
+ child: Column(
+ children: [
+ Divider(
+ color: Colors.transparent,
+ ),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.8,
+ child: Button(
+ onTap: () {
+// launch(model.radImageURL);
+ },
+ label: 'Sync Health Data',
+ backgroundColor: Colors.grey[800],
+ ),
+ ),
+ ],
+ ),
+ ));
+ }
+}
diff --git a/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart b/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart
new file mode 100644
index 00000000..eb0c1675
--- /dev/null
+++ b/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart
@@ -0,0 +1,819 @@
+import 'dart:io';
+
+import 'package:carousel_slider/carousel_slider.dart';
+import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/health_data_list.dart';
+import 'package:diplomaticquarterapp/services/smartwatch_integration/SmartWatchIntegrationService.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+import 'package:smart_progress_bar/smart_progress_bar.dart';
+import 'package:url_launcher/url_launcher.dart';
+
+class SmartWatchInstructions extends StatefulWidget {
+ @override
+ _SmartWatchInstructionsState createState() => _SmartWatchInstructionsState();
+}
+
+class _SmartWatchInstructionsState extends State {
+ CarouselController buttonCarouselController = CarouselController();
+
+ bool hasAlreadySynced = false;
+
+ @override
+ void initState() {
+ WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
+ getLastPatientRecord(context);
+ });
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ appBarTitle: "Sync Health Data",
+ isShowAppBar: true,
+ body: Container(
+ child: Platform.isIOS
+ ? _getAppleWatchInstructions()
+ : _getGoogleWatchInstructions(),
+ ));
+ }
+
+ _getAppleWatchInstructions() {
+ return SingleChildScrollView(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: CarouselSlider(
+ carouselController: buttonCarouselController,
+ options: CarouselOptions(
+ enableInfiniteScroll: false,
+ viewportFraction: 0.95,
+ height: MediaQuery.of(context).size.height * 0.9),
+ items: [1, 2].map((i) {
+ return Builder(
+ builder: (BuildContext context) {
+ return Container(
+ width: MediaQuery.of(context).size.width,
+ margin: EdgeInsets.symmetric(horizontal: 5.0),
+ child: Card(
+ margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
+ color: Colors.white.withOpacity(1.0),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: i == 1
+ ? Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text("Supported Smartwatches",
+ style: TextStyle(
+ fontSize: 22.0,
+ fontWeight: FontWeight.bold,
+ fontFamily: "WorkSans")),
+ ),
+ Container(
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/apple-watch-1.jpeg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Apple Watch Series 1",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/apple-watch-2.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Apple Watch Series 2",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/apple-watch-3.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Apple Watch Series 3",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/apple-watch-4.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Apple Watch Series 4",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/apple-watch-5.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Apple Watch Series 5",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/Apple-Watch-6.png",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Apple Watch Series 6",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/miBand3.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text("Mi Band 3",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/miBand4.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text("Mi Band 4",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(
+ 10.0, 30.0, 10.0, 10.0),
+ child: Text(
+ "It Seems like you haven't synced your health data with the Dr. Alhabib App before. To proceed further, you need to sync your health data with the Dr. Alhabib App",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "Before syncing data, please make sure that you have followed the instructions properly",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(15.0),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius:
+ BorderRadius.circular(10.0),
+ ),
+ minWidth:
+ MediaQuery.of(context).size.width,
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xFF60686b),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ buttonCarouselController.nextPage();
+ },
+ child: Text("CONTINUE",
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ ),
+ ],
+ )
+ : Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text("Watch Instructions:",
+ style: TextStyle(
+ fontSize: 22.0,
+ fontWeight: FontWeight.bold,
+ fontFamily: "WorkSans")),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "It Seems like you haven't synced your health data with the Dr. Alhabib App before. To proceed further, you need to sync your health data with the Dr. Alhabib App",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(
+ 10.0, 20.0, 10.0, 10.0),
+ child: Text(
+ "Before syncing data, please make sure that following instructions are met: ",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(
+ 10.0, 20.0, 10.0, 10.0),
+ child: Text(
+ "1. Make sure that you have installed 'Health' App & 'Watch' App from Apple Store.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "2. Make sure that your Apple Watch is connected with the Watch & Health Apps.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "3. Make sure that data like heart rate, steps, distance etc. are being shown on your health app.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(
+ 15.0, 110.0, 15.0, 15.0),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius:
+ BorderRadius.circular(10.0),
+ ),
+ minWidth:
+ MediaQuery.of(context).size.width,
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xFF60686b),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ buttonCarouselController.nextPage();
+ },
+ child: Text("SYNC HEALTH DATA",
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ ),
+ hasAlreadySynced ? Container(
+ margin: EdgeInsets.fromLTRB(
+ 15.0, 0.0, 15.0, 15.0),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius:
+ BorderRadius.circular(10.0),
+ ),
+ minWidth:
+ MediaQuery.of(context).size.width,
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xFF60686b),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ _openHealthDataList();
+ },
+ child: Text("ALREADY SYNCED",
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ ): Container(),
+ ],
+ ),
+ ));
+ },
+ );
+ }).toList(),
+ ),
+ )
+ ],
+ ),
+ );
+ }
+
+ _getGoogleWatchInstructions() {
+ return SingleChildScrollView(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: CarouselSlider(
+ carouselController: buttonCarouselController,
+ options: CarouselOptions(
+ enableInfiniteScroll: false,
+ viewportFraction: 0.95,
+ height: MediaQuery.of(context).size.height * 0.9),
+ items: [1, 2].map((i) {
+ return Builder(
+ builder: (BuildContext context) {
+ return Container(
+ width: MediaQuery.of(context).size.width,
+ margin: EdgeInsets.symmetric(horizontal: 5.0),
+ child: Card(
+ margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
+ color: Colors.white.withOpacity(1.0),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: i == 1
+ ? Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text("Supported Smartwatches",
+ style: TextStyle(
+ fontSize: 22.0,
+ fontWeight: FontWeight.bold,
+ fontFamily: "WorkSans")),
+ ),
+ Container(
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/huawei-watch-2.png",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Huawei Watch 2",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/ticwatche2.png",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "Mobovi TicWatch E2",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/huawei-watch-2-classic.png",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text("Huawei Watch",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/ticwatche2.png",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text("Fossil Sport",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/misfit-vapor-2.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "MisFit Vapor 2",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/lg-watch-sport.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text(
+ "LG Watch Sport",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/miBand3.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text("Mi Band 3",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin:
+ EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset(
+ "assets/images/SmartWatches/miBand4.jpg",
+ width: 70.0,
+ height: 70.0),
+ Container(
+ child: Text("Mi Band 4",
+ style: TextStyle(
+ fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ InkWell(
+ onTap: () {
+ launch(
+ "https://wearos.google.com/#find-your-watch");
+ },
+ child: Container(
+ margin: EdgeInsets.only(top: 20.0),
+ child: Text(
+ "More Supported Smartwatches...",
+ style: TextStyle(
+ fontSize: 17.0,
+ color: Colors.blue,
+ decoration:
+ TextDecoration.underline)),
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "It Seems like you haven't synced your health data with the Dr. Alhabib App before. To proceed further, you need to sync your health data with the Dr. Alhabib App",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "Before syncing data, please make sure that you have followed the instructions properly",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(15.0),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius:
+ BorderRadius.circular(10.0),
+ ),
+ minWidth:
+ MediaQuery.of(context).size.width,
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xFF60686b),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ buttonCarouselController.nextPage();
+ },
+ child: Text("CONTINUE",
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ ),
+ ],
+ )
+ : Column(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text("Watch Instructions:",
+ style: TextStyle(
+ fontSize: 22.0,
+ fontWeight: FontWeight.bold,
+ fontFamily: "WorkSans")),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "It Seems like you haven't synced your health data with the Dr. Alhabib App before. To proceed further, you need to sync your health data with the Dr. Alhabib App",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "Before syncing data, please make sure that following instructions are met: ",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "1. Make sure that you have installed 'WearOS' & 'Google Fit' apps from Google PlayStore.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "2. Make sure that you have installed your watch related apps from Google PlayStore.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "3. Make sure that your Smart Watch is connected with the WearOS app & your watch apps.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(
+ "4. Make sure that your smart watch apps are linked/associated with Google Fit App.",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 17.0)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(
+ 15.0, 95.0, 15.0, 15.0),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius:
+ BorderRadius.circular(10.0),
+ ),
+ minWidth:
+ MediaQuery.of(context).size.width,
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xFF60686b),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ buttonCarouselController.nextPage();
+ },
+ child: Text("SYNC HEALTH DATA",
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ ),
+ hasAlreadySynced ? Container(
+ margin: EdgeInsets.fromLTRB(
+ 15.0, 0.0, 15.0, 15.0),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius:
+ BorderRadius.circular(10.0),
+ ),
+ minWidth:
+ MediaQuery.of(context).size.width,
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xFF60686b),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ _openHealthDataList();
+ },
+ child: Text("ALREADY SYNCED",
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ ) : Container(),
+ ],
+ ),
+ ));
+ },
+ );
+ }).toList(),
+ ),
+ )
+ ],
+ ),
+ );
+ }
+
+ getLastPatientRecord(BuildContext context) {
+ SmartWatchIntegrationService service = new SmartWatchIntegrationService();
+ service.getLastPatientRecord(context).then((res) {
+ if (res['MessageStatus'] == 1) {
+ print(res['Med_GetPatientLastRecordList']);
+ setState(() {
+ if (res['Med_GetPatientLastRecordList'] != null)
+ hasAlreadySynced = true;
+ else
+ hasAlreadySynced = false;
+ });
+ } else {}
+ }).catchError((err) {
+ print(err);
+ }).showProgressBar(
+ text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6));
+ }
+
+ _openHealthDataList() {
+ Navigator.push(
+ context, MaterialPageRoute(builder: (context) => HealthDataList()));
+ }
+}
diff --git a/lib/services/smartwatch_integration/SmartWatchIntegrationService.dart b/lib/services/smartwatch_integration/SmartWatchIntegrationService.dart
new file mode 100644
index 00000000..315249c8
--- /dev/null
+++ b/lib/services/smartwatch_integration/SmartWatchIntegrationService.dart
@@ -0,0 +1,54 @@
+import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
+import 'package:diplomaticquarterapp/core/service/base_service.dart';
+import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
+import 'package:diplomaticquarterapp/models/Request.dart';
+import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
+import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
+import 'package:flutter/material.dart';
+
+class SmartWatchIntegrationService extends BaseService {
+ AppSharedPreferences sharedPref = AppSharedPreferences();
+ AppGlobal appGlobal = new AppGlobal();
+
+ AuthenticatedUser authUser = new AuthenticatedUser();
+ AuthProvider authProvider = new AuthProvider();
+
+ Future