diff --git a/assets/images/dashboard_icon/discharge_patient.svg b/assets/images/dashboard_icon/discharge_patient.svg new file mode 100644 index 00000000..68186c51 --- /dev/null +++ b/assets/images/dashboard_icon/discharge_patient.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/dashboard_icon/home_icon.svg b/assets/images/dashboard_icon/home_icon.svg new file mode 100644 index 00000000..32597a47 --- /dev/null +++ b/assets/images/dashboard_icon/home_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/dashboard_icon/home_icon_active.svg b/assets/images/dashboard_icon/home_icon_active.svg new file mode 100644 index 00000000..31b47d99 --- /dev/null +++ b/assets/images/dashboard_icon/home_icon_active.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/dashboard_icon/in_patient_white.svg b/assets/images/dashboard_icon/in_patient_white.svg new file mode 100644 index 00000000..d648f62c --- /dev/null +++ b/assets/images/dashboard_icon/in_patient_white.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/dashboard_icon/lab_results.svg b/assets/images/dashboard_icon/lab_results.svg new file mode 100644 index 00000000..353c6a19 --- /dev/null +++ b/assets/images/dashboard_icon/lab_results.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/dashboard_icon/menu_icon.svg b/assets/images/dashboard_icon/menu_icon.svg new file mode 100644 index 00000000..0a62759b --- /dev/null +++ b/assets/images/dashboard_icon/menu_icon.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/dashboard_icon/menu_icon_active.svg b/assets/images/dashboard_icon/menu_icon_active.svg new file mode 100644 index 00000000..b565b40a --- /dev/null +++ b/assets/images/dashboard_icon/menu_icon_active.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/dashboard_icon/message_icon.svg b/assets/images/dashboard_icon/message_icon.svg new file mode 100644 index 00000000..d200320b --- /dev/null +++ b/assets/images/dashboard_icon/message_icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/dashboard_icon/message_icon_active.svg b/assets/images/dashboard_icon/message_icon_active.svg new file mode 100644 index 00000000..87759ec7 --- /dev/null +++ b/assets/images/dashboard_icon/message_icon_active.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/dashboard_icon/operations.svg b/assets/images/dashboard_icon/operations.svg new file mode 100644 index 00000000..1dc283cc --- /dev/null +++ b/assets/images/dashboard_icon/operations.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/images/dashboard_icon/out_patient.svg b/assets/images/dashboard_icon/out_patient.svg new file mode 100644 index 00000000..bc0a7a9b --- /dev/null +++ b/assets/images/dashboard_icon/out_patient.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/dashboard_icon/patient.svg b/assets/images/dashboard_icon/patient.svg new file mode 100644 index 00000000..40082dcc --- /dev/null +++ b/assets/images/dashboard_icon/patient.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/dashboard_icon/qr-code.svg b/assets/images/dashboard_icon/qr-code.svg new file mode 100644 index 00000000..a85e6e63 --- /dev/null +++ b/assets/images/dashboard_icon/qr-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/dashboard_icon/radiology.svg b/assets/images/dashboard_icon/radiology.svg new file mode 100644 index 00000000..e8e45723 --- /dev/null +++ b/assets/images/dashboard_icon/radiology.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/dashboard_icon/referral.svg b/assets/images/dashboard_icon/referral.svg new file mode 100644 index 00000000..bdf4d096 --- /dev/null +++ b/assets/images/dashboard_icon/referral.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/dashboard_icon/scdedule_icon_active.svg b/assets/images/dashboard_icon/scdedule_icon_active.svg new file mode 100644 index 00000000..5c3fc7ae --- /dev/null +++ b/assets/images/dashboard_icon/scdedule_icon_active.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/dashboard_icon/schedule_icon.svg b/assets/images/dashboard_icon/schedule_icon.svg new file mode 100644 index 00000000..10b78b14 --- /dev/null +++ b/assets/images/dashboard_icon/schedule_icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/dashboard_icon/search_patient.svg b/assets/images/dashboard_icon/search_patient.svg new file mode 100644 index 00000000..92c1ca4b --- /dev/null +++ b/assets/images/dashboard_icon/search_patient.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig index 592ceee8..e8efba11 100644 --- a/ios/Flutter/Debug.xcconfig +++ b/ios/Flutter/Debug.xcconfig @@ -1 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig index 592ceee8..399e9340 100644 --- a/ios/Flutter/Release.xcconfig +++ b/ios/Flutter/Release.xcconfig @@ -1 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 00000000..b30a428b --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,90 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '9.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def parse_KV_file(file, separator='=') + file_abs_path = File.expand_path(file) + if !File.exists? file_abs_path + return []; + end + generated_key_values = {} + skip_line_start_symbols = ["#", "/"] + File.foreach(file_abs_path) do |line| + next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } + plugin = line.split(pattern=separator) + if plugin.length == 2 + podname = plugin[0].strip() + path = plugin[1].strip() + podpath = File.expand_path("#{path}", file_abs_path) + generated_key_values[podname] = podpath + else + puts "Invalid plugin specification: #{line}" + end + end + generated_key_values +end + +target 'Runner' do + use_frameworks! + use_modular_headers! + + # Flutter Pod + + copied_flutter_dir = File.join(__dir__, 'Flutter') + copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') + copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') + unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) + # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. + # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. + # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. + + generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') + unless File.exist?(generated_xcode_build_settings_path) + raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) + cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; + + unless File.exist?(copied_framework_path) + FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) + end + unless File.exist?(copied_podspec_path) + FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) + end + end + + # Keep pod path relative so it can be checked into Podfile.lock. + pod 'Flutter', :path => 'Flutter' + + # Plugin Pods + + # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock + # referring to absolute paths on developers' machines. + system('rm -rf .symlinks') + system('mkdir -p .symlinks/plugins') + plugin_pods = parse_KV_file('../.flutter-plugins') + plugin_pods.each do |name, path| + symlink = File.join('.symlinks', 'plugins', name) + File.symlink(path, symlink) + pod name, :path => File.join(symlink, 'ios') + end +end + +# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. +install! 'cocoapods', :disable_input_output_paths => true + +post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['ENABLE_BITCODE'] = 'NO' + end + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 00000000..392290a0 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,127 @@ +PODS: + - barcode_scan (0.0.1): + - Flutter + - MTBBarcodeScanner + - SwiftProtobuf + - connectivity (0.0.1): + - Flutter + - Reachability + - connectivity_macos (0.0.1): + - Flutter + - device_info (0.0.1): + - Flutter + - Flutter (1.0.0) + - flutter_flexible_toast (0.0.1): + - Flutter + - flutter_plugin_android_lifecycle (0.0.1): + - Flutter + - hexcolor (0.0.1): + - Flutter + - imei_plugin (0.0.1): + - Flutter + - local_auth (0.0.1): + - Flutter + - MTBBarcodeScanner (5.0.11) + - "permission_handler (5.0.0+hotfix.5)": + - Flutter + - Reachability (3.2) + - shared_preferences (0.0.1): + - Flutter + - shared_preferences_macos (0.0.1): + - Flutter + - shared_preferences_web (0.0.1): + - Flutter + - SwiftProtobuf (1.9.0) + - url_launcher (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_macos (from `.symlinks/plugins/connectivity_macos/ios`) + - device_info (from `.symlinks/plugins/device_info/ios`) + - Flutter (from `Flutter`) + - flutter_flexible_toast (from `.symlinks/plugins/flutter_flexible_toast/ios`) + - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) + - hexcolor (from `.symlinks/plugins/hexcolor/ios`) + - imei_plugin (from `.symlinks/plugins/imei_plugin/ios`) + - local_auth (from `.symlinks/plugins/local_auth/ios`) + - permission_handler (from `.symlinks/plugins/permission_handler/ios`) + - shared_preferences (from `.symlinks/plugins/shared_preferences/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_macos (from `.symlinks/plugins/url_launcher_macos/ios`) + - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) + +SPEC REPOS: + https://cdn.cocoapods.org/: + - MTBBarcodeScanner + - Reachability + - SwiftProtobuf + +EXTERNAL SOURCES: + barcode_scan: + :path: ".symlinks/plugins/barcode_scan/ios" + connectivity: + :path: ".symlinks/plugins/connectivity/ios" + connectivity_macos: + :path: ".symlinks/plugins/connectivity_macos/ios" + device_info: + :path: ".symlinks/plugins/device_info/ios" + Flutter: + :path: Flutter + flutter_flexible_toast: + :path: ".symlinks/plugins/flutter_flexible_toast/ios" + flutter_plugin_android_lifecycle: + :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios" + hexcolor: + :path: ".symlinks/plugins/hexcolor/ios" + imei_plugin: + :path: ".symlinks/plugins/imei_plugin/ios" + local_auth: + :path: ".symlinks/plugins/local_auth/ios" + permission_handler: + :path: ".symlinks/plugins/permission_handler/ios" + shared_preferences: + :path: ".symlinks/plugins/shared_preferences/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_macos: + :path: ".symlinks/plugins/url_launcher_macos/ios" + url_launcher_web: + :path: ".symlinks/plugins/url_launcher_web/ios" + +SPEC CHECKSUMS: + barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479 + connectivity: 6e94255659cc86dcbef1d452ad3e0491bb1b3e75 + connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191 + device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 + Flutter: 0e3d915762c693b495b44d77113d4970485de6ec + flutter_flexible_toast: 0547e740cae0c33bb7c51bcd931233f4584e1143 + flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 + hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89 + imei_plugin: cb1af7c223ac2d82dcd1457a7137d93d65d2a3cd + local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd + MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb + permission_handler: 6226fcb78b97c7c7458a95c7346a11d5184fec12 + Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 + shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d + shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 + shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 + SwiftProtobuf: ecbec1be9036d15655f6b3443a1c4ea693c97932 + url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef + url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 + url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c + +PODFILE CHECKSUM: 1b66dae606f75376c5f2135a8290850eeb09ae83 + +COCOAPODS: 1.9.3 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index bfb59352..8548667e 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -9,14 +9,11 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + B650DC3076E9D70CB188286A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93A5F83B23AB032D1E096663 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -26,8 +23,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -38,18 +33,20 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 75DD06875D42C7903A76DF9F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 93A5F83B23AB032D1E096663 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9D4B7DB43C6A6C849D2387CE /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + E698D7B14B12DF768FE47A1A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -57,20 +54,27 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, + B650DC3076E9D70CB188286A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 7D66D387293CE5376A07EC5F /* Pods */ = { + isa = PBXGroup; + children = ( + E698D7B14B12DF768FE47A1A /* Pods-Runner.debug.xcconfig */, + 75DD06875D42C7903A76DF9F /* Pods-Runner.release.xcconfig */, + 9D4B7DB43C6A6C849D2387CE /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( - 3B80C3931E831B6300D905FE /* App.framework */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEBA1CF902C7004384FC /* Flutter.framework */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */, @@ -84,6 +88,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, + 7D66D387293CE5376A07EC5F /* Pods */, + F984EB986238F1809678CD84 /* Frameworks */, ); sourceTree = ""; }; @@ -118,6 +124,14 @@ name = "Supporting Files"; sourceTree = ""; }; + F984EB986238F1809678CD84 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 93A5F83B23AB032D1E096663 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -125,12 +139,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 986D76F6694E0D6D8C5CDAAB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 08568E6EE9BA48E55B7C3865 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -152,6 +168,7 @@ TargetAttributes = { 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = 3A359E86ZF; LastSwiftMigration = 1100; }; }; @@ -189,6 +206,21 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 08568E6EE9BA48E55B7C3865 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -201,7 +233,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -217,6 +249,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + 986D76F6694E0D6D8C5CDAAB /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -309,6 +363,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3A359E86ZF; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -320,8 +375,8 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.doctorAppFlutter; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = com.hmg.doctorApp; + PRODUCT_NAME = Runner; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -443,6 +498,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3A359E86ZF; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -454,8 +510,8 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.doctorAppFlutter; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = com.hmg.doctorApp; + PRODUCT_NAME = Runner; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -470,6 +526,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3A359E86ZF; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -481,8 +538,8 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.doctorAppFlutter; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = com.hmg.doctorApp; + PRODUCT_NAME = Runner; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; 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/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140cf..fb2dffc4 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -27,8 +27,6 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + - - + + 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/Info.plist b/ios/Runner/Info.plist index 31708450..4c18587e 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -11,7 +11,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - doctor_app_flutter + Doctor App CFBundlePackageType APPL CFBundleShortVersionString @@ -22,12 +22,14 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + NSCameraUsageDescription + Camera permission is required for barcode scanning. + NSFaceIDUsageDescription + Why is my app authenticating using face id? UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main - NSFaceIDUsageDescription - Why is my app authenticating using face id? UISupportedInterfaceOrientations UIInterfaceOrientationPortrait @@ -43,7 +45,5 @@ UIViewControllerBasedStatusBarAppearance - NSCameraUsageDescription - Camera permission is required for barcode scanning. diff --git a/lib/config/config.dart b/lib/config/config.dart index 90b2592f..0752561d 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -6,9 +6,12 @@ const ONLY_DATE = "[0-9/]"; //const BASE_URL = 'https://uat.hmgwebservices.com/Services/'; const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems_Region"; const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList"; -const PATIENT_PROGRESS_NOTE_URL = "DoctorApplication.svc/REST/GetProgressNoteForInPatient"; -const PATIENT_INSURANCE_APPROVALS_URL = "DoctorApplication.svc/REST/GetApprovalStatusForInpatient"; -const PATIENT_ORDERS_URL = "DoctorApplication.svc/REST/GetProgressNoteForInPatient"; +const PATIENT_PROGRESS_NOTE_URL = + "DoctorApplication.svc/REST/GetProgressNoteForInPatient"; +const PATIENT_INSURANCE_APPROVALS_URL = + "DoctorApplication.svc/REST/GetApprovalStatusForInpatient"; +const PATIENT_ORDERS_URL = + "DoctorApplication.svc/REST/GetProgressNoteForInPatient"; const PATIENT_REFER_TO_DOCTOR_URL = "DoctorApplication.svc/REST/ReferToDoctor"; const PATIENT_GET_DOCTOR_BY_CLINIC_URL = "DoctorApplication.svc/REST/GetDoctorsByClinicID"; const PATIENT_GET_LIST_REFERAL_URL = "Lists.svc/REST/GetList_STPReferralFrequency"; @@ -63,7 +66,7 @@ const IP_ADDRESS = '11.11.11.11'; const VERSION_ID = 1.2; const CHANNEL = 9; const SESSION_ID = 'BlUSkYymTt'; -const IS_LOGIN_FOR_DOCTOR_APP = true; +const IS_LOGIN_FOR_DOCTOR_APP = true; const PATIENT_OUT_SA = false; /// Timer Info diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 38212262..675d846f 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -4,35 +4,42 @@ const Map> localizedValues = { 'language': {'en': 'App Language', 'ar': 'لغة التطبيق'}, 'lanEnglish': {'en': 'English', 'ar': 'English'}, 'lanArabic': {'en': 'العربية', 'ar': 'العربية'}, - 'doctorReply':{'en': 'Doctor Reply', 'ar': 'رد الطبيب'}, - 'time' :{'en': 'Time','ar':'الوقت'}, - 'fileNo' :{'en':'File No', 'ar':'رقم الملف'}, - 'mobileNo' :{'en':'Mobile No', 'ar':'رقم الموبايل'}, - 'messagesScreenToolbarTitle' : {'en': 'Messages','ar': 'الرسائل' }, - 'mySchedule' : {'en': 'My Schedule', 'ar' : 'جدولي'}, - 'errorNoSchedule' :{'en': 'You don\'t have any Schedule' , 'ar': 'ليس لديك أي جدول زمني'}, - 'verify': {'en': 'Verify', 'ar' : 'تحقق'}, - 'referralDoctor':{'en': 'Referral Doctor', 'ar' : 'الطبيب المُحول إليه'}, - 'referringClinic':{'en': 'Referring Clinic', 'ar' : 'العيادة المُحول إليها'}, - 'frequency':{'en': 'Frequency', 'ar' : 'نوع التحويلا'}, - 'priority':{'en': 'Priority', 'ar' : 'الأولوية'}, - 'maxResponseTime':{'en': 'Max Response Time', 'ar' : 'الوقت الأقصى للرد'}, - 'clinicDetailsandRemarks':{'en': 'Clinic Details and Remarks', 'ar' : 'ملاحضات وتفاصيل العيادة'}, - 'answerSuggestions':{'en': 'Answer/Suggestions', 'ar' : 'ملاحضات وتفاصيل العيادة'}, - 'outPatients':{'en': 'Out-Patients', 'ar' : 'ةالمريض الخارجي'}, - 'searchPatient':{'en': 'Search Patient', 'ar' : 'البحث عن مريض'}, - 'labResult':{'en': 'Lab Result', 'ar' : 'نتيجة المختبر'}, - 'todayStatistics':{'en': 'Today Statistics', 'ar' : 'إحصائيات اليوم'}, - 'arrived':{'en': 'Arrived', 'ar' : 'وصل'}, - 'er':{'en': 'ER', 'ar' : 'حالة طوارئ'}, - 'walkIn':{'en': 'Walk-in', 'ar' : 'ادخل'}, - 'notArrived':{'en': 'Not Arrived', 'ar' : 'لم يصل'}, - 'radiology':{'en': 'Radiology', 'ar' : 'الأشعة'}, - 'referral':{'en': 'Referral', 'ar' : 'االإحالة'}, - 'inPatient':{'en': 'In-Patient', 'ar' : 'االمريض الداخلي'}, - 'operations':{'en': 'Operations', 'ar' : 'عمليات'}, - 'patientServices':{'en': 'Patient Services', 'ar' : 'خدمات المرضى'}, - - - + 'doctorReply': {'en': 'Doctor Reply', 'ar': 'رد الطبيب'}, + 'time': {'en': 'Time', 'ar': 'الوقت'}, + 'fileNo': {'en': 'File No', 'ar': 'رقم الملف'}, + 'mobileNo': {'en': 'Mobile No', 'ar': 'رقم الموبايل'}, + 'messagesScreenToolbarTitle': {'en': 'Messages', 'ar': 'الرسائل'}, + 'mySchedule': {'en': 'My Schedule', 'ar': 'جدولي'}, + 'errorNoSchedule': { + 'en': 'You don\'t have any Schedule', + 'ar': 'ليس لديك أي جدول زمني' + }, + 'verify': {'en': 'Verify', 'ar': 'تحقق'}, + 'referralDoctor': {'en': 'Referral Doctor', 'ar': 'الطبيب المُحول إليه'}, + 'referringClinic': {'en': 'Referring Clinic', 'ar': 'العيادة المُحول إليها'}, + 'frequency': {'en': 'Frequency', 'ar': 'نوع التحويلا'}, + 'priority': {'en': 'Priority', 'ar': 'الأولوية'}, + 'maxResponseTime': {'en': 'Max Response Time', 'ar': 'الوقت الأقصى للرد'}, + 'clinicDetailsandRemarks': { + 'en': 'Clinic Details and Remarks', + 'ar': 'ملاحضات وتفاصيل العيادة' + }, + 'answerSuggestions': { + 'en': 'Answer/Suggestions', + 'ar': 'ملاحضات وتفاصيل العيادة' + }, + 'outPatients': {'en': 'Out-Patients', 'ar': 'ةالمريض الخارجي'}, + 'searchPatient': {'en': 'Search Patient', 'ar': 'البحث عن مريض'}, + 'labResult': {'en': 'Lab Result', 'ar': 'نتيجة المختبر'}, + 'todayStatistics': {'en': 'Today Statistics', 'ar': 'إحصائيات اليوم'}, + 'arrived': {'en': 'Arrived', 'ar': 'وصل'}, + 'er': {'en': 'ER', 'ar': 'حالة طوارئ'}, + 'walkIn': {'en': 'Walk-in', 'ar': 'ادخل'}, + 'notArrived': {'en': 'Not Arrived', 'ar': 'لم يصل'}, + 'radiology': {'en': 'Radiology', 'ar': 'الأشعة'}, + 'referral': {'en': 'Referral', 'ar': 'االإحالة'}, + 'inPatient': {'en': 'In-Patient', 'ar': 'االمريض الداخلي'}, + 'operations': {'en': 'Operations', 'ar': 'عمليات'}, + 'patientServices': {'en': 'Patient Services', 'ar': 'خدمات المرضى'}, + 'familyMedicine': {'en': 'Family Medicine Clinic', 'ar': 'عيادة طب الأسرة'} }; diff --git a/lib/lookups/hospital_lookup.dart b/lib/lookups/hospital_lookup.dart index 7e99a42b..69882802 100644 --- a/lib/lookups/hospital_lookup.dart +++ b/lib/lookups/hospital_lookup.dart @@ -1,218 +1,222 @@ - List ListProject= [ - { - "Desciption": "Dubai Hospital", - "DesciptionN": null, - "ID": 2, - "LegalName": "Dr. Sulaiman Al Habib Hospital FZ - LLC ", - "LegalNameN": "مستشفى الدكتور سليمان الحبيب منطقة حرة - ذ.م.م", - "Name": "Dubai Hospital", - "NameN": null, - "PhoneNumber": "+97144297777", - "SetupID": "505005", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "25.231273", - "Longitude": "55.320942", - "MainProjectID": 2, - "ProjectOutSA": true, - "UsingInDoctorApp": true - }, - { - "Desciption": "SZR Center", - "DesciptionN": null, - "ID": 3, - "LegalName": "Dr. Sulaiman Al Habib Hospital SZR - LLC ", - "LegalNameN": "مستشفى الدكتور سليمان الحبيب طريق الشيخ زايد", - "Name": "SZR Medical Center", - "NameN": null, - "PhoneNumber": "+97144297777", - "SetupID": "505005", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "25.154501", - "Longitude": "55.226000", - "MainProjectID": 3, - "ProjectOutSA": true, - "UsingInDoctorApp": true - }, - { - "Desciption": "Home Health Care (HHC)", - "DesciptionN": null, - "ID": 95, - "LegalName": "", - "LegalNameN": "", - "Name": "Home Health Care (HHC)", - "NameN": null, - "PhoneNumber": "+966114622224", - "SetupID": "91877 ", - "DistanceInKilometers": 0, - "IsActive": false, - "Latitude": "24.704242", - "Longitude": "46.675823", - "MainProjectID": 12, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Olaya Hospital", - "DesciptionN": null, - "ID": 12, - "LegalName": "from Sehat Al Olaya Medical Complex Company", - "LegalNameN": "شركة مجمع صحة العليا الطبي ", - "Name": "Olaya Hospital", - "NameN": null, - "PhoneNumber": "+966114622224", - "SetupID": "91877 ", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "24.704242", - "Longitude": "46.675823", - "MainProjectID": 12, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Ajaji Dental Clinic (AMS)", - "DesciptionN": null, - "ID": 99, - "LegalName": "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company", - "LegalNameN": "شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان", - "Name": "Ajaji Dental Clinic (AMS)", - "NameN": null, - "PhoneNumber": "+966115259999", - "SetupID": "010266", - "DistanceInKilometers": 0, - "IsActive": false, - "Latitude": "24.722136", - "Longitude": "46.774303", - "MainProjectID": 15, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Ajaji Dental Clinic (AMS)", - "DesciptionN": null, - "ID": 100, - "LegalName": "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company", - "LegalNameN": "شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان", - "Name": "Ajaji Dental Clinic (AMS) Malaz", - "NameN": null, - "PhoneNumber": "+966115259999", - "SetupID": "010266", - "DistanceInKilometers": 0, - "IsActive": false, - "Latitude": "24.722136", - "Longitude": "46.774303", - "MainProjectID": 15, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Arryan Hospital", - "DesciptionN": null, - "ID": 15, - "LegalName": "Al Rayan Hospital for Healthcare Company ", - "LegalNameN": "شركة مستشفى الريان للرعاية الطبية", - "Name": "Arryan Hospital", - "NameN": null, - "PhoneNumber": "+966114909999", - "SetupID": "010266", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "24.722136", - "Longitude": "46.774303", - "MainProjectID": 15, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "MD Lab", - "DesciptionN": null, - "ID": 150, - "LegalName": "", - "LegalNameN": "", - "Name": "MD Lab", - "NameN": null, - "PhoneNumber": "+966114774700", - "SetupID": "010266", - "DistanceInKilometers": 0, - "IsActive": false, - "Latitude": "24.722136", - "Longitude": "46.774303", - "MainProjectID": 15, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Takhassusi Hospital", - "DesciptionN": null, - "ID": 16, - "LegalName": "Western Specialist Hospital for Medical Care", - "LegalNameN": "شركة مستشفى الغرب التخصصي للرعاية الطبية ", - "Name": "Takhassusi Hospital", - "NameN": null, - "PhoneNumber": "+966112833333", - "SetupID": "102000", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "24.719364", - "Longitude": "46.657567", - "MainProjectID": 16, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Suwaidi Hospital", - "DesciptionN": null, - "ID": 17, - "LegalName": "Sehat Al Suwaidi Medical Company", - "LegalNameN": "شركة صحة السويدي الطبية", - "Name": "Suwaidi Hospital", - "NameN": null, - "PhoneNumber": "+966114754444", - "SetupID": "010266", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "24.567525", - "Longitude": " 46.641019", - "MainProjectID": 17, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Al Qassim Hospital\r\n", - "DesciptionN": null, - "ID": 21, - "LegalName": "Buraidah Al Takhassusi Hospital for Healthcare Company", - "LegalNameN": "شركة مستشفى بريدة التخصصي للرعاية الطبية ", - "Name": "Al Qassim Hospital", - "NameN": null, - "PhoneNumber": "+966163166666", - "SetupID": "051431", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "26.360724", - "Longitude": "43.945774", - "MainProjectID": 21, - "ProjectOutSA": false, - "UsingInDoctorApp": true - }, - { - "Desciption": "Khobar Hospital", - "DesciptionN": null, - "ID": 60, - "LegalName": "Khobar Hospital", - "LegalNameN": "مستشفى الخبر", - "Name": "Khobar Hospital", - "NameN": null, - "PhoneNumber": "+966138711111", - "SetupID": "034423", - "DistanceInKilometers": 0, - "IsActive": true, - "Latitude": "26.3107804", - "Longitude": "50.2108347", - "MainProjectID": 60, - "ProjectOutSA": false, - "UsingInDoctorApp": true - } - ]; \ No newline at end of file +List ListProject = [ + { + "Desciption": "Dubai Hospital", + "DesciptionN": null, + "ID": 2, + "LegalName": "Dr. Sulaiman Al Habib Hospital FZ - LLC ", + "LegalNameN": "مستشفى الدكتور سليمان الحبيب منطقة حرة - ذ.م.م", + "Name": "Dubai Hospital", + "NameN": null, + "PhoneNumber": "+97144297777", + "SetupID": "505005", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "25.231273", + "Longitude": "55.320942", + "MainProjectID": 2, + "ProjectOutSA": true, + "UsingInDoctorApp": true + }, + { + "Desciption": "SZR Center", + "DesciptionN": null, + "ID": 3, + "LegalName": "Dr. Sulaiman Al Habib Hospital SZR - LLC ", + "LegalNameN": "مستشفى الدكتور سليمان الحبيب طريق الشيخ زايد", + "Name": "SZR Medical Center", + "NameN": null, + "PhoneNumber": "+97144297777", + "SetupID": "505005", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "25.154501", + "Longitude": "55.226000", + "MainProjectID": 3, + "ProjectOutSA": true, + "UsingInDoctorApp": true + }, + { + "Desciption": "Home Health Care (HHC)", + "DesciptionN": null, + "ID": 95, + "LegalName": "", + "LegalNameN": "", + "Name": "Home Health Care (HHC)", + "NameN": null, + "PhoneNumber": "+966114622224", + "SetupID": "91877 ", + "DistanceInKilometers": 0, + "IsActive": false, + "Latitude": "24.704242", + "Longitude": "46.675823", + "MainProjectID": 12, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Olaya Hospital", + "DesciptionN": null, + "ID": 12, + "LegalName": "from Sehat Al Olaya Medical Complex Company", + "LegalNameN": "شركة مجمع صحة العليا الطبي ", + "Name": "Olaya Hospital", + "NameN": null, + "PhoneNumber": "+966114622224", + "SetupID": "91877 ", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "24.704242", + "Longitude": "46.675823", + "MainProjectID": 12, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Ajaji Dental Clinic (AMS)", + "DesciptionN": null, + "ID": 99, + "LegalName": + "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company", + "LegalNameN": + "شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان", + "Name": "Ajaji Dental Clinic (AMS)", + "NameN": null, + "PhoneNumber": "+966115259999", + "SetupID": "010266", + "DistanceInKilometers": 0, + "IsActive": false, + "Latitude": "24.722136", + "Longitude": "46.774303", + "MainProjectID": 15, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Ajaji Dental Clinic (AMS)", + "DesciptionN": null, + "ID": 100, + "LegalName": + "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company", + "LegalNameN": + "شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان", + "Name": "Ajaji Dental Clinic (AMS) Malaz", + "NameN": null, + "PhoneNumber": "+966115259999", + "SetupID": "010266", + "DistanceInKilometers": 0, + "IsActive": false, + "Latitude": "24.722136", + "Longitude": "46.774303", + "MainProjectID": 15, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Arryan Hospital", + "DesciptionN": null, + "ID": 15, + "LegalName": "Al Rayan Hospital for Healthcare Company ", + "LegalNameN": "شركة مستشفى الريان للرعاية الطبية", + "Name": "Arryan Hospital", + "NameN": null, + "PhoneNumber": "+966114909999", + "SetupID": "010266", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "24.722136", + "Longitude": "46.774303", + "MainProjectID": 15, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "MD Lab", + "DesciptionN": null, + "ID": 150, + "LegalName": "", + "LegalNameN": "", + "Name": "MD Lab", + "NameN": null, + "PhoneNumber": "+966114774700", + "SetupID": "010266", + "DistanceInKilometers": 0, + "IsActive": false, + "Latitude": "24.722136", + "Longitude": "46.774303", + "MainProjectID": 15, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Takhassusi Hospital", + "DesciptionN": null, + "ID": 16, + "LegalName": "Western Specialist Hospital for Medical Care", + "LegalNameN": "شركة مستشفى الغرب التخصصي للرعاية الطبية ", + "Name": "Takhassusi Hospital", + "NameN": null, + "PhoneNumber": "+966112833333", + "SetupID": "102000", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "24.719364", + "Longitude": "46.657567", + "MainProjectID": 16, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Suwaidi Hospital", + "DesciptionN": null, + "ID": 17, + "LegalName": "Sehat Al Suwaidi Medical Company", + "LegalNameN": "شركة صحة السويدي الطبية", + "Name": "Suwaidi Hospital", + "NameN": null, + "PhoneNumber": "+966114754444", + "SetupID": "010266", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "24.567525", + "Longitude": " 46.641019", + "MainProjectID": 17, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Al Qassim Hospital\r\n", + "DesciptionN": null, + "ID": 21, + "LegalName": "Buraidah Al Takhassusi Hospital for Healthcare Company", + "LegalNameN": "شركة مستشفى بريدة التخصصي للرعاية الطبية ", + "Name": "Al Qassim Hospital", + "NameN": null, + "PhoneNumber": "+966163166666", + "SetupID": "051431", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "26.360724", + "Longitude": "43.945774", + "MainProjectID": 21, + "ProjectOutSA": false, + "UsingInDoctorApp": true + }, + { + "Desciption": "Khobar Hospital", + "DesciptionN": null, + "ID": 60, + "LegalName": "Khobar Hospital", + "LegalNameN": "مستشفى الخبر", + "Name": "Khobar Hospital", + "NameN": null, + "PhoneNumber": "+966138711111", + "SetupID": "034423", + "DistanceInKilometers": 0, + "IsActive": true, + "Latitude": "26.3107804", + "Longitude": "50.2108347", + "MainProjectID": 60, + "ProjectOutSA": false, + "UsingInDoctorApp": true + } +]; diff --git a/lib/lookups/patient_lookup.dart b/lib/lookups/patient_lookup.dart index 451e694b..0d58a407 100644 --- a/lib/lookups/patient_lookup.dart +++ b/lib/lookups/patient_lookup.dart @@ -1,26 +1,17 @@ +const PATIENT_TYPE = const [ + {"text": "outPatiant", "val": "0"}, + {"text": "InPatiant", "val": "1"}, + {"text": "Discharge", "val": "2"}, + {"text": "Referrd", "val": "3"}, + {"text": "Referral Discharge", "val": "4"}, + {"text": "Tomorrow Patient", "val": "5"}, + {"text": "Referral", "val": "6"}, +]; - const PATIENT_TYPE = const [ - {"text": "outPatiant", "val": "0"}, - {"text": "InPatiant", "val": "1"}, - {"text": "Discharge", "val": "2"}, - {"text": "Referrd", "val": "3"}, - {"text": "Referral Discharge", "val": "4"}, - {"text": "Tomorrow Patient", "val": "5"}, - {"text": "Referral", "val": "6"}, - - - - - ]; - - - - const LOCATIONS = const[ - {"text": "In Sudia Arabia", "val": "1"}, - {"text": "Out Sudia Arabia", "val": "2"}, - ]; - - +const LOCATIONS = const [ + {"text": "In Sudia Arabia", "val": "1"}, + {"text": "Out Sudia Arabia", "val": "2"}, +]; enum vitalSignDetails { bodyMeasurements, @@ -30,4 +21,4 @@ enum vitalSignDetails { bloodPressure, oxygenation, painScale -} \ No newline at end of file +} diff --git a/lib/screens/dashboard_screen.dart b/lib/screens/dashboard_screen.dart index 537e3121..b8fbbdd5 100644 --- a/lib/screens/dashboard_screen.dart +++ b/lib/screens/dashboard_screen.dart @@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/providers/medicine_provider.dart'; import 'package:doctor_app_flutter/providers/hospital_provider.dart'; import 'package:doctor_app_flutter/providers/referral_patient_provider.dart'; import 'package:doctor_app_flutter/providers/referred_patient_provider.dart'; +import 'package:doctor_app_flutter/screens/QR_reader_screen.dart'; import 'package:doctor_app_flutter/screens/medicine/medicine_search_screen.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; @@ -26,7 +27,7 @@ class DashboardScreen extends StatefulWidget { DashboardScreen({Key key, this.title}) : super(key: key); final String title; - + final String iconURL = 'assets/images/dashboard_icon/'; @override _DashboardScreenState createState() => _DashboardScreenState(); } @@ -48,20 +49,36 @@ class _DashboardScreenState extends State { body: SingleChildScrollView( child: SizedBox( height: MediaQuery.of(context).size.height * 1.09, - // height: MediaQuery.of(context).size.height * 0.2, - // width: SizeConfig.screenWidth * 0.9, child: Column( children: [ - Expanded( - flex: 1, - child: Container( - margin: EdgeInsets.all(10), - child: AppText( - TranslationBase.of(context).todayStatistics, - fontWeight: FontWeight.bold, - ), - alignment: Alignment.centerLeft, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + margin: EdgeInsets.only(left: 10, top: 10), + child: AppText( + TranslationBase.of(context).familyMedicine, + fontWeight: FontWeight.bold, + fontSize: SizeConfig.textMultiplier * 2.5, + ), + alignment: Alignment.centerLeft, + ), + Container( + margin: EdgeInsets.only(left: 10, top: 10, right: 10), + child: Icon( + Icons.settings, + size: SizeConfig.textMultiplier * 2.5, + )) + ]), + Container( + margin: EdgeInsets.only(left: 10, top: 5), + child: AppText( + TranslationBase.of(context).todayStatistics, + fontWeight: FontWeight.bold, ), + alignment: Alignment.centerLeft, ), Expanded( flex: 3, @@ -72,7 +89,7 @@ class _DashboardScreenState extends State { flex: 2, child: RoundedContainer( child: CircularPercentIndicator( - radius: 115.0, + radius: 100, animation: true, animationDuration: 1200, lineWidth: 7.0, @@ -85,7 +102,7 @@ class _DashboardScreenState extends State { fontSize: SizeConfig.textMultiplier * 4), AppText(TranslationBase.of(context).outPatients, fontWeight: FontWeight.normal, - fontSize: SizeConfig.textMultiplier * 1.2, + fontSize: SizeConfig.textMultiplier * 1.1, color: Colors.grey[800]), ], ), @@ -154,7 +171,7 @@ class _DashboardScreenState extends State { Expanded( flex: 2, child: new DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'lab_results.svg', "08", TranslationBase.of(context).labResult, backgroundColor: Colors.black45, @@ -166,7 +183,7 @@ class _DashboardScreenState extends State { Expanded( flex: 2, child: new DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'radiology.svg', "10", TranslationBase.of(context).radiology, backgroundColor: Colors.black45, @@ -177,7 +194,7 @@ class _DashboardScreenState extends State { Expanded( flex: 2, child: new DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'referral.svg', "05", TranslationBase.of(context).referral, backgroundColor: Colors.black45, @@ -196,17 +213,17 @@ class _DashboardScreenState extends State { Expanded( flex: 2, child: new DashboardItemIconText( - DoctorApp.home_icon, - "23", - TranslationBase.of(context).inPatient, - showBorder: true, - backgroundColor: Colors.red[900], - ), + widget.iconURL + 'in_patient_white.svg', + "23", + "In-Patient", + showBorder: true, + backgroundColor: Colors.red[900], + iconColor: Colors.white), ), Expanded( flex: 2, child: new DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'operations.svg', "23", TranslationBase.of(context).operations, showBorder: true, @@ -229,13 +246,12 @@ class _DashboardScreenState extends State { Expanded( flex: 2, child: Row( - crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Expanded( flex: 2, child: InkWell( child: DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'search_patient.svg', "", TranslationBase.of(context).searchPatient, showBorder: true, @@ -243,7 +259,7 @@ class _DashboardScreenState extends State { valueFontColor: Colors.black, titleFontColor: Colors.black, iconColor: Colors.black, - titleFontSize: 14, + titleFontSize: SizeConfig.textMultiplier * 2, ), onTap: () { Navigator.of(context).pushNamed(PATIENT_SEARCH); @@ -265,7 +281,7 @@ class _DashboardScreenState extends State { ); }, child: DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'message_icon.svg', "", TranslationBase.of(context).doctorReply, showBorder: true, @@ -273,7 +289,7 @@ class _DashboardScreenState extends State { valueFontColor: Colors.black, titleFontColor: Colors.black, iconColor: Colors.black, - titleFontSize: 14, + titleFontSize: SizeConfig.textMultiplier * 2, ), ), ), @@ -289,7 +305,7 @@ class _DashboardScreenState extends State { flex: 1, child: InkWell( child: DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'search_patient.svg', "", "Search Medicine", showBorder: true, @@ -297,7 +313,7 @@ class _DashboardScreenState extends State { valueFontColor: Colors.black, titleFontColor: Colors.black, iconColor: Colors.black, - titleFontSize: 14, + titleFontSize: SizeConfig.textMultiplier * 2, ), onTap: () { Navigator.push( @@ -327,7 +343,7 @@ class _DashboardScreenState extends State { ); }, child: DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'referral.svg', "", "My Referral Patient", showBorder: true, @@ -335,7 +351,7 @@ class _DashboardScreenState extends State { valueFontColor: Colors.black, titleFontColor: Colors.black, iconColor: Colors.black, - titleFontSize: 14, + titleFontSize: SizeConfig.textMultiplier * 2, ), ), ), @@ -362,7 +378,7 @@ class _DashboardScreenState extends State { ); }, child: DashboardItemIconText( - DoctorApp.home_icon, + widget.iconURL + 'referral.svg', "", "My Referred Patient", showBorder: true, @@ -370,11 +386,29 @@ class _DashboardScreenState extends State { valueFontColor: Colors.black, titleFontColor: Colors.black, iconColor: Colors.black, - titleFontSize: 14, + titleFontSize: SizeConfig.textMultiplier * 2, + ), + ), + ), + Expanded( + flex: 1, + child: InkWell( + onTap: () { + Navigator.of(context).pushNamed(QR_READER); + }, + child: DashboardItemIconText( + widget.iconURL + 'qr-code.svg', + "", + "QR Reader", + showBorder: true, + backgroundColor: Colors.white, + valueFontColor: Colors.black, + titleFontColor: Colors.black, + iconColor: Colors.black, + titleFontSize: SizeConfig.textMultiplier * 2, ), ), ), - Expanded(flex: 1, child: Container()) ], )), ], diff --git a/lib/screens/medicine/medicine_search_screen.dart b/lib/screens/medicine/medicine_search_screen.dart index 2b14edeb..5c3b857a 100644 --- a/lib/screens/medicine/medicine_search_screen.dart +++ b/lib/screens/medicine/medicine_search_screen.dart @@ -45,7 +45,6 @@ class _MedicineSearchState extends State { @override Widget build(BuildContext context) { - return AppScaffold( appBarTitle: "Search Medicine", body: Column( diff --git a/lib/screens/patients/patient_search_screen.dart b/lib/screens/patients/patient_search_screen.dart index dffe342c..2e80a1b1 100644 --- a/lib/screens/patients/patient_search_screen.dart +++ b/lib/screens/patients/patient_search_screen.dart @@ -134,11 +134,21 @@ class _PatientSearchScreenState extends State { SizedBox( height: 5, ), - RoundedContainer( - margin: 0, - showBorder: true, - raduis: 30, - borderColor: Color(0xff707070), + Container( + decoration: ShapeDecoration( + shape: RoundedRectangleBorder( + side: BorderSide( + width: 1.0, + style: BorderStyle.solid, + color: Color(0xff707070)), + borderRadius: + BorderRadius.all(Radius.circular(5.0)), + ), + ), + // margin: 0, + // showBorder: true, + // raduis: 30, + // borderColor: Color(0xff707070), width: double.infinity, child: Padding( padding: EdgeInsets.only( @@ -313,11 +323,21 @@ class _PatientSearchScreenState extends State { SizedBox( height: 10, ), - RoundedContainer( - margin: 0, - showBorder: true, - raduis: 30, - borderColor: Color(0xff707070), + Container( + // margin: 0, + // showBorder: true, + // raduis: 30, + // borderColor: Color(0xff707070), + decoration: ShapeDecoration( + shape: RoundedRectangleBorder( + side: BorderSide( + width: 1.0, + style: BorderStyle.solid, + color: Color(0xff707070)), + borderRadius: + BorderRadius.all(Radius.circular(5.0)), + ), + ), width: double.infinity, child: Padding( padding: EdgeInsets.only( diff --git a/lib/screens/patients/patients_screen.dart b/lib/screens/patients/patients_screen.dart index a5d8d96e..68114a3d 100644 --- a/lib/screens/patients/patients_screen.dart +++ b/lib/screens/patients/patients_screen.dart @@ -315,7 +315,7 @@ class _PatientsScreenState extends State { child: Center( child: Padding( padding: const EdgeInsets.fromLTRB( - 0, 0, 0, 0),//250 + 0, 0, 0, 0), //250 child: DrAppCircularProgressIndeicator(), )), @@ -374,7 +374,7 @@ class _PatientsScreenState extends State { widget: Column( children: [ Container( - // decoration: myBoxDecoration(), + // decoration: myBoxDecoration(), child: Row( children: [ Column( @@ -386,36 +386,28 @@ class _PatientsScreenState extends State { "Male" ? [ SvgPicture.asset( - url + - avatarMale, - height: - 80.0, - width: - 80.0, - semanticsLabel: - 'Male Logo') + url + avatarMale, + height: 80.0, + width: 80.0, + semanticsLabel: 'Male Logo') ] : [ SvgPicture.asset( - url + - avatarFemale, - height: - 80.0, - width: - 80.0, - semanticsLabel: - 'Female Logo') + url + avatarFemale, + height: 80.0, + width: 80.0, + semanticsLabel: 'Female Logo') ], - ), SizedBox( - width: 10, - ), + width: 10, + ), Column( crossAxisAlignment: CrossAxisAlignment .start, - children: [ + children: < + Widget>[ AppText( item.firstName + " " + @@ -427,7 +419,8 @@ class _PatientsScreenState extends State { FontWeight .bold, backGroundcolor: - Colors.white, + Colors + .white, ), SizedBox( height: 8, @@ -443,7 +436,8 @@ class _PatientsScreenState extends State { FontWeight .bold, backGroundcolor: - Colors.white, + Colors + .white, ), // SizedBox( @@ -460,19 +454,18 @@ class _PatientsScreenState extends State { FontWeight .bold, backGroundcolor: - Colors.white, + Colors + .white, ), SizedBox( height: 8, ), - SERVICES_PATIANT2[int - .parse( - patientType)] == + SERVICES_PATIANT2[ + int.parse(patientType)] == "List_MyOutPatient" ? Row( mainAxisAlignment: - MainAxisAlignment - .spaceBetween, + MainAxisAlignment.spaceBetween, children: < Widget>[ Container( @@ -482,22 +475,16 @@ class _PatientsScreenState extends State { 80, decoration: BoxDecoration( - borderRadius: - BorderRadius.circular(50), - color: - Hexcolor("#20A169"), + borderRadius: BorderRadius.circular(50), + color: Hexcolor("#20A169"), ), child: AppText( item.startTime, - color: - Colors.white, - fontSize: - 2 * SizeConfig.textMultiplier, - textAlign: - TextAlign.center, - fontWeight: - FontWeight.bold, + color: Colors.white, + fontSize: 2 * SizeConfig.textMultiplier, + textAlign: TextAlign.center, + fontWeight: FontWeight.bold, ), ), SizedBox( @@ -507,50 +494,44 @@ class _PatientsScreenState extends State { Container( child: AppText( - convertDateFormat2(item - .appointmentDate - .toString()), - fontSize: - 2.0 * SizeConfig.textMultiplier, - fontWeight: - FontWeight.bold, + convertDateFormat2(item.appointmentDate.toString()), + fontSize: 2.0 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, ), ) ], ) : AppText( item.nationalityName, - fontSize: 2.5 * - SizeConfig - .textMultiplier, + fontSize: + 2.5 * + SizeConfig.textMultiplier, ), ], ), - // Divider(color: Colors.grey) + // Divider(color: Colors.grey) ], ), ), - // Divider(color: Colors.grey) + // Divider(color: Colors.grey) ], ), ), onTap: () { - Navigator.of(context).pushNamed( - PATIENTS_PROFILE, - arguments: { + Navigator.of(context) + .pushNamed( + PATIENTS_PROFILE, + arguments: { "patient": item }); }, ), ); - - }).toList(), + }).toList(), ), ), ], - ), - ) ], ), @@ -587,8 +568,7 @@ class _PatientsScreenState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: _locations.map((item) { bool _isActive = _locations[_activeLocation] == item ? true : false; - return Column(mainAxisSize: MainAxisSize.min, - children: [ + return Column(mainAxisSize: MainAxisSize.min, children: [ InkWell( child: Center( child: Container( @@ -601,18 +581,17 @@ class _PatientsScreenState extends State { child: Center( child: Text( item, - style: TextStyle( - fontSize: 12, - color: _isActive - ? Colors.white - : Colors.black, //Colors.black, - // backgroundColor:_isActive - // ? Hexcolor("#B8382B") - // : Colors.white,//sideColor, - - fontWeight: FontWeight.bold, - ), + fontSize: 12, + color: _isActive + ? Colors.white + : Colors.black, //Colors.black, + // backgroundColor:_isActive + // ? Hexcolor("#B8382B") + // : Colors.white,//sideColor, + + fontWeight: FontWeight.bold, + ), ), )), ), @@ -623,7 +602,6 @@ class _PatientsScreenState extends State { setState(() { _activeLocation = _locations.indexOf(item); - }); }), _isActive @@ -643,17 +621,14 @@ class _PatientsScreenState extends State { } myBoxDecoration() { - return BoxDecoration( border: Border( - - - bottom: BorderSide( // <--- top side + bottom: BorderSide( + // <--- top side color: Colors.grey, width: 1.0, ), ), ); - } } diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart index c62f9cb7..acbff5ce 100644 --- a/lib/util/translations_delegate_base.dart +++ b/lib/util/translations_delegate_base.dart @@ -13,9 +13,8 @@ class TranslationBase { return Localizations.of(context, TranslationBase); } - - - String get dashboardScreenToolbarTitle => localizedValues['dashboardScreenToolbarTitle'][locale.languageCode]; + String get dashboardScreenToolbarTitle => + localizedValues['dashboardScreenToolbarTitle'][locale.languageCode]; String get settings => localizedValues['settings'][locale.languageCode]; @@ -33,25 +32,35 @@ class TranslationBase { String get mobileNo => localizedValues['mobileNo'][locale.languageCode]; - String get messagesScreenToolbarTitle => localizedValues['messagesScreenToolbarTitle'][locale.languageCode]; + String get messagesScreenToolbarTitle => + localizedValues['messagesScreenToolbarTitle'][locale.languageCode]; String get mySchedule => localizedValues['mySchedule'][locale.languageCode]; - String get errorNoSchedule => localizedValues['errorNoSchedule'][locale.languageCode]; - + String get errorNoSchedule => + localizedValues['errorNoSchedule'][locale.languageCode]; String get verify => localizedValues['verify'][locale.languageCode]; - String get referralDoctor => localizedValues['referralDoctor'][locale.languageCode]; - String get referringClinic => localizedValues['referringClinic'][locale.languageCode]; + String get referralDoctor => + localizedValues['referralDoctor'][locale.languageCode]; + String get referringClinic => + localizedValues['referringClinic'][locale.languageCode]; String get frequency => localizedValues['frequency'][locale.languageCode]; String get priority => localizedValues['priority'][locale.languageCode]; - String get maxResponseTime => localizedValues['maxResponseTime'][locale.languageCode]; - String get clinicDetailsandRemarks=> localizedValues['clinicDetailsandRemarks'][locale.languageCode]; - String get answerSuggestions => localizedValues['answerSuggestions'][locale.languageCode]; + String get maxResponseTime => + localizedValues['maxResponseTime'][locale.languageCode]; + String get clinicDetailsandRemarks => + localizedValues['clinicDetailsandRemarks'][locale.languageCode]; + String get answerSuggestions => + localizedValues['answerSuggestions'][locale.languageCode]; String get outPatients => localizedValues['outPatients'][locale.languageCode]; - String get searchPatient => localizedValues['searchPatient'][locale.languageCode]; + String get searchPatient => + localizedValues['searchPatient'][locale.languageCode]; String get labResult => localizedValues['labResult'][locale.languageCode]; - String get todayStatistics => localizedValues['todayStatistics'][locale.languageCode]; + String get todayStatistics => + localizedValues['todayStatistics'][locale.languageCode]; + String get familyMedicine => + localizedValues['familyMedicine'][locale.languageCode]; String get arrived => localizedValues['arrived'][locale.languageCode]; String get er => localizedValues['er'][locale.languageCode]; String get walkIn => localizedValues['walkIn'][locale.languageCode]; @@ -60,8 +69,8 @@ class TranslationBase { String get referral => localizedValues['referral'][locale.languageCode]; String get inPatient => localizedValues['inPatient'][locale.languageCode]; String get operations => localizedValues['inPatient'][locale.languageCode]; - String get patientServices => localizedValues['patientServices'][locale.languageCode]; - + String get patientServices => + localizedValues['patientServices'][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/dashboard/dashboard_item_icons_texts.dart b/lib/widgets/dashboard/dashboard_item_icons_texts.dart index fc9e27c4..12fd9a40 100644 --- a/lib/widgets/dashboard/dashboard_item_icons_texts.dart +++ b/lib/widgets/dashboard/dashboard_item_icons_texts.dart @@ -1,11 +1,14 @@ import 'dart:ffi'; +import 'package:doctor_app_flutter/config/size_config.dart'; +import 'package:flutter_svg/svg.dart'; + import '../shared/rounded_container_widget.dart'; import 'package:flutter/material.dart'; import '../shared/app_texts_widget.dart'; class DashboardItemIconText extends StatefulWidget { - final IconData icon; + final String icon; final String value; final String label; final Color backgroundColor; @@ -43,16 +46,16 @@ class _DashboardItemTextsState extends State { Align( alignment: FractionalOffset.topLeft, child: Container( - margin: EdgeInsets.all(10), - child: Icon( - widget.icon, - color: widget.iconColor, - ), - )), + padding: EdgeInsets.all(10), + child: SvgPicture.asset( + widget.icon, + color: widget.iconColor, + width: SizeConfig.widthMultiplier * 7, + ))), Align( alignment: FractionalOffset.bottomRight, child: Container( - margin: EdgeInsets.all(10), + padding: EdgeInsets.all(10), child: Column( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end, diff --git a/lib/widgets/home/home_item.dart b/lib/widgets/home/home_item.dart index 59e606d8..0de07d7b 100644 --- a/lib/widgets/home/home_item.dart +++ b/lib/widgets/home/home_item.dart @@ -6,7 +6,7 @@ class HomeItem extends StatelessWidget { final String image; final String link; - HomeItem(this.id, this.title, this.image,this.link); + HomeItem(this.id, this.title, this.image, this.link); @override Widget build(BuildContext context) { return InkWell( @@ -22,21 +22,21 @@ class HomeItem extends StatelessWidget { child: Column( children: [ Container( - // decoration: BoxDecoration(color:Colors.red), - width: 10000, - height: 60, + // decoration: BoxDecoration(color:Colors.red), + width: 10000, + height: 60, child: CircleAvatar( - backgroundColor: Colors.white, - child: Container( - child: Image.asset( - image, - // width 50, - scale: 0.6, - color: Theme.of(context).primaryColor, - fit: BoxFit.cover, - ), - ), - )), + backgroundColor: Colors.white, + child: Container( + child: Image.asset( + image, + // width 50, + scale: 0.6, + color: Theme.of(context).primaryColor, + fit: BoxFit.cover, + ), + ), + )), Text( title, style: TextStyle(fontSize: 16), diff --git a/lib/widgets/medicine/medicine_item_widget.dart b/lib/widgets/medicine/medicine_item_widget.dart index 3998adc6..ad15ddab 100644 --- a/lib/widgets/medicine/medicine_item_widget.dart +++ b/lib/widgets/medicine/medicine_item_widget.dart @@ -14,58 +14,73 @@ import 'package:flutter/material.dart'; */ class MedicineItemWidget extends StatefulWidget { + final String label; + final Color backgroundColor; + final bool showBorder; + final Color borderColor; + final String url; -final String label; -final Color backgroundColor; -final bool showBorder; -final Color borderColor; -final String url; - -MedicineItemWidget({ @required this.label, this.backgroundColor = Colors.white, this.showBorder = false, this.borderColor = Colors.white, this.url}); + MedicineItemWidget( + {@required this.label, + this.backgroundColor = Colors.white, + this.showBorder = false, + this.borderColor = Colors.white, + this.url}); @override _MedicineItemWidgetState createState() => _MedicineItemWidgetState(); } class _MedicineItemWidgetState extends State { - @override + @override Widget build(BuildContext context) { return new RoundedContainer( height: SizeConfig.heightMultiplier * 8, - child:Padding( + child: Padding( padding: const EdgeInsets.all(5.0), child: Row( crossAxisAlignment: CrossAxisAlignment.stretch, mainAxisAlignment: MainAxisAlignment.start, children: [ - if(widget.url != null) Container( - height: 39, - width: 39, - child: ClipRRect( - borderRadius:BorderRadius.all(Radius.circular(7)), - child: Image.memory( - dataFromBase64String(widget.url), - height: SizeConfig.imageSizeMultiplier * 15, - width: SizeConfig.imageSizeMultiplier * 15, - fit: BoxFit.cover, - ), - ), + if (widget.url != null) + Container( + height: 39, + width: 39, + child: ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(7)), + child: Image.memory( + dataFromBase64String(widget.url), + height: SizeConfig.imageSizeMultiplier * 15, + width: SizeConfig.imageSizeMultiplier * 15, + fit: BoxFit.cover, + ), + ), + ), + Expanded( + child: Padding( + padding: EdgeInsets.all(5), + child: Align( + alignment: Alignment.centerLeft, + child: AppText(widget.label)))) + ], ), - Expanded(child: Padding( padding: EdgeInsets.all(5), child: Align( alignment: Alignment.centerLeft, child: AppText(widget.label)))) - ],), ), - backgroundColor: widget.backgroundColor, showBorder: widget.showBorder, borderColor: widget.borderColor, margin: 4, raduis: 10,); + backgroundColor: widget.backgroundColor, + showBorder: widget.showBorder, + borderColor: widget.borderColor, + margin: 4, + raduis: 10, + ); } Image imageFromBase64String(String base64String) { - return Image.memory(base64Decode(base64String)); -} + return Image.memory(base64Decode(base64String)); + } -Uint8List dataFromBase64String(String base64String) { - return base64Decode(base64String); -} + Uint8List dataFromBase64String(String base64String) { + return base64Decode(base64String); + } -String base64String(Uint8List data) { - return base64Encode(data); + String base64String(Uint8List data) { + return base64Encode(data); + } } - -} \ No newline at end of file diff --git a/lib/widgets/patients/profile/patient_profile_widget.dart b/lib/widgets/patients/profile/patient_profile_widget.dart index 171d1256..0ef50d81 100644 --- a/lib/widgets/patients/profile/patient_profile_widget.dart +++ b/lib/widgets/patients/profile/patient_profile_widget.dart @@ -32,46 +32,61 @@ class PatientProfileWidget extends StatelessWidget { // ProfileStatusInfoWidget() // ]); - return Container( - child: Column(children: [ - Expanded( - flex: 1, - child: - Row(mainAxisAlignment: MainAxisAlignment.center, children: [ - Column(children: [ - Container( - padding: EdgeInsets.only(top: 20), - child: ProfileImageWidget( - url: - "https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png", - name: patient.firstName + ' ' + patient.lastName, - fontsize: 24.0, - color: Colors.black, - ), + return CustomScrollView(primary: false, slivers: [ + SliverList( + delegate: SliverChildListDelegate( + [ + Expanded( + flex: 1, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + Container( + padding: EdgeInsets.only(top: 20), + child: ProfileImageWidget( + url: + "https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png", + name: patient.firstName + ' ' + patient.lastName, + fontsize: 24.0, + color: Colors.black, + ), + ), + Container( + child: Column( + children: [ + AppText( + 'File No: ' + patient.patientId.toString(), + fontWeight: FontWeight.normal, + fontSize: 16, + ), + AppText( + patient.genderDescription.toString() + + ', ' + + patient.age, + fontWeight: FontWeight.normal, + fontSize: 16, + ) + ], + ), + ) + ]), + ]), ), - Container( - child: Column( - children: [ - AppText( - 'File No: ' + patient.patientId.toString(), - fontWeight: FontWeight.normal, - fontSize: 16, - ), - AppText( - patient.genderDescription.toString() + ', ' + patient.age, - fontWeight: FontWeight.normal, - fontSize: 16, - ) - ], - ), - ) - ]), - ]), + ], + ), ), - Expanded( - flex: 2, - child: ProfileMedicalInfoWidget(patient: patient), - ) - ])); + SliverPadding( + padding: const EdgeInsets.fromLTRB(20, 30, 15, 10), + sliver: ProfileMedicalInfoWidget()) + ]); + + // Container( + // child: Column(children: [ + // Expanded( + // flex: 2, + // child: , + // ) + // ])); } } diff --git a/lib/widgets/patients/profile/profile_medical_info_widget.dart b/lib/widgets/patients/profile/profile_medical_info_widget.dart index 28868afb..c60c2d29 100644 --- a/lib/widgets/patients/profile/profile_medical_info_widget.dart +++ b/lib/widgets/patients/profile/profile_medical_info_widget.dart @@ -23,65 +23,69 @@ class ProfileMedicalInfoWidget extends StatelessWidget { Widget build(BuildContext context) { // final double contWidth = SizeConfig.realScreenWidth * 0.70; // final double contHeight = SizeConfig.screenHeight * 0.30; - return CustomScrollView(primary: false, slivers: [ - SliverPadding( - padding: const EdgeInsets.fromLTRB(20, 30, 15, 10), - sliver: SliverGrid.count( - crossAxisSpacing: 10, - mainAxisSpacing: 20, - crossAxisCount: 2, - childAspectRatio: 1.5, - children: [ - PatientProfileButton( - key: key, - patient: patient, - name: 'Vital Sign', - route: VITAL_SIGN_DETAILS, - icon: 'heartbeat.png'), - PatientProfileButton( - key: key, - patient: patient, - route: LAB_ORDERS, - name: 'Lab Order', - icon: 'lab.png'), - PatientProfileButton( - key: key, - patient: patient, - route: PRESCRIPTIONS, - name: 'Prescription', - icon: 'note.png'), - PatientProfileButton( - key: key, - patient: patient, - route: RADIOLOGY, - name: 'Radiology', - icon: 'radiology-1.png'), - PatientProfileButton( - key: key, - patient: patient, - route: PROGRESS_NOTE, - name: 'Progress Notes', - icon: 'heartbeat.png'), - PatientProfileButton( - key: key, - patient: patient, - route: PATIENT_INSURANCE_APPROVALS, - name: 'Insurance Aprovals', - icon: 'lab.png'), - PatientProfileButton( - key: key, - patient: patient, - route: REFER_PATIENT, - name: 'Refer Patient', - icon: 'note.png'), - PatientProfileButton( - key: key, - patient: patient, - route: PATIENT_ORDERS, - name: 'Orders', - icon: 'radiology-1.png'), - ])) - ]); + return SliverGrid.count( + crossAxisSpacing: 10, + mainAxisSpacing: 20, + crossAxisCount: 2, + childAspectRatio: 1.5, + children: [ + PatientProfileButton( + key: key, + patient: patient, + name: 'Vital Sign', + route: VITAL_SIGN_DETAILS, + icon: 'heartbeat.png'), + PatientProfileButton( + key: key, + patient: patient, + route: LAB_ORDERS, + name: 'Lab Order', + icon: 'lab.png'), + PatientProfileButton( + key: key, + patient: patient, + route: PRESCRIPTIONS, + name: 'Prescription', + icon: 'note.png'), + PatientProfileButton( + key: key, + patient: patient, + route: RADIOLOGY, + name: 'Radiology', + icon: 'radiology-1.png'), + Visibility( + visible: selectedPatientType != 0 && selectedPatientType != 5, + child: PatientProfileButton( + key: key, + patient: patient, + route: PROGRESS_NOTE, + name: 'Progress Notes', + icon: 'heartbeat.png')), + PatientProfileButton( + key: key, + patient: patient, + route: PATIENT_INSURANCE_APPROVALS, + name: 'Insurance Aprovals', + icon: 'lab.png'), + Visibility( + visible: selectedPatientType != 0 && + selectedPatientType != 5 && + selectedPatientType != 2, + child: PatientProfileButton( + key: key, + patient: patient, + route: PRESCRIPTIONS, + name: 'Refer Patient', + icon: 'note.png')), + Visibility( + visible: selectedPatientType != 0 && selectedPatientType != 5, + child: PatientProfileButton( + key: key, + patient: patient, + route: PATIENT_ORDERS, + name: 'Orders', + icon: 'radiology-1.png')), + ]); // child: ListView( // children: [ // Padding( @@ -289,21 +293,18 @@ class PatientProfileButton extends StatelessWidget { child: Column(children: [ Expanded( flex: 1, - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - padding: EdgeInsets.all(5), - child: new AppText( - this.name, - color: Colors.red, - fontWeight: FontWeight.w600, - textAlign: TextAlign.left, - fontSize: 16, - ), - ) - ], - ), + child: Expanded( + child: Container( + alignment: Alignment.topLeft, + padding: EdgeInsets.all(5), + child: new AppText( + this.name, + color: Colors.red, + fontWeight: FontWeight.w600, + textAlign: TextAlign.left, + fontSize: SizeConfig.textMultiplier * 2, + ), + )), ), Expanded( flex: 1, diff --git a/lib/widgets/shared/app_texts_widget.dart b/lib/widgets/shared/app_texts_widget.dart index abbd1c18..e52dab51 100644 --- a/lib/widgets/shared/app_texts_widget.dart +++ b/lib/widgets/shared/app_texts_widget.dart @@ -33,8 +33,7 @@ class AppText extends StatefulWidget { this.marginLeft = 0, this.visibility = true, this.textAlign, - this.backGroundcolor=Colors.white - }); + this.backGroundcolor = Colors.white}); @override _AppTextState createState() => _AppTextState(); @@ -56,13 +55,15 @@ class _AppTextState extends State { child: Text( widget.data, textAlign: widget.textAlign, + overflow: TextOverflow.clip, style: TextStyle( - color: widget.color, - fontWeight: widget.fontWeight, - fontSize: widget.fontSize ?? (SizeConfig.textMultiplier * 2), - fontFamily: widget.fontFamily, - // backgroundColor:widget.backGroundcolor - ), + color: widget.color, + fontWeight: widget.fontWeight, + fontSize: widget.fontSize ?? (SizeConfig.textMultiplier * 2), + fontFamily: widget.fontFamily, + + // backgroundColor:widget.backGroundcolor + ), ), ), ); diff --git a/pubspec.yaml b/pubspec.yaml index 9ed6b4ef..0ed049f9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,7 +23,7 @@ dependencies: flutter_localizations: sdk: flutter flutter_device_type: ^0.2.0 - intl: ^0.16.1 + intl: ^0.16.0 http: ^0.12.0+4 provider: ^4.0.5+1 shared_preferences: ^0.5.6+3 @@ -39,15 +39,12 @@ dependencies: eva_icons_flutter: ^2.0.0 expandable: ^4.1.4 - # Qr code Scanner barcode_scan: ^3.0.1 # permissions permission_handler: ^5.0.0+hotfix.3 device_info: ^0.4.2+4 - - # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 @@ -61,23 +58,20 @@ dev_dependencies: build_runner: any build_web_compilers: any - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter. flutter: - # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true - # To add assets to your application, add an assets section, like this: assets: - - assets/images/ - + - assets/images/ + - assets/images/dashboard_icon/ # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see @@ -97,14 +91,14 @@ flutter: - asset: assets/fonts/Work_Sans/WorkSans-Regular.ttf - asset: assets/fonts/Work_Sans/WorkSans-Bold.ttf weight: 700 - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - - family: DoctorApp + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + - family: DoctorApp fonts: - - asset: fonts/DoctorApp.ttf + - asset: fonts/DoctorApp.ttf # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages diff --git a/ssh_key b/ssh_key new file mode 100644 index 00000000..b2bfd464 --- /dev/null +++ b/ssh_key @@ -0,0 +1,8 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDdAHzw+C +qTVdRkviTeVAj7AAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIGnX/M1OFtZvGTEI +h5/B9u+eQwjzRJpanfljungMbc+VAAAAkPGJXHVNFeKLXK+aQFiTKx8EU48dQGLBQVIq4G +1SOgNvOaK2UfnQwSbZzhMAOmA1RCUbpQH9cGr9B/uSI88sdghcTEkNgVAtVF/NHNeKMahf +3hdVQ7ER6Au4FEIhpvUTzF+0G+8QBTabpNQx3UdLUxFAOulX6nIYG2phQIS08V/DdS70IG +luo6vY2w/qnXDsWQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/ssh_key.pub b/ssh_key.pub new file mode 100644 index 00000000..1d1ef8f5 --- /dev/null +++ b/ssh_key.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGnX/M1OFtZvGTEIh5/B9u+eQwjzRJpanfljungMbc+V sultan