diff --git a/android/app/build.gradle b/android/app/build.gradle index e01cb68..c0b3c9a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -26,7 +26,7 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion flutter.compileSdkVersion + compileSdkVersion 33 ndkVersion flutter.ndkVersion compileOptions { @@ -44,10 +44,10 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.untitled1" + applicationId "com.hmg.hmgDr" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion flutter.minSdkVersion + minSdkVersion 23 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName @@ -69,3 +69,4 @@ flutter { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } +apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..e656079 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,82 @@ +{ + "project_info": { + "project_number": "934365232760", + "project_id": "hmg-dr-app", + "storage_bucket": "hmg-dr-app.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:934365232760:android:024b3569972f1c09f9778d", + "android_client_info": { + "package_name": "COM.HMG.HMGDR" + } + }, + "oauth_client": [ + { + "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "COM.HMG.HMGDR" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:934365232760:android:e0e185e68c0d7690f9778d", + "android_client_info": { + "package_name": "com.hmg.hmgDr" + } + }, + "oauth_client": [ + { + "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "COM.HMG.HMGDR" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 41cb775..3309a2e 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,8 @@ + + + + + diff --git a/assets/images/svgs/bottom_nav/reader-active.svg b/assets/images/svgs/bottom_nav/reader-active.svg new file mode 100644 index 0000000..36e7657 --- /dev/null +++ b/assets/images/svgs/bottom_nav/reader-active.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/svgs/bottom_nav/reply-active.svg b/assets/images/svgs/bottom_nav/reply-active.svg new file mode 100644 index 0000000..3fc5bd0 --- /dev/null +++ b/assets/images/svgs/bottom_nav/reply-active.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/bottom_nav/schedule-active.svg b/assets/images/svgs/bottom_nav/schedule-active.svg new file mode 100644 index 0000000..a48e165 --- /dev/null +++ b/assets/images/svgs/bottom_nav/schedule-active.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/female avatar.svg b/assets/images/svgs/female avatar.svg new file mode 100644 index 0000000..1cf831e --- /dev/null +++ b/assets/images/svgs/female avatar.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/svgs/female.svg b/assets/images/svgs/female.svg new file mode 100644 index 0000000..307729c --- /dev/null +++ b/assets/images/svgs/female.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/inpatient.svg b/assets/images/svgs/inpatient.svg new file mode 100644 index 0000000..0f6b79b --- /dev/null +++ b/assets/images/svgs/inpatient.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/male avatar.svg b/assets/images/svgs/male avatar.svg new file mode 100644 index 0000000..ff17741 --- /dev/null +++ b/assets/images/svgs/male avatar.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/svgs/male.svg b/assets/images/svgs/male.svg new file mode 100644 index 0000000..80cd0c7 --- /dev/null +++ b/assets/images/svgs/male.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/menu.svg b/assets/images/svgs/menu.svg new file mode 100644 index 0000000..6808f51 --- /dev/null +++ b/assets/images/svgs/menu.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/svgs/no_data.svg b/assets/images/svgs/no_data.svg new file mode 100644 index 0000000..c54f043 --- /dev/null +++ b/assets/images/svgs/no_data.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/ECG.svg b/assets/images/svgs/profile_screen/ECG.svg new file mode 100644 index 0000000..cc697f9 --- /dev/null +++ b/assets/images/svgs/profile_screen/ECG.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/Order Procedures.svg b/assets/images/svgs/profile_screen/Order Procedures.svg new file mode 100644 index 0000000..9eb44df --- /dev/null +++ b/assets/images/svgs/profile_screen/Order Procedures.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/Progress notes.svg b/assets/images/svgs/profile_screen/Progress notes.svg new file mode 100644 index 0000000..5fc4175 --- /dev/null +++ b/assets/images/svgs/profile_screen/Progress notes.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/Radiology.svg b/assets/images/svgs/profile_screen/Radiology.svg new file mode 100644 index 0000000..8f1d8a4 --- /dev/null +++ b/assets/images/svgs/profile_screen/Radiology.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/UCAF.svg b/assets/images/svgs/profile_screen/UCAF.svg new file mode 100644 index 0000000..79100a5 --- /dev/null +++ b/assets/images/svgs/profile_screen/UCAF.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/admission req.svg b/assets/images/svgs/profile_screen/admission req.svg new file mode 100644 index 0000000..1f45426 --- /dev/null +++ b/assets/images/svgs/profile_screen/admission req.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/booked.svg b/assets/images/svgs/profile_screen/booked.svg new file mode 100644 index 0000000..bda90bc --- /dev/null +++ b/assets/images/svgs/profile_screen/booked.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/create episode.svg b/assets/images/svgs/profile_screen/create episode.svg new file mode 100644 index 0000000..88c1cc2 --- /dev/null +++ b/assets/images/svgs/profile_screen/create episode.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/profile_screen/diabetic chart.svg b/assets/images/svgs/profile_screen/diabetic chart.svg new file mode 100644 index 0000000..b558bc6 --- /dev/null +++ b/assets/images/svgs/profile_screen/diabetic chart.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/diagnosis.svg b/assets/images/svgs/profile_screen/diagnosis.svg new file mode 100644 index 0000000..b0c9b83 --- /dev/null +++ b/assets/images/svgs/profile_screen/diagnosis.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/discharge summary.svg b/assets/images/svgs/profile_screen/discharge summary.svg new file mode 100644 index 0000000..2edd6a1 --- /dev/null +++ b/assets/images/svgs/profile_screen/discharge summary.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/svgs/profile_screen/health summary.svg b/assets/images/svgs/profile_screen/health summary.svg new file mode 100644 index 0000000..186af7a --- /dev/null +++ b/assets/images/svgs/profile_screen/health summary.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/insurance approval.svg b/assets/images/svgs/profile_screen/insurance approval.svg new file mode 100644 index 0000000..f6a5885 --- /dev/null +++ b/assets/images/svgs/profile_screen/insurance approval.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/svgs/profile_screen/lab results.svg b/assets/images/svgs/profile_screen/lab results.svg new file mode 100644 index 0000000..5e03a2d --- /dev/null +++ b/assets/images/svgs/profile_screen/lab results.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/livecare.svg b/assets/images/svgs/profile_screen/livecare.svg new file mode 100644 index 0000000..452ffc5 --- /dev/null +++ b/assets/images/svgs/profile_screen/livecare.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/svgs/profile_screen/medical report.svg b/assets/images/svgs/profile_screen/medical report.svg new file mode 100644 index 0000000..f40a960 --- /dev/null +++ b/assets/images/svgs/profile_screen/medical report.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/modify episode.svg b/assets/images/svgs/profile_screen/modify episode.svg new file mode 100644 index 0000000..cdf5d3a --- /dev/null +++ b/assets/images/svgs/profile_screen/modify episode.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/profile_screen/operating report.svg b/assets/images/svgs/profile_screen/operating report.svg new file mode 100644 index 0000000..8d9766b --- /dev/null +++ b/assets/images/svgs/profile_screen/operating report.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/profile_screen/order prescription.svg b/assets/images/svgs/profile_screen/order prescription.svg new file mode 100644 index 0000000..21cadf7 --- /dev/null +++ b/assets/images/svgs/profile_screen/order prescription.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/svgs/profile_screen/order sheets.svg b/assets/images/svgs/profile_screen/order sheets.svg new file mode 100644 index 0000000..c9e61e9 --- /dev/null +++ b/assets/images/svgs/profile_screen/order sheets.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/profile_screen/patient sick leave.svg b/assets/images/svgs/profile_screen/patient sick leave.svg new file mode 100644 index 0000000..f585b17 --- /dev/null +++ b/assets/images/svgs/profile_screen/patient sick leave.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/svgs/profile_screen/pending orders.svg b/assets/images/svgs/profile_screen/pending orders.svg new file mode 100644 index 0000000..ffe95e3 --- /dev/null +++ b/assets/images/svgs/profile_screen/pending orders.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/svgs/profile_screen/refer patient.svg b/assets/images/svgs/profile_screen/refer patient.svg new file mode 100644 index 0000000..65c8f61 --- /dev/null +++ b/assets/images/svgs/profile_screen/refer patient.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/profile_screen/sick leave.svg b/assets/images/svgs/profile_screen/sick leave.svg new file mode 100644 index 0000000..0774eb7 --- /dev/null +++ b/assets/images/svgs/profile_screen/sick leave.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/svgs/profile_screen/vital signs.svg b/assets/images/svgs/profile_screen/vital signs.svg new file mode 100644 index 0000000..fe476c3 --- /dev/null +++ b/assets/images/svgs/profile_screen/vital signs.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/svgs/profile_screen/walkin.svg b/assets/images/svgs/profile_screen/walkin.svg new file mode 100644 index 0000000..0ef3ecf --- /dev/null +++ b/assets/images/svgs/profile_screen/walkin.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/svgs/verification/verify-face.svg b/assets/images/svgs/verification/verify-face.svg new file mode 100644 index 0000000..7969cad --- /dev/null +++ b/assets/images/svgs/verification/verify-face.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/svgs/verification/verify-finger.svg b/assets/images/svgs/verification/verify-finger.svg new file mode 100644 index 0000000..e626baf --- /dev/null +++ b/assets/images/svgs/verification/verify-finger.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/svgs/verification/verify-sms.svg b/assets/images/svgs/verification/verify-sms.svg new file mode 100644 index 0000000..ae5fa9f --- /dev/null +++ b/assets/images/svgs/verification/verify-sms.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/svgs/verification/verify-whtsapp.svg b/assets/images/svgs/verification/verify-whtsapp.svg new file mode 100644 index 0000000..09ac85c --- /dev/null +++ b/assets/images/svgs/verification/verify-whtsapp.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 9e5acbc..8dfc92f 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -5,9 +5,9 @@ "login": "تسجيل الدخول", "drSulaiman": "سليمان الحبيب", "welcomeTo": "مرحبا بك في", - "userID" : "معرف المستخدم", - "password" : "كلمة المرور", - "branch" : "فرع", + "userID": "معرف المستخدم", + "password": "كلمة المرور", + "branch": "فرع", "pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول", "username": "اسم المستخدم", "welcomeBack": "مرحبا بعودتك", @@ -47,6 +47,12 @@ "verification": "تَحَقّق", "resend": "إعادة إرسال", "codeExpire": "انتهت صلاحية رمز التحقق", - "moreVerificationOpts" :"المزيد من خيارات التحقق" - + "moreVerificationOpts": "المزيد من خيارات التحقق", + "select": "Select", + "days": "أيام", + "hr": "س", + "min": "د", + "years": "سنة", + "months": "أشهر", + "userOtherAccount": "مستخدم حساب آخر" } \ No newline at end of file diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index 8f13464..a530700 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -47,5 +47,12 @@ "verification": "Verification", "resend": "Resend", "codeExpire": "The verification code has been expired", - "moreVerificationOpts" :"More verification options" + "moreVerificationOpts" :"More verification options", + "select": "Select", + "days": "Days", + "hr": "Hr", + "min": "Min", + "years": "Years", + "months": "Months", + "userOtherAccount": "User Another Account" } \ No newline at end of file diff --git a/lib/api/login_api_client.dart b/lib/api/login_api_client.dart deleted file mode 100644 index 6b03fa6..0000000 --- a/lib/api/login_api_client.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'dart:async'; - -import 'package:hmg_nurses/api/api_client.dart'; -import 'package:hmg_nurses/app_state/app_state.dart'; -import 'package:hmg_nurses/classes/consts.dart'; - - -class LoginApiClient { - static final LoginApiClient _instance = LoginApiClient._internal(); - - LoginApiClient._internal(); - - factory LoginApiClient() => _instance; - - // Future getMobileLoginInfoNEW(String deviceToken, String deviceType) async { - // String url = "${ApiConsts.erpRest}Mohemm_GetMobileLoginInfo_NEW"; - // Map postParams = {}; - // postParams["DeviceToken"] = deviceToken; - // postParams["DeviceType"] = deviceType; - // return await ApiClient().postJsonForObject((json) { - // GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - // return (responseData.mohemmGetMobileLoginInfoList?.length ?? 0) > 0 ? (responseData.mohemmGetMobileLoginInfoList!.first) : null; - // }, url, postParams); - // } - - -} diff --git a/lib/app_state/app_state.dart b/lib/app_state/app_state.dart deleted file mode 100644 index 3e43f18..0000000 --- a/lib/app_state/app_state.dart +++ /dev/null @@ -1,74 +0,0 @@ -import 'dart:io'; - -import 'package:easy_localization/easy_localization.dart'; - -class AppState { - static final AppState _instance = AppState._internal(); - - AppState._internal(); - - factory AppState() => _instance; - - bool isAuthenticated = false; - - set setIsAuthenticated(v) => isAuthenticated = v; - - bool isLogged = false; - - set setLogged(v) => isLogged = v; - - bool? get getIsLogged => isLogged; - - bool businessCardPrivilege = false; - - set setBusinessCardPrivilege(bool v) => businessCardPrivilege = v; - - bool? get getBusinessCardPrivilege => businessCardPrivilege; - - String? forgetPasswordTokenID; - - set setForgetPasswordTokenID(token) => forgetPasswordTokenID = token; - - String? get getForgetPasswordTokenID => forgetPasswordTokenID; - - //Wifi info - String? _mohemmWifiSSID; - - set setMohemmWifiSSID(v) => _mohemmWifiSSID = v; - - String? get getMohemmWifiSSID => _mohemmWifiSSID; - - String? _mohemmWifiPassword; - - set setMohemmWifiPassword(v) => _mohemmWifiPassword = v; - - String? get getMohemmWifiPassword => _mohemmWifiPassword; - - bool isArabic(context) => EasyLocalization.of(context)?.locale.languageCode == "ar"; - - int getLanguageID(context) => EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2; - - String? _username; - - // todo ''sikander' added password for now, later will remove & improve - String? password; - - set setUserName(v) => _username = v; - - String? get getUserName => _username; - - set setUserPassword(_password) => password = _password; - - int? workListIndex; - - set setWorkListIndex(int? _workListIndex) => workListIndex = _workListIndex; - - int? itgWorkListIndex; - - set setItgWorkListIndex(int? _itgWorkListIndex) => itgWorkListIndex = _itgWorkListIndex; - - String? _base64ImageEmp = - "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"; - - String? get getBase64ImageEmp => _base64ImageEmp; -} diff --git a/lib/classes/colors.dart b/lib/classes/colors.dart index f99cc31..93ea761 100644 --- a/lib/classes/colors.dart +++ b/lib/classes/colors.dart @@ -9,7 +9,7 @@ class MyColors { static const Color gradiantStartColor = Color(0xff33c0a5); static const Color gradiantEndColor = Color(0xff259db7); static const Color textMixColor = Color(0xff2BB8A6); - static const Color backgroundColor = Color(0xffF8F8F8); + static const Color backgroundColor = Color(0xffEDEDED); static const Color grey41Color = Color(0xff414141); static const Color grey57Color = Color(0xff575757); static const Color grey67Color = Color(0xff676767); @@ -40,6 +40,7 @@ class MyColors { static const Color borderColor = Color(0xffE8E8E8); static const Color borderE3Color = Color(0xffE3E3E3); static const Color borderCEColor = Color(0xffCECECE); + //static const Color grey67Color = Color(0xff676767); static const Color whiteColor = Color(0xFFEEEEEE); static const Color greenColor = Color(0xff1FA269); @@ -54,7 +55,7 @@ class MyColors { static const Color lightGreyColor = Color(0xffC7C7C7); static const Color green69Color = Color(0xff1FA169); static const Color redA3Color = Color(0xffCA3332); - static const Color green9CColor = Color(0xff259CB8); + static const Color green9CColor = Color(0xff259CB8); static const Color green2DColor = Color(0xff32D892); static const Color greyC4Color = Color(0xffC4C4C4); static const Color grey35Color = Color(0xff535353); diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart index 9c94e49..4397834 100644 --- a/lib/classes/consts.dart +++ b/lib/classes/consts.dart @@ -1,22 +1,21 @@ class ApiConsts { - static const MAX_SMALL_SCREEN = 660; - //static String baseUrl = "http://10.200.204.20:2801/"; // Local server - static String baseUrl = "https://uat.hmgwebservices.com"; // UAT server - // static String baseUrl = "https://hmgwebservices.com"; // Live server - static String baseUrlServices = baseUrl + "/Services/"; // server + static String baseUrl = 'https://hmgwebservices.com/'; + + // static String baseUrl = 'https://uat.hmgwebservices.com/'; + static String baseUrlServices = baseUrl + "Services/"; // server // static String baseUrlServices = "https://api.cssynapses.com/tangheem/"; // Live server static String utilitiesRest = baseUrlServices + "Utilities.svc/REST/"; static String erpRest = baseUrlServices + "ERP.svc/REST/"; static String swpRest = baseUrlServices + "SWP.svc/REST/"; - static String user = baseUrlServices + "api/User/"; + static String user = baseUrlServices + "api_repo/User/"; static String cocRest = baseUrlServices + "COCWS.svc/REST/"; //Chat static String chatServerBaseUrl = "https://apiderichat.hmg.com"; - static String chatServerBaseApiUrl = "https://apiderichat.hmg.com/api/"; + static String chatServerBaseApiUrl = "https://apiderichat.hmg.com/api_repo/"; static String chatHubConnectionUrl = chatServerBaseUrl + "/ConnectionChatHub"; static String chatSearchMember = "user/getUserWithStatusAndFavAsync/"; static String chatRecentUrl = "UserChatHistory/getchathistorybyuserid"; //For a Mem @@ -27,14 +26,15 @@ class ApiConsts { class SharedPrefsConsts { static String isRememberMe = "remember_me"; - static String username = "username"; + static String username = "doctorId"; static String password = "password"; - static String privilegeList = "privilegeList"; - static String firebaseToken = "firebaseToken"; - static String memberInformation = "memberInformation"; - static String welcomeVideoUrl = "welcomeVideoUrl"; - static String doNotShowWelcomeVideo = "doNotShowWelcomeVideo"; - static String mohemmWifiSSID = "mohemmWifiSSID"; - static String mohemmWifiPassword = "mohemmWifiPassword"; - static String editItemForSale = "editItemForSale"; + static String logInTokenID = "logInTokenID"; + static String vidaAuthTokenID = "vidaAuthTokenID"; + static String vidaRefreshTokenID = "vidaRefreshTokenID"; + static String authenticationTokenID = "authenticationTokenID"; + static String projectID = "projectID"; + static String clinicId = "clinicId"; + static String lastLoginDate = "lastLoginDate"; + static String lastLoginTime = "lastLoginTime"; + static String memberModel = "memberModel"; } diff --git a/lib/classes/date-utils.dart b/lib/classes/date-utils.dart new file mode 100644 index 0000000..fe55d6c --- /dev/null +++ b/lib/classes/date-utils.dart @@ -0,0 +1,415 @@ +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:hmg_nurses/generated/locale_keys.g.dart'; +import 'package:intl/intl.dart'; + +class AppDateUtils { + static String convertDateToFormat(DateTime dateTime, String dateFormat) { + return DateFormat(dateFormat).format(dateTime); + } + + static DateTime convertISOStringToDateTime(String date) { + DateTime newDate; + + newDate = DateTime.parse(date); + + return newDate; + } + + static String convertStringToDateFormat(String date, String dateFormat) { + DateTime dateTime; + if (date.contains("/Date")) + dateTime = getDateTimeFromServerFormat(date); + else + dateTime = DateTime.parse(date); + return convertDateToFormat(dateTime, dateFormat); + } + + static String convertToServerFormat(String date, String dateFormat) { + return '/Date(${DateFormat(dateFormat).parse(date).millisecondsSinceEpoch})/'; + } + + static String convertDateToServerFormat(DateTime date) { + return '/Date(${date.millisecondsSinceEpoch})/'; + } + + static convertDateFromServerFormat(String str, dateFormat) { + var date = getDateTimeFromServerFormat(str); + + return DateFormat(dateFormat).format(date); + } + + static DateTime getDateTimeFromServerFormat(String str) { + DateTime date = DateTime.now(); + if (str != null) { + const start = "/Date("; + + const end = "+0300)"; + if (str.contains("/Date")) { + final startIndex = str.indexOf(start); + + final endIndex = str.indexOf(end, startIndex + start.length); + + date = new DateTime.fromMillisecondsSinceEpoch(int.parse(str.substring(startIndex + start.length, endIndex))); + } else { + date = DateTime.now(); + } + } else { + date = DateTime.parse(str); + } + + return date; + } + + static String differenceBetweenDateAndCurrentInYearMonthDay(DateTime firstDate, BuildContext context) { + DateTime now = DateTime.now(); + // now = now.add(Duration(days: 400, minutes: 0)); + var difference = firstDate.difference(now); + + int years = now.year - firstDate.year; + int months = now.month - firstDate.month; + int days = now.day - firstDate.day; + + if (months < 0 || (months == 0 && days < 0)) { + years--; + months += (days < 0 ? 11 : 12); + } + if (days < 0) { + final monthAgo = new DateTime(now.year, now.month - 1, firstDate.day); + days = now.difference(monthAgo).inDays + 1; + } + return "$days ${LocaleKeys.days.tr()}, $months ${LocaleKeys.months.tr()}, $years ${LocaleKeys.years.tr()}"; + } + + static String differenceBetweenDateAndCurrent(DateTime firstDate, BuildContext context, {bool isShowSecond = false, bool isShowDays = true}) { + DateTime now = DateTime.now(); + var difference = now.difference(firstDate); + + int minutesInDays = difference.inMinutes; + int secondInDays = difference.inSeconds; + int hoursInDays = minutesInDays ~/ 60; // ~/ : truncating division to make the result int + int second = secondInDays % 60; + int minutes = minutesInDays % 60; + int days = hoursInDays ~/ 24; + int hours = hoursInDays % 24; + + double hoursInOneDay = difference.inHours / difference.inDays; + + return (isShowDays ? (days > 0 ? "$days ${LocaleKeys.days.tr()}," : '') : "") + + (hours > 0 ? "$hours ${LocaleKeys.hr.tr()}," : "") + + " $minutes ${LocaleKeys.min.tr()}" + + (isShowSecond ? ", $second Sec" : ""); + } + + static String differenceBetweenServerDateAndCurrent(String str, BuildContext context) { + const start = "/Date("; + + const end = "+0300)"; + + final startIndex = str.indexOf(start); + + final endIndex = str.indexOf(end, startIndex + start.length); + + var date = new DateTime.fromMillisecondsSinceEpoch(int.parse(str.substring(startIndex + start.length, endIndex))); + return differenceBetweenDateAndCurrent(date, context); + } + + /// get month by + /// [weekDay] convert week day in int to week day name + static getWeekDay(int weekDay) { + switch (weekDay) { + case 1: + return "Monday"; + case 2: + return "Tuesday"; + case 3: + return "Wednesday"; + case 4: + return "Thursday"; + case 5: + return "Friday"; + case 6: + return "Saturday "; + case 7: + return "Sunday"; + } + } + + /// get month by + /// [weekDay] convert week day in int to week day name arabic + static getWeekDayArabic(int weekDay) { + switch (weekDay) { + case 1: + return "الاثنين"; + case 2: + return "الثلاثاء"; + case 3: + return "الاربعاء"; + case 4: + return "الخميس"; + case 5: + return "الجمعه"; + case 6: + return "السبت "; + case 7: + return "الاحد"; + } + } + + /// get month by + /// [month] convert month number in to month name + static getMonth(int month) { + switch (month) { + case 1: + return "January"; + case 2: + return "February"; + case 3: + return "March"; + case 4: + return "April"; + case 5: + return "May"; + case 6: + return "June"; + case 7: + return "July"; + case 8: + return "August"; + case 9: + return "September"; + case 10: + return "October"; + case 11: + return "November"; + case 12: + return "December"; + } + } + + /// get month by + /// [month] convert month number in to month name in Arabic + static getMonthArabic(int month) { + switch (month) { + case 1: + return "يناير"; + case 2: + return " فبراير"; + case 3: + return "مارس"; + case 4: + return "أبريل"; + case 5: + return "مايو"; + case 6: + return "يونيو"; + case 7: + return "يوليو"; + case 8: + return "أغسطس"; + case 9: + return "سبتمبر"; + case 10: + return " اكتوبر"; + case 11: + return " نوفمبر"; + case 12: + return "ديسمبر"; + } + } + + static getMonthByName(String month) { + switch (month.toLowerCase()) { + case 'january': + return 1; + case 'february': + return 2; + case 'march': + return 3; + case 'april': + return 4; + case 'may': + return 5; + case 'june': + return 6; + case 'july': + return 7; + case 'august': + return 8; + case 'september': + return 9; + case 'october': + return 10; + case 'november': + return 11; + case 'december': + return 12; + } + } + + static DateTime convertStringToDate(String date) { + // /Date(1585774800000+0300)/ + + if (date != null) { + const start = "/Date("; + const end = "+0300)"; + final startIndex = date.indexOf(start); + final endIndex = date.indexOf(end, startIndex + start.length); + DateTime newDate = DateTime.fromMillisecondsSinceEpoch( + int.parse( + date.substring(startIndex + start.length, endIndex), + ), + ); + return newDate; + } else + return DateTime.now(); + } + + /// get data formatted like Apr 26,2020 + /// [dateTime] convert DateTime to data formatted Arabic + static String getMonthDayYearDateFormattedAr(DateTime dateTime) { + if (dateTime != null) + return getMonthArabic(dateTime.month) + " " + dateTime.day.toString() + ", " + dateTime.year.toString(); + else + return ""; + } + + /// get data formatted like Apr 26,2020 + /// [dateTime] convert DateTime to data formatted + static String getMonthDayYearDateFormatted(DateTime dateTime, {bool isArabic = false}) { + if (dateTime != null) + return isArabic ? getMonthArabic(dateTime.month) : getMonth(dateTime.month) + " " + dateTime.day.toString() + ", " + dateTime.year.toString(); + else + return ""; + } + + /// get data formatted like 26 Apr 2020 + /// [dateTime] convert DateTime to data formatted + static String getDayMonthYearDateFormatted(DateTime dateTime, {bool isArabic = false, bool isMonthShort = true}) { + if (dateTime != null) + return dateTime.day.toString() + + " " + + "${isArabic ? getMonthArabic(dateTime.month) : isMonthShort ? getMonth(dateTime.month).toString().substring(0, 3) : getMonth(dateTime.month)}" + + " " + + dateTime.year.toString(); + else + return ""; + } + + /// get data formatted like 26/4/2020 + /// [dateTime] convert DateTime to data formatted + static String getDayMonthYearDate(DateTime dateTime, {bool isArabic = false}) { + if (dateTime != null) + return dateTime.day.toString() + "/" + "${dateTime.month}" + "/" + dateTime.year.toString(); + else + return ""; + } + + /// get data formatted like 10:45 PM + /// [dateTime] convert DateTime to data formatted + static String getHour(DateTime dateTime) { + return DateFormat('hh:mm a').format(dateTime); + } + + static String getAgeByBirthday(String birthOfDate, BuildContext context, {bool isServerFormat = true}) { + // https://leechy.dev/calculate-dates-diff-in-dart + DateTime birthDate; + if (birthOfDate.contains("/Date")) { + birthDate = AppDateUtils.getDateTimeFromServerFormat(birthOfDate); + } else { + birthDate = DateTime.parse(birthOfDate); + } + final now = DateTime.now(); + int years = now.year - birthDate.year; + int months = now.month - birthDate.month; + int days = now.day - birthDate.day; + if (months < 0 || (months == 0 && days < 0)) { + years--; + months += (days < 0 ? 11 : 12); + } + if (days < 0) { + final monthAgo = new DateTime(now.year, now.month - 1, birthDate.day); + days = now.difference(monthAgo).inDays + 1; + } + return "$years ${LocaleKeys.years.tr()} $months ${LocaleKeys.months.tr()} $days ${LocaleKeys.days.tr()}"; + } + + static bool isToday(DateTime dateTime) { + DateTime todayDate = DateTime.now().toUtc(); + if (dateTime.day == todayDate.day && dateTime.month == todayDate.month && dateTime.year == todayDate.year) { + return true; + } + return false; + } + + static String getDate(DateTime dateTime) { + print(dateTime); + if (dateTime != null) + return getMonth(dateTime.month) + " " + dateTime.day.toString() + "," + dateTime.year.toString(); + else + return ""; + } + + static String getDateFormatted(DateTime dateTime) { + print(dateTime); + if (dateTime != null) + return dateTime.day.toString() + "/" + dateTime.month.toString() + "/" + dateTime.year.toString(); + else + return ""; + } + + static String getTimeHHMMA(DateTime dateTime) { + return DateFormat('hh:mm a').format(dateTime); + } + + static String getTimeHHMMA2(DateTime dateTime) { + return DateFormat('hh:mm').format(dateTime); + } + + static String getStartTime(String dateTime) { + String time = dateTime; + + if (dateTime.length > 7) time = dateTime.substring(0, 5); + return time; + } + + static String getTimeFormated(DateTime dateTime) { + print(dateTime); + if (dateTime != null) + return dateTime.hour.toString() + ":" + dateTime.minute.toString(); + else + return ""; + } + + // handel date like "09/05/2021 17:00" + static DateTime getDateTimeFromString(String str) { + List array = str.split('/'); + int day = int.parse(array[0]); + int month = int.parse(array[1]); + + List array2 = array[2].split(' '); + int year = int.parse(array2[0]); + String hour = array2[1]; + List hourList = hour.split(":"); + + DateTime date = DateTime(year, month, day, int.parse(hourList[0]), int.parse(hourList[1])); + + return date; + } + + static convertDateFormatImproved(String str) { + String newDate = ""; + const start = "/Date("; + if (str.isNotEmpty) { + const end = "+0300)"; + + final startIndex = str.indexOf(start); + final endIndex = str.indexOf(end, startIndex + start.length); + + var date = new DateTime.fromMillisecondsSinceEpoch(int.parse(str.substring(startIndex + start.length, endIndex))); + newDate = date.year.toString() + "/" + date.month.toString().padLeft(2, '0') + "/" + date.day.toString().padLeft(2, '0'); + } + + return newDate; + } +} diff --git a/lib/classes/enums.dart b/lib/classes/enums.dart index c1026c2..cf27602 100644 --- a/lib/classes/enums.dart +++ b/lib/classes/enums.dart @@ -1,3 +1,29 @@ -enum APPSTATUS { loading, unAuthenticated, authenticated, unverified } -enum AuthMethodTypes { sms, whatsApp, fingerPrint, faceID, moreOptions } -enum ViewState { idle, busy, error, busyLocal, errorLocal } +// enum APPSTATUS { +// loading, +// unAuthenticated, +// authenticated, +// unverified, +// } + +enum AuthMethodTypes { + sms, + whatsApp, + fingerPrint, + faceID, + moreOptions, +} + +enum ViewState { + hide, + idle, + busy, + error, + busyLocal, + errorLocal, +} + +enum LoginType { + FROM_LOGIN, + SILENT_LOGIN, + SILENT_WITH_OTP, +} diff --git a/lib/classes/utils.dart b/lib/classes/utils.dart index 43204fa..4fa3b84 100644 --- a/lib/classes/utils.dart +++ b/lib/classes/utils.dart @@ -7,7 +7,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:fluttertoast/fluttertoast.dart'; -import 'package:hmg_nurses/app_state/app_state.dart'; +import 'package:hmg_nurses/config/app_state.dart'; import 'package:hmg_nurses/classes/colors.dart'; import 'package:hmg_nurses/config/routes.dart'; import 'package:hmg_nurses/exceptions/api_exception.dart'; @@ -56,25 +56,45 @@ class Utils { return await Future.delayed(Duration(milliseconds: millis)); } - static void showLoading() { - WidgetsBinding.instance.addPostFrameCallback((_) { - _isLoadingVisible = true; - showDialog( - context: navigatorKey.currentState!.overlay!.context, - barrierColor: Colors.black.withOpacity(0.5), - builder: (BuildContext context) => LoadingDialog(), - ).then((value) { - _isLoadingVisible = false; + static void showLoading({bool isNeedBinding = true}) { + if (isNeedBinding) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showLoadingDialog(); }); - }); + } else { + showLoadingDialog(); + } } - static void hideLoading(BuildContext context) { - if (_isLoadingVisible) { + static void showLoadingDialog() { + _isLoadingVisible = true; + showDialog( + context: navigatorKey.currentContext!, + barrierColor: Colors.black.withOpacity(0.5), + builder: (BuildContext context) => LoadingDialog(), + ).then((value) { + _isLoadingVisible = false; + }).catchError((e) { + print("--------------catchError---------------"); + print(e); + }).onError( + (error, stackTrace) { + print("--------------onError---------------"); + print(error); + }, + ); + } + + static void hideLoading() { + try { + if (_isLoadingVisible) { + _isLoadingVisible = false; + Navigator.of(navigatorKey.currentContext!).pop(); + } _isLoadingVisible = false; - Navigator.of(context).pop(); + } catch (e) { + print("exp_while_hide_dialog: " + e.toString()); } - _isLoadingVisible = false; } static Future getStringFromPrefs(String key) async { @@ -87,6 +107,24 @@ class Utils { return await prefs.setString(key, value); } + static Future getIntFromPrefs(String key) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + return prefs.getInt(key) ?? 0; + } + + static Future saveIntFromPrefs(String key, int value) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + return await prefs.setInt(key, value); + } + + static String capitalize(str) { + if (str != "") { + return "${str[0].toUpperCase()}${str.substring(1).toLowerCase()}"; + } else { + return str; + } + } + static void handleException(dynamic exception, cxt, Function(String)? onErrorMessage) { String errorMessage; if (exception is APIException) { @@ -287,7 +325,7 @@ class Utils { String formattedDate; if (date.isNotEmpty) { formattedDate = date.split('T')[0]; - if(!formattedDate.contains("00:00:00")) { + if (!formattedDate.contains("00:00:00")) { formattedDate = formattedDate + ' 00:00:00'; } } else { @@ -324,21 +362,21 @@ class Utils { return selectedDate; } - // static void readNFc({required Function(String) onRead}) { - // - // NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async { - // print(tag.data); - // var f; - // if (Platform.isAndroid) { - // f = MifareUltralight(tag: tag, identifier: tag.data["nfca"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22); - // } else { - // f = MifareUltralight(tag: tag, identifier: tag.data["mifare"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22); - // } - // String identifier = f.identifier.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); - // NfcManager.instance.stopSession(); - // onRead(identifier); - // }).catchError((err) { - // print(err); - // }); - // } +// static void readNFc({required Function(String) onRead}) { +// +// NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async { +// print(tag.data); +// var f; +// if (Platform.isAndroid) { +// f = MifareUltralight(tag: tag, identifier: tag.data["nfca"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22); +// } else { +// f = MifareUltralight(tag: tag, identifier: tag.data["mifare"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22); +// } +// String identifier = f.identifier.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); +// NfcManager.instance.stopSession(); +// onRead(identifier); +// }).catchError((err) { +// print(err); +// }); +// } } diff --git a/lib/config/app_state.dart b/lib/config/app_state.dart new file mode 100644 index 0000000..8a3abad --- /dev/null +++ b/lib/config/app_state.dart @@ -0,0 +1,89 @@ +import 'dart:io'; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/base/generic_response_model2.dart'; +import 'package:hmg_nurses/model/base/post_params_model.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; +import 'package:hmg_nurses/model/login/list_doctors_clinic_model.dart'; +import 'package:hmg_nurses/model/login/member_login_model.dart'; + +class AppState { + // static final AppState _instance = AppState._internal(); + // + // AppState._internal(); + // + // factory AppState() => _instance; + + //Tokens + String? imei, logInTokenID, vidaAuthTokenID, vidaRefreshTokenID, authenticationTokenID; + + int projectID = 0; + int clinicId = 0; + + //TODO: Must be -1 before login or logout + int lastLoginTyp = -1; + int? doctorUserId; + int? employeeId; + String? password; + String? lastLoginDate; + GetIMEIDetailsModel? lastLoginImeiDate; + List? listDoctorsClinic; + + int setupId=91877; + + GenericResponseModel2? doctorProfile; + + bool isAuthenticated = false; + + set setIsAuthenticated(v) => isAuthenticated = v; + + bool isLogged = false; + + PostParamsModel _postParamsInitConfig = PostParamsModel( + tokenID: "", + languageID: 2, + stamp: "", + iPAdress: "9.9.9.9", + versionID: 9, + channel: 9, + sessionID: "BlUSkYymTt", + isLoginForDoctorApp: true, + patientOutSA: false, + vidaAuthTokenID: null, + vidaRefreshTokenID: null, + deviceTypeID: 1, + generalID: 'Cs2020@2016\$2958', + ); + + void setPostParamsInitConfig() { + isAuthenticated = false; + isLogged = false; + _postParams = _postParamsInitConfig; + } + + PostParamsModel? _postParams; + + PostParamsModel? get postParamsObject => _postParams; + + // Map get postParamsJson => isLogged ? (_postParams?.toJsonAfterLogin() ?? {}) : (_postParams?.toJson() ?? {}); + Map get postParamsJson { + _postParams!.stamp = DateTime.now().toIso8601String(); + _postParams?.vidaAuthTokenID = vidaAuthTokenID; + _postParams?.vidaRefreshTokenID = vidaRefreshTokenID; + _postParams?.imei = imei; + if(isLogged) + _postParams?.tokenID=authenticationTokenID; + return isLogged ? _postParams?.toJsonLogged() ?? {} : _postParams?.toJson() ?? {}; + } + + void setPostParamsModel(PostParamsModel _postParams) { + this._postParams = _postParams; + } + + bool isArabic() => EasyLocalization.of(navigatorKey.currentContext!)?.locale.languageCode == "ar"; + + int getLanguageID(context) => EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2; + + MemberLoginModel? memberBeforeLogin; +} diff --git a/lib/config/dependencies.dart b/lib/config/dependencies.dart new file mode 100644 index 0000000..ebda8d2 --- /dev/null +++ b/lib/config/dependencies.dart @@ -0,0 +1,27 @@ +// import 'package:firebase_crashlytics/firebase_crashlytics.dart'; +// import 'package:flutter/material.dart'; +import 'package:hmg_nurses/config/app_state.dart'; +import 'package:hmg_nurses/services/api_client.dart'; +import 'package:hmg_nurses/services/api_repo/dashboard_api_repo.dart'; +import 'package:hmg_nurses/services/api_repo/login_api_repo.dart'; +import 'package:hmg_nurses/services/api_repo/patient_api_repo.dart'; + +import 'package:hmg_nurses/services/firebase_service.dart'; +import 'package:injector/injector.dart'; + +class AppDependencies { + static void addDependencies() { + Injector injector = Injector.appInstance; + + //add dependencies as needed + //services + injector.registerSingleton(() => AppState()); + injector.registerSingleton(() => ApiClient()); + injector.registerSingleton(() => FirebaseService()); + + //repos + injector.registerSingleton(() => LoginApiRepo()); + injector.registerSingleton(() => DashboardApiRepo()); + injector.registerSingleton(() => PatientApiRepo()); + } +} diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 3938565..5fcfd44 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,17 +1,40 @@ import 'package:flutter/material.dart'; +import 'package:hmg_nurses/ui/dashboard/dashbaord_page.dart'; import 'package:hmg_nurses/ui/login/login_method_page.dart'; import 'package:hmg_nurses/ui/login/login_page.dart'; +import 'package:hmg_nurses/ui/login/splash_page.dart'; +import 'package:hmg_nurses/ui/patient/profile/patient_profile_page.dart'; +import 'package:hmg_nurses/ui/patient/profile/vital/vital_signs_page.dart'; +import 'package:hmg_nurses/ui/patient/search_patient_page.dart'; +import 'package:hmg_nurses/ui/patient/searched_patient_list_page.dart'; class AppRoutes { + static const String initialPage = login; + //Login static const String splash = "/splash"; static const String registerSelection = "/registerSelection"; static const String loginMethodsPage = "/loginMethodsPage"; static const String login = "/login"; + //Dashboard + static const String dashboard = "/dashboard"; + static const String searchPatient = "/searchPatient"; + static const String searchedFor = "/searchedFor"; + static const String patientProfile = "/patientProfile"; + static const String vitalSigns = "/vitalSigns"; + static final Map routes = { //Login - login: (BuildContext context) => const LoginPage(), + splash: (BuildContext context) => SplashPage(), + login: (BuildContext context) => LoginPage(), loginMethodsPage: (BuildContext context) => const LoginMethodsPage(), + + //Dashboard + dashboard: (BuildContext context) => DashboardPage(), + searchPatient: (BuildContext context) => SearchPatientPage(), + searchedFor: (BuildContext context) => SearchedPatientListPage(), + patientProfile: (BuildContext context) => PatientProfilePage(), + vitalSigns: (BuildContext context) => VitalSignsPage(), }; } diff --git a/lib/dependency_injection.dart b/lib/dependency_injection.dart deleted file mode 100644 index 40bda74..0000000 --- a/lib/dependency_injection.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:get_it/get_it.dart'; -import 'package:hmg_nurses/ui/login/login_vm.dart'; - -GetIt getIt = GetIt.instance; - - -void initDependencies () { - // TODO; WE WILL REGISTER ALL THE SERVICES HERE AS LAZY SINGLETON - - - - //TODO: WE WILL REGISTER ALL THE VIEW MODELS AS FACTORY HERE - - /// View Model - getIt.registerFactory(() => LoginViewModel()); - - -} \ No newline at end of file diff --git a/lib/exceptions/api_exception.dart b/lib/exceptions/api_exception.dart index e5676b6..0161b21 100644 --- a/lib/exceptions/api_exception.dart +++ b/lib/exceptions/api_exception.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:hmg_nurses/api/api_client.dart'; +import 'package:hmg_nurses/services/api_client.dart'; class APIException implements Exception { static const String BAD_REQUEST = 'api_common_bad_request'; diff --git a/lib/extensions/string_extensions.dart b/lib/extensions/string_extensions.dart index 6d26ca1..d0af0b9 100644 --- a/lib/extensions/string_extensions.dart +++ b/lib/extensions/string_extensions.dart @@ -17,10 +17,17 @@ extension CapExtension on String { extension EmailValidator on String { Widget get toWidget => Text(this); - Widget toText10({Color? color, bool isBold = false, int? maxlines, FontStyle? fontStyle}) => Text( + Widget toText10({Color? color, bool isBold = false, int? maxlines, FontStyle? fontStyle, TextOverflow? textOverflow}) => Text( this, maxLines: maxlines, - style: TextStyle(fontSize: 10.sp, fontStyle: fontStyle ?? FontStyle.normal, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4), + overflow: textOverflow, + style: TextStyle( + fontSize: 10.sp, + fontStyle: fontStyle ?? FontStyle.normal, + fontWeight: isBold ? FontWeight.bold : FontWeight.w600, + color: color ?? MyColors.darkTextColor, + letterSpacing: -0.4, + ), ); Widget toText11({Color? color, FontWeight? weight, bool isUnderLine = false, bool isBold = false}) => Text( @@ -70,15 +77,20 @@ extension EmailValidator on String { double fontSize = 12, double letterSpacing = -0.72, double height = 1, + TextOverflow? textOverflow, + FontWeight? fontWeight, }) => AutoSizeText( this, textAlign: isCenter ? TextAlign.center : null, maxLines: (maxLine > 0) ? maxLine : null, minFontSize: 5, + overflow: textOverflow, style: TextStyle( fontSize: fontSize, - fontWeight: isBold ? FontWeight.bold : FontWeight.w600, + fontWeight: fontWeight ?? (isBold + ? FontWeight.bold + : FontWeight.w600), color: color ?? MyColors.darkTextColor, letterSpacing: letterSpacing, decoration: isUnderLine ? TextDecoration.underline : null, @@ -101,9 +113,17 @@ extension EmailValidator on String { decoration: isUnderLine ? TextDecoration.underline : null), ); - Widget toText16({Color? color, bool isUnderLine = false, bool isBold = false, int? maxlines}) => Text( + Widget toText16({ + Color? color, + bool isUnderLine = false, + bool isBold = false, + int? maxlines, + TextAlign? textAlign, + }) => + Text( this, maxLines: maxlines, + textAlign: textAlign, style: TextStyle( color: color ?? MyColors.darkTextColor, fontSize: 16.sp, @@ -232,4 +252,12 @@ extension EmailValidator on String { return ""; } } + + String truncate(int max, {String suffix = ''}) { + try { + return length <= max ? this : '${substring(0, max - suffix.length)}$suffix'; + } catch (e) { + return this; + } + } } diff --git a/lib/extensions/widget_extensions.dart b/lib/extensions/widget_extensions.dart index b801be5..ed1a714 100644 --- a/lib/extensions/widget_extensions.dart +++ b/lib/extensions/widget_extensions.dart @@ -15,6 +15,7 @@ extension WidgetExtensions on Widget { Widget circle(double _value) => ClipRRect(borderRadius: BorderRadius.circular(_value), child: this); + Widget paddingAll(double _value) => Padding(padding: EdgeInsets.all(_value), child: this); Widget paddingSymmetrical(double horizontal, double vertical) => Padding(padding: EdgeInsets.symmetric(horizontal: horizontal, vertical: vertical), child: this); diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 7d7ca5b..09234fb 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -63,7 +63,13 @@ class CodegenLoader extends AssetLoader{ "verification": "تَحَقّق", "resend": "إعادة إرسال", "codeExpire": "انتهت صلاحية رمز التحقق", - "moreVerificationOpts": "المزيد من خيارات التحقق" + "moreVerificationOpts": "المزيد من خيارات التحقق", + "select": "Select", + "days": "أيام", + "hr": "س", + "min": "د", + "years": "سنة", + "months": "أشهر" }; static const Map en_US = { "mohemm": "Mohemm", @@ -114,7 +120,13 @@ static const Map en_US = { "verification": "Verification", "resend": "Resend", "codeExpire": "The verification code has been expired", - "moreVerificationOpts": "More verification options" + "moreVerificationOpts": "More verification options", + "select": "Select", + "days": "Days", + "hr": "Hr", + "min": "Min", + "years": "Years", + "months": "Months" }; static const Map> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; } diff --git a/lib/main.dart b/lib/main.dart index d38990e..5100ad0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,20 +1,27 @@ import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:hmg_nurses/classes/size_config.dart'; +import 'package:hmg_nurses/config/app_state.dart'; +import 'package:hmg_nurses/config/dependencies.dart'; import 'package:hmg_nurses/config/routes.dart'; import 'package:hmg_nurses/provider/dashboard_provider_model.dart'; +import 'package:hmg_nurses/provider/login_provider_model.dart'; import 'package:hmg_nurses/theme/app_theme.dart'; -import 'package:hmg_nurses/ui/login/login_vm.dart'; +import 'package:injector/injector.dart'; import 'package:logger/logger.dart'; import 'package:provider/provider.dart'; import 'package:provider/single_child_widget.dart'; import 'package:sizer/sizer.dart'; import 'generated/codegen_loader.g.dart'; +import 'provider/patient_provider_model.dart'; -GlobalKey navigatorKey = GlobalKey(); +late AppState appState; + +final navigatorKey = GlobalKey(); Logger logger = Logger( // filter: null, // Use the default LogFilter (-> only log in debug mode) @@ -36,6 +43,7 @@ Future main() async { await EasyLocalization.ensureInitialized(); // AppState().setPostParamsInitConfig(); HttpOverrides.global = MyHttpOverrides(); + await Firebase.initializeApp(); runApp( EasyLocalization( supportedLocales: const [ @@ -46,10 +54,20 @@ Future main() async { assetLoader: const CodegenLoader(), child: MultiProvider( providers: [ - ChangeNotifierProvider(create: (_) => DashboardProviderModel()), - ChangeNotifierProvider(create: (_) => LoginViewModel()) + ChangeNotifierProvider( + create: (_) => DashboardProviderModel(), + ), + ChangeNotifierProvider( + create: (_) => LoginProviderModel(), + ), + ChangeNotifierProvider( + create: (_) => DashboardProviderModel(), + ), + ChangeNotifierProvider( + create: (_) => PatientProviderModel(), + ) ], - child: const MyApp(), + child: MyApp(), ), ), ); @@ -62,32 +80,38 @@ Future main() async { // command to generate languages data from json class MyApp extends StatelessWidget { - const MyApp({Key? key}) : super(key: key); + MyApp({super.key}) { + AppDependencies.addDependencies(); + appState = Injector.appInstance.get(); + appState.setPostParamsInitConfig(); + } @override Widget build(BuildContext context) { - return LayoutBuilder( - builder: (context, constraints) { - return Sizer( - builder: (BuildContext context, Orientation orientation, DeviceType deviceType) { - SizeConfig().init(constraints, orientation); - - List> delegates = context.localizationDelegates; - return MaterialApp( - key: navigatorKey, - theme: AppTheme.getTheme( - EasyLocalization.of(context)?.locale.languageCode == "ar", - ), - debugShowCheckedModeBanner: false, - localizationsDelegates: delegates, - supportedLocales: context.supportedLocales, - locale: context.locale, - initialRoute: AppRoutes.login, - routes: AppRoutes.routes, - ); - }, - ); - }, - ); + return LayoutBuilder(builder: (context, constraints) { + return Sizer( + builder: ( + BuildContext context, + Orientation orientation, + DeviceType deviceType, + ) { + SizeConfig().init(constraints, orientation); + List> delegates = context.localizationDelegates; + return MaterialApp( + // key: navigatorKey, + navigatorKey: navigatorKey, + theme: AppTheme.getTheme( + EasyLocalization.of(context)?.locale.languageCode == "ar", + ), + debugShowCheckedModeBanner: false, + localizationsDelegates: delegates, + supportedLocales: context.supportedLocales, + locale: context.locale, + initialRoute: AppRoutes.initialPage, + routes: AppRoutes.routes, + ); + }, + ); + }); } } diff --git a/lib/model/base/generic_response_model.dart b/lib/model/base/generic_response_model.dart new file mode 100644 index 0000000..51388c5 --- /dev/null +++ b/lib/model/base/generic_response_model.dart @@ -0,0 +1,758 @@ +// To parse this JSON data, do +// +// final genericResponseModel = genericResponseModelFromJson(jsonString); + +import 'dart:convert'; + +import 'package:hmg_nurses/model/login/imei_details_model.dart'; +import 'package:hmg_nurses/model/login/list_doctors_clinic_model.dart'; +import 'package:hmg_nurses/model/login/member_information_model.dart'; +import 'package:hmg_nurses/model/patient/list_doctor_patient_vital_sign.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; + +import '../login/project_info_model.dart'; + +GenericResponseModel genericResponseModelFromJson(String str) => GenericResponseModel.fromJson(json.decode(str)); + +String genericResponseModelToJson(GenericResponseModel data) => json.encode(data.toJson()); + +class GenericResponseModel { + GenericResponseModel({ + this.date, + this.languageId, + this.serviceName, + this.time, + this.androidLink, + this.authenticationTokenId, + this.data, + this.dataw, + this.dietType, + this.dietTypeId, + this.errorCode, + this.errorEndUserMessage, + this.errorEndUserMessageN, + this.errorMessage, + this.errorType, + this.foodCategory, + this.iosLink, + this.isAuthenticated, + this.mealOrderStatus, + this.mealType, + this.messageStatus, + this.numberOfResultRecords, + this.patientBlodType, + this.successMsg, + this.successMsgN, + this.vidaUpdatedResponse, + this.admissionDiagnosisList, + this.admissionMasterList, + this.admissionProcedureList, + this.admissionRequestList, + this.appointmentDate, + this.appointmentId, + this.assessmentList, + this.boxQuantity, + this.chkStatusUpdated, + this.chiefComplaintAuditLogList, + this.clinicId, + this.created, + this.dietTypeList, + this.doctorDetails, + this.doctorHaveOneClinic, + this.doctorId, + this.doctorNotRepliedCounts, + this.doctorSesId, + this.doctorTokId, + this.drugToDrugResponse, + this.erlcInsertPatientInHisgenxList, + this.erlcIsInserted, + this.erlcRequestList, + this.endTime, + this.episodeId, + this.getErAppointmentFeesList, + this.getEpisodeNo, + this.getPatientErSessionStatusList, + this.getVcStatusBySessionIdList, + this.hasAppointment, + this.hasVirtualClinic, + this.httpStatusCode, + this.icdCodesList, + this.isAccepted, + this.isChangePassword, + this.isLogout, + this.isPatientErRequestVcSessionAndTokenUpdated, + this.isPatientSessionStatusInserted, + this.isPatientSessionStatusUpdated, + this.isSent, + this.labResultType, + this.listSickLeavesToExtent, + this.listAdmissionOrders, + this.listAllergies, + this.listApprovalMainInPatient, + this.listChiefComplaint, + this.listClinicAll, + this.listDiabeticChartValues, + this.listDiagnosisForInPatient, + this.listDischargeSummary, + this.listDoctorDeviceDetails, + this.listDoctorProfile, + this.listDoctorProgressNote, + this.listDoctorsClinic, + this.listDoctorsAll, + this.listDrugToDrugTherapy, + this.listGetLabNormal, + this.listGetLabOreders, + this.listGetLabSpecial, + this.listGetMedicationForInpatient, + this.listGetPatientVitalSign, + this.listGetPregressNoteForInPatient, + this.listGetRadOreders, + this.listGtMyPatientsQuestions, + this.listHistory, + this.listIcdCodes, + this.listInterventionHistory, + this.listInterventionMedications, + this.listMyDischargePatient, + this.listMyDischargeReferralPatient, + this.listMyDischargeReferredPatient, + this.listMyInPatient, + this.listMyOutPatient, + this.listMyOutPatientReferral, + this.listMyReferralPatient, + this.listMyReferredOutPatient, + this.listMyReferredPatient, + this.listMyTomorrowPatient, + this.listNursingProgressNote, + this.listOtReservationDetails, + this.listOperationDetails, + this.listPendingDischargeSummary, + this.listPendingOrders, + this.listPendingPatientAdminList, + this.listPendingPatientList, + this.listPrescriptionAuditLogInfo, + this.listPrescriptionReportByPatientId, + this.listPrescriptionReportForInPatient, + this.listRxAuditLogInfo, + this.listStpMasterList, + this.listSpecialClinicalCareList, + this.listSpecialClinicalCareMappingList, + this.logInTokenId, + this.masterLookUpList, + this.medicationList, + this.memberId, + this.orderedProcedureList, + this.patientDetails, + this.patientFileList, + this.patientInfoList, + this.patientInforBySearchCriteriaHisgenxList, + this.patientInforBySearchCriteriaList, + this.patientOutSa, + this.patientsFileInfoList, + this.pendingReferralList, + this.physicalExamAuditLogList, + this.physicalExamList, + this.prescriptionList, + this.procedureList, + this.progressNoteList, + this.progressNotesAuditLogList, + this.projectId, + this.projectInfo, + this.referralList, + this.requestCompleted, + this.requisitionResponse, + this.returnValue, + this.rowCount, + this.smsCode, + this.searchAdmissionList, + this.searchCriteriaKindList, + this.sickLeaveStatistics, + this.sickLeavesList, + this.sserviceId, + this.startTime, + this.statusMessage, + this.strAppointmentDate, + this.totalUnUsedCount, + this.ucafResponse, + this.validateProcedureList, + this.validationErrors, + this.verificationCode, + this.vidaAuthTokenId, + this.vidaRefreshTokenId, + this.vitalSignsHistory, + this.vitalSignsList, + this.admissionResponse, + this.coveringDoctorList, + this.isActiveCode, + this.isSmsSent, + this.listCategories, + this.listClinics, + this.listDoctorDashboarKpi, + this.listItemByMedicineCode, + this.listKeywords, + this.listProcedureCategories, + this.listProcedureResult, + this.memberInformation, + this.patientArrivalList, + this.requisitionList, + this.requisitionScheduleList, + this.requisitionStatusList, + this.resultValue, + this.specialAuthenticate, + this.getPatientFileInformationPrmList, + this.listDoctorPatientVitalSign, + }); + + final dynamic date; + final int? languageId; + final int? serviceName; + final dynamic time; + final dynamic androidLink; + final dynamic authenticationTokenId; + final dynamic data; + final bool? dataw; + final int? dietType; + final int? dietTypeId; + final dynamic errorCode; + final dynamic errorEndUserMessage; + final dynamic errorEndUserMessageN; + final dynamic errorMessage; + final int? errorType; + final int? foodCategory; + final dynamic iosLink; + final bool? isAuthenticated; + final int? mealOrderStatus; + final int? mealType; + final int? messageStatus; + final int? numberOfResultRecords; + final dynamic patientBlodType; + final dynamic successMsg; + final dynamic successMsgN; + final dynamic vidaUpdatedResponse; + final dynamic admissionDiagnosisList; + final dynamic admissionMasterList; + final dynamic admissionProcedureList; + final dynamic admissionRequestList; + final dynamic appointmentDate; + final dynamic appointmentId; + final dynamic assessmentList; + final int? boxQuantity; + final int? chkStatusUpdated; + final dynamic chiefComplaintAuditLogList; + final int? clinicId; + final bool? created; + final dynamic dietTypeList; + final dynamic doctorDetails; + final bool? doctorHaveOneClinic; + final int? doctorId; + final int? doctorNotRepliedCounts; + final dynamic doctorSesId; + final dynamic doctorTokId; + final dynamic drugToDrugResponse; + final dynamic erlcInsertPatientInHisgenxList; + final int? erlcIsInserted; + final dynamic erlcRequestList; + final dynamic endTime; + final int? episodeId; + final dynamic getErAppointmentFeesList; + final int? getEpisodeNo; + final dynamic getPatientErSessionStatusList; + final dynamic getVcStatusBySessionIdList; + final bool? hasAppointment; + final dynamic hasVirtualClinic; + final dynamic httpStatusCode; + final dynamic icdCodesList; + final bool? isAccepted; + final bool? isChangePassword; + final bool? isLogout; + final bool? isPatientErRequestVcSessionAndTokenUpdated; + final bool? isPatientSessionStatusInserted; + final bool? isPatientSessionStatusUpdated; + final bool? isSent; + final int? labResultType; + final dynamic listSickLeavesToExtent; + final dynamic listAdmissionOrders; + final dynamic listAllergies; + final dynamic listApprovalMainInPatient; + final dynamic listChiefComplaint; + final dynamic listClinicAll; + final dynamic listDiabeticChartValues; + final dynamic listDiagnosisForInPatient; + final dynamic listDischargeSummary; + final List? listDoctorDeviceDetails; + final dynamic listDoctorProfile; + final dynamic listDoctorProgressNote; + final List? listDoctorsClinic; + final dynamic listDoctorsAll; + final dynamic listDrugToDrugTherapy; + final dynamic listGetLabNormal; + final dynamic listGetLabOreders; + final dynamic listGetLabSpecial; + final dynamic listGetMedicationForInpatient; + final dynamic listGetPatientVitalSign; + final dynamic listGetPregressNoteForInPatient; + final dynamic listGetRadOreders; + final dynamic listGtMyPatientsQuestions; + final dynamic listHistory; + final dynamic listIcdCodes; + final dynamic listInterventionHistory; + final dynamic listInterventionMedications; + final dynamic listMyDischargePatient; + final dynamic listMyDischargeReferralPatient; + final dynamic listMyDischargeReferredPatient; + final dynamic listMyInPatient; + final dynamic listMyOutPatient; + final dynamic listMyOutPatientReferral; + final dynamic listMyReferralPatient; + final dynamic listMyReferredOutPatient; + final dynamic listMyReferredPatient; + final dynamic listMyTomorrowPatient; + final dynamic listNursingProgressNote; + final dynamic listOtReservationDetails; + final dynamic listOperationDetails; + final dynamic listPendingDischargeSummary; + final dynamic listPendingOrders; + final dynamic listPendingPatientAdminList; + final dynamic listPendingPatientList; + final dynamic listPrescriptionAuditLogInfo; + final dynamic listPrescriptionReportByPatientId; + final dynamic listPrescriptionReportForInPatient; + final dynamic listRxAuditLogInfo; + final dynamic listStpMasterList; + final dynamic listSpecialClinicalCareList; + final dynamic listSpecialClinicalCareMappingList; + final dynamic logInTokenId; + final dynamic masterLookUpList; + final dynamic medicationList; + final int? memberId; + final dynamic orderedProcedureList; + final dynamic patientDetails; + final dynamic patientFileList; + final dynamic patientInfoList; + final dynamic patientInforBySearchCriteriaHisgenxList; + final dynamic patientInforBySearchCriteriaList; + final bool? patientOutSa; + final dynamic patientsFileInfoList; + final dynamic pendingReferralList; + final dynamic physicalExamAuditLogList; + final dynamic physicalExamList; + final dynamic prescriptionList; + final dynamic procedureList; + final dynamic progressNoteList; + final dynamic progressNotesAuditLogList; + final int? projectId; + final List? projectInfo; + final dynamic referralList; + final bool? requestCompleted; + final dynamic requisitionResponse; + final int? returnValue; + final int? rowCount; + final dynamic smsCode; + final dynamic searchAdmissionList; + final dynamic searchCriteriaKindList; + final dynamic sickLeaveStatistics; + final dynamic sickLeavesList; + final dynamic sserviceId; + final dynamic startTime; + final dynamic statusMessage; + final dynamic strAppointmentDate; + final int? totalUnUsedCount; + final dynamic ucafResponse; + final dynamic validateProcedureList; + final dynamic validationErrors; + final dynamic verificationCode; + final dynamic vidaAuthTokenId; + final dynamic vidaRefreshTokenId; + final dynamic vitalSignsHistory; + final dynamic vitalSignsList; + final dynamic admissionResponse; + final dynamic coveringDoctorList; + final bool? isActiveCode; + final bool? isSmsSent; + final dynamic listCategories; + final dynamic listClinics; + final dynamic listDoctorDashboarKpi; + final dynamic listItemByMedicineCode; + final dynamic listKeywords; + final dynamic listProcedureCategories; + final dynamic listProcedureResult; + final MemberInformation? memberInformation; + final dynamic patientArrivalList; + final dynamic requisitionList; + final dynamic requisitionScheduleList; + final dynamic requisitionStatusList; + final int? resultValue; + final bool? specialAuthenticate; + final List? getPatientFileInformationPrmList; + final List? listDoctorPatientVitalSign; + + factory GenericResponseModel.fromJson(Map json) => GenericResponseModel( + date: json["Date"], + languageId: json["LanguageID"] == null ? null : json["LanguageID"], + serviceName: json["ServiceName"] == null ? null : json["ServiceName"], + time: json["Time"], + androidLink: json["AndroidLink"], + authenticationTokenId: json["AuthenticationTokenID"], + data: json["Data"], + dataw: json["Dataw"] == null ? null : json["Dataw"], + dietType: json["DietType"] == null ? null : json["DietType"], + dietTypeId: json["DietTypeID"] == null ? null : json["DietTypeID"], + errorCode: json["ErrorCode"], + errorEndUserMessage: json["ErrorEndUserMessage"], + errorEndUserMessageN: json["ErrorEndUserMessageN"], + errorMessage: json["ErrorMessage"], + errorType: json["ErrorType"] == null ? null : json["ErrorType"], + foodCategory: json["FoodCategory"] == null ? null : json["FoodCategory"], + iosLink: json["IOSLink"], + isAuthenticated: json["IsAuthenticated"] == null ? null : json["IsAuthenticated"], + mealOrderStatus: json["MealOrderStatus"] == null ? null : json["MealOrderStatus"], + mealType: json["MealType"] == null ? null : json["MealType"], + messageStatus: json["MessageStatus"] == null ? null : json["MessageStatus"], + numberOfResultRecords: json["NumberOfResultRecords"] == null ? null : json["NumberOfResultRecords"], + patientBlodType: json["PatientBlodType"], + successMsg: json["SuccessMsg"], + successMsgN: json["SuccessMsgN"], + vidaUpdatedResponse: json["VidaUpdatedResponse"], + admissionDiagnosisList: json["AdmissionDiagnosisList"], + admissionMasterList: json["AdmissionMasterList"], + admissionProcedureList: json["AdmissionProcedureList"], + admissionRequestList: json["AdmissionRequestList"], + appointmentDate: json["AppointmentDate"], + appointmentId: json["AppointmentID"], + assessmentList: json["AssessmentList"], + boxQuantity: json["BoxQuantity"] == null ? null : json["BoxQuantity"], + chkStatusUpdated: json["CHK_StatusUpdated"] == null ? null : json["CHK_StatusUpdated"], + chiefComplaintAuditLogList: json["ChiefComplaintAuditLogList"], + clinicId: json["ClinicID"] == null ? null : json["ClinicID"], + created: json["Created"] == null ? null : json["Created"], + dietTypeList: json["DietTypeList"], + doctorDetails: json["DoctorDetails"], + doctorHaveOneClinic: json["DoctorHaveOneClinic"] == null ? null : json["DoctorHaveOneClinic"], + doctorId: json["DoctorID"] == null ? null : json["DoctorID"], + doctorNotRepliedCounts: json["DoctorNotRepliedCounts"] == null ? null : json["DoctorNotRepliedCounts"], + doctorSesId: json["DoctorSesID"], + doctorTokId: json["DoctorTokID"], + drugToDrugResponse: json["DrugToDrugResponse"], + erlcInsertPatientInHisgenxList: json["ERLC_InsertPatientInHISGENXList"], + erlcIsInserted: json["ERLC_IsInserted"] == null ? null : json["ERLC_IsInserted"], + erlcRequestList: json["ERLC_RequestList"], + endTime: json["EndTime"], + episodeId: json["EpisodeID"] == null ? null : json["EpisodeID"], + getErAppointmentFeesList: json["GetERAppointmentFeesList"], + getEpisodeNo: json["GetEpisodeNo"] == null ? null : json["GetEpisodeNo"], + getPatientErSessionStatusList: json["GetPatientERSessionStatusList"], + getVcStatusBySessionIdList: json["GetVCStatusBySessionIDList"], + hasAppointment: json["HasAppointment"] == null ? null : json["HasAppointment"], + hasVirtualClinic: json["HasVirtualClinic"], + httpStatusCode: json["HttpStatusCode"], + icdCodesList: json["ICDCodesList"], + isAccepted: json["IsAccepted"] == null ? null : json["IsAccepted"], + isChangePassword: json["IsChangePassword"] == null ? null : json["IsChangePassword"], + isLogout: json["IsLogout"] == null ? null : json["IsLogout"], + isPatientErRequestVcSessionAndTokenUpdated: json["IsPatientERRequestVCSessionAndTokenUpdated"] == null ? null : json["IsPatientERRequestVCSessionAndTokenUpdated"], + isPatientSessionStatusInserted: json["IsPatientSessionStatusInserted"] == null ? null : json["IsPatientSessionStatusInserted"], + isPatientSessionStatusUpdated: json["IsPatientSessionStatusUpdated"] == null ? null : json["IsPatientSessionStatusUpdated"], + isSent: json["IsSent"] == null ? null : json["IsSent"], + labResultType: json["LabResultType"] == null ? null : json["LabResultType"], + listSickLeavesToExtent: json["ListSickLeavesToExtent"], + listAdmissionOrders: json["List_AdmissionOrders"], + listAllergies: json["List_Allergies"], + listApprovalMainInPatient: json["List_ApprovalMain_InPatient"], + listChiefComplaint: json["List_ChiefComplaint"], + listClinicAll: json["List_Clinic_All"], + listDiabeticChartValues: json["List_DiabeticChartValues"], + listDiagnosisForInPatient: json["List_DiagnosisForInPatient"], + listDischargeSummary: json["List_DischargeSummary"], + listDoctorDeviceDetails: json["List_DoctorDeviceDetails"] == null ? null : List.from(json["List_DoctorDeviceDetails"].map((x) => GetIMEIDetailsModel.fromJson(x))), + listDoctorProfile: json["List_DoctorProfile"], + listDoctorProgressNote: json["List_DoctorProgressNote"], + listDoctorsClinic: json["List_DoctorsClinic"] == null ? null : List.from(json["List_DoctorsClinic"].map((x) => ListDoctorsClinicModel.fromJson(x))), + listDoctorsAll: json["List_Doctors_All"], + listDrugToDrugTherapy: json["List_DrugToDrugTherapy"], + listGetLabNormal: json["List_GetLabNormal"], + listGetLabOreders: json["List_GetLabOreders"], + listGetLabSpecial: json["List_GetLabSpecial"], + listGetMedicationForInpatient: json["List_GetMedicationForInpatient"], + listGetPatientVitalSign: json["List_GetPatientVitalSign"], + listGetPregressNoteForInPatient: json["List_GetPregressNoteForInPatient"], + listGetRadOreders: json["List_GetRadOreders"], + listGtMyPatientsQuestions: json["List_GtMyPatientsQuestions"], + listHistory: json["List_History"], + listIcdCodes: json["List_ICDCodes"], + listInterventionHistory: json["List_InterventionHistory"], + listInterventionMedications: json["List_InterventionMedications"], + listMyDischargePatient: json["List_MyDischargePatient"], + listMyDischargeReferralPatient: json["List_MyDischargeReferralPatient"], + listMyDischargeReferredPatient: json["List_MyDischargeReferredPatient"], + listMyInPatient: json["List_MyInPatient"], + listMyOutPatient: json["List_MyOutPatient"], + listMyOutPatientReferral: json["List_MyOutPatientReferral"], + listMyReferralPatient: json["List_MyReferralPatient"], + listMyReferredOutPatient: json["List_MyReferredOutPatient"], + listMyReferredPatient: json["List_MyReferredPatient"], + listMyTomorrowPatient: json["List_MyTomorrowPatient"], + listNursingProgressNote: json["List_NursingProgressNote"], + listOtReservationDetails: json["List_OTReservationDetails"], + listOperationDetails: json["List_OperationDetails"], + listPendingDischargeSummary: json["List_PendingDischargeSummary"], + listPendingOrders: json["List_PendingOrders"], + listPendingPatientAdminList: json["List_PendingPatientAdminList"], + listPendingPatientList: json["List_PendingPatientList"], + listPrescriptionAuditLogInfo: json["List_PrescriptionAuditLogInfo"], + listPrescriptionReportByPatientId: json["List_PrescriptionReportByPatientID"], + listPrescriptionReportForInPatient: json["List_PrescriptionReportForInPatient"], + listRxAuditLogInfo: json["List_RxAuditLogInfo"], + listStpMasterList: json["List_STPMasterList"], + listSpecialClinicalCareList: json["List_SpecialClinicalCareList"], + listSpecialClinicalCareMappingList: json["List_SpecialClinicalCareMappingList"], + logInTokenId: json["LogInTokenID"], + masterLookUpList: json["MasterLookUpList"], + medicationList: json["MedicationList"], + memberId: json["MemberID"] == null ? null : json["MemberID"], + orderedProcedureList: json["OrderedProcedureList"], + patientDetails: json["PatientDetails"], + patientFileList: json["PatientFileList"], + patientInfoList: json["PatientInfo_List"], + patientInforBySearchCriteriaHisgenxList: json["PatientInforBySearchCriteriaHISGENX_List"], + patientInforBySearchCriteriaList: json["PatientInforBySearchCriteria_List"], + patientOutSa: json["PatientOutSA"] == null ? null : json["PatientOutSA"], + patientsFileInfoList: json["PatientsFileInfo_List"], + pendingReferralList: json["PendingReferralList"], + physicalExamAuditLogList: json["PhysicalExamAuditLogList"], + physicalExamList: json["PhysicalExamList"], + prescriptionList: json["PrescriptionList"], + procedureList: json["ProcedureList"], + progressNoteList: json["ProgressNoteList"], + progressNotesAuditLogList: json["ProgressNotesAuditLogList"], + projectId: json["ProjectID"] == null ? null : json["ProjectID"], + projectInfo: json["ProjectInfo"] == null ? null : List.from(json["ProjectInfo"].map((x) => ProjectInfoModel.fromJson(x))), + referralList: json["ReferralList"], + requestCompleted: json["RequestCompleted"] == null ? null : json["RequestCompleted"], + requisitionResponse: json["RequisitionResponse"], + returnValue: json["ReturnValue"] == null ? null : json["ReturnValue"], + rowCount: json["RowCount"] == null ? null : json["RowCount"], + smsCode: json["SMSCode"], + searchAdmissionList: json["SearchAdmissionList"], + searchCriteriaKindList: json["SearchCriteriaKindList"], + sickLeaveStatistics: json["SickLeaveStatistics"], + sickLeavesList: json["SickLeavesList"], + sserviceId: json["SserviceID"], + startTime: json["StartTime"], + statusMessage: json["StatusMessage"], + strAppointmentDate: json["StrAppointmentDate"], + totalUnUsedCount: json["TotalUnUsedCount"] == null ? null : json["TotalUnUsedCount"], + ucafResponse: json["UcafResponse"], + validateProcedureList: json["ValidateProcedureList"], + validationErrors: json["ValidationErrors"], + verificationCode: json["VerificationCode"], + vidaAuthTokenId: json["VidaAuthTokenID"], + vidaRefreshTokenId: json["VidaRefreshTokenID"], + vitalSignsHistory: json["VitalSignsHistory"], + vitalSignsList: json["VitalSignsList"], + admissionResponse: json["admissionResponse"], + coveringDoctorList: json["coveringDoctorList"], + isActiveCode: json["isActiveCode"] == null ? null : json["isActiveCode"], + isSmsSent: json["isSMSSent"] == null ? null : json["isSMSSent"], + listCategories: json["listCategories"], + listClinics: json["listClinics"], + listDoctorDashboarKpi: json["listDoctorDashboarKPI"], + listItemByMedicineCode: json["listItemByMedicineCode"], + listKeywords: json["listKeywords"], + listProcedureCategories: json["listProcedureCategories"], + listProcedureResult: json["listProcedureResult"], + memberInformation: json["memberInformation"] == null ? null : MemberInformation.fromJson(json["memberInformation"]), + patientArrivalList: json["patientArrivalList"], + requisitionList: json["requisitionList"], + requisitionScheduleList: json["requisitionScheduleList"], + requisitionStatusList: json["requisitionStatusList"], + resultValue: json["resultValue"] == null ? null : json["resultValue"], + specialAuthenticate: json["specialAuthenticate"] == null ? null : json["specialAuthenticate"], + getPatientFileInformationPrmList: json["GetPatientFileInformation_PRMList"] == null + ? null + : List.from(json["GetPatientFileInformation_PRMList"].map((x) => GetPatientFileInformationPrmList.fromJson(x))), + listDoctorPatientVitalSign: + json["List_DoctorPatientVitalSign"] == null ? null : List.from(json["List_DoctorPatientVitalSign"].map((x) => ListDoctorPatientVitalSign.fromJson(x))), + ); + + Map toJson() => { + "Date": date, + "LanguageID": languageId == null ? null : languageId, + "ServiceName": serviceName == null ? null : serviceName, + "Time": time, + "AndroidLink": androidLink, + "AuthenticationTokenID": authenticationTokenId, + "Data": data, + "Dataw": dataw == null ? null : dataw, + "DietType": dietType == null ? null : dietType, + "DietTypeID": dietTypeId == null ? null : dietTypeId, + "ErrorCode": errorCode, + "ErrorEndUserMessage": errorEndUserMessage, + "ErrorEndUserMessageN": errorEndUserMessageN, + "ErrorMessage": errorMessage, + "ErrorType": errorType == null ? null : errorType, + "FoodCategory": foodCategory == null ? null : foodCategory, + "IOSLink": iosLink, + "IsAuthenticated": isAuthenticated == null ? null : isAuthenticated, + "MealOrderStatus": mealOrderStatus == null ? null : mealOrderStatus, + "MealType": mealType == null ? null : mealType, + "MessageStatus": messageStatus == null ? null : messageStatus, + "NumberOfResultRecords": numberOfResultRecords == null ? null : numberOfResultRecords, + "PatientBlodType": patientBlodType, + "SuccessMsg": successMsg, + "SuccessMsgN": successMsgN, + "VidaUpdatedResponse": vidaUpdatedResponse, + "AdmissionDiagnosisList": admissionDiagnosisList, + "AdmissionMasterList": admissionMasterList, + "AdmissionProcedureList": admissionProcedureList, + "AdmissionRequestList": admissionRequestList, + "AppointmentDate": appointmentDate, + "AppointmentID": appointmentId, + "AssessmentList": assessmentList, + "BoxQuantity": boxQuantity == null ? null : boxQuantity, + "CHK_StatusUpdated": chkStatusUpdated == null ? null : chkStatusUpdated, + "ChiefComplaintAuditLogList": chiefComplaintAuditLogList, + "ClinicID": clinicId == null ? null : clinicId, + "Created": created == null ? null : created, + "DietTypeList": dietTypeList, + "DoctorDetails": doctorDetails, + "DoctorHaveOneClinic": doctorHaveOneClinic == null ? null : doctorHaveOneClinic, + "DoctorID": doctorId == null ? null : doctorId, + "DoctorNotRepliedCounts": doctorNotRepliedCounts == null ? null : doctorNotRepliedCounts, + "DoctorSesID": doctorSesId, + "DoctorTokID": doctorTokId, + "DrugToDrugResponse": drugToDrugResponse, + "ERLC_InsertPatientInHISGENXList": erlcInsertPatientInHisgenxList, + "ERLC_IsInserted": erlcIsInserted == null ? null : erlcIsInserted, + "ERLC_RequestList": erlcRequestList, + "EndTime": endTime, + "EpisodeID": episodeId == null ? null : episodeId, + "GetERAppointmentFeesList": getErAppointmentFeesList, + "GetEpisodeNo": getEpisodeNo == null ? null : getEpisodeNo, + "GetPatientERSessionStatusList": getPatientErSessionStatusList, + "GetVCStatusBySessionIDList": getVcStatusBySessionIdList, + "HasAppointment": hasAppointment == null ? null : hasAppointment, + "HasVirtualClinic": hasVirtualClinic, + "HttpStatusCode": httpStatusCode, + "ICDCodesList": icdCodesList, + "IsAccepted": isAccepted == null ? null : isAccepted, + "IsChangePassword": isChangePassword == null ? null : isChangePassword, + "IsLogout": isLogout == null ? null : isLogout, + "IsPatientERRequestVCSessionAndTokenUpdated": isPatientErRequestVcSessionAndTokenUpdated == null ? null : isPatientErRequestVcSessionAndTokenUpdated, + "IsPatientSessionStatusInserted": isPatientSessionStatusInserted == null ? null : isPatientSessionStatusInserted, + "IsPatientSessionStatusUpdated": isPatientSessionStatusUpdated == null ? null : isPatientSessionStatusUpdated, + "IsSent": isSent == null ? null : isSent, + "LabResultType": labResultType == null ? null : labResultType, + "ListSickLeavesToExtent": listSickLeavesToExtent, + "List_AdmissionOrders": listAdmissionOrders, + "List_Allergies": listAllergies, + "List_ApprovalMain_InPatient": listApprovalMainInPatient, + "List_ChiefComplaint": listChiefComplaint, + "List_Clinic_All": listClinicAll, + "List_DiabeticChartValues": listDiabeticChartValues, + "List_DiagnosisForInPatient": listDiagnosisForInPatient, + "List_DischargeSummary": listDischargeSummary, + "List_DoctorDeviceDetails": listDoctorDeviceDetails == null ? null : List.from(listDoctorDeviceDetails!.map((x) => x)), + "List_DoctorProfile": listDoctorProfile, + "List_DoctorProgressNote": listDoctorProgressNote, + "List_DoctorsClinic": listDoctorsClinic == null ? null : List.from(listDoctorsClinic!.map((x) => x.toJson())), + "List_Doctors_All": listDoctorsAll, + "List_DrugToDrugTherapy": listDrugToDrugTherapy, + "List_GetLabNormal": listGetLabNormal, + "List_GetLabOreders": listGetLabOreders, + "List_GetLabSpecial": listGetLabSpecial, + "List_GetMedicationForInpatient": listGetMedicationForInpatient, + "List_GetPatientVitalSign": listGetPatientVitalSign, + "List_GetPregressNoteForInPatient": listGetPregressNoteForInPatient, + "List_GetRadOreders": listGetRadOreders, + "List_GtMyPatientsQuestions": listGtMyPatientsQuestions, + "List_History": listHistory, + "List_ICDCodes": listIcdCodes, + "List_InterventionHistory": listInterventionHistory, + "List_InterventionMedications": listInterventionMedications, + "List_MyDischargePatient": listMyDischargePatient, + "List_MyDischargeReferralPatient": listMyDischargeReferralPatient, + "List_MyDischargeReferredPatient": listMyDischargeReferredPatient, + "List_MyInPatient": listMyInPatient, + "List_MyOutPatient": listMyOutPatient, + "List_MyOutPatientReferral": listMyOutPatientReferral, + "List_MyReferralPatient": listMyReferralPatient, + "List_MyReferredOutPatient": listMyReferredOutPatient, + "List_MyReferredPatient": listMyReferredPatient, + "List_MyTomorrowPatient": listMyTomorrowPatient, + "List_NursingProgressNote": listNursingProgressNote, + "List_OTReservationDetails": listOtReservationDetails, + "List_OperationDetails": listOperationDetails, + "List_PendingDischargeSummary": listPendingDischargeSummary, + "List_PendingOrders": listPendingOrders, + "List_PendingPatientAdminList": listPendingPatientAdminList, + "List_PendingPatientList": listPendingPatientList, + "List_PrescriptionAuditLogInfo": listPrescriptionAuditLogInfo, + "List_PrescriptionReportByPatientID": listPrescriptionReportByPatientId, + "List_PrescriptionReportForInPatient": listPrescriptionReportForInPatient, + "List_RxAuditLogInfo": listRxAuditLogInfo, + "List_STPMasterList": listStpMasterList, + "List_SpecialClinicalCareList": listSpecialClinicalCareList, + "List_SpecialClinicalCareMappingList": listSpecialClinicalCareMappingList, + "LogInTokenID": logInTokenId, + "MasterLookUpList": masterLookUpList, + "MedicationList": medicationList, + "MemberID": memberId == null ? null : memberId, + "OrderedProcedureList": orderedProcedureList, + "PatientDetails": patientDetails, + "PatientFileList": patientFileList, + "PatientInfo_List": patientInfoList, + "PatientInforBySearchCriteriaHISGENX_List": patientInforBySearchCriteriaHisgenxList, + "PatientInforBySearchCriteria_List": patientInforBySearchCriteriaList, + "PatientOutSA": patientOutSa == null ? null : patientOutSa, + "PatientsFileInfo_List": patientsFileInfoList, + "PendingReferralList": pendingReferralList, + "PhysicalExamAuditLogList": physicalExamAuditLogList, + "PhysicalExamList": physicalExamList, + "PrescriptionList": prescriptionList, + "ProcedureList": procedureList, + "ProgressNoteList": progressNoteList, + "ProgressNotesAuditLogList": progressNotesAuditLogList, + "ProjectID": projectId == null ? null : projectId, + "ProjectInfo": projectInfo, + "ReferralList": referralList, + "RequestCompleted": requestCompleted == null ? null : requestCompleted, + "RequisitionResponse": requisitionResponse, + "ReturnValue": returnValue == null ? null : returnValue, + "RowCount": rowCount == null ? null : rowCount, + "SMSCode": smsCode, + "SearchAdmissionList": searchAdmissionList, + "SearchCriteriaKindList": searchCriteriaKindList, + "SickLeaveStatistics": sickLeaveStatistics, + "SickLeavesList": sickLeavesList, + "SserviceID": sserviceId, + "StartTime": startTime, + "StatusMessage": statusMessage, + "StrAppointmentDate": strAppointmentDate, + "TotalUnUsedCount": totalUnUsedCount == null ? null : totalUnUsedCount, + "UcafResponse": ucafResponse, + "ValidateProcedureList": validateProcedureList, + "ValidationErrors": validationErrors, + "VerificationCode": verificationCode, + "VidaAuthTokenID": vidaAuthTokenId, + "VidaRefreshTokenID": vidaRefreshTokenId, + "VitalSignsHistory": vitalSignsHistory, + "VitalSignsList": vitalSignsList, + "admissionResponse": admissionResponse, + "coveringDoctorList": coveringDoctorList, + "isActiveCode": isActiveCode == null ? null : isActiveCode, + "isSMSSent": isSmsSent == null ? null : isSmsSent, + "listCategories": listCategories, + "listClinics": listClinics, + "listDoctorDashboarKPI": listDoctorDashboarKpi, + "listItemByMedicineCode": listItemByMedicineCode, + "listKeywords": listKeywords, + "listProcedureCategories": listProcedureCategories, + "listProcedureResult": listProcedureResult, + "memberInformation": memberInformation == null ? null : memberInformation!.toJson(), + "patientArrivalList": patientArrivalList, + "requisitionList": requisitionList, + "requisitionScheduleList": requisitionScheduleList, + "requisitionStatusList": requisitionStatusList, + "resultValue": resultValue == null ? null : resultValue, + "specialAuthenticate": specialAuthenticate == null ? null : specialAuthenticate, + }; +} diff --git a/lib/model/base/generic_response_model2.dart b/lib/model/base/generic_response_model2.dart new file mode 100644 index 0000000..40e7d46 --- /dev/null +++ b/lib/model/base/generic_response_model2.dart @@ -0,0 +1,911 @@ +// To parse this JSON data, do +// +// final genericResponseModel2 = genericResponseModel2FromJson(jsonString); + +import 'dart:convert'; + +import 'package:hmg_nurses/model/login/doctor_profile_model.dart'; + +GenericResponseModel2 genericResponseModel2FromJson(String str) => GenericResponseModel2.fromJson(json.decode(str)); + +String genericResponseModel2ToJson(GenericResponseModel2 data) => json.encode(data.toJson()); + +class GenericResponseModel2 { + GenericResponseModel2({ + this.date, + this.languageId, + this.serviceName, + this.time, + this.androidLink, + this.authenticationTokenId, + this.data, + this.dataw, + this.dietType, + this.dietTypeId, + this.errorCode, + this.errorEndUserMessage, + this.errorEndUserMessageN, + this.errorMessage, + this.errorType, + this.foodCategory, + this.iosLink, + this.isAuthenticated, + this.mealOrderStatus, + this.mealType, + this.messageStatus, + this.numberOfResultRecords, + this.patientBlodType, + this.successMsg, + this.successMsgN, + this.vidaUpdatedResponse, + this.ageError, + this.allowedBooking, + this.ancillaryOrderInvoiceList, + this.ancillaryOrderList, + this.ancillaryOrderListCount, + this.ancillaryOrderProcList, + this.appoimentAllHistoryResultList, + this.appoimentAllResultList, + this.appointmentActiveNumber, + this.appointmentNo, + this.appointmentQr, + this.avgDoctorRatingList, + this.covid19AppointmentResponse, + this.covid19FreeTimeSlots, + this.covid19InvoiceResponse, + this.covid19PatientShare, + this.covid19TestProceduresList, + this.clinicCategoryList, + this.clinicInsertedId, + this.clinicsHaveScheduleList, + this.continueBookAppointment, + this.dappTemplateGetList, + this.decimalDoctorRate, + this.dentalProcedure, + this.dentalProcedureName, + this.diseasesByClinicList, + this.doctorBasicScheduleList, + this.doctorByClinicIdList, + this.doctorByDiseaseList, + this.doctorCalenderList, + this.doctorInformationAsHtml, + this.doctorInformationRaw, + this.doctorList, + this.doctorPrePostImagesList, + this.doctorProfileList, + this.doctorRate, + this.doctorRatingDetailsList, + this.doctorScheduleMappingInsert, + this.doctorSchedulesByClinicList, + this.doctorscheduleslotInsert, + this.doctorscheduleslotSelectList, + this.erAppointmentFeesObject, + this.erAdvancePaymentResponse, + this.erOnlinePaymentDetailsResponse, + this.erPatientShare, + this.erTriageQuestionsList, + this.errCode, + this.errorSearchMsg, + this.formId, + this.freeTimeSlots, + this.genderError, + this.getDoctorMobileNo, + this.getPatientInfoByPatientIdList, + this.getPatientMedicalStatus, + this.hisGetAllAppoimentHistoryList, + this.hisGetDoctorOffDaysList, + this.hisObgyneUltrasoundDoctorsList, + this.hisProcedureTemplateDetailsList, + this.hisProcedureTemplateList, + this.hisWaitingCheckDoctorAvailableForWaitingAppointmentList, + this.hisObGyneProcedureGetResponse, + this.hisPrmGetApprovalRemarkList, + this.hoursDiff, + this.isDentalplan, + this.isMobileAppDentalAllow, + this.initialSlotDuration, + this.isAllowToBookWaitingAppointment, + this.isAllowVClinic, + this.isAllowWaitList, + this.isAppointmentAllowed, + this.isClinicEnabledForIcdCodes, + this.isDoctorExist, + this.isInsertOrUpdate, + this.isLastAppoitmentRatedList, + this.isShowInsuranceUpdateModule, + this.isSlotAvailable, + this.lcGetClinicScheduleList, + this.listHoursDiff, + this.listReqTypes, + this.listAllClinicRate, + this.listAllDoctorRate, + this.listAllProjectRate, + this.listCovid19DoctorsByClinicAndProject, + this.listCovid19ProjectDriveThroughTestingCenter, + this.listCalculationTable, + this.listDdAdminMembers, + this.listDentalChiefComplain, + this.listDentalDdDetails, + this.listDentalDoctorChiefComplaintMapping, + this.listDentalPediatricDoctor, + this.listDoctorAll, + this.listDoctorByIpAddressCheckIn, + this.listDoctorByProjectClinicAr, + this.listDoctorByProjectClinicEn, + this.listDoctorCases, + this.listDoctorClinics, + this.listDoctorDetailsList, + this.listDoctorDetailsListAr, + this.listDoctorLanguages, + this.listDoctorMappinsgs, + this.listDoctorPatientVitalSign, + this.listDoctorProcedureMapping, + this.listDoctorProfileImage, + this.listDoctorProject, + this.listDoctorQualifications, + this.listDoctorSlotFirstVisit, + this.listDoctorSpeciality, + this.listDoctorSpecializations, + this.listDoctorWorkingHoursTable, + this.listDoctorblacklistModel, + this.listDoctorinfo, + this.listEnglish, + this.listGetAllCancelAppointmentReasons, + this.listGetAllClinicsRoomNo, + this.listGetAllDoctorsOnProject, + this.listGetAllDoctorsbyProject, + this.listGetAppForCancel, + this.listGetClinicsInfobyProject, + this.listGetClinicsbyProject, + this.listGetDoctorsbyProject, + this.listGetIpAddressForDd, + this.listGetIpAddressForDentalDd, + this.listGetInfoForDentalClinicsDd, + this.listGetLoginDetails, + this.listGetPatientCancelAppointment, + this.listHisDoctorProject, + this.listHisGetContactLensPerscription, + this.listHisGetGlassPerscription, + this.listHmgPartTimeDoctor, + this.listInvoiceDetails, + this.listIsPatientHasOnGoingEstimation, + this.listLaserDoctors, + this.listLaserProcedures, + this.listMedicalReportByAppointment, + this.listNonAdminProjectMapping, + this.listPatientErAdminServiceModel, + this.listPatientErDoctorBlackListModel, + this.listPhysioDoctors, + this.listProjectErpMapping, + this.listRecordByIpAddress, + this.listRecordByIpAddressNew, + this.listRecordByIpAddressNewCheckIn, + this.listRecordByIpAddressNewForDubai, + this.listRescahdualOnlineModel, + this.message, + this.notesDoctorRatingForCocList, + this.notesDoctorRatingList, + this.onlineCheckInAppointments, + this.onlineCheckinBeforeHour, + this.prmAdmissionInfoList, + this.prmDentalEstimationDetailList, + this.prmDentalEstimationList, + this.prmDoctorsForRadiologyList, + this.prmGetErToOpdRequestStatusList, + this.prmGetDoctorRatingList, + this.prmGetProceureAndPackagesList, + this.prmHisAppointmentqueuegetList, + this.prmHisCheckDoctorIsFullyBookedList, + this.prmHisGetDentalEstimationPlanList, + this.prmHisGetDischargeInfoList, + this.prmHisGetUpcomingConfirmedAppoimentList, + this.prmHisQueueErToOpList, + this.prmQueueERreferralHistoryGetList, + this.prmSpecialClinicalCareMappingList, + this.patientDoctorAppointmentResultExit, + this.patientDoctorAppointmentResultList, + this.patientErDoctorFreeSlots, + this.patientErGetAllClinicsList, + this.patientErGetDoctorClincByServiceIdList, + this.patientErGetServiceList, + this.patientErLogininsert, + this.patientErPrescriptionLogin, + this.patientErSelectAdmin, + this.patientErSelectRole2, + this.patientErUpdateLiveCareStatus, + this.patientErInsert, + this.patientInformationList, + this.patientNumber, + this.paymentModes, + this.physioIsPatientHasApproval, + this.physiotherapyError, + this.procedureNeedeTime, + this.riskScore, + this.rowCount, + this.sameClinicApptList, + this.searchDoctorsByTimeIsVoiceCommandList, + this.slotDuration, + this.statusCode, + this.tamaraIntegrationLogsInsertResponse, + this.tamaraIntegrationLogsUpdateResponse, + this.transactionNo, + this.userDentalPlanMessage, + this.waitingAppointmentNoPerDay, + this.age, + this.erpDoctorDetails, + this.returnValue, + }); + + final dynamic date; + final int? languageId; + final int? serviceName; + final dynamic time; + final dynamic androidLink; + final dynamic authenticationTokenId; + final dynamic data; + final bool? dataw; + final int? dietType; + final int? dietTypeId; + final dynamic errorCode; + final dynamic errorEndUserMessage; + final dynamic errorEndUserMessageN; + final dynamic errorMessage; + final int? errorType; + final int? foodCategory; + final dynamic iosLink; + final bool? isAuthenticated; + final int? mealOrderStatus; + final int? mealType; + final int? messageStatus; + final int? numberOfResultRecords; + final dynamic patientBlodType; + final dynamic successMsg; + final dynamic successMsgN; + final dynamic vidaUpdatedResponse; + final bool? ageError; + final bool? allowedBooking; + final dynamic ancillaryOrderInvoiceList; + final dynamic ancillaryOrderList; + final int? ancillaryOrderListCount; + final dynamic ancillaryOrderProcList; + final dynamic appoimentAllHistoryResultList; + final dynamic appoimentAllResultList; + final int? appointmentActiveNumber; + final dynamic appointmentNo; + final dynamic appointmentQr; + final dynamic avgDoctorRatingList; + final dynamic covid19AppointmentResponse; + final dynamic covid19FreeTimeSlots; + final dynamic covid19InvoiceResponse; + final dynamic covid19PatientShare; + final dynamic covid19TestProceduresList; + final dynamic clinicCategoryList; + final int? clinicInsertedId; + final dynamic clinicsHaveScheduleList; + final bool? continueBookAppointment; + final dynamic dappTemplateGetList; + final int? decimalDoctorRate; + final dynamic dentalProcedure; + final dynamic dentalProcedureName; + final dynamic diseasesByClinicList; + final dynamic doctorBasicScheduleList; + final dynamic doctorByClinicIdList; + final dynamic doctorByDiseaseList; + final dynamic doctorCalenderList; + final dynamic doctorInformationAsHtml; + final dynamic doctorInformationRaw; + final dynamic doctorList; + final dynamic doctorPrePostImagesList; + final List? doctorProfileList; + final int? doctorRate; + final dynamic doctorRatingDetailsList; + final int? doctorScheduleMappingInsert; + final dynamic doctorSchedulesByClinicList; + final int? doctorscheduleslotInsert; + final dynamic doctorscheduleslotSelectList; + final dynamic erAppointmentFeesObject; + final dynamic erAdvancePaymentResponse; + final dynamic erOnlinePaymentDetailsResponse; + final dynamic erPatientShare; + final dynamic erTriageQuestionsList; + final dynamic errCode; + final dynamic errorSearchMsg; + final int? formId; + final dynamic freeTimeSlots; + final bool? genderError; + final dynamic getDoctorMobileNo; + final dynamic getPatientInfoByPatientIdList; + final dynamic getPatientMedicalStatus; + final dynamic hisGetAllAppoimentHistoryList; + final dynamic hisGetDoctorOffDaysList; + final dynamic hisObgyneUltrasoundDoctorsList; + final dynamic hisProcedureTemplateDetailsList; + final dynamic hisProcedureTemplateList; + final dynamic hisWaitingCheckDoctorAvailableForWaitingAppointmentList; + final dynamic hisObGyneProcedureGetResponse; + final dynamic hisPrmGetApprovalRemarkList; + final int? hoursDiff; + final bool? isDentalplan; + final bool? isMobileAppDentalAllow; + final int? initialSlotDuration; + final bool? isAllowToBookWaitingAppointment; + final bool? isAllowVClinic; + final bool? isAllowWaitList; + final bool? isAppointmentAllowed; + final bool? isClinicEnabledForIcdCodes; + final bool? isDoctorExist; + final int? isInsertOrUpdate; + final dynamic isLastAppoitmentRatedList; + final bool? isShowInsuranceUpdateModule; + final int? isSlotAvailable; + final dynamic lcGetClinicScheduleList; + final dynamic listHoursDiff; + final dynamic listReqTypes; + final dynamic listAllClinicRate; + final dynamic listAllDoctorRate; + final dynamic listAllProjectRate; + final dynamic listCovid19DoctorsByClinicAndProject; + final dynamic listCovid19ProjectDriveThroughTestingCenter; + final dynamic listCalculationTable; + final dynamic listDdAdminMembers; + final dynamic listDentalChiefComplain; + final dynamic listDentalDdDetails; + final dynamic listDentalDoctorChiefComplaintMapping; + final dynamic listDentalPediatricDoctor; + final dynamic listDoctorAll; + final dynamic listDoctorByIpAddressCheckIn; + final dynamic listDoctorByProjectClinicAr; + final dynamic listDoctorByProjectClinicEn; + final dynamic listDoctorCases; + final dynamic listDoctorClinics; + final dynamic listDoctorDetailsList; + final dynamic listDoctorDetailsListAr; + final dynamic listDoctorLanguages; + final dynamic listDoctorMappinsgs; + final dynamic listDoctorPatientVitalSign; + final dynamic listDoctorProcedureMapping; + final dynamic listDoctorProfileImage; + final dynamic listDoctorProject; + final dynamic listDoctorQualifications; + final dynamic listDoctorSlotFirstVisit; + final dynamic listDoctorSpeciality; + final dynamic listDoctorSpecializations; + final dynamic listDoctorWorkingHoursTable; + final dynamic listDoctorblacklistModel; + final dynamic listDoctorinfo; + final dynamic listEnglish; + final dynamic listGetAllCancelAppointmentReasons; + final dynamic listGetAllClinicsRoomNo; + final dynamic listGetAllDoctorsOnProject; + final dynamic listGetAllDoctorsbyProject; + final dynamic listGetAppForCancel; + final dynamic listGetClinicsInfobyProject; + final dynamic listGetClinicsbyProject; + final dynamic listGetDoctorsbyProject; + final dynamic listGetIpAddressForDd; + final dynamic listGetIpAddressForDentalDd; + final dynamic listGetInfoForDentalClinicsDd; + final dynamic listGetLoginDetails; + final dynamic listGetPatientCancelAppointment; + final dynamic listHisDoctorProject; + final dynamic listHisGetContactLensPerscription; + final dynamic listHisGetGlassPerscription; + final dynamic listHmgPartTimeDoctor; + final dynamic listInvoiceDetails; + final dynamic listIsPatientHasOnGoingEstimation; + final dynamic listLaserDoctors; + final dynamic listLaserProcedures; + final dynamic listMedicalReportByAppointment; + final dynamic listNonAdminProjectMapping; + final dynamic listPatientErAdminServiceModel; + final dynamic listPatientErDoctorBlackListModel; + final dynamic listPhysioDoctors; + final dynamic listProjectErpMapping; + final dynamic listRecordByIpAddress; + final dynamic listRecordByIpAddressNew; + final dynamic listRecordByIpAddressNewCheckIn; + final dynamic listRecordByIpAddressNewForDubai; + final dynamic listRescahdualOnlineModel; + final dynamic message; + final dynamic notesDoctorRatingForCocList; + final dynamic notesDoctorRatingList; + final dynamic onlineCheckInAppointments; + final int? onlineCheckinBeforeHour; + final dynamic prmAdmissionInfoList; + final dynamic prmDentalEstimationDetailList; + final dynamic prmDentalEstimationList; + final dynamic prmDoctorsForRadiologyList; + final dynamic prmGetErToOpdRequestStatusList; + final dynamic prmGetDoctorRatingList; + final dynamic prmGetProceureAndPackagesList; + final dynamic prmHisAppointmentqueuegetList; + final dynamic prmHisCheckDoctorIsFullyBookedList; + final dynamic prmHisGetDentalEstimationPlanList; + final dynamic prmHisGetDischargeInfoList; + final dynamic prmHisGetUpcomingConfirmedAppoimentList; + final dynamic prmHisQueueErToOpList; + final dynamic prmQueueERreferralHistoryGetList; + final dynamic prmSpecialClinicalCareMappingList; + final bool? patientDoctorAppointmentResultExit; + final dynamic patientDoctorAppointmentResultList; + final dynamic patientErDoctorFreeSlots; + final dynamic patientErGetAllClinicsList; + final dynamic patientErGetDoctorClincByServiceIdList; + final dynamic patientErGetServiceList; + final int? patientErLogininsert; + final dynamic patientErPrescriptionLogin; + final dynamic patientErSelectAdmin; + final dynamic patientErSelectRole2; + final int? patientErUpdateLiveCareStatus; + final int? patientErInsert; + final dynamic patientInformationList; + final int? patientNumber; + final dynamic paymentModes; + final bool? physioIsPatientHasApproval; + final int? physiotherapyError; + final dynamic procedureNeedeTime; + final int? riskScore; + final int? rowCount; + final dynamic sameClinicApptList; + final dynamic searchDoctorsByTimeIsVoiceCommandList; + final int? slotDuration; + final int? statusCode; + final int? tamaraIntegrationLogsInsertResponse; + final int? tamaraIntegrationLogsUpdateResponse; + final dynamic transactionNo; + final dynamic userDentalPlanMessage; + final int? waitingAppointmentNoPerDay; + final int? age; + final dynamic erpDoctorDetails; + final int? returnValue; + + factory GenericResponseModel2.fromJson(Map json) => GenericResponseModel2( + date: json["Date"], + languageId: json["LanguageID"] == null ? null : json["LanguageID"], + serviceName: json["ServiceName"] == null ? null : json["ServiceName"], + time: json["Time"], + androidLink: json["AndroidLink"], + authenticationTokenId: json["AuthenticationTokenID"], + data: json["Data"], + dataw: json["Dataw"] == null ? null : json["Dataw"], + dietType: json["DietType"] == null ? null : json["DietType"], + dietTypeId: json["DietTypeID"] == null ? null : json["DietTypeID"], + errorCode: json["ErrorCode"], + errorEndUserMessage: json["ErrorEndUserMessage"], + errorEndUserMessageN: json["ErrorEndUserMessageN"], + errorMessage: json["ErrorMessage"], + errorType: json["ErrorType"] == null ? null : json["ErrorType"], + foodCategory: json["FoodCategory"] == null ? null : json["FoodCategory"], + iosLink: json["IOSLink"], + isAuthenticated: json["IsAuthenticated"] == null ? null : json["IsAuthenticated"], + mealOrderStatus: json["MealOrderStatus"] == null ? null : json["MealOrderStatus"], + mealType: json["MealType"] == null ? null : json["MealType"], + messageStatus: json["MessageStatus"] == null ? null : json["MessageStatus"], + numberOfResultRecords: json["NumberOfResultRecords"] == null ? null : json["NumberOfResultRecords"], + patientBlodType: json["PatientBlodType"], + successMsg: json["SuccessMsg"], + successMsgN: json["SuccessMsgN"], + vidaUpdatedResponse: json["VidaUpdatedResponse"], + ageError: json["AgeError"] == null ? null : json["AgeError"], + allowedBooking: json["AllowedBooking"] == null ? null : json["AllowedBooking"], + ancillaryOrderInvoiceList: json["AncillaryOrderInvoiceList"], + ancillaryOrderList: json["AncillaryOrderList"], + ancillaryOrderListCount: json["AncillaryOrderListCount"] == null ? null : json["AncillaryOrderListCount"], + ancillaryOrderProcList: json["AncillaryOrderProcList"], + appoimentAllHistoryResultList: json["AppoimentAllHistoryResultList"], + appoimentAllResultList: json["AppoimentAllResultList"], + appointmentActiveNumber: json["AppointmentActiveNumber"] == null ? null : json["AppointmentActiveNumber"], + appointmentNo: json["AppointmentNo"], + appointmentQr: json["AppointmentQR"], + avgDoctorRatingList: json["AvgDoctorRatingList"], + covid19AppointmentResponse: json["COVID19_AppointmentResponse"], + covid19FreeTimeSlots: json["COVID19_FreeTimeSlots"], + covid19InvoiceResponse: json["COVID19_InvoiceResponse"], + covid19PatientShare: json["COVID19_PatientShare"], + covid19TestProceduresList: json["COVID19_TestProceduresList"], + clinicCategoryList: json["ClinicCategoryList"], + clinicInsertedId: json["ClinicInsertedID"] == null ? null : json["ClinicInsertedID"], + clinicsHaveScheduleList: json["ClinicsHaveScheduleList"], + continueBookAppointment: json["ContinueBookAppointment"] == null ? null : json["ContinueBookAppointment"], + dappTemplateGetList: json["DAPP_TemplateGetList"], + decimalDoctorRate: json["DecimalDoctorRate"] == null ? null : json["DecimalDoctorRate"], + dentalProcedure: json["DentalProcedure"], + dentalProcedureName: json["DentalProcedureName"], + diseasesByClinicList: json["DiseasesByClinicList"], + doctorBasicScheduleList: json["DoctorBasicScheduleList"], + doctorByClinicIdList: json["DoctorByClinicIDList"], + doctorByDiseaseList: json["DoctorByDiseaseList"], + doctorCalenderList: json["DoctorCalenderList"], + doctorInformationAsHtml: json["DoctorInformationAsHTML"], + doctorInformationRaw: json["DoctorInformationRAW"], + doctorList: json["DoctorList"], + doctorPrePostImagesList: json["DoctorPrePostImagesList"], + doctorProfileList: json["DoctorProfileList"] == null ? null : List.from(json["DoctorProfileList"].map((x) => DoctorProfileListModel.fromJson(x))), + doctorRate: json["DoctorRate"] == null ? null : json["DoctorRate"], + doctorRatingDetailsList: json["DoctorRatingDetailsList"], + doctorScheduleMappingInsert: json["DoctorScheduleMapping_Insert"] == null ? null : json["DoctorScheduleMapping_Insert"], + doctorSchedulesByClinicList: json["DoctorSchedulesByClinicList"], + doctorscheduleslotInsert: json["Doctorscheduleslot_Insert"] == null ? null : json["Doctorscheduleslot_Insert"], + doctorscheduleslotSelectList: json["Doctorscheduleslot_SelectList"], + erAppointmentFeesObject: json["ERAppointmentFeesObject"], + erAdvancePaymentResponse: json["ER_AdvancePaymentResponse"], + erOnlinePaymentDetailsResponse: json["ER_OnlinePaymentDetailsResponse"], + erPatientShare: json["ER_PatientShare"], + erTriageQuestionsList: json["ER_TriageQuestionsList"], + errCode: json["ErrCode"], + errorSearchMsg: json["ErrorSearchMsg"], + formId: json["FormID"] == null ? null : json["FormID"], + freeTimeSlots: json["FreeTimeSlots"], + genderError: json["GenderError"] == null ? null : json["GenderError"], + getDoctorMobileNo: json["GetDoctorMobileNo"], + getPatientInfoByPatientIdList: json["GetPatientInfoByPatientIDList"], + getPatientMedicalStatus: json["GetPatientMedicalStatus"], + hisGetAllAppoimentHistoryList: json["HIS_GetAllAppoimentHistoryList"], + hisGetDoctorOffDaysList: json["HIS_GetDoctorOffDaysList"], + hisObgyneUltrasoundDoctorsList: json["HIS_ObgyneUltrasoundDoctorsList"], + hisProcedureTemplateDetailsList: json["HIS_ProcedureTemplateDetailsList"], + hisProcedureTemplateList: json["HIS_ProcedureTemplateList"], + hisWaitingCheckDoctorAvailableForWaitingAppointmentList: json["HIS_Waiting_CheckDoctorAvailableForWaitingAppointment_List"], + hisObGyneProcedureGetResponse: json["His_ObGyneProcedureGet_Response"], + hisPrmGetApprovalRemarkList: json["His_PRM_GetApprovalRemarkList"], + hoursDiff: json["HoursDiff"] == null ? null : json["HoursDiff"], + isDentalplan: json["ISDentalplan"] == null ? null : json["ISDentalplan"], + isMobileAppDentalAllow: json["ISMobileAppDentalAllow"] == null ? null : json["ISMobileAppDentalAllow"], + initialSlotDuration: json["InitialSlotDuration"] == null ? null : json["InitialSlotDuration"], + isAllowToBookWaitingAppointment: json["IsAllowToBookWaitingAppointment"] == null ? null : json["IsAllowToBookWaitingAppointment"], + isAllowVClinic: json["IsAllowVClinic"] == null ? null : json["IsAllowVClinic"], + isAllowWaitList: json["IsAllowWaitList"] == null ? null : json["IsAllowWaitList"], + isAppointmentAllowed: json["IsAppointmentAllowed"] == null ? null : json["IsAppointmentAllowed"], + isClinicEnabledForIcdCodes: json["IsClinicEnabledForICDCodes"] == null ? null : json["IsClinicEnabledForICDCodes"], + isDoctorExist: json["IsDoctorExist"] == null ? null : json["IsDoctorExist"], + isInsertOrUpdate: json["IsInsertOrUpdate"] == null ? null : json["IsInsertOrUpdate"], + isLastAppoitmentRatedList: json["IsLastAppoitmentRatedList"], + isShowInsuranceUpdateModule: json["IsShowInsuranceUpdateModule"] == null ? null : json["IsShowInsuranceUpdateModule"], + isSlotAvailable: json["IsSlotAvailable"] == null ? null : json["IsSlotAvailable"], + lcGetClinicScheduleList: json["LC_GetClinicScheduleList"], + listHoursDiff: json["ListHoursDiff"], + listReqTypes: json["ListReqTypes"], + listAllClinicRate: json["List_AllClinicRate"], + listAllDoctorRate: json["List_AllDoctorRate"], + listAllProjectRate: json["List_AllProjectRate"], + listCovid19DoctorsByClinicAndProject: json["List_COVID19_DoctorsByClinicAndProject"], + listCovid19ProjectDriveThroughTestingCenter: json["List_COVID19_ProjectDriveThroughTestingCenter"], + listCalculationTable: json["List_CalculationTable"], + listDdAdminMembers: json["List_DDAdmin_Members"], + listDentalChiefComplain: json["List_DentalChiefComplain"], + listDentalDdDetails: json["List_DentalDDDetails"], + listDentalDoctorChiefComplaintMapping: json["List_DentalDoctorChiefComplaintMapping"], + listDentalPediatricDoctor: json["List_DentalPediatricDoctor"], + listDoctorAll: json["List_DoctorAll"], + listDoctorByIpAddressCheckIn: json["List_DoctorByIPAddressCheckIn"], + listDoctorByProjectClinicAr: json["List_DoctorByProjectClinicAr"], + listDoctorByProjectClinicEn: json["List_DoctorByProjectClinicEn"], + listDoctorCases: json["List_DoctorCases"], + listDoctorClinics: json["List_DoctorClinics"], + listDoctorDetailsList: json["List_DoctorDetailsList"], + listDoctorDetailsListAr: json["List_DoctorDetailsListAr"], + listDoctorLanguages: json["List_DoctorLanguages"], + listDoctorMappinsgs: json["List_DoctorMappinsgs"], + listDoctorPatientVitalSign: json["List_DoctorPatientVitalSign"], + listDoctorProcedureMapping: json["List_DoctorProcedureMapping"], + listDoctorProfileImage: json["List_DoctorProfileImage"], + listDoctorProject: json["List_DoctorProject"], + listDoctorQualifications: json["List_DoctorQualifications"], + listDoctorSlotFirstVisit: json["List_DoctorSlotFirstVisit"], + listDoctorSpeciality: json["List_DoctorSpeciality"], + listDoctorSpecializations: json["List_DoctorSpecializations"], + listDoctorWorkingHoursTable: json["List_DoctorWorkingHoursTable"], + listDoctorblacklistModel: json["List_DoctorblacklistModel"], + listDoctorinfo: json["List_Doctorinfo"], + listEnglish: json["List_English"], + listGetAllCancelAppointmentReasons: json["List_GetAllCancelAppointmentReasons"], + listGetAllClinicsRoomNo: json["List_GetAllClinicsRoomNo"], + listGetAllDoctorsOnProject: json["List_GetAllDoctorsOnProject"], + listGetAllDoctorsbyProject: json["List_GetAllDoctorsbyProject"], + listGetAppForCancel: json["List_GetAppForCancel"], + listGetClinicsInfobyProject: json["List_GetClinicsInfobyProject"], + listGetClinicsbyProject: json["List_GetClinicsbyProject"], + listGetDoctorsbyProject: json["List_GetDoctorsbyProject"], + listGetIpAddressForDd: json["List_GetIPAddressForDD"], + listGetIpAddressForDentalDd: json["List_GetIPAddressForDentalDD"], + listGetInfoForDentalClinicsDd: json["List_GetInfoForDentalClinicsDD"], + listGetLoginDetails: json["List_GetLoginDetails"], + listGetPatientCancelAppointment: json["List_GetPatientCancelAppointment"], + listHisDoctorProject: json["List_HISDoctorProject"], + listHisGetContactLensPerscription: json["List_HIS_GetContactLensPerscription"], + listHisGetGlassPerscription: json["List_HIS_GetGlassPerscription"], + listHmgPartTimeDoctor: json["List_HmgPartTimeDoctor"], + listInvoiceDetails: json["List_InvoiceDetails"], + listIsPatientHasOnGoingEstimation: json["List_IsPatientHasOnGoingEstimation"], + listLaserDoctors: json["List_LaserDoctors"], + listLaserProcedures: json["List_LaserProcedures"], + listMedicalReportByAppointment: json["List_MedicalReportByAppointment"], + listNonAdminProjectMapping: json["List_NonAdminProjectMapping"], + listPatientErAdminServiceModel: json["List_PatientER_AdminServiceModel"], + listPatientErDoctorBlackListModel: json["List_PatientER_DoctorBlackListModel"], + listPhysioDoctors: json["List_PhysioDoctors"], + listProjectErpMapping: json["List_ProjectERPMapping"], + listRecordByIpAddress: json["List_RecordByIPAddress"], + listRecordByIpAddressNew: json["List_RecordByIPAddressNew"], + listRecordByIpAddressNewCheckIn: json["List_RecordByIPAddressNewCheckIn"], + listRecordByIpAddressNewForDubai: json["List_RecordByIPAddressNewForDubai"], + listRescahdualOnlineModel: json["List_RescahdualOnlineModel"], + message: json["Message"], + notesDoctorRatingForCocList: json["NotesDoctorRatingForCOC_List"], + notesDoctorRatingList: json["NotesDoctorRatingList"], + onlineCheckInAppointments: json["OnlineCheckInAppointments"], + onlineCheckinBeforeHour: json["OnlineCheckinBeforeHour"] == null ? null : json["OnlineCheckinBeforeHour"], + prmAdmissionInfoList: json["PRM_AdmissionInfoList"], + prmDentalEstimationDetailList: json["PRM_DentalEstimationDetailList"], + prmDentalEstimationList: json["PRM_DentalEstimationList"], + prmDoctorsForRadiologyList: json["PRM_DoctorsForRadiologyList"], + prmGetErToOpdRequestStatusList: json["PRM_GET_ERToOPDRequestStatusList"], + prmGetDoctorRatingList: json["PRM_GetDoctorRatingList"], + prmGetProceureAndPackagesList: json["PRM_GetProceureAndPackagesList"], + prmHisAppointmentqueuegetList: json["PRM_HIS_AppointmentqueuegetList"], + prmHisCheckDoctorIsFullyBookedList: json["PRM_HIS_CheckDoctorIsFullyBookedList"], + prmHisGetDentalEstimationPlanList: json["PRM_HIS_GetDentalEstimationPlan_List"], + prmHisGetDischargeInfoList: json["PRM_HIS_GetDischargeInfo_List"], + prmHisGetUpcomingConfirmedAppoimentList: json["PRM_HIS_GetUpcomingConfirmedAppoimentList"], + prmHisQueueErToOpList: json["PRM_HIS_QueueERToOP_List"], + prmQueueERreferralHistoryGetList: json["PRM_QueueERreferralHistory_getList"], + prmSpecialClinicalCareMappingList: json["PRM_SpecialClinicalCareMapping_List"], + patientDoctorAppointmentResultExit: json["PatientDoctorAppointmentResultExit"] == null ? null : json["PatientDoctorAppointmentResultExit"], + patientDoctorAppointmentResultList: json["PatientDoctorAppointmentResultList"], + patientErDoctorFreeSlots: json["PatientER_DoctorFreeSlots"], + patientErGetAllClinicsList: json["PatientER_GetAllClinics_List"], + patientErGetDoctorClincByServiceIdList: json["PatientER_GetDoctorClincByServiceID_List"], + patientErGetServiceList: json["PatientER_GetServiceList"], + patientErLogininsert: json["PatientER_Logininsert"] == null ? null : json["PatientER_Logininsert"], + patientErPrescriptionLogin: json["PatientER_PrescriptionLogin"], + patientErSelectAdmin: json["PatientER_SelectAdmin"], + patientErSelectRole2: json["PatientER_SelectRole2"], + patientErUpdateLiveCareStatus: json["PatientER_UpdateLiveCareStatus"] == null ? null : json["PatientER_UpdateLiveCareStatus"], + patientErInsert: json["PatientER_insert"] == null ? null : json["PatientER_insert"], + patientInformationList: json["PatientInformationList"], + patientNumber: json["PatientNumber"] == null ? null : json["PatientNumber"], + paymentModes: json["PaymentModes"], + physioIsPatientHasApproval: json["Physio_IsPatientHasApproval"] == null ? null : json["Physio_IsPatientHasApproval"], + physiotherapyError: json["PhysiotherapyError"] == null ? null : json["PhysiotherapyError"], + procedureNeedeTime: json["ProcedureNeedeTime"], + riskScore: json["RiskScore"] == null ? null : json["RiskScore"], + rowCount: json["RowCount"] == null ? null : json["RowCount"], + sameClinicApptList: json["SameClinicApptList"], + searchDoctorsByTimeIsVoiceCommandList: json["SearchDoctorsByTime_IsVoiceCommandList"], + slotDuration: json["SlotDuration"] == null ? null : json["SlotDuration"], + statusCode: json["StatusCode"] == null ? null : json["StatusCode"], + tamaraIntegrationLogsInsertResponse: json["Tamara_IntegrationLogsInsert_Response"] == null ? null : json["Tamara_IntegrationLogsInsert_Response"], + tamaraIntegrationLogsUpdateResponse: json["Tamara_IntegrationLogsUpdate_Response"] == null ? null : json["Tamara_IntegrationLogsUpdate_Response"], + transactionNo: json["TransactionNo"], + userDentalPlanMessage: json["UserDentalPlanMessage"], + waitingAppointmentNoPerDay: json["WaitingAppointmentNoPerDay"] == null ? null : json["WaitingAppointmentNoPerDay"], + age: json["age"] == null ? null : json["age"], + erpDoctorDetails: json["erpDoctorDetails"], + returnValue: json["returnValue"] == null ? null : json["returnValue"], + ); + + Map toJson() => { + "Date": date, + "LanguageID": languageId == null ? null : languageId, + "ServiceName": serviceName == null ? null : serviceName, + "Time": time, + "AndroidLink": androidLink, + "AuthenticationTokenID": authenticationTokenId, + "Data": data, + "Dataw": dataw == null ? null : dataw, + "DietType": dietType == null ? null : dietType, + "DietTypeID": dietTypeId == null ? null : dietTypeId, + "ErrorCode": errorCode, + "ErrorEndUserMessage": errorEndUserMessage, + "ErrorEndUserMessageN": errorEndUserMessageN, + "ErrorMessage": errorMessage, + "ErrorType": errorType == null ? null : errorType, + "FoodCategory": foodCategory == null ? null : foodCategory, + "IOSLink": iosLink, + "IsAuthenticated": isAuthenticated == null ? null : isAuthenticated, + "MealOrderStatus": mealOrderStatus == null ? null : mealOrderStatus, + "MealType": mealType == null ? null : mealType, + "MessageStatus": messageStatus == null ? null : messageStatus, + "NumberOfResultRecords": numberOfResultRecords == null ? null : numberOfResultRecords, + "PatientBlodType": patientBlodType, + "SuccessMsg": successMsg, + "SuccessMsgN": successMsgN, + "VidaUpdatedResponse": vidaUpdatedResponse, + "AgeError": ageError == null ? null : ageError, + "AllowedBooking": allowedBooking == null ? null : allowedBooking, + "AncillaryOrderInvoiceList": ancillaryOrderInvoiceList, + "AncillaryOrderList": ancillaryOrderList, + "AncillaryOrderListCount": ancillaryOrderListCount == null ? null : ancillaryOrderListCount, + "AncillaryOrderProcList": ancillaryOrderProcList, + "AppoimentAllHistoryResultList": appoimentAllHistoryResultList, + "AppoimentAllResultList": appoimentAllResultList, + "AppointmentActiveNumber": appointmentActiveNumber == null ? null : appointmentActiveNumber, + "AppointmentNo": appointmentNo, + "AppointmentQR": appointmentQr, + "AvgDoctorRatingList": avgDoctorRatingList, + "COVID19_AppointmentResponse": covid19AppointmentResponse, + "COVID19_FreeTimeSlots": covid19FreeTimeSlots, + "COVID19_InvoiceResponse": covid19InvoiceResponse, + "COVID19_PatientShare": covid19PatientShare, + "COVID19_TestProceduresList": covid19TestProceduresList, + "ClinicCategoryList": clinicCategoryList, + "ClinicInsertedID": clinicInsertedId == null ? null : clinicInsertedId, + "ClinicsHaveScheduleList": clinicsHaveScheduleList, + "ContinueBookAppointment": continueBookAppointment == null ? null : continueBookAppointment, + "DAPP_TemplateGetList": dappTemplateGetList, + "DecimalDoctorRate": decimalDoctorRate == null ? null : decimalDoctorRate, + "DentalProcedure": dentalProcedure, + "DentalProcedureName": dentalProcedureName, + "DiseasesByClinicList": diseasesByClinicList, + "DoctorBasicScheduleList": doctorBasicScheduleList, + "DoctorByClinicIDList": doctorByClinicIdList, + "DoctorByDiseaseList": doctorByDiseaseList, + "DoctorCalenderList": doctorCalenderList, + "DoctorInformationAsHTML": doctorInformationAsHtml, + "DoctorInformationRAW": doctorInformationRaw, + "DoctorList": doctorList, + "DoctorPrePostImagesList": doctorPrePostImagesList, + "DoctorProfileList": doctorProfileList == null ? null : List.from(doctorProfileList!.map((x) => x.toJson())), + "DoctorRate": doctorRate == null ? null : doctorRate, + "DoctorRatingDetailsList": doctorRatingDetailsList, + "DoctorScheduleMapping_Insert": doctorScheduleMappingInsert == null ? null : doctorScheduleMappingInsert, + "DoctorSchedulesByClinicList": doctorSchedulesByClinicList, + "Doctorscheduleslot_Insert": doctorscheduleslotInsert == null ? null : doctorscheduleslotInsert, + "Doctorscheduleslot_SelectList": doctorscheduleslotSelectList, + "ERAppointmentFeesObject": erAppointmentFeesObject, + "ER_AdvancePaymentResponse": erAdvancePaymentResponse, + "ER_OnlinePaymentDetailsResponse": erOnlinePaymentDetailsResponse, + "ER_PatientShare": erPatientShare, + "ER_TriageQuestionsList": erTriageQuestionsList, + "ErrCode": errCode, + "ErrorSearchMsg": errorSearchMsg, + "FormID": formId == null ? null : formId, + "FreeTimeSlots": freeTimeSlots, + "GenderError": genderError == null ? null : genderError, + "GetDoctorMobileNo": getDoctorMobileNo, + "GetPatientInfoByPatientIDList": getPatientInfoByPatientIdList, + "GetPatientMedicalStatus": getPatientMedicalStatus, + "HIS_GetAllAppoimentHistoryList": hisGetAllAppoimentHistoryList, + "HIS_GetDoctorOffDaysList": hisGetDoctorOffDaysList, + "HIS_ObgyneUltrasoundDoctorsList": hisObgyneUltrasoundDoctorsList, + "HIS_ProcedureTemplateDetailsList": hisProcedureTemplateDetailsList, + "HIS_ProcedureTemplateList": hisProcedureTemplateList, + "HIS_Waiting_CheckDoctorAvailableForWaitingAppointment_List": hisWaitingCheckDoctorAvailableForWaitingAppointmentList, + "His_ObGyneProcedureGet_Response": hisObGyneProcedureGetResponse, + "His_PRM_GetApprovalRemarkList": hisPrmGetApprovalRemarkList, + "HoursDiff": hoursDiff == null ? null : hoursDiff, + "ISDentalplan": isDentalplan == null ? null : isDentalplan, + "ISMobileAppDentalAllow": isMobileAppDentalAllow == null ? null : isMobileAppDentalAllow, + "InitialSlotDuration": initialSlotDuration == null ? null : initialSlotDuration, + "IsAllowToBookWaitingAppointment": isAllowToBookWaitingAppointment == null ? null : isAllowToBookWaitingAppointment, + "IsAllowVClinic": isAllowVClinic == null ? null : isAllowVClinic, + "IsAllowWaitList": isAllowWaitList == null ? null : isAllowWaitList, + "IsAppointmentAllowed": isAppointmentAllowed == null ? null : isAppointmentAllowed, + "IsClinicEnabledForICDCodes": isClinicEnabledForIcdCodes == null ? null : isClinicEnabledForIcdCodes, + "IsDoctorExist": isDoctorExist == null ? null : isDoctorExist, + "IsInsertOrUpdate": isInsertOrUpdate == null ? null : isInsertOrUpdate, + "IsLastAppoitmentRatedList": isLastAppoitmentRatedList, + "IsShowInsuranceUpdateModule": isShowInsuranceUpdateModule == null ? null : isShowInsuranceUpdateModule, + "IsSlotAvailable": isSlotAvailable == null ? null : isSlotAvailable, + "LC_GetClinicScheduleList": lcGetClinicScheduleList, + "ListHoursDiff": listHoursDiff, + "ListReqTypes": listReqTypes, + "List_AllClinicRate": listAllClinicRate, + "List_AllDoctorRate": listAllDoctorRate, + "List_AllProjectRate": listAllProjectRate, + "List_COVID19_DoctorsByClinicAndProject": listCovid19DoctorsByClinicAndProject, + "List_COVID19_ProjectDriveThroughTestingCenter": listCovid19ProjectDriveThroughTestingCenter, + "List_CalculationTable": listCalculationTable, + "List_DDAdmin_Members": listDdAdminMembers, + "List_DentalChiefComplain": listDentalChiefComplain, + "List_DentalDDDetails": listDentalDdDetails, + "List_DentalDoctorChiefComplaintMapping": listDentalDoctorChiefComplaintMapping, + "List_DentalPediatricDoctor": listDentalPediatricDoctor, + "List_DoctorAll": listDoctorAll, + "List_DoctorByIPAddressCheckIn": listDoctorByIpAddressCheckIn, + "List_DoctorByProjectClinicAr": listDoctorByProjectClinicAr, + "List_DoctorByProjectClinicEn": listDoctorByProjectClinicEn, + "List_DoctorCases": listDoctorCases, + "List_DoctorClinics": listDoctorClinics, + "List_DoctorDetailsList": listDoctorDetailsList, + "List_DoctorDetailsListAr": listDoctorDetailsListAr, + "List_DoctorLanguages": listDoctorLanguages, + "List_DoctorMappinsgs": listDoctorMappinsgs, + "List_DoctorPatientVitalSign": listDoctorPatientVitalSign, + "List_DoctorProcedureMapping": listDoctorProcedureMapping, + "List_DoctorProfileImage": listDoctorProfileImage, + "List_DoctorProject": listDoctorProject, + "List_DoctorQualifications": listDoctorQualifications, + "List_DoctorSlotFirstVisit": listDoctorSlotFirstVisit, + "List_DoctorSpeciality": listDoctorSpeciality, + "List_DoctorSpecializations": listDoctorSpecializations, + "List_DoctorWorkingHoursTable": listDoctorWorkingHoursTable, + "List_DoctorblacklistModel": listDoctorblacklistModel, + "List_Doctorinfo": listDoctorinfo, + "List_English": listEnglish, + "List_GetAllCancelAppointmentReasons": listGetAllCancelAppointmentReasons, + "List_GetAllClinicsRoomNo": listGetAllClinicsRoomNo, + "List_GetAllDoctorsOnProject": listGetAllDoctorsOnProject, + "List_GetAllDoctorsbyProject": listGetAllDoctorsbyProject, + "List_GetAppForCancel": listGetAppForCancel, + "List_GetClinicsInfobyProject": listGetClinicsInfobyProject, + "List_GetClinicsbyProject": listGetClinicsbyProject, + "List_GetDoctorsbyProject": listGetDoctorsbyProject, + "List_GetIPAddressForDD": listGetIpAddressForDd, + "List_GetIPAddressForDentalDD": listGetIpAddressForDentalDd, + "List_GetInfoForDentalClinicsDD": listGetInfoForDentalClinicsDd, + "List_GetLoginDetails": listGetLoginDetails, + "List_GetPatientCancelAppointment": listGetPatientCancelAppointment, + "List_HISDoctorProject": listHisDoctorProject, + "List_HIS_GetContactLensPerscription": listHisGetContactLensPerscription, + "List_HIS_GetGlassPerscription": listHisGetGlassPerscription, + "List_HmgPartTimeDoctor": listHmgPartTimeDoctor, + "List_InvoiceDetails": listInvoiceDetails, + "List_IsPatientHasOnGoingEstimation": listIsPatientHasOnGoingEstimation, + "List_LaserDoctors": listLaserDoctors, + "List_LaserProcedures": listLaserProcedures, + "List_MedicalReportByAppointment": listMedicalReportByAppointment, + "List_NonAdminProjectMapping": listNonAdminProjectMapping, + "List_PatientER_AdminServiceModel": listPatientErAdminServiceModel, + "List_PatientER_DoctorBlackListModel": listPatientErDoctorBlackListModel, + "List_PhysioDoctors": listPhysioDoctors, + "List_ProjectERPMapping": listProjectErpMapping, + "List_RecordByIPAddress": listRecordByIpAddress, + "List_RecordByIPAddressNew": listRecordByIpAddressNew, + "List_RecordByIPAddressNewCheckIn": listRecordByIpAddressNewCheckIn, + "List_RecordByIPAddressNewForDubai": listRecordByIpAddressNewForDubai, + "List_RescahdualOnlineModel": listRescahdualOnlineModel, + "Message": message, + "NotesDoctorRatingForCOC_List": notesDoctorRatingForCocList, + "NotesDoctorRatingList": notesDoctorRatingList, + "OnlineCheckInAppointments": onlineCheckInAppointments, + "OnlineCheckinBeforeHour": onlineCheckinBeforeHour == null ? null : onlineCheckinBeforeHour, + "PRM_AdmissionInfoList": prmAdmissionInfoList, + "PRM_DentalEstimationDetailList": prmDentalEstimationDetailList, + "PRM_DentalEstimationList": prmDentalEstimationList, + "PRM_DoctorsForRadiologyList": prmDoctorsForRadiologyList, + "PRM_GET_ERToOPDRequestStatusList": prmGetErToOpdRequestStatusList, + "PRM_GetDoctorRatingList": prmGetDoctorRatingList, + "PRM_GetProceureAndPackagesList": prmGetProceureAndPackagesList, + "PRM_HIS_AppointmentqueuegetList": prmHisAppointmentqueuegetList, + "PRM_HIS_CheckDoctorIsFullyBookedList": prmHisCheckDoctorIsFullyBookedList, + "PRM_HIS_GetDentalEstimationPlan_List": prmHisGetDentalEstimationPlanList, + "PRM_HIS_GetDischargeInfo_List": prmHisGetDischargeInfoList, + "PRM_HIS_GetUpcomingConfirmedAppoimentList": prmHisGetUpcomingConfirmedAppoimentList, + "PRM_HIS_QueueERToOP_List": prmHisQueueErToOpList, + "PRM_QueueERreferralHistory_getList": prmQueueERreferralHistoryGetList, + "PRM_SpecialClinicalCareMapping_List": prmSpecialClinicalCareMappingList, + "PatientDoctorAppointmentResultExit": patientDoctorAppointmentResultExit == null ? null : patientDoctorAppointmentResultExit, + "PatientDoctorAppointmentResultList": patientDoctorAppointmentResultList, + "PatientER_DoctorFreeSlots": patientErDoctorFreeSlots, + "PatientER_GetAllClinics_List": patientErGetAllClinicsList, + "PatientER_GetDoctorClincByServiceID_List": patientErGetDoctorClincByServiceIdList, + "PatientER_GetServiceList": patientErGetServiceList, + "PatientER_Logininsert": patientErLogininsert == null ? null : patientErLogininsert, + "PatientER_PrescriptionLogin": patientErPrescriptionLogin, + "PatientER_SelectAdmin": patientErSelectAdmin, + "PatientER_SelectRole2": patientErSelectRole2, + "PatientER_UpdateLiveCareStatus": patientErUpdateLiveCareStatus == null ? null : patientErUpdateLiveCareStatus, + "PatientER_insert": patientErInsert == null ? null : patientErInsert, + "PatientInformationList": patientInformationList, + "PatientNumber": patientNumber == null ? null : patientNumber, + "PaymentModes": paymentModes, + "Physio_IsPatientHasApproval": physioIsPatientHasApproval == null ? null : physioIsPatientHasApproval, + "PhysiotherapyError": physiotherapyError == null ? null : physiotherapyError, + "ProcedureNeedeTime": procedureNeedeTime, + "RiskScore": riskScore == null ? null : riskScore, + "RowCount": rowCount == null ? null : rowCount, + "SameClinicApptList": sameClinicApptList, + "SearchDoctorsByTime_IsVoiceCommandList": searchDoctorsByTimeIsVoiceCommandList, + "SlotDuration": slotDuration == null ? null : slotDuration, + "StatusCode": statusCode == null ? null : statusCode, + "Tamara_IntegrationLogsInsert_Response": tamaraIntegrationLogsInsertResponse == null ? null : tamaraIntegrationLogsInsertResponse, + "Tamara_IntegrationLogsUpdate_Response": tamaraIntegrationLogsUpdateResponse == null ? null : tamaraIntegrationLogsUpdateResponse, + "TransactionNo": transactionNo, + "UserDentalPlanMessage": userDentalPlanMessage, + "WaitingAppointmentNoPerDay": waitingAppointmentNoPerDay == null ? null : waitingAppointmentNoPerDay, + "age": age == null ? null : age, + "erpDoctorDetails": erpDoctorDetails, + "returnValue": returnValue == null ? null : returnValue, + }; +} diff --git a/lib/model/base/post_params_model.dart b/lib/model/base/post_params_model.dart new file mode 100644 index 0000000..e09b571 --- /dev/null +++ b/lib/model/base/post_params_model.dart @@ -0,0 +1,139 @@ +class PostParamsModel { + String? imei; + String? tokenID; + int? languageID; + String? stamp; + String? iPAdress; + double? versionID; + int? channel; + String? sessionID; + bool? isLoginForDoctorApp; + bool? patientOutSA; + String? vidaAuthTokenID; + String? vidaRefreshTokenID; + int? deviceTypeID; + String? generalID; + + //After Login + int? doctorId; + int? editedBy; + int? projectId; + int? clinicId; + + PostParamsModel({ + this.imei, + this.tokenID, + this.languageID, + this.stamp, + this.iPAdress, + this.versionID, + this.channel, + this.sessionID, + this.isLoginForDoctorApp, + this.patientOutSA, + this.vidaAuthTokenID, + this.vidaRefreshTokenID, + this.deviceTypeID, + this.generalID, + this.doctorId, + this.editedBy, + this.projectId, + this.clinicId, + }); + + PostParamsModel.fromJson(Map json) { + imei = json['IMEI']; + tokenID = json['TokenID']; + languageID = json['LanguageID']; + stamp = json['stamp']; + iPAdress = json['IPAdress']; + versionID = json['VersionID']; + channel = json['Channel']; + sessionID = json['SessionID']; + isLoginForDoctorApp = json['IsLoginForDoctorApp']; + patientOutSA = json['PatientOutSA']; + vidaAuthTokenID = json['VidaAuthTokenID']; + vidaRefreshTokenID = json['VidaRefreshTokenID']; + deviceTypeID = json['DeviceTypeID']; + deviceTypeID = json['generalid']; + } + + Map toJson() { + Map data = new Map(); + data['TokenID'] = this.tokenID; + data['LanguageID'] = this.languageID; + data['stamp'] = this.stamp; + data['IPAdress'] = this.iPAdress; + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['SessionID'] = this.sessionID; + data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp; + data['PatientOutSA'] = this.patientOutSA; + data['VidaAuthTokenID'] = this.vidaAuthTokenID; + data['VidaRefreshTokenID'] = this.vidaRefreshTokenID; + data['DeviceTypeID'] = this.deviceTypeID; + data['generalid'] = this.generalID; + return data; + } + + Map toJsonLogged() { + Map data = new Map(); + data['TokenID'] = this.tokenID; + data['LanguageID'] = this.languageID; + data['stamp'] = this.stamp; + data['IPAdress'] = this.iPAdress; + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['SessionID'] = this.sessionID; + data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp; + data['PatientOutSA'] = this.patientOutSA; + data['VidaAuthTokenID'] = this.vidaAuthTokenID; + data['VidaRefreshTokenID'] = this.vidaRefreshTokenID; + data['DeviceTypeID'] = this.deviceTypeID; + data['generalid'] = this.generalID; + data['DoctorID'] = this.doctorId; + data['EditedBy'] = this.editedBy; + data['ProjectID'] = this.projectId; + data['ClinicID'] = this.clinicId; + return data; + } + +// Map toJsonAfterLogin() { +// Map data = new Map(); +// data['VersionID'] = this.versionID; +// data['Channel'] = this.channel; +// data['LanguageID'] = this.languageID; +// data['MobileType'] = this.mobileType; +// data['LogInTokenID'] = this.logInTokenID; +// data['TokenID'] = this.tokenID; +// data['MobileNumber'] = this.mobileNumber; +// data['UserName'] = this.userName; +// data['P_EMAIL_ADDRESS'] = this.pEmailAddress; +// data['P_SESSION_ID'] = this.pSessionId; +// data['PayrollCodeStr'] = this.payrollCodeStr; +// data['LegislationCodeStr'] = this.pLegislationCode; +// data['P_SELECTED_EMPLOYEE_NUMBER'] = this.pSelectedEmployeeNumber; +// data['P_USER_NAME'] = this.pUserName; +// return data; +// } +// +// set setLogInTokenID(String? token) => logInTokenID = token; +// +// set setTokenID(String? token) => tokenID = token; +// +// set setMobileNumer(String? v) => mobileNumber = v; +// +// set setUserName(String? v) => userName = v; +// +// set setPEmailAddress(String? v) => pEmailAddress = v; +// +// set setPSessionId(int? v) => pSessionId = v; +// +// set setPUserName(String? v) => pUserName = v; +// +// set setPSelectedEmployeeNumber(String? v) => pSelectedEmployeeNumber = v; +// +// set setPLegislationCode(String? v) => pLegislationCode = v; +// +// set setPayrollCodeStr(String? v) => payrollCodeStr = v; +} diff --git a/lib/models/get_mobile_login_info_list_model.dart b/lib/model/get_mobile_login_info_list_model.dart similarity index 100% rename from lib/models/get_mobile_login_info_list_model.dart rename to lib/model/get_mobile_login_info_list_model.dart diff --git a/lib/model/login/doctor_profile_model.dart b/lib/model/login/doctor_profile_model.dart new file mode 100644 index 0000000..390c516 --- /dev/null +++ b/lib/model/login/doctor_profile_model.dart @@ -0,0 +1,195 @@ +class DoctorProfileListModel { + DoctorProfileListModel({ + this.doctorId, + this.doctorName, + this.doctorNameN, + this.clinicId, + this.clinicDescription, + this.clinicDescriptionN, + this.licenseExpiry, + this.employmentType, + this.setupId, + this.projectId, + this.projectName, + this.nationalityId, + this.nationalityName, + this.nationalityNameN, + this.gender, + this.genderDescription, + this.genderDescriptionN, + this.doctorTitle, + this.projectNameN, + this.isAllowWaitList, + this.titleDescription, + this.titleDescriptionN, + this.isRegistered, + this.isDoctorDummy, + this.isActive, + this.isDoctorAppointmentDisplayed, + this.doctorClinicActive, + this.isbookingAllowed, + this.doctorCases, + this.doctorPicture, + this.doctorProfileInfo, + this.specialty, + this.actualDoctorRate, + this.consultationFee, + this.decimalDoctorRate, + this.doctorImageUrl, + this.doctorMobileNumber, + this.doctorRate, + this.doctorStarsRate, + this.doctorTitleForProfile, + this.isAppointmentAllowed, + this.isDoctorHasPrePostImages, + this.nationalityFlagUrl, + this.noOfPatientsRate, + this.qr, + this.serviceId, + }); + + final int? doctorId; + final String? doctorName; + final dynamic doctorNameN; + final int? clinicId; + final String? clinicDescription; + final dynamic clinicDescriptionN; + final dynamic licenseExpiry; + final int? employmentType; + final dynamic setupId; + final int? projectId; + final String? projectName; + final String? nationalityId; + final String? nationalityName; + final dynamic nationalityNameN; + final int? gender; + final String? genderDescription; + final dynamic genderDescriptionN; + final dynamic doctorTitle; + final dynamic projectNameN; + final bool? isAllowWaitList; + final String? titleDescription; + final dynamic titleDescriptionN; + final dynamic isRegistered; + final dynamic isDoctorDummy; + final bool? isActive; + final dynamic isDoctorAppointmentDisplayed; + final bool? doctorClinicActive; + final dynamic isbookingAllowed; + final String? doctorCases; + final dynamic doctorPicture; + final String? doctorProfileInfo; + final List? specialty; + final int? actualDoctorRate; + final String? consultationFee; + final double? decimalDoctorRate; + final String? doctorImageUrl; + final String? doctorMobileNumber; + final int? doctorRate; + final int? doctorStarsRate; + final String? doctorTitleForProfile; + final bool? isAppointmentAllowed; + final bool? isDoctorHasPrePostImages; + final String? nationalityFlagUrl; + final int? noOfPatientsRate; + final String? qr; + final int? serviceId; + + factory DoctorProfileListModel.fromJson(Map json) => DoctorProfileListModel( + doctorId: json["DoctorID"] == null ? null : json["DoctorID"], + doctorName: json["DoctorName"] == null ? null : json["DoctorName"], + doctorNameN: json["DoctorNameN"], + clinicId: json["ClinicID"] == null ? null : json["ClinicID"], + clinicDescription: json["ClinicDescription"] == null ? null : json["ClinicDescription"], + clinicDescriptionN: json["ClinicDescriptionN"], + licenseExpiry: json["LicenseExpiry"], + employmentType: json["EmploymentType"] == null ? null : json["EmploymentType"], + setupId: json["SetupID"], + projectId: json["ProjectID"] == null ? null : json["ProjectID"], + projectName: json["ProjectName"] == null ? null : json["ProjectName"], + nationalityId: json["NationalityID"] == null ? null : json["NationalityID"], + nationalityName: json["NationalityName"] == null ? null : json["NationalityName"], + nationalityNameN: json["NationalityNameN"], + gender: json["Gender"] == null ? null : json["Gender"], + genderDescription: json["Gender_Description"] == null ? null : json["Gender_Description"], + genderDescriptionN: json["Gender_DescriptionN"], + doctorTitle: json["DoctorTitle"], + projectNameN: json["ProjectNameN"], + isAllowWaitList: json["IsAllowWaitList"] == null ? null : json["IsAllowWaitList"], + titleDescription: json["Title_Description"] == null ? null : json["Title_Description"], + titleDescriptionN: json["Title_DescriptionN"], + isRegistered: json["IsRegistered"], + isDoctorDummy: json["IsDoctorDummy"], + isActive: json["IsActive"] == null ? null : json["IsActive"], + isDoctorAppointmentDisplayed: json["IsDoctorAppointmentDisplayed"], + doctorClinicActive: json["DoctorClinicActive"] == null ? null : json["DoctorClinicActive"], + isbookingAllowed: json["IsbookingAllowed"], + doctorCases: json["DoctorCases"] == null ? null : json["DoctorCases"], + doctorPicture: json["DoctorPicture"], + doctorProfileInfo: json["DoctorProfileInfo"] == null ? null : json["DoctorProfileInfo"], + specialty: json["Specialty"] == null ? null : List.from(json["Specialty"].map((x) => x)), + actualDoctorRate: json["ActualDoctorRate"] == null ? null : json["ActualDoctorRate"], + consultationFee: json["ConsultationFee"] == null ? null : json["ConsultationFee"], + decimalDoctorRate: json["DecimalDoctorRate"] == null ? null : json["DecimalDoctorRate"].toDouble(), + doctorImageUrl: json["DoctorImageURL"] == null ? null : json["DoctorImageURL"], + doctorMobileNumber: json["DoctorMobileNumber"] == null ? null : json["DoctorMobileNumber"], + doctorRate: json["DoctorRate"] == null ? null : json["DoctorRate"], + doctorStarsRate: json["DoctorStarsRate"] == null ? null : json["DoctorStarsRate"], + doctorTitleForProfile: json["DoctorTitleForProfile"] == null ? null : json["DoctorTitleForProfile"], + isAppointmentAllowed: json["IsAppointmentAllowed"] == null ? null : json["IsAppointmentAllowed"], + isDoctorHasPrePostImages: json["IsDoctorHasPrePostImages"] == null ? null : json["IsDoctorHasPrePostImages"], + nationalityFlagUrl: json["NationalityFlagURL"] == null ? null : json["NationalityFlagURL"], + noOfPatientsRate: json["NoOfPatientsRate"] == null ? null : json["NoOfPatientsRate"], + qr: json["QR"] == null ? null : json["QR"], + serviceId: json["ServiceID"] == null ? null : json["ServiceID"], + ); + + Map toJson() => { + "DoctorID": doctorId == null ? null : doctorId, + "DoctorName": doctorName == null ? null : doctorName, + "DoctorNameN": doctorNameN, + "ClinicID": clinicId == null ? null : clinicId, + "ClinicDescription": clinicDescription == null ? null : clinicDescription, + "ClinicDescriptionN": clinicDescriptionN, + "LicenseExpiry": licenseExpiry, + "EmploymentType": employmentType == null ? null : employmentType, + "SetupID": setupId, + "ProjectID": projectId == null ? null : projectId, + "ProjectName": projectName == null ? null : projectName, + "NationalityID": nationalityId == null ? null : nationalityId, + "NationalityName": nationalityName == null ? null : nationalityName, + "NationalityNameN": nationalityNameN, + "Gender": gender == null ? null : gender, + "Gender_Description": genderDescription == null ? null : genderDescription, + "Gender_DescriptionN": genderDescriptionN, + "DoctorTitle": doctorTitle, + "ProjectNameN": projectNameN, + "IsAllowWaitList": isAllowWaitList == null ? null : isAllowWaitList, + "Title_Description": titleDescription == null ? null : titleDescription, + "Title_DescriptionN": titleDescriptionN, + "IsRegistered": isRegistered, + "IsDoctorDummy": isDoctorDummy, + "IsActive": isActive == null ? null : isActive, + "IsDoctorAppointmentDisplayed": isDoctorAppointmentDisplayed, + "DoctorClinicActive": doctorClinicActive == null ? null : doctorClinicActive, + "IsbookingAllowed": isbookingAllowed, + "DoctorCases": doctorCases == null ? null : doctorCases, + "DoctorPicture": doctorPicture, + "DoctorProfileInfo": doctorProfileInfo == null ? null : doctorProfileInfo, + "Specialty": specialty == null ? null : List.from(specialty!.map((x) => x)), + "ActualDoctorRate": actualDoctorRate == null ? null : actualDoctorRate, + "ConsultationFee": consultationFee == null ? null : consultationFee, + "DecimalDoctorRate": decimalDoctorRate == null ? null : decimalDoctorRate, + "DoctorImageURL": doctorImageUrl == null ? null : doctorImageUrl, + "DoctorMobileNumber": doctorMobileNumber == null ? null : doctorMobileNumber, + "DoctorRate": doctorRate == null ? null : doctorRate, + "DoctorStarsRate": doctorStarsRate == null ? null : doctorStarsRate, + "DoctorTitleForProfile": doctorTitleForProfile == null ? null : doctorTitleForProfile, + "IsAppointmentAllowed": isAppointmentAllowed == null ? null : isAppointmentAllowed, + "IsDoctorHasPrePostImages": isDoctorHasPrePostImages == null ? null : isDoctorHasPrePostImages, + "NationalityFlagURL": nationalityFlagUrl == null ? null : nationalityFlagUrl, + "NoOfPatientsRate": noOfPatientsRate == null ? null : noOfPatientsRate, + "QR": qr == null ? null : qr, + "ServiceID": serviceId == null ? null : serviceId, + }; +} diff --git a/lib/model/login/imei_details_model.dart b/lib/model/login/imei_details_model.dart new file mode 100644 index 0000000..e2611a5 --- /dev/null +++ b/lib/model/login/imei_details_model.dart @@ -0,0 +1,128 @@ +class GetIMEIDetailsModel { + int? iD; + String? iMEI; + int? logInTypeID; + bool? outSA; + String? mobile; + dynamic identificationNo; + int? doctorID; + String? doctorName; + String? doctorNameN; + int? clinicID; + String? clinicDescription; + dynamic clinicDescriptionN; + int? projectID; + String? projectName; + String? genderDescription; + dynamic genderDescriptionN; + String? titleDescription; + dynamic titleDescriptionN; + dynamic zipCode; + String? createdOn; + dynamic createdBy; + String? editedOn; + dynamic editedBy; + bool? biometricEnabled; + dynamic preferredLanguage; + bool? isActive; + String? vidaAuthTokenID; + String? vidaRefreshTokenID; + String? password; + + GetIMEIDetailsModel( + {this.iD, + this.iMEI, + this.logInTypeID, + this.outSA, + this.mobile, + this.identificationNo, + this.doctorID, + this.doctorName, + this.doctorNameN, + this.clinicID, + this.clinicDescription, + this.clinicDescriptionN, + this.projectID, + this.projectName, + this.genderDescription, + this.genderDescriptionN, + this.titleDescription, + this.titleDescriptionN, + this.zipCode, + this.createdOn, + this.createdBy, + this.editedOn, + this.editedBy, + this.biometricEnabled, + this.preferredLanguage, + this.isActive, + this.vidaAuthTokenID, + this.vidaRefreshTokenID, + this.password}); + + GetIMEIDetailsModel.fromJson(Map json) { + iD = json['ID']; + iMEI = json['IMEI']; + logInTypeID = json['LogInTypeID']; + outSA = json['OutSA']; + mobile = json['Mobile']; + identificationNo = json['IdentificationNo']; + doctorID = json['DoctorID']; + doctorName = json['DoctorName']; + doctorNameN = json['DoctorNameN']; + clinicID = json['ClinicID']; + clinicDescription = json['ClinicDescription']; + clinicDescriptionN = json['ClinicDescriptionN']; + projectID = json['ProjectID']; + projectName = json['ProjectName']; + genderDescription = json['Gender_Description']; + genderDescriptionN = json['Gender_DescriptionN']; + titleDescription = json['Title_Description']; + titleDescriptionN = json['Title_DescriptionN']; + zipCode = json['ZipCode']; + createdOn = json['CreatedOn']; + createdBy = json['CreatedBy']; + editedOn = json['EditedOn']; + editedBy = json['EditedBy']; + biometricEnabled = json['BiometricEnabled']; + preferredLanguage = json['PreferredLanguage']; + isActive = json['IsActive']; + vidaAuthTokenID = json['VidaAuthTokenID']; + vidaRefreshTokenID = json['VidaRefreshTokenID']; + password = json['Password']; + } + + Map toJson() { + final Map data = new Map(); + data['ID'] = this.iD; + data['IMEI'] = this.iMEI; + data['LogInTypeID'] = this.logInTypeID; + data['OutSA'] = this.outSA; + data['Mobile'] = this.mobile; + data['IdentificationNo'] = this.identificationNo; + data['DoctorID'] = this.doctorID; + data['DoctorName'] = this.doctorName; + data['DoctorNameN'] = this.doctorNameN; + data['ClinicID'] = this.clinicID; + data['ClinicDescription'] = this.clinicDescription; + data['ClinicDescriptionN'] = this.clinicDescriptionN; + data['ProjectID'] = this.projectID; + data['ProjectName'] = this.projectName; + data['Gender_Description'] = this.genderDescription; + data['Gender_DescriptionN'] = this.genderDescriptionN; + data['Title_Description'] = this.titleDescription; + data['Title_DescriptionN'] = this.titleDescriptionN; + data['ZipCode'] = this.zipCode; + data['CreatedOn'] = this.createdOn; + data['CreatedBy'] = this.createdBy; + data['EditedOn'] = this.editedOn; + data['EditedBy'] = this.editedBy; + data['BiometricEnabled'] = this.biometricEnabled; + data['PreferredLanguage'] = this.preferredLanguage; + data['IsActive'] = this.isActive; + data['VidaAuthTokenID'] = this.vidaAuthTokenID; + data['VidaRefreshTokenID'] = this.vidaRefreshTokenID; + data['Password'] = this.password; + return data; + } +} diff --git a/lib/model/login/list_doctors_clinic_model.dart b/lib/model/login/list_doctors_clinic_model.dart new file mode 100644 index 0000000..96f1e80 --- /dev/null +++ b/lib/model/login/list_doctors_clinic_model.dart @@ -0,0 +1,35 @@ +class ListDoctorsClinicModel { + ListDoctorsClinicModel({ + this.setupId, + this.projectId, + this.doctorId, + this.clinicId, + this.isActive, + this.clinicName, + }); + + final dynamic setupId; + final int? projectId; + final int? doctorId; + final int? clinicId; + final bool? isActive; + final String? clinicName; + + factory ListDoctorsClinicModel.fromJson(Map json) => ListDoctorsClinicModel( + setupId: json["SetupID"], + projectId: json["ProjectID"] == null ? null : json["ProjectID"], + doctorId: json["DoctorID"] == null ? null : json["DoctorID"], + clinicId: json["ClinicID"] == null ? null : json["ClinicID"], + isActive: json["IsActive"] == null ? null : json["IsActive"], + clinicName: json["ClinicName"] == null ? null : json["ClinicName"], + ); + + Map toJson() => { + "SetupID": setupId, + "ProjectID": projectId == null ? null : projectId, + "DoctorID": doctorId == null ? null : doctorId, + "ClinicID": clinicId == null ? null : clinicId, + "IsActive": isActive == null ? null : isActive, + "ClinicName": clinicName == null ? null : clinicName, + }; +} diff --git a/lib/model/login/member_information_model.dart b/lib/model/login/member_information_model.dart new file mode 100644 index 0000000..a3f22c1 --- /dev/null +++ b/lib/model/login/member_information_model.dart @@ -0,0 +1,92 @@ +class MemberInformation { + MemberInformation({ + this.clinics, + this.doctorId, + this.email, + this.employeeId, + this.memberId, + this.memberName, + this.memberNameArabic, + this.preferredLanguage, + this.roles, + }); + + final List? clinics; + final int? doctorId; + final String? email; + final int? employeeId; + final int? memberId; + final dynamic memberName; + final dynamic memberNameArabic; + final String? preferredLanguage; + final List? roles; + + factory MemberInformation.fromJson(Map json) => MemberInformation( + clinics: json["clinics"] == null ? null : List.from(json["clinics"].map((x) => Clinic.fromJson(x))), + doctorId: json["doctorId"] == null ? null : json["doctorId"], + email: json["email"] == null ? null : json["email"], + employeeId: json["employeeId"] == null ? null : json["employeeId"], + memberId: json["memberId"] == null ? null : json["memberId"], + memberName: json["memberName"], + memberNameArabic: json["memberNameArabic"], + preferredLanguage: json["preferredLanguage"] == null ? null : json["preferredLanguage"], + roles: json["roles"] == null ? null : List.from(json["roles"].map((x) => Role.fromJson(x))), + ); + + Map toJson() => { + "clinics": clinics == null ? null : List.from(clinics!.map((x) => x.toJson())), + "doctorId": doctorId == null ? null : doctorId, + "email": email == null ? null : email, + "employeeId": employeeId == null ? null : employeeId, + "memberId": memberId == null ? null : memberId, + "memberName": memberName, + "memberNameArabic": memberNameArabic, + "preferredLanguage": preferredLanguage == null ? null : preferredLanguage, + "roles": roles == null ? null : List.from(roles!.map((x) => x.toJson())), + }; +} + + +class Clinic { + Clinic({ + this.defaultClinic, + this.id, + this.name, + }); + + final bool? defaultClinic; + final int? id; + final String? name; + + factory Clinic.fromJson(Map json) => Clinic( + defaultClinic: json["defaultClinic"] == null ? null : json["defaultClinic"], + id: json["id"] == null ? null : json["id"], + name: json["name"] == null ? null : json["name"], + ); + + Map toJson() => { + "defaultClinic": defaultClinic == null ? null : defaultClinic, + "id": id == null ? null : id, + "name": name == null ? null : name, + }; +} + +class Role { + Role({ + this.name, + this.roleId, + }); + + final String? name; + final int? roleId; + + factory Role.fromJson(Map json) => Role( + name: json["name"] == null ? null : json["name"], + roleId: json["roleId"] == null ? null : json["roleId"], + ); + + Map toJson() => { + "name": name == null ? null : name, + "roleId": roleId == null ? null : roleId, + }; +} diff --git a/lib/model/login/member_login_model.dart b/lib/model/login/member_login_model.dart new file mode 100644 index 0000000..3f896c4 --- /dev/null +++ b/lib/model/login/member_login_model.dart @@ -0,0 +1,259 @@ +// To parse this JSON data, do +// +// final memberLoginModel = memberLoginModelFromJson(jsonString); + +import 'dart:convert'; + +import 'package:hmg_nurses/classes/consts.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +MemberLoginModel memberLoginModelFromJson(String str) => MemberLoginModel.fromJson(json.decode(str)); + +String memberLoginModelToJson(MemberLoginModel data) => json.encode(data.toJson()); + +class MemberLoginModel { + MemberLoginModel({ + this.date, + this.languageId, + this.serviceName, + this.time, + this.androidLink, + this.authenticationTokenId, + this.data, + this.dataw, + this.dietType, + this.dietTypeId, + this.errorCode, + this.errorEndUserMessage, + this.errorEndUserMessageN, + this.errorMessage, + this.errorType, + this.foodCategory, + this.iosLink, + this.isAuthenticated, + this.mealOrderStatus, + this.mealType, + this.messageStatus, + this.numberOfResultRecords, + this.patientBlodType, + this.successMsg, + this.successMsgN, + this.vidaUpdatedResponse, + this.doctorHaveOneClinic, + this.doctorId, + this.erpSessionId, + this.listConsentMember, + this.listConsentMemberNew, + this.listDoctorProfile, + this.listDoctorsClinic, + this.listMemberInformation, + this.listModelDbConnect, + this.logInTokenId, + this.mobileNumber, + this.selectDeviceImeIbyImeiList, + this.userId, + this.zipCode, + this.isActiveCode, + this.isSmsSent, + }); + + final dynamic date; + final int? languageId; + final int? serviceName; + final dynamic time; + final dynamic androidLink; + final dynamic authenticationTokenId; + final dynamic data; + final bool? dataw; + final int? dietType; + final int? dietTypeId; + final dynamic errorCode; + final dynamic errorEndUserMessage; + final dynamic errorEndUserMessageN; + final dynamic errorMessage; + final int? errorType; + final int? foodCategory; + final dynamic iosLink; + final bool? isAuthenticated; + final int? mealOrderStatus; + final int? mealType; + final int? messageStatus; + final int? numberOfResultRecords; + final dynamic patientBlodType; + final dynamic successMsg; + final dynamic successMsgN; + final dynamic vidaUpdatedResponse; + final bool? doctorHaveOneClinic; + final int? doctorId; + final dynamic erpSessionId; + final dynamic listConsentMember; + final dynamic listConsentMemberNew; + final dynamic listDoctorProfile; + final dynamic listDoctorsClinic; + final List? listMemberInformation; + final dynamic listModelDbConnect; + final String? logInTokenId; + final String? mobileNumber; + final dynamic selectDeviceImeIbyImeiList; + final int? userId; + final String? zipCode; + final bool? isActiveCode; + final bool? isSmsSent; + + factory MemberLoginModel.fromJson(Map json) => MemberLoginModel( + date: json["Date"], + languageId: json["LanguageID"] == null ? null : json["LanguageID"], + serviceName: json["ServiceName"] == null ? null : json["ServiceName"], + time: json["Time"], + androidLink: json["AndroidLink"], + authenticationTokenId: json["AuthenticationTokenID"], + data: json["Data"], + dataw: json["Dataw"] == null ? null : json["Dataw"], + dietType: json["DietType"] == null ? null : json["DietType"], + dietTypeId: json["DietTypeID"] == null ? null : json["DietTypeID"], + errorCode: json["ErrorCode"], + errorEndUserMessage: json["ErrorEndUserMessage"], + errorEndUserMessageN: json["ErrorEndUserMessageN"], + errorMessage: json["ErrorMessage"], + errorType: json["ErrorType"] == null ? null : json["ErrorType"], + foodCategory: json["FoodCategory"] == null ? null : json["FoodCategory"], + iosLink: json["IOSLink"], + isAuthenticated: json["IsAuthenticated"] == null ? null : json["IsAuthenticated"], + mealOrderStatus: json["MealOrderStatus"] == null ? null : json["MealOrderStatus"], + mealType: json["MealType"] == null ? null : json["MealType"], + messageStatus: json["MessageStatus"] == null ? null : json["MessageStatus"], + numberOfResultRecords: json["NumberOfResultRecords"] == null ? null : json["NumberOfResultRecords"], + patientBlodType: json["PatientBlodType"], + successMsg: json["SuccessMsg"], + successMsgN: json["SuccessMsgN"], + vidaUpdatedResponse: json["VidaUpdatedResponse"], + doctorHaveOneClinic: json["DoctorHaveOneClinic"] == null ? null : json["DoctorHaveOneClinic"], + doctorId: json["DoctorID"] == null ? null : json["DoctorID"], + erpSessionId: json["ERP_SessionID"], + listConsentMember: json["List_Consent_Member"], + listConsentMemberNew: json["List_Consent_MemberNew"], + listDoctorProfile: json["List_DoctorProfile"], + listDoctorsClinic: json["List_DoctorsClinic"], + listMemberInformation: json["List_MemberInformation"] == null ? null : List.from(json["List_MemberInformation"].map((x) => ListMemberInformation.fromJson(x))), + listModelDbConnect: json["List_Model_DB_Connect"], + logInTokenId: json["LogInTokenID"] == null ? null : json["LogInTokenID"], + mobileNumber: json["MobileNumber"] == null ? null : json["MobileNumber"], + selectDeviceImeIbyImeiList: json["SELECTDeviceIMEIbyIMEI_List"], + userId: json["UserID"] == null ? null : json["UserID"], + zipCode: json["ZipCode"] == null ? null : json["ZipCode"], + isActiveCode: json["isActiveCode"] == null ? null : json["isActiveCode"], + isSmsSent: json["isSMSSent"] == null ? null : json["isSMSSent"], + ); + + Map toJson() => { + "Date": date, + "LanguageID": languageId == null ? null : languageId, + "ServiceName": serviceName == null ? null : serviceName, + "Time": time, + "AndroidLink": androidLink, + "AuthenticationTokenID": authenticationTokenId, + "Data": data, + "Dataw": dataw == null ? null : dataw, + "DietType": dietType == null ? null : dietType, + "DietTypeID": dietTypeId == null ? null : dietTypeId, + "ErrorCode": errorCode, + "ErrorEndUserMessage": errorEndUserMessage, + "ErrorEndUserMessageN": errorEndUserMessageN, + "ErrorMessage": errorMessage, + "ErrorType": errorType == null ? null : errorType, + "FoodCategory": foodCategory == null ? null : foodCategory, + "IOSLink": iosLink, + "IsAuthenticated": isAuthenticated == null ? null : isAuthenticated, + "MealOrderStatus": mealOrderStatus == null ? null : mealOrderStatus, + "MealType": mealType == null ? null : mealType, + "MessageStatus": messageStatus == null ? null : messageStatus, + "NumberOfResultRecords": numberOfResultRecords == null ? null : numberOfResultRecords, + "PatientBlodType": patientBlodType, + "SuccessMsg": successMsg, + "SuccessMsgN": successMsgN, + "VidaUpdatedResponse": vidaUpdatedResponse, + "DoctorHaveOneClinic": doctorHaveOneClinic == null ? null : doctorHaveOneClinic, + "DoctorID": doctorId == null ? null : doctorId, + "ERP_SessionID": erpSessionId, + "List_Consent_Member": listConsentMember, + "List_Consent_MemberNew": listConsentMemberNew, + "List_DoctorProfile": listDoctorProfile, + "List_DoctorsClinic": listDoctorsClinic, + "List_MemberInformation": listMemberInformation == null ? null : List.from(listMemberInformation!.map((x) => x.toJson())), + "List_Model_DB_Connect": listModelDbConnect, + "LogInTokenID": logInTokenId == null ? null : logInTokenId, + "MobileNumber": mobileNumber == null ? null : mobileNumber, + "SELECTDeviceIMEIbyIMEI_List": selectDeviceImeIbyImeiList, + "UserID": userId == null ? null : userId, + "ZipCode": zipCode == null ? null : zipCode, + "isActiveCode": isActiveCode == null ? null : isActiveCode, + "isSMSSent": isSmsSent == null ? null : isSmsSent, + }; + + static Future getFromPrefs() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + String decodedJson = prefs.getString(SharedPrefsConsts.memberModel) ?? ""; + return MemberLoginModel.fromJson(jsonDecode(decodedJson)); + } + + static void saveToPrefs(String json) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + await prefs.setString(SharedPrefsConsts.memberModel, json); + } +} + +class ListMemberInformation { + ListMemberInformation({ + this.setupId, + this.memberId, + this.memberName, + this.memberNameN, + this.preferredLang, + this.pin, + this.saltHash, + this.referenceId, + this.employeeId, + this.roleId, + this.projectid, + }); + + final dynamic setupId; + final int? memberId; + final String? memberName; + final dynamic memberNameN; + final String? preferredLang; + final dynamic pin; + final dynamic saltHash; + final int? referenceId; + final int? employeeId; + final int? roleId; + final int? projectid; + + factory ListMemberInformation.fromJson(Map json) => ListMemberInformation( + setupId: json["SetupID"], + memberId: json["MemberID"] == null ? null : json["MemberID"], + memberName: json["MemberName"] == null ? null : json["MemberName"], + memberNameN: json["MemberNameN"], + preferredLang: json["PreferredLang"] == null ? null : json["PreferredLang"], + pin: json["PIN"], + saltHash: json["SaltHash"], + referenceId: json["ReferenceID"] == null ? null : json["ReferenceID"], + employeeId: json["EmployeeID"] == null ? null : json["EmployeeID"], + roleId: json["RoleID"] == null ? null : json["RoleID"], + projectid: json["projectid"] == null ? null : json["projectid"], + ); + + Map toJson() => { + "SetupID": setupId, + "MemberID": memberId == null ? null : memberId, + "MemberName": memberName == null ? null : memberName, + "MemberNameN": memberNameN, + "PreferredLang": preferredLang == null ? null : preferredLang, + "PIN": pin, + "SaltHash": saltHash, + "ReferenceID": referenceId == null ? null : referenceId, + "EmployeeID": employeeId == null ? null : employeeId, + "RoleID": roleId == null ? null : roleId, + "projectid": projectid == null ? null : projectid, + }; +} diff --git a/lib/model/login/project_info_model.dart b/lib/model/login/project_info_model.dart new file mode 100644 index 0000000..c8168f0 --- /dev/null +++ b/lib/model/login/project_info_model.dart @@ -0,0 +1,23 @@ +class ProjectInfoModel { + ProjectInfoModel({ + this.facilityGroupId, + this.facilityId, + this.facilityName, + }); + + final String? facilityGroupId; + final int? facilityId; + final String? facilityName; + + factory ProjectInfoModel.fromJson(Map json) => ProjectInfoModel( + facilityGroupId: json["facilityGroupId"] == null ? null : json["facilityGroupId"], + facilityId: json["facilityId"] == null ? null : json["facilityId"], + facilityName: json["facilityName"] == null ? null : json["facilityName"], + ); + + Map toJson() => { + "facilityGroupId": facilityGroupId == null ? null : facilityGroupId, + "facilityId": facilityId == null ? null : facilityId, + "facilityName": facilityName == null ? null : facilityName, + }; +} diff --git a/lib/model/patient/list_doctor_patient_vital_sign.dart b/lib/model/patient/list_doctor_patient_vital_sign.dart new file mode 100644 index 0000000..5013742 --- /dev/null +++ b/lib/model/patient/list_doctor_patient_vital_sign.dart @@ -0,0 +1,191 @@ +class ListDoctorPatientVitalSign { + ListDoctorPatientVitalSign({ + this.transNo, + this.projectId, + this.weightKg, + this.heightCm, + this.temperatureCelcius, + this.pulseBeatPerMinute, + this.respirationBeatPerMinute, + this.bloodPressureLower, + this.bloodPressureHigher, + this.sao2, + this.fio2, + this.painScore, + this.bodyMassIndex, + this.headCircumCm, + this.leanBodyWeightLbs, + this.idealBodyWeightLbs, + this.temperatureCelciusMethod, + this.pulseRhythm, + this.respirationPattern, + this.bloodPressureCuffLocation, + this.bloodPressureCuffSize, + this.bloodPressurePatientPosition, + this.painLocation, + this.painDuration, + this.painCharacter, + this.painFrequency, + this.isPainManagementDone, + this.status, + this.isVitalsRequired, + this.patientId, + this.createdOn, + this.doctorId, + this.clinicId, + this.triageCategory, + this.gcScore, + this.lineItemNo, + this.vitalSignDate, + this.actualTimeTaken, + this.sugarLevel, + this.fbs, + this.rbs, + this.observationType, + this.heartRate, + this.muscleTone, + this.reflexIrritability, + this.bodyColor, + this.isFirstAssessment, + this.dateofBirth, + this.timeOfBirth, + this.bloodPressure, + this.bloodPressureCuffLocationDesc, + this.bloodPressureCuffSizeDesc, + this.bloodPressurePatientPositionDesc, + this.clinicName, + this.doctorImageUrl, + this.doctorName, + this.painScoreDesc, + this.pulseRhythmDesc, + this.respirationPatternDesc, + this.temperatureCelciusMethodDesc, + this.time, + }); + + final int? transNo; + final dynamic projectId; + final double? weightKg; + final double? heightCm; + final double? temperatureCelcius; + final int? pulseBeatPerMinute; + final int? respirationBeatPerMinute; + final int? bloodPressureLower; + final int? bloodPressureHigher; + final int? sao2; + final int? fio2; + final dynamic painScore; + final double? bodyMassIndex; + final int? headCircumCm; + final int? leanBodyWeightLbs; + final int? idealBodyWeightLbs; + final int? temperatureCelciusMethod; + final int? pulseRhythm; + final int? respirationPattern; + final dynamic bloodPressureCuffLocation; + final dynamic bloodPressureCuffSize; + final dynamic bloodPressurePatientPosition; + final String? painLocation; + final String? painDuration; + final String? painCharacter; + final String? painFrequency; + final bool? isPainManagementDone; + final int? status; + final bool? isVitalsRequired; + final int? patientId; + final String? createdOn; + final int? doctorId; + final int? clinicId; + final dynamic triageCategory; + final dynamic gcScore; + final dynamic lineItemNo; + final dynamic vitalSignDate; + final dynamic actualTimeTaken; + final dynamic sugarLevel; + final dynamic fbs; + final dynamic rbs; + final dynamic observationType; + final dynamic heartRate; + final dynamic muscleTone; + final dynamic reflexIrritability; + final dynamic bodyColor; + final dynamic isFirstAssessment; + final dynamic dateofBirth; + final dynamic timeOfBirth; + final String? bloodPressure; + final String? bloodPressureCuffLocationDesc; + final String? bloodPressureCuffSizeDesc; + final String? bloodPressurePatientPositionDesc; + final String? clinicName; + final String? doctorImageUrl; + final String? doctorName; + final String? painScoreDesc; + final String? pulseRhythmDesc; + final String? respirationPatternDesc; + final String? temperatureCelciusMethodDesc; + final dynamic time; + + factory ListDoctorPatientVitalSign.fromJson(Map json) => ListDoctorPatientVitalSign( + transNo: json["TransNo"] == null ? null : json["TransNo"], + projectId: json["ProjectID"], + weightKg: json["WeightKg"] == null ? null : json["WeightKg"].toDouble(), + heightCm: json["HeightCm"] == null ? null : json["HeightCm"].toDouble(), + temperatureCelcius: json["TemperatureCelcius"] == null ? null : json["TemperatureCelcius"].toDouble(), + pulseBeatPerMinute: json["PulseBeatPerMinute"] == null ? null : json["PulseBeatPerMinute"], + respirationBeatPerMinute: json["RespirationBeatPerMinute"] == null ? null : json["RespirationBeatPerMinute"], + bloodPressureLower: json["BloodPressureLower"] == null ? null : json["BloodPressureLower"], + bloodPressureHigher: json["BloodPressureHigher"] == null ? null : json["BloodPressureHigher"], + sao2: json["SAO2"] == null ? null : json["SAO2"], + fio2: json["FIO2"] == null ? null : json["FIO2"], + painScore: json["PainScore"], + bodyMassIndex: json["BodyMassIndex"] == null ? null : json["BodyMassIndex"].toDouble(), + headCircumCm: json["HeadCircumCm"] == null ? null : json["HeadCircumCm"], + leanBodyWeightLbs: json["LeanBodyWeightLbs"] == null ? null : json["LeanBodyWeightLbs"], + idealBodyWeightLbs: json["IdealBodyWeightLbs"] == null ? null : json["IdealBodyWeightLbs"], + temperatureCelciusMethod: json["TemperatureCelciusMethod"] == null ? null : json["TemperatureCelciusMethod"], + pulseRhythm: json["PulseRhythm"] == null ? null : json["PulseRhythm"], + respirationPattern: json["RespirationPattern"] == null ? null : json["RespirationPattern"], + bloodPressureCuffLocation: json["BloodPressureCuffLocation"], + bloodPressureCuffSize: json["BloodPressureCuffSize"], + bloodPressurePatientPosition: json["BloodPressurePatientPosition"], + painLocation: json["PainLocation"] == null ? null : json["PainLocation"], + painDuration: json["PainDuration"] == null ? null : json["PainDuration"], + painCharacter: json["PainCharacter"] == null ? null : json["PainCharacter"], + painFrequency: json["PainFrequency"] == null ? null : json["PainFrequency"], + isPainManagementDone: json["IsPainManagementDone"] == null ? null : json["IsPainManagementDone"], + status: json["Status"] == null ? null : json["Status"], + isVitalsRequired: json["IsVitalsRequired"] == null ? null : json["IsVitalsRequired"], + patientId: json["PatientID"] == null ? null : json["PatientID"], + createdOn: json["CreatedOn"] == null ? null : json["CreatedOn"], + doctorId: json["DoctorID"] == null ? null : json["DoctorID"], + clinicId: json["ClinicID"] == null ? null : json["ClinicID"], + triageCategory: json["TriageCategory"], + gcScore: json["GCScore"], + lineItemNo: json["LineItemNo"], + vitalSignDate: json["VitalSignDate"], + actualTimeTaken: json["ActualTimeTaken"], + sugarLevel: json["SugarLevel"], + fbs: json["FBS"], + rbs: json["RBS"], + observationType: json["ObservationType"], + heartRate: json["HeartRate"], + muscleTone: json["MuscleTone"], + reflexIrritability: json["ReflexIrritability"], + bodyColor: json["BodyColor"], + isFirstAssessment: json["IsFirstAssessment"], + dateofBirth: json["DateofBirth"], + timeOfBirth: json["TimeOfBirth"], + bloodPressure: json["BloodPressure"] == null ? null : json["BloodPressure"], + bloodPressureCuffLocationDesc: json["BloodPressureCuffLocationDesc"] == null ? null : json["BloodPressureCuffLocationDesc"], + bloodPressureCuffSizeDesc: json["BloodPressureCuffSizeDesc"] == null ? null : json["BloodPressureCuffSizeDesc"], + bloodPressurePatientPositionDesc: json["BloodPressurePatientPositionDesc"] == null ? null : json["BloodPressurePatientPositionDesc"], + clinicName: json["ClinicName"] == null ? null : json["ClinicName"], + doctorImageUrl: json["DoctorImageURL"] == null ? null : json["DoctorImageURL"], + doctorName: json["DoctorName"] == null ? null : json["DoctorName"], + painScoreDesc: json["PainScoreDesc"] == null ? null : json["PainScoreDesc"], + pulseRhythmDesc: json["PulseRhythmDesc"] == null ? null : json["PulseRhythmDesc"], + respirationPatternDesc: json["RespirationPatternDesc"] == null ? null : json["RespirationPatternDesc"], + temperatureCelciusMethodDesc: json["TemperatureCelciusMethodDesc"] == null ? null : json["TemperatureCelciusMethodDesc"], + time: json["Time"], + ); +} diff --git a/lib/model/patient/patient_file_information_prm_list.dart b/lib/model/patient/patient_file_information_prm_list.dart new file mode 100644 index 0000000..738cc5b --- /dev/null +++ b/lib/model/patient/patient_file_information_prm_list.dart @@ -0,0 +1,242 @@ +class GetPatientFileInformationPrmList { + GetPatientFileInformationPrmList({ + this.patientId, + this.setupId, + this.patientType, + this.firstName, + this.middleName, + this.lastName, + this.firstNameN, + this.middleNameN, + this.lastNameN, + this.gender, + this.dateofBirth, + this.dateofBirthN, + this.nationalityId, + this.phoneResi, + this.phoneOffice, + this.mobileNumber, + this.faxNumber, + this.emailAddress, + this.isEmailAlertRequired, + this.isSmsAlertRequired, + this.preferredLanguage, + this.emergencyContactName, + this.emergencyContactNo, + this.patientIdentificationType, + this.patientIdentificationNo, + this.projectId, + this.receiveHealthSummaryReport, + this.noShowCount, + this.isPatientHasMobileDeviceToken, + this.editedBy, + this.isIvrStopped, + this.crsClientIdentifierId, + this.crsVerificationStatus, + this.crsVerifiedBy, + this.crsVerificationStatusDesc, + this.crsVerificationStatusDescN, + this.numberPosition, + this.status, + this.isPrivilegedMember, + this.address, + this.age, + this.emaiLAddress, + this.genderDescription, + this.genderImage, + this.isPatientDataVerified, + this.isPatientPrivilegedMember, + this.nationalityDescription, + this.nationalityFlagUrl, + this.poBox, + this.patientDataVerified, + this.patientName, + this.patientTypeDescription, + this.patientTypeDescriptionN, + this.statusDscription, + this.tempAddress, + this.upcomingAppointmentsNumber, + this.zipCode, + this.patientStatusType, + }); + + final int? patientId; + final String? setupId; + final int? patientType; + final String? firstName; + final String? middleName; + final String? lastName; + final String? firstNameN; + final String? middleNameN; + final String? lastNameN; + final int? gender; + final String? dateofBirth; + final String? dateofBirthN; + final String? nationalityId; + final String? phoneResi; + final String? phoneOffice; + final String? mobileNumber; + final String? faxNumber; + final String? emailAddress; + final bool? isEmailAlertRequired; + final bool? isSmsAlertRequired; + final String? preferredLanguage; + final String? emergencyContactName; + final String? emergencyContactNo; + final int? patientIdentificationType; + final String? patientIdentificationNo; + final int? projectId; + final bool? receiveHealthSummaryReport; + final int? noShowCount; + final bool? isPatientHasMobileDeviceToken; + final int? editedBy; + final dynamic isIvrStopped; + final dynamic crsClientIdentifierId; + final dynamic crsVerificationStatus; + final dynamic crsVerifiedBy; + final dynamic crsVerificationStatusDesc; + final dynamic crsVerificationStatusDescN; + final int? numberPosition; + final int? status; + final dynamic isPrivilegedMember; + final dynamic address; + final int? age; + final String? emaiLAddress; + final String? genderDescription; + final String? genderImage; + final bool? isPatientDataVerified; + final bool? isPatientPrivilegedMember; + final String? nationalityDescription; + final String? nationalityFlagUrl; + final dynamic poBox; + final int? patientDataVerified; + final String? patientName; + final String? patientTypeDescription; + final dynamic patientTypeDescriptionN; + final String? statusDscription; + final dynamic tempAddress; + final int? upcomingAppointmentsNumber; + final String? zipCode; + final int? patientStatusType; + + factory GetPatientFileInformationPrmList.fromJson(Map json) => GetPatientFileInformationPrmList( + patientId: json["PatientID"] == null ? null : json["PatientID"], + setupId: json["SetupID"] == null ? null : json["SetupID"], + patientType: json["PatientType"] == null ? null : json["PatientType"], + firstName: json["FirstName"] == null ? null : json["FirstName"], + middleName: json["MiddleName"] == null ? null : json["MiddleName"], + lastName: json["LastName"] == null ? null : json["LastName"], + firstNameN: json["FirstNameN"] == null ? null : json["FirstNameN"], + middleNameN: json["MiddleNameN"] == null ? null : json["MiddleNameN"], + lastNameN: json["LastNameN"] == null ? null : json["LastNameN"], + gender: json["Gender"] == null ? null : json["Gender"], + dateofBirth: json["DateofBirth"] == null ? null : json["DateofBirth"], + dateofBirthN: json["DateofBirthN"] == null ? null : json["DateofBirthN"], + nationalityId: json["NationalityID"] == null ? null : json["NationalityID"], + phoneResi: json["PhoneResi"] == null ? null : json["PhoneResi"], + phoneOffice: json["PhoneOffice"] == null ? null : json["PhoneOffice"], + mobileNumber: json["MobileNumber"] == null ? null : json["MobileNumber"], + faxNumber: json["FaxNumber"] == null ? null : json["FaxNumber"], + emailAddress: json["EmailAddress"] == null ? null : json["EmailAddress"], + isEmailAlertRequired: json["IsEmailAlertRequired"] == null ? null : json["IsEmailAlertRequired"], + isSmsAlertRequired: json["IsSMSAlertRequired"] == null ? null : json["IsSMSAlertRequired"], + preferredLanguage: json["PreferredLanguage"] == null ? null : json["PreferredLanguage"], + emergencyContactName: json["EmergencyContactName"] == null ? null : json["EmergencyContactName"], + emergencyContactNo: json["EmergencyContactNo"] == null ? null : json["EmergencyContactNo"], + patientIdentificationType: json["PatientIdentificationType"] == null ? null : json["PatientIdentificationType"], + patientIdentificationNo: json["PatientIdentificationNo"] == null ? null : json["PatientIdentificationNo"], + projectId: json["ProjectID"] == null ? null : json["ProjectID"], + receiveHealthSummaryReport: json["ReceiveHealthSummaryReport"] == null ? null : json["ReceiveHealthSummaryReport"], + noShowCount: json["NoShowCount"] == null ? null : json["NoShowCount"], + isPatientHasMobileDeviceToken: json["IsPatientHasMobileDeviceToken"] == null ? null : json["IsPatientHasMobileDeviceToken"], + editedBy: json["EditedBy"] == null ? null : json["EditedBy"], + isIvrStopped: json["IsIVRStopped"], + crsClientIdentifierId: json["CRSClientIdentifierID"], + crsVerificationStatus: json["CRSVerificationStatus"], + crsVerifiedBy: json["CRSVerifiedBy"], + crsVerificationStatusDesc: json["CRSVerificationStatusDesc"], + crsVerificationStatusDescN: json["CRSVerificationStatusDescN"], + numberPosition: json["NumberPosition"] == null ? null : json["NumberPosition"], + status: json["Status"] == null ? null : json["Status"], + isPrivilegedMember: json["IsPrivilegedMember"], + address: json["Address"], + age: json["Age"] == null ? null : json["Age"], + emaiLAddress: json["EmaiLAddress"] == null ? null : json["EmaiLAddress"], + genderDescription: json["GenderDescription"] == null ? null : json["GenderDescription"], + genderImage: json["GenderImage"] == null ? null : json["GenderImage"], + isPatientDataVerified: json["IsPatientDataVerified"] == null ? null : json["IsPatientDataVerified"], + isPatientPrivilegedMember: json["IsPatientPrivilegedMember"] == null ? null : json["IsPatientPrivilegedMember"], + nationalityDescription: json["NationalityDescription"] == null ? null : json["NationalityDescription"], + nationalityFlagUrl: json["NationalityFlagURL"] == null ? null : json["NationalityFlagURL"], + poBox: json["POBox"], + patientDataVerified: json["PatientDataVerified"] == null ? null : json["PatientDataVerified"], + patientName: json["PatientName"] == null ? null : json["PatientName"], + patientTypeDescription: json["PatientTypeDescription"] == null ? null : json["PatientTypeDescription"], + patientTypeDescriptionN: json["PatientTypeDescriptionN"], + statusDscription: json["StatusDscription"] == null ? null : json["StatusDscription"], + tempAddress: json["TempAddress"], + upcomingAppointmentsNumber: json["UpcomingAppointmentsNumber"] == null ? null : json["UpcomingAppointmentsNumber"], + zipCode: json["ZipCode"] == null ? null : json["ZipCode"], + patientStatusType: json["patientStatusType"] ?? json["PatientStatusType"], + ); + + Map toJson() => { + "PatientID": patientId == null ? null : patientId, + "SetupID": setupId == null ? null : setupId, + "PatientType": patientType == null ? null : patientType, + "FirstName": firstName == null ? null : firstName, + "MiddleName": middleName == null ? null : middleName, + "LastName": lastName == null ? null : lastName, + "FirstNameN": firstNameN == null ? null : firstNameN, + "MiddleNameN": middleNameN == null ? null : middleNameN, + "LastNameN": lastNameN == null ? null : lastNameN, + "Gender": gender == null ? null : gender, + "DateofBirth": dateofBirth == null ? null : dateofBirth, + "DateofBirthN": dateofBirthN == null ? null : dateofBirthN, + "NationalityID": nationalityId == null ? null : nationalityId, + "PhoneResi": phoneResi == null ? null : phoneResi, + "PhoneOffice": phoneOffice == null ? null : phoneOffice, + "MobileNumber": mobileNumber == null ? null : mobileNumber, + "FaxNumber": faxNumber == null ? null : faxNumber, + "EmailAddress": emailAddress == null ? null : emailAddress, + "IsEmailAlertRequired": isEmailAlertRequired == null ? null : isEmailAlertRequired, + "IsSMSAlertRequired": isSmsAlertRequired == null ? null : isSmsAlertRequired, + "PreferredLanguage": preferredLanguage == null ? null : preferredLanguage, + "EmergencyContactName": emergencyContactName == null ? null : emergencyContactName, + "EmergencyContactNo": emergencyContactNo == null ? null : emergencyContactNo, + "PatientIdentificationType": patientIdentificationType == null ? null : patientIdentificationType, + "PatientIdentificationNo": patientIdentificationNo == null ? null : patientIdentificationNo, + "ProjectID": projectId == null ? null : projectId, + "ReceiveHealthSummaryReport": receiveHealthSummaryReport == null ? null : receiveHealthSummaryReport, + "NoShowCount": noShowCount == null ? null : noShowCount, + "IsPatientHasMobileDeviceToken": isPatientHasMobileDeviceToken == null ? null : isPatientHasMobileDeviceToken, + "EditedBy": editedBy == null ? null : editedBy, + "IsIVRStopped": isIvrStopped, + "CRSClientIdentifierID": crsClientIdentifierId, + "CRSVerificationStatus": crsVerificationStatus, + "CRSVerifiedBy": crsVerifiedBy, + "CRSVerificationStatusDesc": crsVerificationStatusDesc, + "CRSVerificationStatusDescN": crsVerificationStatusDescN, + "NumberPosition": numberPosition == null ? null : numberPosition, + "Status": status == null ? null : status, + "IsPrivilegedMember": isPrivilegedMember, + "Address": address, + "Age": age == null ? null : age, + "EmaiLAddress": emaiLAddress == null ? null : emaiLAddress, + "GenderDescription": genderDescription == null ? null : genderDescription, + "GenderImage": genderImage == null ? null : genderImage, + "IsPatientDataVerified": isPatientDataVerified == null ? null : isPatientDataVerified, + "IsPatientPrivilegedMember": isPatientPrivilegedMember == null ? null : isPatientPrivilegedMember, + "NationalityDescription": nationalityDescription == null ? null : nationalityDescription, + "NationalityFlagURL": nationalityFlagUrl == null ? null : nationalityFlagUrl, + "POBox": poBox, + "PatientDataVerified": patientDataVerified == null ? null : patientDataVerified, + "PatientName": patientName == null ? null : patientName, + "PatientTypeDescription": patientTypeDescription == null ? null : patientTypeDescription, + "PatientTypeDescriptionN": patientTypeDescriptionN, + "StatusDscription": statusDscription == null ? null : statusDscription, + "TempAddress": tempAddress, + "UpcomingAppointmentsNumber": upcomingAppointmentsNumber == null ? null : upcomingAppointmentsNumber, + "ZipCode": zipCode == null ? null : zipCode, + }; +} diff --git a/lib/model/patient_profile_card_model.dart b/lib/model/patient_profile_card_model.dart new file mode 100644 index 0000000..8e0cc6d --- /dev/null +++ b/lib/model/patient_profile_card_model.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; + +class PatientProfileCardModel { + final String nameLine1; + final String nameLine2; + final dynamic route; + final String icon; + final bool isInPatient; + final bool isDisable; + final bool isLoading; + final Function? onTap; + final bool isDischargedPatient; + final bool isSelectInpatient; + final bool isDartIcon; + final IconData? dartIcon; + final Color? color; + + PatientProfileCardModel( + this.nameLine1, + this.nameLine2, + this.route, + this.icon, { + this.isInPatient = false, + this.isDisable = false, + this.isLoading = false, + this.onTap, + this.isDischargedPatient = false, + this.isSelectInpatient = false, + this.isDartIcon = false, + this.dartIcon, + this.color, + }); +} diff --git a/lib/base/base_vm.dart b/lib/provider/base_vm.dart similarity index 85% rename from lib/base/base_vm.dart rename to lib/provider/base_vm.dart index bb5383b..c8f0d4d 100644 --- a/lib/base/base_vm.dart +++ b/lib/provider/base_vm.dart @@ -12,10 +12,12 @@ class BaseViewModel extends ChangeNotifier { String error = ""; //TODO add the user login model when we need it + void setOnlyState(ViewState viewState) { + _state = viewState; + } void setState(ViewState viewState) { _state = viewState; - notifyListeners(); } diff --git a/lib/provider/dashboard_provider_model.dart b/lib/provider/dashboard_provider_model.dart index 17fc99f..f06f46a 100644 --- a/lib/provider/dashboard_provider_model.dart +++ b/lib/provider/dashboard_provider_model.dart @@ -1,16 +1,35 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:hmg_nurses/model/base/generic_response_model2.dart'; +import 'package:hmg_nurses/provider/base_vm.dart'; +import 'package:hmg_nurses/services/api_repo/dashboard_api_repo.dart'; +import 'package:injector/injector.dart'; + +import '../classes/utils.dart'; +import '../main.dart'; /// Mix-in [DiagnosticableTreeMixin] to have access to [debugFillProperties] for the devtool // ignore: prefer_mixin -class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin { - //Attendance Tracking - bool isAttendanceTrackingLoading = true; - int endTime = 0, isTimeRemainingInSeconds = 0; - double progress = 0.0; +class DashboardProviderModel extends BaseViewModel { + final IDashboardApiRepo _loginApiRepo = Injector.appInstance.get(); + + Future getDocProfile() async { + try { + Utils.showLoading(); - void notify() { - notifyListeners(); + // Utils.showToast(deviceInfo.length.toString()); + GenericResponseModel2 docProfileModel = await _loginApiRepo.getDoctorProfile(); + appState.doctorProfile = docProfileModel; + await _loginApiRepo.insertDoctorProfile(); + Utils.hideLoading(); + return docProfileModel; + } catch (e) { + Utils.hideLoading(); + Utils.handleException(e, navigatorKey.currentContext!, (msg) { + Utils.confirmDialog(navigatorKey.currentContext!, msg); + }); + } + return null; } } diff --git a/lib/provider/helper/provider_helper.dart b/lib/provider/helper/provider_helper.dart new file mode 100644 index 0000000..9981f63 --- /dev/null +++ b/lib/provider/helper/provider_helper.dart @@ -0,0 +1,46 @@ +import 'package:flutter/widgets.dart'; + +enum _Action { + increment, + decrement, +} + +class MyStore extends ValueNotifier { + MyStore() : super(0); + + void increment() => value++; + + void decrement() => value--; +} + +class Bar {} + +class Initial implements Bar {} + +class Loading implements Bar {} + +class Error implements Bar { + Error(this.err); + + final Object err; +} + +class Loaded implements Bar { + Loaded(this.value); + + final int value; +} + +class Foo extends ValueNotifier { + Foo() : super(Initial()); + + Future fetch() async { + value = Loading(); + try { + final result = await Future.delayed(Duration(seconds: 1)); + value = Loaded(result); + } catch (err) { + value = Error(err); + } + } +} diff --git a/lib/provider/login_provider_model.dart b/lib/provider/login_provider_model.dart new file mode 100644 index 0000000..0efefeb --- /dev/null +++ b/lib/provider/login_provider_model.dart @@ -0,0 +1,289 @@ +import 'dart:convert'; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:hmg_nurses/classes/consts.dart'; +import 'package:hmg_nurses/classes/enums.dart'; +import 'package:hmg_nurses/classes/utils.dart'; +import 'package:hmg_nurses/config/routes.dart'; +import 'package:hmg_nurses/generated/locale_keys.g.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/base/generic_response_model.dart'; +import 'package:hmg_nurses/model/base/generic_response_model2.dart'; +import 'package:hmg_nurses/model/base/post_params_model.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; +import 'package:hmg_nurses/model/login/member_login_model.dart'; +import 'package:hmg_nurses/model/login/project_info_model.dart'; +import 'package:hmg_nurses/provider/base_vm.dart'; +import 'package:hmg_nurses/services/api_repo/login_api_repo.dart'; +import 'package:hmg_nurses/widgets/dialogs/otp_dialog.dart'; +import 'package:http/http.dart'; +import 'package:injector/injector.dart'; +import 'package:local_auth/auth_strings.dart'; +import 'package:local_auth/local_auth.dart'; + +class LoginProviderModel extends BaseViewModel { + //UI variables + late LocalAuthentication auth; + late bool isFaceBioAvailable, isFingerBioAvailable; + late List _availableBiometrics; + + //API's variables + late List assignedBranches; + final ILoginApiRepo _loginApiRepo = Injector.appInstance.get(); + + LoginProviderModel() { + setOnlyState(ViewState.hide); + checkBiosAvailblity(); + } + + checkBiosAvailblity() async { + auth = LocalAuthentication(); + await _getAvailableBiometrics(); + isFaceBioAvailable = checkBiometricIsAvailable(BiometricType.face); + isFingerBioAvailable = checkBiometricIsAvailable(BiometricType.fingerprint); + } + + /// check specific biometric if it available or not + bool checkBiometricIsAvailable(BiometricType biometricType) { + bool isAvailable = false; + for (int i = 0; i < _availableBiometrics.length; i++) { + if (biometricType == _availableBiometrics[i]) { + isAvailable = true; + break; + } + } + return isAvailable; + } + + /// get all available biometric on the device for local Auth service + Future _getAvailableBiometrics() async { + try { + _availableBiometrics = await auth.getAvailableBiometrics(); + print(_availableBiometrics); + } on PlatformException catch (e) { + // AppToast.showErrorToast(message: e.message); + print("_getAvailableBiometrics"); + print(e); + } + } + + Future loginWithFaceIDAndBiometrics() async { + IOSAuthMessages iosStrings = + const IOSAuthMessages(cancelButton: 'cancel', goToSettingsButton: 'settings', goToSettingsDescription: 'Please set up your Touch ID.', lockOut: 'Please re-enable your Touch ID'); + bool authenticated = false; + try { + authenticated = await auth.authenticate(localizedReason: 'Scan your fingerprint to authenticate', useErrorDialogs: true, stickyAuth: true, biometricOnly: true, iOSAuthStrings: iosStrings); + } on PlatformException catch (e) { + print(e); + Utils.showToast("Please enable your Touch or Face ID"); + } + return authenticated; + } + + int getLoginMethodId(AuthMethodTypes authMethodTypes) { + switch (authMethodTypes) { + case AuthMethodTypes.sms: + return 1; + case AuthMethodTypes.whatsApp: + return 2; + case AuthMethodTypes.fingerPrint: + return 3; + case AuthMethodTypes.faceID: + return 4; + default: + return 1; + } + } + + String getType(type) { + switch (type) { + case 1: + return LocaleKeys.sms.tr(); + case 3: + return LocaleKeys.fingerPrint.tr(); + case 4: + return LocaleKeys.face.tr(); + case 2: + return LocaleKeys.whatsapp.tr(); + default: + return LocaleKeys.sms.tr(); + } + } + + // LoginType getDirectLoginType(type) { + // switch (type) { + // case 1: + // return LoginType.DIRECT_LOGIN; + // case 3: + // return LocaleKeys.fingerPrint.tr(); + // case 4: + // return LocaleKeys.face.tr(); + // case 2: + // return LocaleKeys.whatsapp.tr(); + // default: + // return LocaleKeys.sms.tr(); + // } + // } + + //API Calls + checkLastSession() async { + try { + Utils.showLoading(); + List deviceInfo = await _loginApiRepo.getDeviceInfoByIMEI(); + if (deviceInfo.isNotEmpty) getSession(deviceInfo.first); + Utils.showToast(deviceInfo.length.toString()); + Utils.hideLoading(); + } catch (e) { + Utils.hideLoading(); + } + } + + getAssignedBranches(String userId) async { + setState(ViewState.busy); + assignedBranches = await _loginApiRepo.getProjectInfo(userId); + print(assignedBranches.length); + setState(ViewState.idle); + } + + Future performLogin(String userID, String password, int branchId) async { + try { + Utils.showLoading(); + MemberLoginModel memberLogin = await _loginApiRepo.memberLogin(userID, password, branchId); + // Utils.showToast(deviceInfo.length.toString()); + appState.memberBeforeLogin = memberLogin; + appState.projectID = branchId; + appState.logInTokenID = memberLogin.logInTokenId; + appState.lastLoginTyp = -1; + Utils.hideLoading(); + Navigator.pushReplacementNamed(navigatorKey.currentContext!, AppRoutes.loginMethodsPage, arguments: LoginType.FROM_LOGIN); + return true; + } catch (e) { + Utils.hideLoading(); + Utils.handleException(e, navigatorKey.currentContext!, (msg) { + Utils.confirmDialog(navigatorKey.currentContext!, msg); + }); + return false; + } + } + + Future sendActivationCode(MemberLoginModel memberLoginModel, int facilityID, int sendOtpType, LoginType loginType, {bool isNeedBinding = true}) async { + try { + Utils.showLoading(isNeedBinding: isNeedBinding); + GenericResponseModel memberLogin; + + if (loginType == LoginType.FROM_LOGIN) { + memberLogin = await _loginApiRepo.sendActivationCode(memberLoginModel, facilityID, sendOtpType); + appState.logInTokenID = memberLogin.logInTokenId.toString(); + Utils.hideLoading(); + startSMSService(sendOtpType, false); + } else { + if (loginType == LoginType.SILENT_LOGIN) { + memberLogin = await _loginApiRepo.sendActivationCodeForSlientLogin(memberLoginModel, facilityID, sendOtpType); + appState.logInTokenID = memberLogin.logInTokenId.toString(); + checkActivationCode("0000", sendOtpType, true); + } else { + memberLogin = await _loginApiRepo.sendActivationCodeForSlientLogin(memberLoginModel, facilityID, sendOtpType); + appState.logInTokenID = memberLogin.logInTokenId.toString(); + Utils.hideLoading(); + startSMSService(sendOtpType, true); + } + } + + return memberLogin; + } catch (e) { + Utils.hideLoading(); + Utils.handleException(e, navigatorKey.currentContext!, (msg) { + Utils.confirmDialog(navigatorKey.currentContext!, msg); + }); + } + return null; + } + + Future checkActivationCode(String activationCode, int sendOtpType, bool isFromSilentLogin) async { + try { + if (!isFromSilentLogin) Utils.showLoading(); + GenericResponseModel memberLogin = await _loginApiRepo.checkActivationCode(activationCode, sendOtpType, isFromSilentLogin); + Utils.hideLoading(); + setSession(memberLogin); + Navigator.pushReplacementNamed(navigatorKey.currentContext!, AppRoutes.dashboard); + return memberLogin; + } catch (e) { + Utils.hideLoading(); + Utils.handleException(e, navigatorKey.currentContext!, (msg) { + Utils.confirmDialog(navigatorKey.currentContext!, msg); + }); + } + return null; + } + + startSMSService(int sendOtpType, bool isFromSilentLogin) { + OtpDialog( + type: sendOtpType, + mobileNo: appState.memberBeforeLogin!.mobileNumber, + onSuccess: (String otpCode, TextEditingController pinPut) { + Navigator.pop(navigatorKey.currentContext!); + Utils.showLoading(); + checkActivationCode(otpCode, sendOtpType, isFromSilentLogin); + Utils.hideLoading(); + }, + onFailure: () => Navigator.pop(navigatorKey.currentContext!), + onResendCode: () {}, + ).displayDialog(navigatorKey.currentContext!); + } + + setSession(GenericResponseModel response) { + appState.vidaAuthTokenID = response.vidaAuthTokenId; + appState.vidaRefreshTokenID = response.vidaRefreshTokenId; + appState.authenticationTokenID = response.authenticationTokenId; + appState.listDoctorsClinic = response.listDoctorsClinic; + appState.projectID = response.listDoctorsClinic!.first.projectId!; + appState.clinicId = response.listDoctorsClinic!.first.clinicId!; + appState.employeeId = response.memberInformation!.employeeId; + appState.isLogged = true; + PostParamsModel? paramsModel = appState.postParamsObject; + paramsModel!.doctorId = appState.employeeId; + paramsModel.editedBy = appState.employeeId; + paramsModel.projectId = appState.projectID; + paramsModel.clinicId = appState.clinicId; + MemberLoginModel.saveToPrefs(jsonEncode(appState.memberBeforeLogin!.toJson())); + Utils.saveIntFromPrefs(SharedPrefsConsts.username, appState.doctorUserId ?? 0); + Utils.saveStringFromPrefs(SharedPrefsConsts.password, appState.password ?? ""); + Utils.saveStringFromPrefs(SharedPrefsConsts.logInTokenID, appState.logInTokenID ?? ""); + Utils.saveStringFromPrefs(SharedPrefsConsts.vidaAuthTokenID, appState.vidaAuthTokenID ?? ""); + Utils.saveStringFromPrefs(SharedPrefsConsts.vidaRefreshTokenID, appState.vidaRefreshTokenID ?? ""); + Utils.saveStringFromPrefs(SharedPrefsConsts.authenticationTokenID, appState.authenticationTokenID ?? ""); + Utils.saveIntFromPrefs(SharedPrefsConsts.projectID, appState.projectID); + Utils.saveIntFromPrefs(SharedPrefsConsts.clinicId, appState.clinicId); + Utils.saveStringFromPrefs(SharedPrefsConsts.lastLoginDate, Utils.getMonthNamedFormat(DateTime.now())); + } + + getSession(GetIMEIDetailsModel model) async { + int doctorUserId = await Utils.getIntFromPrefs(SharedPrefsConsts.username); + if (model.doctorID == doctorUserId) { + String password = await Utils.getStringFromPrefs(SharedPrefsConsts.password); + String logInTokenID = await Utils.getStringFromPrefs(SharedPrefsConsts.logInTokenID); + String authenticationTokenID = await Utils.getStringFromPrefs(SharedPrefsConsts.authenticationTokenID); + int clinicId = await Utils.getIntFromPrefs(SharedPrefsConsts.clinicId); + String lastLoginDate = await Utils.getStringFromPrefs(SharedPrefsConsts.lastLoginDate); + appState.memberBeforeLogin = await MemberLoginModel.getFromPrefs(); + // print(appState.memberBeforeLogin!.toJson()); + + appState.lastLoginTyp = -1; + appState.doctorUserId = doctorUserId; + appState.employeeId = appState.memberBeforeLogin!.listMemberInformation!.first.employeeId; + appState.password = password; + appState.logInTokenID = logInTokenID; + appState.vidaAuthTokenID = model.vidaAuthTokenID; + appState.vidaRefreshTokenID = model.vidaRefreshTokenID; + appState.authenticationTokenID = authenticationTokenID; + appState.projectID = model.projectID ?? 0; + appState.clinicId = clinicId; + appState.lastLoginImeiDate = model; + appState.lastLoginDate = lastLoginDate; + Navigator.pushReplacementNamed(navigatorKey.currentContext!, AppRoutes.loginMethodsPage, arguments: LoginType.SILENT_LOGIN); + } + } +} diff --git a/lib/provider/patient_provider_model.dart b/lib/provider/patient_provider_model.dart new file mode 100644 index 0000000..ca826fe --- /dev/null +++ b/lib/provider/patient_provider_model.dart @@ -0,0 +1,80 @@ +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/classes/utils.dart'; +import 'package:hmg_nurses/config/app_state.dart'; +import 'package:hmg_nurses/config/routes.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/base/generic_response_model.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; +import 'package:hmg_nurses/provider/base_vm.dart'; +import 'package:hmg_nurses/services/api_repo/patient_api_repo.dart'; +import 'package:injector/injector.dart'; + +class PatientProviderModel extends BaseViewModel { + final IPatientApiRepo _patientApiRepo = Injector.appInstance.get(); + late GenericResponseModel searchedPatient; + late GenericResponseModel vitalSignHistory; + List filteredPatientsList = []; + + searchPatient(int patientId) async { + try { + Utils.showLoading(); + searchedPatient = await _patientApiRepo.getPatientInfo(patientId); + Utils.showToast(searchedPatient.getPatientFileInformationPrmList!.length.toString()); + filteredPatientsList.addAll(searchedPatient.getPatientFileInformationPrmList!); + Utils.hideLoading(); + Navigator.pushNamed(navigatorKey.currentContext!, AppRoutes.searchedFor, arguments: patientId); + return true; + } catch (e) { + Utils.hideLoading(); + Utils.handleException(e, navigatorKey.currentContext!, (msg) { + Utils.confirmDialog(navigatorKey.currentContext!, msg); + }); + return false; + } + } + + filterPatient(String str) { + var strExist = str.length > 0 ? true : false; + if (strExist) { + filteredPatientsList = []; + for (var i = 0; i < searchedPatient.getPatientFileInformationPrmList!.length; i++) { + String firstName = searchedPatient.getPatientFileInformationPrmList![i].firstName!.toUpperCase(); + String lastName = searchedPatient.getPatientFileInformationPrmList![i].lastName!.toUpperCase(); + String mobile = searchedPatient.getPatientFileInformationPrmList![i].mobileNumber!.toUpperCase(); + String patientID = searchedPatient.getPatientFileInformationPrmList![i].patientId.toString(); + + if (firstName.contains(str.toUpperCase()) || lastName.contains(str.toUpperCase()) || mobile.contains(str) || patientID.contains(str)) { + filteredPatientsList.add(searchedPatient.getPatientFileInformationPrmList![i]); + } + } + notifyListeners(); + } else { + filteredPatientsList = searchedPatient.getPatientFileInformationPrmList!; + notifyListeners(); + } + } + + fetchVitalSignsHistory(GetPatientFileInformationPrmList patient) async { + try { + Utils.showLoading(); + vitalSignHistory = await _patientApiRepo.getVitalSigns( + patientID: patient.patientId, + patientTypeID: patient.patientType, + inOutPatientType: 0, + isDentalAllowedBackend: false, + doctorID: appState.employeeId, + setupID: appState.setupId, + patientType: patient.patientType); + Utils.showToast(vitalSignHistory.listDoctorPatientVitalSign!.length.toString()); + Utils.hideLoading(); + // Navigator.pushNamed(navigatorKey.currentContext!, AppRoutes.searchedFor, arguments: patientId); + return true; + } catch (e) { + Utils.hideLoading(); + Utils.handleException(e, navigatorKey.currentContext!, (msg) { + Utils.confirmDialog(navigatorKey.currentContext!, msg); + }); + return false; + } + } +} diff --git a/lib/api/api_client.dart b/lib/services/api_client.dart similarity index 62% rename from lib/api/api_client.dart rename to lib/services/api_client.dart index 4a0b6a8..70e4a0e 100644 --- a/lib/api/api_client.dart +++ b/lib/services/api_client.dart @@ -5,7 +5,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart'; import 'package:http/io_client.dart'; -import 'package:hmg_nurses/app_state/app_state.dart'; +import 'package:hmg_nurses/config/app_state.dart'; import 'package:hmg_nurses/exceptions/api_exception.dart'; import 'package:hmg_nurses/main.dart'; // ignore_for_file: avoid_annotating_with_dynamic @@ -18,8 +18,7 @@ class APIError { APIError(this.errorCode, this.errorMessage); - Map toJson() => - {'errorCode': errorCode, 'errorMessage': errorMessage}; + Map toJson() => {'errorCode': errorCode, 'errorMessage': errorMessage}; @override String toString() { @@ -54,27 +53,33 @@ APIException _throwAPIException(Response response) { return APIException(APIException.INTERNAL_SERVER_ERROR); case 444: var downloadUrl = response.headers["location"]; - return APIException(APIException.UPGRADE_REQUIRED, - arguments: downloadUrl); + return APIException(APIException.UPGRADE_REQUIRED, arguments: downloadUrl); default: return APIException(APIException.OTHER); } } -class ApiClient { - static final ApiClient _instance = ApiClient._internal(); +abstract class IApiClient { + Future postJsonForObject(FactoryConstructor factoryConstructor, String url, T jsonObject, + {String? token, Map? queryParameters, Map? headers, int retryTimes = 0, bool isFormData = false}); - ApiClient._internal(); + Future postJsonForResponse(String url, T jsonObject, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0, bool isFormData = false}); - factory ApiClient() => _instance; + Future getJsonForResponse(String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}); - Future postJsonForObject( - FactoryConstructor factoryConstructor, String url, T jsonObject, - {String? token, - Map? queryParameters, - Map? headers, - int retryTimes = 0, - bool isFormData = false}) async { + void setHomeUrl(String url); +} + +class ApiClient implements IApiClient { + // static final ApiClient _instance = ApiClient._internal(); + + // ApiClient._internal(); + + // factory ApiClient() => _instance; + + @override + Future postJsonForObject(FactoryConstructor factoryConstructor, String url, T jsonObject, + {String? token, Map? queryParameters, Map? headers, int retryTimes = 0, bool isFormData = false}) async { var _headers = {'Accept': 'application/json'}; if (headers != null && headers.isNotEmpty) { _headers.addAll(headers); @@ -84,12 +89,7 @@ class ApiClient { var bodyJson = json.encode(jsonObject); print("body:$bodyJson"); } - var response = await postJsonForResponse(url, jsonObject, - token: token, - queryParameters: queryParameters, - headers: _headers, - retryTimes: retryTimes, - isFormData: isFormData); + var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: _headers, retryTimes: retryTimes, isFormData: isFormData); // try { if (!kReleaseMode) { logger.i("res: " + response.body); @@ -102,8 +102,7 @@ class ApiClient { return factoryConstructor(jsonData); } else { APIError? apiError; - apiError = - APIError(jsonData['ErrorCode'], jsonData['ErrorEndUserMessage']); + apiError = APIError(jsonData['ErrorCode'], jsonData['ErrorEndUserMessage']); throw APIException(APIException.BAD_REQUEST, error: apiError); } // } catch (ex) { @@ -115,12 +114,9 @@ class ApiClient { // } } + @override Future postJsonForResponse(String url, T jsonObject, - {String? token, - Map? queryParameters, - Map? headers, - int retryTimes = 0, - bool isFormData = false}) async { + {String? token, Map? queryParameters, Map? headers, int retryTimes = 0, bool isFormData = false}) async { String? requestBody; late Map stringObj; if (jsonObject != null) { @@ -134,22 +130,13 @@ class ApiClient { if (isFormData) { headers = {'Content-Type': 'application/x-www-form-urlencoded'}; - stringObj = ((jsonObject ?? {}) as Map) - .map((key, value) => MapEntry(key, value?.toString() ?? "")); + stringObj = ((jsonObject ?? {}) as Map).map((key, value) => MapEntry(key, value?.toString() ?? "")); } - return await _postForResponse(url, isFormData ? stringObj : requestBody, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes); + return await _postForResponse(url, isFormData ? stringObj : requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes); } - Future _postForResponse(String url, requestBody, - {String? token, - Map? queryParameters, - Map? headers, - int retryTimes = 0}) async { + Future _postForResponse(String url, requestBody, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async { try { var _headers = {}; if (token != null) { @@ -164,9 +151,7 @@ class ApiClient { var queryString = new Uri(queryParameters: queryParameters).query; url = url + '?' + queryString; } - var response = - await _post(Uri.parse(url), body: requestBody, headers: _headers) - .timeout(Duration(seconds: 120)); + var response = await _post(Uri.parse(url), body: requestBody, headers: _headers).timeout(Duration(seconds: 120)); if (response.statusCode >= 200 && response.statusCode < 300) { return response; @@ -177,11 +162,7 @@ class ApiClient { if (retryTimes > 0) { print('will retry after 3 seconds...'); await Future.delayed(Duration(seconds: 3)); - return await _postForResponse(url, requestBody, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes - 1); + return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1); } else { throw APIException(APIException.OTHER, arguments: e); } @@ -189,11 +170,7 @@ class ApiClient { if (retryTimes > 0) { print('will retry after 3 seconds...'); await Future.delayed(Duration(seconds: 3)); - return await _postForResponse(url, requestBody, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes - 1); + return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1); } else { throw APIException(APIException.OTHER, arguments: e); } @@ -203,39 +180,24 @@ class ApiClient { if (retryTimes > 0) { print('will retry after 3 seconds...'); await Future.delayed(Duration(seconds: 3)); - return await _postForResponse(url, requestBody, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes - 1); + return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1); } else { throw APIException(APIException.OTHER, arguments: e); } } } - Future getJsonForResponse(String url, - {String? token, - Map? queryParameters, - Map? headers, - int retryTimes = 0}) async { + @override + Future getJsonForResponse(String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async { if (headers == null) { headers = {'Content-Type': 'application/json'}; } else { headers['Content-Type'] = 'application/json'; } - return await _getForResponse(url, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes); + return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes); } - Future _getForResponse(String url, - {String? token, - Map? queryParameters, - Map? headers, - int retryTimes = 0}) async { + Future _getForResponse(String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async { try { var _headers = {}; if (token != null) { @@ -250,8 +212,7 @@ class ApiClient { var queryString = new Uri(queryParameters: queryParameters).query; url = url + '?' + queryString; } - var response = await _get(Uri.parse(url), headers: _headers) - .timeout(Duration(seconds: 60)); + var response = await _get(Uri.parse(url), headers: _headers).timeout(Duration(seconds: 60)); if (response.statusCode >= 200 && response.statusCode < 300) { return response; @@ -262,11 +223,7 @@ class ApiClient { if (retryTimes > 0) { print('will retry after 3 seconds...'); await Future.delayed(Duration(seconds: 3)); - return await _getForResponse(url, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes - 1); + return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1); } else { throw APIException(APIException.OTHER, arguments: e); } @@ -274,11 +231,7 @@ class ApiClient { if (retryTimes > 0) { print('will retry after 3 seconds...'); await Future.delayed(Duration(seconds: 3)); - return await _getForResponse(url, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes - 1); + return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1); } else { throw APIException(APIException.OTHER, arguments: e); } @@ -288,19 +241,14 @@ class ApiClient { if (retryTimes > 0) { print('will retry after 3 seconds...'); await Future.delayed(Duration(seconds: 3)); - return await _getForResponse(url, - token: token, - queryParameters: queryParameters, - headers: headers, - retryTimes: retryTimes - 1); + return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1); } else { throw APIException(APIException.OTHER, arguments: e); } } } - Future _get(url, {Map? headers}) => - _withClient((client) => client.get(url, headers: headers)); + Future _get(url, {Map? headers}) => _withClient((client) => client.get(url, headers: headers)); bool _certificateCheck(X509Certificate cert, String host, int port) => true; @@ -314,8 +262,10 @@ class ApiClient { } } - Future _post(url, - {Map? headers, body, Encoding? encoding}) => - _withClient((client) => - client.post(url, headers: headers, body: body, encoding: encoding)); + Future _post(url, {Map? headers, body, Encoding? encoding}) => _withClient((client) => client.post(url, headers: headers, body: body, encoding: encoding)); + + @override + void setHomeUrl(String url) { + // TODO: implement setHomeUrl + } } diff --git a/lib/services/api_repo/dashboard_api_repo.dart b/lib/services/api_repo/dashboard_api_repo.dart new file mode 100644 index 0000000..dee154d --- /dev/null +++ b/lib/services/api_repo/dashboard_api_repo.dart @@ -0,0 +1,121 @@ +import 'dart:convert'; + +import 'package:hmg_nurses/exceptions/api_exception.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/base/generic_response_model2.dart'; +import 'package:hmg_nurses/model/login/member_login_model.dart'; +import 'package:hmg_nurses/model/login/project_info_model.dart'; +import 'package:hmg_nurses/services/api_client.dart'; +import 'package:hmg_nurses/classes/consts.dart'; +import 'package:hmg_nurses/model/base/generic_response_model.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; +import 'package:hmg_nurses/services/firebase_service.dart'; +import 'package:injector/injector.dart'; + +abstract class IDashboardApiRepo { + Future getDoctorProfile(); + + Future insertDoctorProfile(); +} + +class DashboardApiRepo implements IDashboardApiRepo { + @override + Future getDoctorProfile() async { + String url = "${ApiConsts.baseUrlServices}Doctors.svc/REST/GetDocProfiles"; + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["ProjectID"] = appState.projectID; + postParams["ClinicID"] = appState.clinicId; + postParams["doctorID"] = appState.memberBeforeLogin!.doctorId; + postParams["IsRegistered"] = true; + postParams["License"] = true; + postParams["TokenID"] = appState.authenticationTokenID; + postParams["DoctorID"] = appState.memberBeforeLogin!.doctorId; + postParams["PatientOutSA"] = false; + + GenericResponseModel2 response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel2.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } + + @override + Future insertDoctorProfile() async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/DoctorApp_InsertOrUpdateDeviceDetails"; + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["IMEI"] = appState.imei; + postParams["LogInTypeID"] = appState.lastLoginTyp; + postParams["OutSA"] = null; + postParams["MobileNo"] = appState.doctorProfile!.doctorProfileList!.first.doctorMobileNumber; + postParams["IdentificationNo"] = null; + postParams["DoctorID"] = appState.doctorUserId; + postParams["DoctorName"] = appState.doctorProfile!.doctorProfileList!.first.doctorName; + postParams["DoctorNameN"] = appState.doctorProfile!.doctorProfileList!.first.doctorNameN; + postParams["ClinicID"] = appState.doctorProfile!.doctorProfileList!.first.clinicId; + postParams["ClinicDescription"] = appState.doctorProfile!.doctorProfileList!.first.clinicDescription; + postParams["ClinicDescriptionN"] = appState.doctorProfile!.doctorProfileList!.first.clinicDescriptionN; + postParams["ProjectName"] = appState.doctorProfile!.doctorProfileList!.first.projectName; + postParams["GenderDescription"] = appState.doctorProfile!.doctorProfileList!.first.genderDescription; + postParams["GenderDescriptionN"] = appState.doctorProfile!.doctorProfileList!.first.genderDescriptionN; + postParams["TitleDescription"] = appState.doctorProfile!.doctorProfileList!.first.titleDescription; + postParams["Title_DescriptionN"] = appState.doctorProfile!.doctorProfileList!.first.titleDescriptionN; + postParams["BioMetricEnabled"] = true; + postParams["PreferredLanguage"] = null; + postParams["IsActive"] = appState.doctorProfile!.doctorProfileList!.first.isActive; + postParams["EditedBy"] = appState.doctorProfile!.doctorProfileList!.first.doctorId; + postParams["ProjectID"] = appState.doctorProfile!.doctorProfileList!.first.projectId; + postParams["TokenID"] = appState.authenticationTokenID; + postParams["LoginDoctorID"] = appState.doctorProfile!.doctorProfileList!.first.doctorId; + postParams["Password"] = appState.password; + + logger.d(jsonEncode(postParams)); + GenericResponseModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return null; + } +} +// { +// "IMEI": "es6V9NcpSzCXR665uSDWGo:APA91bGF_FjdOf8ZOZmw5FU7pkDfzNOvkz-IsSBRrJE6OR0ZE2lyeTxzFtvjZEajUEC_ssD6ytKNEm74lm30KpZEvPdrNgSRR8idlGrRqJ6qK2Lp2lrLtgA1OLMjkkQS1bcpvXcdnEg_", +// "LogInTypeID": 1, +// "OutSA": null, +// "MobileNo": "0553755378", +// "IdentificationNo": null, +// "DoctorID": 13777, +// "DoctorName": "EYAD ISMAIL ABU-JAYAB", +// "DoctorNameN": null, +// "ClinicID": 1, +// "ClinicDescription": "INTERNAL MEDICINE CLINIC", +// "ClinicDescriptionN": null, +// "ProjectName": "Olaya Hospital", +// "GenderDescription": "Male", +// "GenderDescriptionN": null, +// "TitleDescription": "Dr.", +// "Title_DescriptionN": null, +// "BioMetricEnabled": true, +// "PreferredLanguage": null, +// "IsActive": false, +// "EditedBy": 2477, +// "ProjectID": 12, +// "TokenID": "W7qObFELE0+VAtKJoTeq+w==", +// "LanguageID": 2, +// "stamp": "2022-11-27T10:50:25.345098", +// "IPAdress": "9.9.9.9", +// "VersionID": 9, +// "Channel": 9, +// "SessionID": "BlUSkYymTt", +// "IsLoginForDoctorApp": true, +// "PatientOutSA": false, +// "VidaAuthTokenID": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMzc3NyIsImp0aSI6IjNiM2U5MTU4LTJhNmEtNGM4MS04OTk5LWU3ZTRhYzUzMmFiOCIsImVtYWlsIjoiUndhaWQuQWxtYWxsYWhAY2xvdWRzb2x1dGlvbnMuY29tLnNhIiwiaWQiOiIxMzc3NyIsIk5hbWUiOiJSd2FpZCBGb3VkIEhhc3NhbiBBbE1hbGxhaCIsIkVtcGxveWVlSWQiOiIyNDc3IiwiRmFjaWxpdHlHcm91cElkIjoiOTE4NzciLCJGYWNpbGl0eUlkIjoiMTIiLCJQaGFyYW1jeUZhY2lsaXR5SWQiOiI1NiIsIklTX1BIQVJNQUNZX0NPTk5FQ1RFRCI6IlRydWUiLCJEb2N0b3JJZCI6IjI0NzciLCJTRVNTSU9OSUQiOiIyMDYzNDY2OCIsIkNsaW5pY0lkIjoiMSIsIm5iZiI6MTY2OTUzNTQxMSwiZXhwIjoxNjcwMzk5NDExLCJpYXQiOjE2Njk1MzU0MTF9.LkZMiDAt9F4yjbuNyMSIcZYIgct6VuPed7uPOw0PTVw", +// "VidaRefreshTokenID": "sm30FcA2iL0lJmSCAVlNJJ8e0AbfYzHxg+wMGTBSoP9VM9do55BRxjATjBtOJyo60u8tLRk9LHrmmH8Xn+B25A==", +// "Password": "Rr123456", +// "LoginDoctorID": 2477, +// "DeviceTypeID": 1 +// } diff --git a/lib/services/api_repo/login_api_repo.dart b/lib/services/api_repo/login_api_repo.dart new file mode 100644 index 0000000..9242722 --- /dev/null +++ b/lib/services/api_repo/login_api_repo.dart @@ -0,0 +1,169 @@ +import 'dart:convert'; + +import 'package:hmg_nurses/classes/utils.dart'; +import 'package:hmg_nurses/exceptions/api_exception.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/base/generic_response_model2.dart'; +import 'package:hmg_nurses/model/login/member_login_model.dart'; +import 'package:hmg_nurses/model/login/project_info_model.dart'; +import 'package:hmg_nurses/services/api_client.dart'; +import 'package:hmg_nurses/classes/consts.dart'; +import 'package:hmg_nurses/model/base/generic_response_model.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; +import 'package:hmg_nurses/services/firebase_service.dart'; +import 'package:injector/injector.dart'; + +abstract class ILoginApiRepo { + Future> getDeviceInfoByIMEI(); + + Future> getProjectInfo(String userId); + + Future memberLogin(String userId, String password, int projectId); + + Future sendActivationCode(MemberLoginModel memberLoginModel, int facilityID, int sendOtpType); + + Future sendActivationCodeForSlientLogin(MemberLoginModel memberLoginModel, int facilityID, int sendOtpType); + + Future checkActivationCode(String activationCode, int sendOtpType, bool isFromSilentLogin); +} + +class LoginApiRepo implements ILoginApiRepo { + final IFirebaseService _firebaseService = Injector.appInstance.get(); + + @override + Future> getDeviceInfoByIMEI() async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/DoctorApp_GetDeviceDetailsByIMEI"; + String token = await _firebaseService.getFirebaseToke(); + logger.d("firebase_token: " + token); + appState.imei = token; + + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["stamp"] = DateTime.now().toIso8601String(); + postParams["IMEI"] = appState.imei; + GenericResponseModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response.listDoctorDeviceDetails ?? []; + } + + @override + Future> getProjectInfo(String userId) async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/GetProjectInfo"; + + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["MemberID"] = "13777"; + GenericResponseModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response.projectInfo ?? []; + } + + @override + Future memberLogin(String userId, String password, int projectId) async { + String url = "${ApiConsts.baseUrlServices}Sentry.svc/REST/MemberLogIN_New"; + + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["UserID"] = userId; + postParams["Password"] = password; + postParams["ProjectID"] = projectId; + MemberLoginModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => MemberLoginModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } + + @override + Future sendActivationCode(MemberLoginModel memberLoginModel, int facilityID, int sendOtpType) async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/SendActivationCodeForDoctorApp"; + Map postParams = {}; + + postParams.addAll(appState.postParamsJson); + postParams["MemberID"] = memberLoginModel.listMemberInformation!.first.memberId; + postParams["facilityId"] = facilityID; + postParams["OTP_SendType"] = sendOtpType.toString(); + postParams["LoginDoctorID"] = memberLoginModel.doctorId; + postParams["DoctorID"] = memberLoginModel.doctorId; + postParams["TokenID"] = appState.logInTokenID; + GenericResponseModel response; + print(jsonEncode(postParams)); + // return GenericResponseModel(); + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + + } catch (e) { + rethrow; + } + return response; + } + + @override + Future sendActivationCodeForSlientLogin(MemberLoginModel memberLoginModel, int facilityID, int sendOtpType) async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/SendVerificationCode"; + Map postParams = {}; + + postParams.addAll(appState.postParamsJson); + postParams["MobileNumber"] = memberLoginModel.mobileNumber; + postParams["ZipCode"] = memberLoginModel.zipCode; + postParams["IsMobileFingerPrint"] = 1; + postParams["IMEI"] = appState.imei; + postParams["LoginDoctorID"] = memberLoginModel.doctorId; + postParams["DoctorID"] = memberLoginModel.doctorId; + postParams["MemberID"] = memberLoginModel.listMemberInformation!.first.memberId; + postParams["facilityId"] = facilityID; + postParams["OTP_SendType"] = sendOtpType; + postParams["LoginDoctorID"] = memberLoginModel.doctorId; + postParams["DoctorID"] = memberLoginModel.doctorId; + postParams["TokenID"] = appState.logInTokenID; + GenericResponseModel response; + print(jsonEncode(postParams)); + // return GenericResponseModel(); + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } + + @override + Future checkActivationCode(String activationCode, int sendOtpType, bool isFromSilentLogin) async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/CheckActivationCodeForDoctorApp"; + Map postParams = {}; + MemberLoginModel memberLoginModel = appState.memberBeforeLogin ?? MemberLoginModel(); + postParams.addAll(appState.postParamsJson); + postParams["MobileNumber"] = memberLoginModel.mobileNumber; + postParams["ProjectID"] = appState.projectID; + postParams["LogInTokenID"] = appState.logInTokenID; + postParams["activationCode"] = activationCode; + postParams["OTP_SendType"] = sendOtpType; + postParams["facilityId"] = appState.projectID; + postParams["MemberID"] = appState.memberBeforeLogin!.listMemberInformation!.first.memberId; + postParams["Password"] = appState.password; + postParams["IsForSilentLogin"] = isFromSilentLogin; + postParams["LoginDoctorID"] = appState.memberBeforeLogin?.doctorId; + postParams["DoctorID"] = appState.memberBeforeLogin?.doctorId; + postParams["IMEI"] = appState.imei; + postParams["ZipCode"] = appState.memberBeforeLogin?.zipCode; + postParams["TokenID"] = appState.logInTokenID; + + GenericResponseModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } +} diff --git a/lib/services/api_repo/patient_api_repo.dart b/lib/services/api_repo/patient_api_repo.dart new file mode 100644 index 0000000..0c7e447 --- /dev/null +++ b/lib/services/api_repo/patient_api_repo.dart @@ -0,0 +1,80 @@ +import 'dart:convert'; + +import 'package:hmg_nurses/classes/consts.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/base/generic_response_model.dart'; +import 'package:hmg_nurses/services/api_client.dart'; +import 'package:injector/injector.dart'; + +abstract class IPatientApiRepo { + Future getPatientInfo(int patientID); + + Future getVitalSigns({int? patientID, int? patientTypeID, int? inOutPatientType, bool isDentalAllowedBackend, int? doctorID, int setupID, int? patientType}); +} + +class PatientApiRepo implements IPatientApiRepo { + @override + Future getPatientInfo(int patientID) async { + String url = "${ApiConsts.baseUrlServices}Patients.svc/REST/GetPatientInformation_PRM"; + Map postParams = {}; + + postParams.addAll(appState.postParamsJson); + postParams["FirstName"] = "0"; + postParams["MiddleName"] = "0"; + postParams["LastName"] = "0"; + postParams["PatientMobileNumber"] = "0"; + postParams["PatientIdentificationID"] = "0"; + postParams["PatientID"] = patientID; + postParams["From"] = "0"; + postParams["To"] = "0"; + postParams["SearchType"] = 1; + postParams["MobileNo"] = ""; + postParams["IdentificationNo"] = "0"; + postParams["NursingStationID"] = "0"; + GenericResponseModel response; + print(jsonEncode(postParams)); + // return GenericResponseModel(); + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } + + @override + Future getVitalSigns({int? patientID, int? patientTypeID, int? inOutPatientType, bool? isDentalAllowedBackend, int? doctorID, int? setupID, int? patientType}) async { + String url = "${ApiConsts.baseUrlServices}Doctors.svc/REST/Doctor_GetPatientVitalSign"; + Map postParams = {}; + + // { + // "PatientID": 12, + // "PatientTypeID": 1, + // "InOutPatientType": 0, + // "isDentalAllowedBackend": false, + // "DoctorID": 2477, + // "SetupID": "91877", + // "PatientType": 1, + // } + + postParams.addAll(appState.postParamsJson); + postParams["PatientID"] = patientID; + postParams["PatientTypeID"] = patientTypeID; + postParams["InOutPatientType"] = inOutPatientType; + postParams["isDentalAllowedBackend"] = isDentalAllowedBackend; + postParams["DoctorID"] = doctorID; + postParams["SetupID"] = setupID; + postParams["PatientType"] = patientType; + postParams.remove("ProjectID"); + postParams.remove("ClinicID"); + + GenericResponseModel response; + // return GenericResponseModel(); + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } +} diff --git a/lib/services/firebase_service.dart b/lib/services/firebase_service.dart new file mode 100644 index 0000000..01a53f3 --- /dev/null +++ b/lib/services/firebase_service.dart @@ -0,0 +1,24 @@ +import 'dart:io'; + +import 'package:firebase_messaging/firebase_messaging.dart'; + +abstract class IFirebaseService { + Future getFirebaseToke(); +} + +class FirebaseService implements IFirebaseService { + final FirebaseMessaging? _firebaseMessaging = FirebaseMessaging.instance; + + FirebaseService() { + _firebaseMessaging!.setAutoInitEnabled(true); + if (Platform.isIOS) { + _firebaseMessaging!.requestPermission(); + } + } + + @override + Future getFirebaseToke() async { + var token = await _firebaseMessaging!.getToken(); + return token ?? ""; + } +} diff --git a/lib/ui/dashboard/dashbaord_page.dart b/lib/ui/dashboard/dashbaord_page.dart new file mode 100644 index 0000000..b9bac0e --- /dev/null +++ b/lib/ui/dashboard/dashbaord_page.dart @@ -0,0 +1,79 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/config/routes.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/provider/dashboard_provider_model.dart'; +import 'package:hmg_nurses/ui/dashboard/widgets/home_patient_card.dart'; +import 'package:hmg_nurses/widgets/icons_app/doctor_app_icons.dart'; +import 'package:provider/provider.dart'; + +class DashboardPage extends StatefulWidget { + @override + State createState() => _DashboardPageState(); +} + +class _DashboardPageState extends State { + late DashboardProviderModel provider; + + @override + void initState() { + super.initState(); + provider = Provider.of(navigatorKey.currentContext!); + provider.getDocProfile(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + actions: [ + IconButton( + onPressed: () { + appState.isLogged = false; + Navigator.pushReplacementNamed(context, AppRoutes.login, arguments: false); + }, + icon: const Icon( + Icons.logout, + color: Colors.white, + ), + ) + ], + ), + body: Container( + width: double.infinity, + height: double.infinity, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + showHomeButton(), + ], + ), + ), + ); + } + + Widget showHomeButton() { + return Container( + width: 120, + height: 120, + child: HomePatientCard( + gradient: const LinearGradient( + begin: Alignment(-1.0, -2.0), + end: Alignment(1.0, 2.0), + colors: [ + Colors.red, + Color(0xFFAD3B3B), + ], + ), + backgroundIconColor: Colors.white12, + cardIcon: DoctorApp.search, + textColor: Colors.white, + text: "Search Patient", + onTap: () { + Navigator.pushNamed(context, AppRoutes.searchPatient); + }, + ), + ); + } +} diff --git a/lib/ui/dashboard/widgets/home_page_card.dart b/lib/ui/dashboard/widgets/home_page_card.dart new file mode 100644 index 0000000..615ef89 --- /dev/null +++ b/lib/ui/dashboard/widgets/home_page_card.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; + +class HomePageCard extends StatelessWidget { + const HomePageCard( + {this.hasBorder = false, + required this.imageName, + required this.child, + required this.onTap, + required this.color, + this.opacity = 0.4, + required this.margin, + required this.width, + required this.gradient}); + + final bool hasBorder; + final String imageName; + final Widget child; + final GestureTapCallback onTap; + final Color color; + final double opacity; + final double width; + final EdgeInsets margin; + final LinearGradient gradient; + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: onTap, + child: Container( + width: width, + margin: this.margin, + decoration: BoxDecoration( + gradient: gradient, + borderRadius: BorderRadius.circular(20.0), + border: hasBorder ? Border.all(width: 1.0, color: const Color(0xffcccccc)) : Border.all(width: 0.0, color: Colors.transparent), + image: imageName != null + ? DecorationImage( + image: AssetImage('assets/images/patient/ucaf.png'), + fit: BoxFit.cover, + colorFilter: new ColorFilter.mode(Colors.black.withOpacity(0.2), BlendMode.dstIn), + ) + : null, + ), + child: child, + ), + ); + } +} diff --git a/lib/ui/dashboard/widgets/home_patient_card.dart b/lib/ui/dashboard/widgets/home_patient_card.dart new file mode 100644 index 0000000..262dce2 --- /dev/null +++ b/lib/ui/dashboard/widgets/home_patient_card.dart @@ -0,0 +1,118 @@ +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/classes/size_config.dart'; +import 'package:hmg_nurses/ui/dashboard/widgets/home_page_card.dart'; + +class HomePatientCard extends StatelessWidget { + final Color? backgroundColor; + final IconData? cardIcon; + final String? cardIconImage; + final Color? backgroundIconColor; + final String? text; + final Color? textColor; + final VoidCallback? onTap; + final double iconSize; + final LinearGradient? gradient; + + HomePatientCard({ + this.backgroundColor, + this.backgroundIconColor, + this.cardIcon, + this.cardIconImage, + this.text, + this.textColor, + this.onTap, + this.iconSize = 30, + this.gradient, + }); + + @override + Widget build(BuildContext context) { + double width = SizeConfig.heightMultiplier! * + (SizeConfig.isHeightVeryShort + ? 16 + : SizeConfig.isHeightLarge + ? 15 + : 13); + return HomePageCard( + color: backgroundColor??Colors.black, + width: width, + gradient: gradient??LinearGradient(colors: []), + margin: EdgeInsets.all(SizeConfig.widthMultiplier! * 1.121), + child: Container( + padding: EdgeInsets.all(8), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Stack( + children: [ + Container( + margin: EdgeInsets.only(top: 18, left: 10), + color: Colors.transparent, + child: cardIcon != null + ? Icon( + cardIcon, + size: iconSize * 2, + color: backgroundIconColor, + ) + : IconButton( + icon: Image.asset( + 'assets/images/patient/ucaf.png', + width: iconSize * 2, + height: iconSize * 2, + fit: BoxFit.fill, + ), + iconSize: iconSize * 2, + color: backgroundIconColor, + onPressed: () => null, + ), + ), + Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + cardIcon != null + ? Icon( + cardIcon, + size: SizeConfig.getWidthMultiplier(width: width) * 30, + color: textColor, + ) + : Image.asset( + cardIconImage!, + height: iconSize, + width: iconSize, + ), + SizedBox( + height: 4, + ), + ], + ), + ), + ], + ), + ), + Expanded( + child: Container( + child: Text( + text!, + textAlign: TextAlign.start, + style: TextStyle( + color: textColor, + letterSpacing: -0.33, + fontWeight: FontWeight.w600, + fontSize: SizeConfig.getTextMultiplierBasedOnWidth(width: width) * (SizeConfig.isHeightVeryShort ? 11 : 10), + ), + ), + ), + ), + ], + ), + ), + hasBorder: false, + onTap: onTap!, + imageName: '', + ); + } +} diff --git a/lib/ui/login/login_method_page.dart b/lib/ui/login/login_method_page.dart index 224674e..fdf8714 100644 --- a/lib/ui/login/login_method_page.dart +++ b/lib/ui/login/login_method_page.dart @@ -2,14 +2,19 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:hmg_nurses/classes/colors.dart'; +import 'package:hmg_nurses/classes/date-utils.dart'; import 'package:hmg_nurses/classes/enums.dart'; +import 'package:hmg_nurses/config/routes.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; import 'package:hmg_nurses/extensions/string_extensions.dart'; import 'package:hmg_nurses/extensions/util_extensions.dart'; import 'package:hmg_nurses/extensions/widget_extensions.dart'; import 'package:hmg_nurses/generated/locale_keys.g.dart'; -import 'package:hmg_nurses/ui/login/login_vm.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/provider/login_provider_model.dart'; import 'package:hmg_nurses/ui/login/widgets/verification_method_card.dart'; import 'package:hmg_nurses/widgets/button/default_button.dart'; +import 'package:local_auth/local_auth.dart'; import 'package:provider/provider.dart'; import 'package:sizer/sizer.dart'; @@ -28,246 +33,251 @@ class LoginMethodsPage extends StatefulWidget { class LoginMethodsPageState extends State { bool isMoreOption = false; bool onlySMSBox = false; - late AuthMethodTypes fingerPrintBefore; - late AuthMethodTypes selectedOption; - late LoginViewModel loginViewModel; + + LoginType? loginType; + AuthMethodTypes? selectedAuthType; + late LoginProviderModel loginProviderModel; @override Widget build(BuildContext context) { - loginViewModel = context.read(); - return Scaffold( - appBar: AppBar( - backgroundColor: Colors.transparent, - leading: IconButton( - icon: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor), - onPressed: () => Navigator.pop(context), - ), - // actions: [Center(child: "Employee Digital ID".toText12(color: MyColors.textMixColor, isUnderLine: true).onPress(() {})), 21.width], - ), - body: SingleChildScrollView( - child: Center( - child: FractionallySizedBox( - widthFactor: 0.9, - child: SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - heightSpacer1per(), - if (loginViewModel.isFromLogin) - InkWell( - onTap: () { - loginViewModel.setUnverified(false, isFromLogin: false); - loginViewModel.setAppStatus(APPSTATUS.unAuthenticated); - }, - child: const Icon(Icons.arrow_back_ios, color: MyColors.darkTextColor)), - Column( - children: [ - heightSpacer1per(), + if (loginType == null) { + loginType = ModalRoute.of(context)!.settings.arguments as LoginType; + } - isMoreOption != null && isMoreOption == false - ? Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - LocaleKeys.welcomeBack.tr().toText12(), - "Dr Amal Ahmed".toText20(isBold: true), - heightSpacer3per(), - LocaleKeys.wouldYouLikeToLoginWithCurrentUsername.tr().toText14(), - heightSpacer3per(), - Container( - padding: const EdgeInsets.all(12), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: const BorderRadius.all(Radius.circular(10)), - border: Border.all(color: HexColor('#707070'), width: 0.1), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + loginProviderModel = context.read(); + return Scaffold( + // appBar: AppBar( + // backgroundColor: Colors.transparent, + // leading: null, + // // actions: [Center(child: "Employee Digital ID".toText12(color: MyColors.textMixColor, isUnderLine: true).onPress(() {})), 21.width], + // ), + body: Container( + width: double.infinity, + height: double.infinity, + padding: const EdgeInsets.all(21), + child: Column( + children: [ + Expanded( + child: SafeArea( + child: SingleChildScrollView( + child: Column( + children: [ + 21.height, + if (loginType == LoginType.SILENT_LOGIN && appState.lastLoginImeiDate != null) + Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + LocaleKeys.welcomeBack.tr().toText12(), + (appState.lastLoginImeiDate!.titleDescription! + " " + appState.lastLoginImeiDate!.doctorName!).toText20(isBold: true), + heightSpacer3per(), + LocaleKeys.wouldYouLikeToLoginWithCurrentUsername.tr().toText14(), + heightSpacer3per(), + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: const BorderRadius.all(Radius.circular(10)), + border: Border.all(color: HexColor('#707070'), width: 0.1), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - LocaleKeys.lastLoginDetails.tr().toText13(), - SizedBox( - width: 55.w, - child: Row( - children: [ - "${LocaleKeys.verificationType.tr()} : ".toText11(), - "${loginViewModel.getType(1)}".toText11(isBold: true), - ], - ), - // child: RichText( - // text: TextSpan( - // text: "${LocaleKeys.verificationType.tr()} ", - // style: TextStyle( - // color: const Color(0xFF575757), - // fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5, - // fontFamily: 'Poppins', - // fontWeight: FontWeight.w600, - // letterSpacing: -0.4), - // children: [ - // TextSpan( - // text: loginViewModel.getType(1), - // style: TextStyle( - // color: MyColors.darkTextColor, - // fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5, - // fontFamily: 'Poppins', - // fontWeight: FontWeight.w600, - // letterSpacing: -0.48), - // ) - // ]), - // ), - ), - ], + children: [ + LocaleKeys.lastLoginDetails.tr().toText13(), + SizedBox( + width: 55.w, + child: Row( + children: [ + "${LocaleKeys.verificationType.tr()} : ".toText11(), + loginProviderModel.getType(appState.lastLoginImeiDate!.logInTypeID ?? 1).toText11(isBold: true), + ], + ), ), - Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - "12 NOV, 2022".toText11(isBold: true), - heightSpacer06per(), - "09:56 AM".toText10() - // AppText( - // loginViewModel.user.editedOn != null - // ? AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(loginViewModel.user.editedOn), isMonthShort: true) - // : loginViewModel.user.createdOn != null - // ? AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(loginViewModel.user.createdOn), isMonthShort: true) - // : '--', - // textAlign: TextAlign.right, - // fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 4.5, - // color: Color(0xFF2E303A), - // fontWeight: FontWeight.w700, - // letterSpacing: -0.48, - // ), - // AppText( - // loginViewModel.user.editedOn != null - // ? AppDateUtils.getHour(AppDateUtils.convertStringToDate(loginViewModel.user.editedOn)) - // : loginViewModel.user.createdOn != null - // ? AppDateUtils.getHour(AppDateUtils.convertStringToDate(loginViewModel.user.createdOn)) - // : '--', - // textAlign: TextAlign.right, - // fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5, - // fontWeight: FontWeight.w600, - // letterSpacing: -0.48, - // color: Color(0xFF575757), - // ) - ], - ) ], ), - ), - heightSpacer3per(), - LocaleKeys.pleaseVerify.tr().toText14().paddingOnly(left: 1.w), - heightSpacer2per(), + Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + (appState.lastLoginImeiDate!.editedOn != null + ? AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(appState.lastLoginImeiDate!.editedOn ?? ""), isMonthShort: true) + : appState.lastLoginImeiDate!.createdOn != null + ? AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(appState.lastLoginImeiDate!.createdOn ?? ""), isMonthShort: true) + : '--') + .toText11(isBold: true), + heightSpacer06per(), + (appState.lastLoginImeiDate!.editedOn != null + ? AppDateUtils.getHour(AppDateUtils.convertStringToDate(appState.lastLoginImeiDate!.editedOn ?? "")) + : appState.lastLoginImeiDate!.createdOn != null + ? AppDateUtils.getHour(AppDateUtils.convertStringToDate(appState.lastLoginImeiDate!.createdOn ?? "")) + : '--') + .toText10() + ], + ) + ], + ), + ), + heightSpacer3per(), + LocaleKeys.pleaseVerify.tr().toText14().paddingOnly(left: 1.w), + heightSpacer2per(), + ], + ), + Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (loginType == LoginType.FROM_LOGIN || loginType == LoginType.SILENT_WITH_OTP) + Column( + children: [ + LocaleKeys.pleaseVerifyForBio.tr().toText14(), + 21.height, ], - ) - : Column(mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start, children: [ - LocaleKeys.pleaseVerifyForBio.tr().toText14().paddingAll(10), - ]), - isMoreOption != null && isMoreOption == false - ? Column(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + ), + if (loginType == LoginType.FROM_LOGIN || loginType == LoginType.SILENT_LOGIN) + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ Expanded( child: VerificationMethodsList( - loginViewModel: loginViewModel, - authMethodType: SelectedAuthMethodTypesService.getMethodsTypeService(1), - authenticateUser: (AuthMethodTypes authMethodType, isActive) { - loginViewModel.startSMSService(authMethodType, context: context); + authMethodType: AuthMethodTypes.faceID, + isBioAvailable: loginProviderModel.isFaceBioAvailable, + authenticateUser: (AuthMethodTypes authMethodType, isActive) async { + bool isAuthenticated = await loginProviderModel.loginWithFaceIDAndBiometrics(); + if (isAuthenticated) { + appState.lastLoginTyp = loginProviderModel.getLoginMethodId(authMethodType); + if (loginType == LoginType.FROM_LOGIN) { + setState(() { + loginType = LoginType.FROM_LOGIN; + }); + } else if (loginType == LoginType.SILENT_LOGIN) { + if (appState.lastLoginImeiDate!.logInTypeID == loginProviderModel.getLoginMethodId(authMethodType)) { + loginProviderModel.sendActivationCode( + appState.memberBeforeLogin!, + appState.projectID, + loginProviderModel.getLoginMethodId(AuthMethodTypes.sms), + loginType ?? LoginType.FROM_LOGIN, + isNeedBinding: false, + ); + } else { + setState(() { + loginType = LoginType.SILENT_WITH_OTP; + }); + } + } + } else { + print("Authentication Failed"); + } }, ), ), + 21.width, Expanded( - child: VerificationMethodsList( - loginViewModel: loginViewModel, - authMethodType: AuthMethodTypes.moreOptions, - onShowMore: () { - setState(() { - isMoreOption = true; - }); - }, - )) - ]), - ]) - : Column(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ - onlySMSBox == false - ? Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: VerificationMethodsList( - loginViewModel: loginViewModel, - authMethodType: AuthMethodTypes.fingerPrint, - authenticateUser: (AuthMethodTypes authMethodType, isActive) { - loginViewModel.startSMSService(authMethodType, context: context); - }, - )), - Expanded( - child: VerificationMethodsList( - loginViewModel: loginViewModel, - authMethodType: AuthMethodTypes.faceID, - authenticateUser: (AuthMethodTypes authMethodType, isActive) { - loginViewModel.startSMSService(authMethodType, context: context); - }, - )) - ], - ) - : const SizedBox(), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: VerificationMethodsList( - loginViewModel: loginViewModel, - authMethodType: AuthMethodTypes.sms, - authenticateUser: (AuthMethodTypes authMethodType, isActive) { - loginViewModel.startSMSService(authMethodType, context: context); - }, - )), - Expanded( - child: VerificationMethodsList( - loginViewModel: loginViewModel, - authMethodType: AuthMethodTypes.whatsApp, - authenticateUser: (AuthMethodTypes authMethodType, isActive) { - loginViewModel.startSMSService(authMethodType, context: context); + child: VerificationMethodsList( + authMethodType: AuthMethodTypes.fingerPrint, + isBioAvailable: loginProviderModel.isFingerBioAvailable, + authenticateUser: (AuthMethodTypes authMethodType, isActive) async { + bool isAuthenticated = await loginProviderModel.loginWithFaceIDAndBiometrics(); + if (isAuthenticated) { + appState.lastLoginTyp = loginProviderModel.getLoginMethodId(authMethodType); + if (loginType == LoginType.FROM_LOGIN) { + setState(() { + loginType = LoginType.FROM_LOGIN; + }); + } else if (loginType == LoginType.SILENT_LOGIN) { + if (appState.lastLoginImeiDate!.logInTypeID == loginProviderModel.getLoginMethodId(authMethodType)) { + loginProviderModel.sendActivationCode( + appState.memberBeforeLogin!, + appState.projectID, + loginProviderModel.getLoginMethodId(AuthMethodTypes.sms), + loginType ?? LoginType.FROM_LOGIN, + isNeedBinding: false, + ); + } else { + setState(() { + loginType = LoginType.SILENT_WITH_OTP; + }); + } + } + } else { + print("Authentication Failed"); + } }, - )) - ], + ), + ), + ], + ), + 21.height, + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: VerificationMethodsList( + authMethodType: AuthMethodTypes.sms, + authenticateUser: (AuthMethodTypes authMethodType, isActive) { + if (loginType == LoginType.FROM_LOGIN || loginType == LoginType.SILENT_LOGIN) { + if (appState.lastLoginTyp == -1) appState.lastLoginTyp = loginProviderModel.getLoginMethodId(authMethodType); + if (loginType == LoginType.SILENT_LOGIN) { + loginType = LoginType.SILENT_WITH_OTP; + } + } + loginProviderModel.sendActivationCode( + appState.memberBeforeLogin!, + appState.projectID, + loginProviderModel.getLoginMethodId(AuthMethodTypes.sms), + loginType ?? LoginType.FROM_LOGIN, + ); + }, + ), ), - ]), - - // ) - ], - ), - ], - ), - ), - ), - ), - ), - bottomSheet: !isMoreOption - ? null - : Container( - height: 10.h, - color: MyColors.backgroundColor, - width: double.infinity, - child: Center( - child: FractionallySizedBox( - widthFactor: 0.9, - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: EdgeInsets.symmetric(horizontal: 4.w), - child: DefaultButton(LocaleKeys.useAnotherAccount.tr(), () {}, colors: const [MyColors.redColor, MyColors.redColor]), + 21.width, + Expanded( + child: VerificationMethodsList( + authMethodType: AuthMethodTypes.whatsApp, + authenticateUser: (AuthMethodTypes authMethodType, isActive) { + if (loginType == LoginType.FROM_LOGIN || loginType == LoginType.SILENT_LOGIN) { + if (appState.lastLoginTyp == -1) appState.lastLoginTyp = loginProviderModel.getLoginMethodId(authMethodType); + if (loginType == LoginType.SILENT_LOGIN) { + loginType = LoginType.SILENT_WITH_OTP; + } + } + loginProviderModel.sendActivationCode( + appState.memberBeforeLogin!, + appState.projectID, + loginProviderModel.getLoginMethodId(AuthMethodTypes.whatsApp), + loginType ?? LoginType.FROM_LOGIN, + ); + }, + ), + ), + ], + ), + ], ), - heightSpacer3per(), + 12.height, ], ), ), ), ), + 21.height, + DefaultButton( + LocaleKeys.useAnotherAccount.tr(), + () async { + Navigator.pushReplacementNamed(context, AppRoutes.login, arguments:false); + }, + colors: const [ + MyColors.redColor, + MyColors.redColor, + ], + ), + ], + ), + ), ); } } diff --git a/lib/ui/login/login_page.dart b/lib/ui/login/login_page.dart index 18e5c06..d11c125 100644 --- a/lib/ui/login/login_page.dart +++ b/lib/ui/login/login_page.dart @@ -1,103 +1,170 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:hmg_nurses/classes/colors.dart'; +import 'package:hmg_nurses/classes/consts.dart'; +import 'package:hmg_nurses/classes/enums.dart'; +import 'package:hmg_nurses/classes/utils.dart'; import 'package:hmg_nurses/config/routes.dart'; import 'package:hmg_nurses/extensions/string_extensions.dart'; import 'package:hmg_nurses/extensions/widget_extensions.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; import 'package:hmg_nurses/generated/locale_keys.g.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; +import 'package:hmg_nurses/model/login/member_login_model.dart'; +import 'package:hmg_nurses/model/login/project_info_model.dart'; +import 'package:hmg_nurses/provider/login_provider_model.dart'; import 'package:hmg_nurses/widgets/button/default_button.dart'; import 'package:hmg_nurses/widgets/cupertino_picker.dart'; import 'package:hmg_nurses/widgets/input_widget.dart'; +import 'package:injector/injector.dart'; +import 'package:local_auth/local_auth.dart'; +import 'package:provider/provider.dart'; import 'package:sizer/sizer.dart'; class LoginPage extends StatefulWidget { - const LoginPage({Key? key}) : super(key: key); - @override State createState() => _LoginPageState(); } class _LoginPageState extends State { + int branchID = 0; + + LoginProviderModel? provider; + final loginFormKey = GlobalKey(); + var projectIdController = TextEditingController(); + var userIdController = TextEditingController(); + var passwordController = TextEditingController(); - FocusNode projectIdFocusNode = FocusNode(); - FocusNode userIdFocusNode = FocusNode(); - FocusNode passwordIdFocusNode = FocusNode(); + + checkUserSession() async { + provider!.checkLastSession(); + } + + setUserSession() async { + await Utils.getStringFromPrefs(SharedPrefsConsts.username); + await Utils.getStringFromPrefs(SharedPrefsConsts.password); + } @override Widget build(BuildContext context) { + if (provider == null) { + dynamic? isNeedCheckUserSession = (ModalRoute.of(context)!.settings.arguments); + // setUserSession(); + provider = context.read(); + if (isNeedCheckUserSession == null) { + checkUserSession(); + } + } + return Scaffold( body: SafeArea( - child: SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - LocaleKeys.welcomeTo.tr().toText14(color: MyColors.blackColor), - LocaleKeys.drSulaiman.tr().toText20(isBold: true, color: MyColors.blackColor), - "Nurses App".toText16(color: MyColors.redColor), - ], - ), - heightSpacer4per(), - Form( - key: loginFormKey, - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - heightSpacer3per(), - CustomTextField( - LocaleKeys.userID.tr(), - userIdController, - isEnableBorder: true, - focusNode: userIdFocusNode, - isInputTypeNum: true, - ), - heightSpacer3per(), - CustomTextField( - LocaleKeys.password.tr(), - passwordController, - isTextIsPassword: true, - focusNode: passwordIdFocusNode, + child: Column( + children: [ + Expanded( + child: SingleChildScrollView( + child: SizedBox( + height: MediaQuery.of(context).size.height / 1.2, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + flex: 1, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + LocaleKeys.welcomeTo.tr().toText14(color: MyColors.blackColor), + LocaleKeys.drSulaiman.tr().toText20(isBold: true, color: MyColors.blackColor), + "Nurses App".toText16(color: MyColors.redColor), + ], + ), + ), + Expanded( + flex: 3, + child: Form( + key: loginFormKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + CustomTextField( + LocaleKeys.userID.tr(), + userIdController, + isEnableBorder: true, + isInputTypeNum: true, + ), + 16.height, + CustomTextField( + LocaleKeys.password.tr(), + passwordController, + isTextIsPassword: true, + onChange: (v) { + if (v.length == 1) { + provider!.getAssignedBranches(userIdController.text); + } + }, + ), + 16.height, + Consumer( + builder: (_, data, w) { + // if (data.state == ViewState.idle && provider.assignedBranches.isNotEmpty) { + // projectIdController.text = provider.assignedBranches.first.facilityName!; + // branchID = provider.assignedBranches.first.facilityId as int; + // print(branchID); + // provider.notifyListeners(); + // } + return data.state == ViewState.hide + ? Container() + : data.state == ViewState.busy + ? const Center(child: CircularProgressIndicator()) + : CustomTextField( + LocaleKeys.branch.tr(), + projectIdController, + hasSelection: true, + isEnable: false, + onClick: () => CustomCupertinoPicker.showCupertinoPicker( + context, + provider!.assignedBranches, + (index) { + projectIdController.text = provider!.assignedBranches[index].facilityName!; + branchID = provider!.assignedBranches[index].facilityId as int; + provider!.notifyListeners(); + }, + ), + ); + }, + ), + ], + ), + ), + ), + ], ), - heightSpacer3per(), - CustomTextField( - LocaleKeys.branch.tr(), - projectIdController, - hasSelection: true, - isEnable: false, - focusNode: projectIdFocusNode, - onClick: () => CustomCupertinoPicker.showCupertinoPicker(context, [], () {}), - ), - heightSpacer15per(), - ]), - ) - ], - ).paddingSymmetrical(8.w, 4.h), - ), - ), - bottomSheet: Container( - height: 12.h, - color: MyColors.backgroundColor, - width: double.infinity, - child: Center( - child: FractionallySizedBox( - widthFactor: 0.89, - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: EdgeInsets.symmetric(horizontal: 4.w), - child: DefaultButton(LocaleKeys.login.tr(), () { - Navigator.pushNamed(context, AppRoutes.loginMethodsPage); - }, colors: const [MyColors.redColor, MyColors.redColor]), ), - heightSpacer3per(), + ), + ), + 21.height, + DefaultButton( + LocaleKeys.login.tr(), + () async { + // provider.checkLastSession(); + bool isSuccess = await provider!.performLogin(userIdController.text, passwordController.text, branchID); + if (isSuccess) { + appState.password = passwordController.text; + appState.doctorUserId = int.parse(userIdController.text); + print(appState.doctorUserId); + } + }, + colors: const [ + MyColors.redColor, + MyColors.redColor, ], ), - ), - ), + ], + ).paddingAll(21), ), ); } diff --git a/lib/ui/login/login_vm.dart b/lib/ui/login/login_vm.dart deleted file mode 100644 index b35b025..0000000 --- a/lib/ui/login/login_vm.dart +++ /dev/null @@ -1,141 +0,0 @@ -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:hmg_nurses/base/base_vm.dart'; -import 'package:hmg_nurses/classes/enums.dart'; -import 'package:hmg_nurses/classes/utils.dart'; -import 'package:hmg_nurses/dialogs/otp_dialog.dart'; -import 'package:hmg_nurses/generated/locale_keys.g.dart'; -import 'package:local_auth/local_auth.dart'; - -class LoginViewModel extends BaseViewModel { - bool isLogin = false; - bool unverified = false; - bool isFromLogin = false; - APPSTATUS appStatus = APPSTATUS.loading; - String localToken = ""; - - String nurseProfile = ""; - - final LocalAuthentication auth = LocalAuthentication(); - late List _availableBiometrics; - - LoginViewModel(); - - /// get type name based on id. - getType(type) { - switch (type) { - case 1: - return LocaleKeys.sms.tr(); - case 3: - return LocaleKeys.fingerPrint.tr(); - case 4: - return LocaleKeys.face.tr(); - case 2: - return LocaleKeys.whatsapp.tr(); - default: - return LocaleKeys.sms.tr(); - } - } - - /// ask user to add his biometric - showIOSAuthMessages() async { - try { - await auth.authenticate( - localizedReason: 'Scan your fingerprint to authenticate', - ); - } on PlatformException catch (e) { - if (kDebugMode) { - print(e); - } - } - } - - /// check specific biometric if it available or not - Future checkIfBiometricAvailable(BiometricType biometricType) async { - bool isAvailable = false; - await _getAvailableBiometrics(); - if (_availableBiometrics != null) { - for (var i = 0; i < _availableBiometrics.length; i++) { - if (biometricType == _availableBiometrics[i]) isAvailable = true; - } - } - return isAvailable; - } - - /// get all available biometric on the device for local Auth service - Future _getAvailableBiometrics() async { - try { - _availableBiometrics = await auth.getAvailableBiometrics(); - } on PlatformException catch (e) { - if (kDebugMode) { - print(e); - } - } - } - - /// determine the status of the app - APPSTATUS get status { - if (state == ViewState.busy) { - appStatus = APPSTATUS.loading; - } else { - if (nurseProfile != null) { - appStatus = APPSTATUS.authenticated; - } else if (unverified) { - appStatus = APPSTATUS.unverified; - } else if (isLogin) { - appStatus = APPSTATUS.authenticated; - } else { - appStatus = APPSTATUS.unAuthenticated; - } - } - return appStatus; - } - - setAppStatus(APPSTATUS status) { - appStatus = status; - notifyListeners(); - } - - setUnverified(bool unverified, {bool isFromLogin = false}) { - this.unverified = unverified; - this.isFromLogin = isFromLogin; - notifyListeners(); - } - - /// logout function - logout({bool isFromLogin = false}) async { - // localToken = ""; - // String lang = await sharedPref.getString(APP_Language); - // await Utils.clearSharedPref(); - // doctorProfile = null; - // sharedPref.setString(APP_Language, lang); - // deleteUser(); - // await getDeviceInfoFromFirebase(); - // this.isFromLogin = isFromLogin; - // appStatus = APPSTATUS.unAuthenticated; - // setState(ViewState.Idle); - } - - deleteUser() { - // user = null; - // unverified = false; - // isLogin = false; - } - - startSMSService(AuthMethodTypes type, {isSilentLogin = false, required BuildContext context}) { - OtpDialog( - type: 1, - mobileNo: 0504278212, - onSuccess: (String otpCode, TextEditingController pinPut) { - Utils.showLoading(); - //TODO: API CALL - // performDirectApiCall(_title, _icon, _flag, value); - }, - onFailure: () => Navigator.pop(context), - onResendCode: () {}) - .displayDialog(context); - } -} diff --git a/lib/ui/login/splash_page.dart b/lib/ui/login/splash_page.dart index 8d8bfb7..a877c60 100644 --- a/lib/ui/login/splash_page.dart +++ b/lib/ui/login/splash_page.dart @@ -1,6 +1,36 @@ import 'package:flutter/material.dart'; +import 'package:hmg_nurses/services/api_repo/login_api_repo.dart'; +import 'package:hmg_nurses/services/firebase_service.dart'; +import 'package:injector/injector.dart'; + +import '../../classes/utils.dart'; + +class SplashPage extends StatefulWidget { + @override + State createState() => _SplashPageState(); +} + +class _SplashPageState extends State { + final ILoginApiRepo _loginApiRepo = Injector.appInstance.get(); + + @override + void initState() { + super.initState(); + getData(); + } + + getData() async { + try { + await _loginApiRepo.getDeviceInfoByIMEI(); + await _loginApiRepo.getProjectInfo("userId"); + await _loginApiRepo.memberLogin("13777", "Rr123456", 12); + } catch (e) { + Utils.handleException(e, context, (msg) { + Utils.confirmDialog(context, msg); + }); + } + } -class SplashPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold(); diff --git a/lib/ui/login/widgets/verification_method_card.dart b/lib/ui/login/widgets/verification_method_card.dart index 09a7bb5..556a910 100644 --- a/lib/ui/login/widgets/verification_method_card.dart +++ b/lib/ui/login/widgets/verification_method_card.dart @@ -6,61 +6,65 @@ import 'package:hmg_nurses/classes/colors.dart'; import 'package:hmg_nurses/classes/enums.dart'; import 'package:hmg_nurses/classes/size_config.dart'; import 'package:hmg_nurses/generated/locale_keys.g.dart'; -import 'package:hmg_nurses/ui/login/login_vm.dart'; + import 'package:local_auth/local_auth.dart'; -class VerificationMethodsList extends StatefulWidget { +class VerificationMethodsList extends StatelessWidget { final AuthMethodTypes authMethodType; final Function(AuthMethodTypes type, bool isActive)? authenticateUser; final Function? onShowMore; - final LoginViewModel loginViewModel; - - const VerificationMethodsList({Key? key, required this.authMethodType, this.authenticateUser, this.onShowMore, required this.loginViewModel}) : super(key: key); - - @override - VerificationMethodsListState createState() => VerificationMethodsListState(); -} + final bool isBioAvailable; -class VerificationMethodsListState extends State { - final LocalAuthentication auth = LocalAuthentication(); + const VerificationMethodsList({ + Key? key, + required this.authMethodType, + this.authenticateUser, + this.onShowMore, + this.isBioAvailable = true, + }) : super(key: key); @override Widget build(BuildContext context) { - switch (widget.authMethodType) { + switch (authMethodType) { case AuthMethodTypes.whatsApp: return MethodTypeCard( assetPath: 'assets/images/login/verify_whatsapp.svg', - onTap: () => {widget.authenticateUser!(AuthMethodTypes.whatsApp, true)}, + onTap: () => {authenticateUser!(AuthMethodTypes.whatsApp, true)}, label: LocaleKeys.verifyThroughWhatsapp.tr(), + isBioAvailable: isBioAvailable, ); case AuthMethodTypes.sms: return MethodTypeCard( assetPath: "assets/images/login/verify_sms.svg", - onTap: () => {widget.authenticateUser!(AuthMethodTypes.sms, true)}, + onTap: () => {authenticateUser!(AuthMethodTypes.sms, true)}, label: LocaleKeys.verifyThroughSMS.tr(), + isBioAvailable: isBioAvailable, ); case AuthMethodTypes.fingerPrint: return MethodTypeCard( assetPath: 'assets/images/login/verify_thumb.svg', - onTap: () => {widget.authenticateUser!(AuthMethodTypes.fingerPrint, true)}, + onTap: () => {authenticateUser!(AuthMethodTypes.fingerPrint, true)}, label: LocaleKeys.verifyThroughFingerprint.tr(), + isBioAvailable: isBioAvailable, ); case AuthMethodTypes.faceID: return MethodTypeCard( assetPath: 'assets/images/login/verify_face.svg', - onTap: () => {widget.authenticateUser!(AuthMethodTypes.faceID, true)}, + onTap: () => {authenticateUser!(AuthMethodTypes.faceID, true)}, label: LocaleKeys.verifyThroughFace.tr(), + isBioAvailable: isBioAvailable, ); default: return MethodTypeCard( assetPath: 'assets/images/login/more_icon.png', onTap: () { - widget.onShowMore!(); + onShowMore!(); }, isSvg: false, label: LocaleKeys.moreVerificationOpts.tr(), height: 0, + isBioAvailable: isBioAvailable, ); } } @@ -74,12 +78,14 @@ class MethodTypeCard extends StatelessWidget { required this.label, this.height = 20, this.isSvg = true, + required this.isBioAvailable, }) : super(key: key); final String assetPath; final GestureTapCallback onTap; final String label; final double height; final bool isSvg; + final bool isBioAvailable; @override Widget build(BuildContext context) { @@ -92,44 +98,44 @@ class MethodTypeCard extends StatelessWidget { return InkWell( onTap: onTap, child: Container( - margin: const EdgeInsets.all(10), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: const BorderRadius.all(Radius.circular(10)), - border: Border.all(color: HexColor('#707070'), width: 0.1), - ), - height: cardHeight, - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - isSvg - ? SvgPicture.asset(assetPath, width: SizeConfig.widthMultiplier! * (14), height: cardHeight * 0.20) - : Image.asset( - assetPath, - width: SizeConfig.widthMultiplier! * (12), - height: cardHeight * 0.35, - // height: , - ), - SizedBox( - height: height, + decoration: BoxDecoration( + color: isBioAvailable ? Colors.white : Colors.grey[400], + borderRadius: const BorderRadius.all(Radius.circular(10)), + border: Border.all(color: HexColor('#707070'), width: 0.1), + ), + height: cardHeight, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + isSvg + ? SvgPicture.asset(assetPath, width: SizeConfig.widthMultiplier! * (14), height: cardHeight * 0.20) + : Image.asset( + assetPath, + width: SizeConfig.widthMultiplier! * (12), + height: cardHeight * 0.35, + // height: , + ), + SizedBox( + height: height, + ), + Text( + label, + style: TextStyle( + fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * (SizeConfig.isHeightVeryShort ? 3 : 3.7), + color: MyColors.darkTextColor, + fontWeight: FontWeight.w600, + letterSpacing: -0.48, ), - Text( - label, - style: TextStyle( - fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * (SizeConfig.isHeightVeryShort ? 3 : 3.7), - color: MyColors.darkTextColor, - fontWeight: FontWeight.w600, - letterSpacing: -0.48, - ), - ) - ], - ), + ) + ], ), - )), + ), + ), + ), ); } } diff --git a/lib/ui/patient/profile/patient_profile_page.dart b/lib/ui/patient/profile/patient_profile_page.dart new file mode 100644 index 0000000..b165712 --- /dev/null +++ b/lib/ui/patient/profile/patient_profile_page.dart @@ -0,0 +1,56 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:hmg_nurses/classes/date-utils.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; +import 'package:hmg_nurses/extensions/string_extensions.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; +import 'package:hmg_nurses/ui/patient/widgets/grid/profile_gird_for_search.dart'; +import 'package:hmg_nurses/ui/patient/widgets/patient_profile_header.dart'; +import 'package:hmg_nurses/widgets/app_bar_widget.dart'; +import 'package:hmg_nurses/widgets/circular_avatar.dart'; +import 'package:hmg_nurses/widgets/commen/cusom_row.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class PatientProfilePage extends StatelessWidget { + late GetPatientFileInformationPrmList patientProfile; + + @override + Widget build(BuildContext context) { + patientProfile = ModalRoute.of(context)!.settings.arguments as GetPatientFileInformationPrmList; + return Scaffold( + appBar: AppBarWidget( + context, + title: "${patientProfile.firstName!} ${patientProfile.lastName!}", + actions: [ + SvgPicture.asset( + patientProfile.gender == 1 ? "assets/images/svgs/male.svg" : "assets/images/svgs/female.svg", + ), + IconButton( + onPressed: () async { + String url = "tel://${patientProfile.mobileNumber}"; + if (!await launchUrl(Uri.parse(url))) { + throw 'Could not launch $url'; + } + }, + icon: const Icon(Icons.call), + ), + ], + ), + body: SingleChildScrollView( + child: Column( + children: [ + PatientProfileHeader(patientProfile), + Container( + width: double.infinity, + margin: const EdgeInsets.all(21), + child: ProfileGridForSearch( + patient: patientProfile, + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/ui/patient/profile/vital/vital_signs_page.dart b/lib/ui/patient/profile/vital/vital_signs_page.dart new file mode 100644 index 0000000..3ab5672 --- /dev/null +++ b/lib/ui/patient/profile/vital/vital_signs_page.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; +import 'package:hmg_nurses/provider/patient_provider_model.dart'; +import 'package:hmg_nurses/ui/patient/widgets/patient_profile_header.dart'; +import 'package:hmg_nurses/widgets/app_bar_widget.dart'; +import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class VitalSignsPage extends StatelessWidget { + late GetPatientFileInformationPrmList patientProfile; + late PatientProviderModel provider; + + @override + Widget build(BuildContext context) { + patientProfile = ModalRoute.of(context)!.settings.arguments as GetPatientFileInformationPrmList; + provider = context.read(); + provider.fetchVitalSignsHistory(patientProfile); + return Scaffold( + appBar: AppBarWidget( + context, + title: "${patientProfile.firstName!} ${patientProfile.lastName!}", + actions: [ + SvgPicture.asset( + patientProfile.gender == 1 ? "assets/images/svgs/male.svg" : "assets/images/svgs/female.svg", + ), + IconButton( + onPressed: () async { + String url = "tel://${patientProfile.mobileNumber}"; + if (!await launchUrl(Uri.parse(url))) { + throw 'Could not launch $url'; + } + }, + icon: const Icon(Icons.call), + ), + ], + ), + body: SingleChildScrollView( + child: Column( + children: [ + PatientProfileHeader(patientProfile), + ], + ), + ), + ); + } +} diff --git a/lib/ui/patient/search_patient_page.dart b/lib/ui/patient/search_patient_page.dart new file mode 100644 index 0000000..f4e7d4d --- /dev/null +++ b/lib/ui/patient/search_patient_page.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:hmg_nurses/classes/colors.dart'; +import 'package:hmg_nurses/provider/patient_provider_model.dart'; +import 'package:hmg_nurses/widgets/app_bar_widget.dart'; +import 'package:hmg_nurses/widgets/button/default_button.dart'; +import 'package:hmg_nurses/widgets/input_widget.dart'; +import 'package:provider/provider.dart'; + +class SearchPatientPage extends StatelessWidget { + var searchController = TextEditingController(); + + PatientProviderModel? provider; + + @override + Widget build(BuildContext context) { + provider = context.read(); + return Scaffold( + appBar: AppBarWidget(context, title: "Search Patients", isNeedLeading: false, actions: [ + IconButton( + onPressed: () { + Navigator.pop(context); + }, + icon: const Icon(Icons.close), + ), + ]), + body: Container( + padding: const EdgeInsets.all(21), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + CustomTextField( + "Search By Patient Id", + searchController, + inputFormatters: [ + FilteringTextInputFormatter.allow( + RegExp("[0-9]"), + ), + ], + ), + DefaultButton( + "Search", + () async { + // provider.checkLastSession(); + if (searchController.text.length > 0) { + provider?.searchPatient(int.parse(searchController.text)); + } + }, + ), + ], + ), + ), + ); + } +} diff --git a/lib/ui/patient/searched_patient_list_page.dart b/lib/ui/patient/searched_patient_list_page.dart new file mode 100644 index 0000000..79eb92d --- /dev/null +++ b/lib/ui/patient/searched_patient_list_page.dart @@ -0,0 +1,96 @@ +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/config/routes.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; +import 'package:hmg_nurses/provider/patient_provider_model.dart'; +import 'package:hmg_nurses/ui/patient/widgets/patient_card.dart'; +import 'package:hmg_nurses/widgets/app_bar_widget.dart'; +import 'package:hmg_nurses/widgets/errors/error_message.dart'; +import 'package:hmg_nurses/widgets/input_widget.dart'; +import 'package:provider/provider.dart'; + +class SearchedPatientListPage extends StatelessWidget { + int? patientId; + late PatientProviderModel provider; + var searchController = TextEditingController(); + + @override + Widget build(BuildContext context) { + patientId ??= ModalRoute.of(context)!.settings.arguments as int; + provider = context.read(); + return Scaffold( + appBar: AppBarWidget( + context, + title: "Search For $patientId", + ), + body: Container( + width: double.infinity, + height: double.infinity, + padding: EdgeInsets.all(21), + child: Column( + children: [ + CustomTextField( + "Search Name, Medical File, Phone Number", + searchController, + suffixIcon: Icons.filter_alt, + onChange: (v) { + provider.filterPatient(v); + }, + ), + 21.height, + Expanded( + child: Consumer( + builder: (_, model, widget) { + return model.searchedPatient.getPatientFileInformationPrmList!.isEmpty + ? ErrorMessage(errorMessage: "No Data Found") + : Column( + children: [ + model.filteredPatientsList.isEmpty + ? ErrorMessage(errorMessage: "No Data") + : Expanded( + child: SizedBox( + width: double.infinity, + height: double.infinity, + child: ListView.separated( + itemBuilder: (context, index) { + // String nationalityName = model.filteredPatientsList[index].nationalityName != null + // ? model.filteredPatientsList[index].nationalityName.trim() + // : model.filteredPatientsList[index].nationality != null + // ? model.filteredPatientsList[index].nationality.trim() + // : model.filteredPatientsList[index].nationalityId != null + // ? model.filteredPatientsList[index].nationalityId + // : ""; + return PatientCard( + name: "${model.filteredPatientsList[index].firstName!} ${model.filteredPatientsList[index].lastName!}", + gender: model.filteredPatientsList[index].gender??1 , + nationalityName: (model.filteredPatientsList[index].nationalityId != null) ? model.filteredPatientsList[index].nationalityId! : "", + nationalityFlagURL: (model.filteredPatientsList[index].nationalityId != null) ? model.filteredPatientsList[index].nationalityFlagUrl! : "", + fileNumber: model.filteredPatientsList[index].patientId.toString(), + dateofBirth: model.filteredPatientsList[index].dateofBirth!, + // arrivedOn: "", + // appointmentDate: "", + // admissionDate: "", + // clinicDescription: "", + // roomId: "", + onTap: () { + Navigator.pushNamed(context, AppRoutes.patientProfile, arguments: model.filteredPatientsList[index]); + }, + ); + }, + separatorBuilder: (context, index) { + return 12.height; + }, + itemCount: model.filteredPatientsList.length, + ), + ), + ), + ], + ); + }, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/ui/patient/widgets/grid/profile_gird_for_search.dart b/lib/ui/patient/widgets/grid/profile_gird_for_search.dart new file mode 100644 index 0000000..99baabc --- /dev/null +++ b/lib/ui/patient/widgets/grid/profile_gird_for_search.dart @@ -0,0 +1,74 @@ +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/config/routes.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; +import 'package:hmg_nurses/model/patient_profile_card_model.dart'; +import 'package:hmg_nurses/ui/patient/widgets/patient_profile_button.dart'; + +class ProfileGridForSearch extends StatelessWidget { + final GetPatientFileInformationPrmList patient; + final String? patientType; + final String? arrivalType; + final double? height; + final bool isInpatient; + String? from; + String? to; + + ProfileGridForSearch({required this.patient, this.patientType, this.arrivalType, this.height, this.isInpatient = false, this.from, this.to}); + + @override + Widget build(BuildContext context) { + final List cardsList = [ + PatientProfileCardModel("Vital", "Signs", AppRoutes.vitalSigns, 'assets/images/svgs/profile_screen/vital signs.svg', isInPatient: isInpatient), + PatientProfileCardModel("Lab", "Result", "LAB_RESULT", 'assets/images/svgs/profile_screen/lab results.svg', isInPatient: isInpatient), + PatientProfileCardModel("Lab", "Special", "ALL_SPECIAL_LAB_RESULT", 'assets/images/svgs/profile_screen/lab results.svg', isInPatient: isInpatient), + PatientProfileCardModel("Radiology", "Service", "RADIOLOGY_PATIENT", 'assets/images/svgs/profile_screen/health summary.svg', isInPatient: isInpatient), + PatientProfileCardModel("Orders", "Prescription" + ' (old)', "ORDER_PRESCRIPTION_OLD", 'assets/images/svgs/profile_screen/order prescription.svg', isInPatient: isInpatient), + PatientProfileCardModel("Patient", "Prescription", "ORDER_PRESCRIPTION_NEW", 'assets/images/svgs/profile_screen/order prescription.svg', isInPatient: isInpatient), + PatientProfileCardModel("Health", "Summary", "HEALTH_SUMMARY", 'assets/images/svgs/profile_screen/health summary.svg', isInPatient: isInpatient), + PatientProfileCardModel("Patient", "ECG", "PATIENT_ECG", 'assets/images/svgs/profile_screen/ECG.svg', isInPatient: isInpatient), + PatientProfileCardModel("Orders", "Procedures", "ORDER_PROCEDURE", 'assets/images/svgs/profile_screen/Order Procedures.svg', isInPatient: isInpatient), + PatientProfileCardModel("Insurance", "Service", "PATIENT_INSURANCE_APPROVALS_NEW", 'assets/images/svgs/profile_screen/vital signs.svg', isInPatient: isInpatient), + PatientProfileCardModel("PatientSick", "Leave", "ADD_SICKLEAVE", 'assets/images/svgs/profile_screen/patient sick leave.svg', isInPatient: isInpatient), + // if (patient.appointmentNo != null && patient.appointmentNo != 0) + // PatientProfileCardModel( + // TranslationBase.of(context).patient, + // TranslationBase.of(context).ucaf, + // PATIENT_UCAF_REQUEST, + // 'assets/images/svgs/profile_screen/UCAF.svg', + // isInPatient: isInpatient, + // isDisable: patient.patientStatusType != 43 ? true : false), + // if (patient.appointmentNo != null && patient.appointmentNo != 0) + // PatientProfileCardModel( + // TranslationBase.of(context).referral, + // TranslationBase.of(context).patient, + // REFER_PATIENT_TO_DOCTOR, + // 'assets/images/svgs/profile_screen/refer patient.svg', + // isInPatient: isInpatient, + // isDisable: patient.patientStatusType != 43 ? true : false), + // if (patient.appointmentNo != null && patient.appointmentNo != 0) + // PatientProfileCardModel( + // TranslationBase.of(context).admission, + // TranslationBase.of(context).request, + // PATIENT_ADMISSION_REQUEST, + // 'assets/images/svgs/profile_screen/admission req.svg', + // isInPatient: isInpatient, + // isDisable: patient.patientStatusType != 43 ? true : false), + ]; + + return GridView( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisSpacing: 10, + mainAxisSpacing: 8, + crossAxisCount: 3, + ), + children: cardsList.map((item) { + return PatientProfileButton( + patient: patient, + model: item, + ); + }).toList(), + ); + } +} diff --git a/lib/ui/patient/widgets/patient_card.dart b/lib/ui/patient/widgets/patient_card.dart new file mode 100644 index 0000000..e1a54eb --- /dev/null +++ b/lib/ui/patient/widgets/patient_card.dart @@ -0,0 +1,218 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:hmg_nurses/classes/date-utils.dart'; +import 'package:hmg_nurses/classes/utils.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; +import 'package:hmg_nurses/extensions/string_extensions.dart'; +import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/widgets/commen/cusom_row.dart'; +import 'package:sizer/sizer.dart'; + +import '../../../widgets/circular_avatar.dart'; + +class PatientCard extends StatelessWidget { + final String name; + final int gender; + final String nationalityName; + final String nationalityFlagURL; + final String fileNumber; + final String dateofBirth; + final String? arrivedOn; + final String? appointmentDate; + final String? admissionDate; + final String? clinicDescription; + final String? roomId; + final GestureTapCallback? onTap; + + const PatientCard({ + super.key, + required this.name, + required this.gender, + required this.nationalityName, + required this.nationalityFlagURL, + required this.fileNumber, + required this.dateofBirth, + this.arrivedOn, + this.appointmentDate, + this.admissionDate, + this.clinicDescription, + this.roomId, + this.onTap, + }); + + @override + Widget build(BuildContext context) { + return Container( + height: 120, + decoration: BoxDecoration( + borderRadius: const BorderRadius.all( + Radius.circular(10.0), + ), + border: Border.all(width: 1, color: const Color(0xffEFEFEF)), + boxShadow: [ + BoxShadow( + color: const Color(0xff000000).withOpacity(.05), + //spreadRadius: 5, + blurRadius: 27, + offset: const Offset(0, -3), + ), + ], + color: Colors.white, + ), + child: InkWell( + onTap: onTap, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + height: double.infinity, + alignment: Alignment.center, + padding: const EdgeInsets.only(left: 2, right: 2), + decoration: BoxDecoration( + color: const Color(0xffD02127), + // isFromLiveCare + // ? Colors.white + // : (isMyPatient && !isFromSearch) + // ? AppGlobal.appGreenColor + // : patientInfo.patientStatusType == 43 + // ? AppGlobal.appGreenColor + // : isMyPatient + // ? AppGlobal.appGreenColor + // : isInpatient + // ? Colors.white + // : !isFromSearch + // ? Colors.red[800] + // : Colors.white, + borderRadius: BorderRadius.only( + topLeft: appState.isArabic() ? const Radius.circular(0) : const Radius.circular(10), + bottomLeft: appState.isArabic() ? const Radius.circular(0) : const Radius.circular(10), + topRight: appState.isArabic() ? const Radius.circular(10) : const Radius.circular(0), + bottomRight: appState.isArabic() ? const Radius.circular(10) : const Radius.circular(0), + ), + ), + ), + Expanded( + child: Container( + width: double.infinity, + height: double.infinity, + padding: const EdgeInsets.all(8), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Utils.capitalize(name).toText12(), + Container( + padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 2), + child: SvgPicture.asset( + gender == 1 ? "assets/images/svgs/male.svg" : "assets/images/svgs/female.svg", + ), + ) + // if (isFromLiveCare) + // ShowTimer( + // patientInfo: patientInfo, + // ), + ], + ), + if (nationalityName.isNotEmpty) + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + nationalityName.truncate(14).toTextAuto( + fontSize: 9, + color: const Color(0xFF2E303A), + textOverflow: TextOverflow.ellipsis, + ), + nationalityFlagURL.isNotEmpty + ? ClipRRect( + borderRadius: BorderRadius.circular(20.0), + child: CachedNetworkImage( + imageUrl: nationalityFlagURL ?? "", + height: 16, + width: 22, + errorWidget: (context, url, error) => "No Image".toText10(), + ), + ) + : const SizedBox() + ], + ), + ], + ), + 12.height, + Row( + children: [ + showGenderAvator(gender), + 12.width, + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + CustomRow( + label: "File Number:", + value: fileNumber.toString(), + ), + CustomRow( + label: "Age : ", + value: "${AppDateUtils.getAgeByBirthday(dateofBirth, context, isServerFormat: true)}", + ), + arrivedOn != null + ? CustomRow( + label: "Arrived On : ", + value: AppDateUtils.getDayMonthYearDateFormatted( + AppDateUtils.convertStringToDate( + arrivedOn!, + ), + isMonthShort: true, + ), + ) + : (appointmentDate != null && appointmentDate!.isNotEmpty) + ? Column( + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + CustomRow( + label: "Appointment Date : ", + value: AppDateUtils.getDayMonthYearDateFormatted( + AppDateUtils.convertStringToDate( + appointmentDate!, + ), + isMonthShort: true), + ), + ], + ) + : const SizedBox(), + if (admissionDate != null) + CustomRow( + label: "Num Of Days : ", + value: "${DateTime.now().difference(AppDateUtils.getDateTimeFromServerFormat(admissionDate!)).inDays + 1}", + ), + if (admissionDate != null) + CustomRow( + label: "Clinic Name : ", + value: "$clinicDescription", + ), + if (admissionDate != null) + CustomRow( + label: "Room No : ", + value: "$roomId", + ), + ], + ) + ], + ) + ], + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/ui/patient/widgets/patient_profile_button.dart b/lib/ui/patient/widgets/patient_profile_button.dart new file mode 100644 index 0000000..0817c75 --- /dev/null +++ b/lib/ui/patient/widgets/patient_profile_button.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; +import 'package:hmg_nurses/extensions/string_extensions.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; +import 'package:hmg_nurses/model/patient_profile_card_model.dart'; +import 'package:sizer/sizer.dart'; + +class PatientProfileButton extends StatelessWidget { + GetPatientFileInformationPrmList patient; + PatientProfileCardModel model; + + PatientProfileButton({super.key, required this.patient, required this.model}); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () { + Navigator.pushNamed(context, model.route, arguments: patient); + }, + child: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: const BorderRadius.all(Radius.circular(15)), + border: Border.fromBorderSide( + BorderSide( + color: Colors.grey.withOpacity(0.4), + width: 1, + ), + ), + ), + padding: const EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + model.icon, + width: 30, + height: 30, + ), + 12.height, + model.nameLine1.toTextAuto(fontSize: 10), + model.nameLine2.toTextAuto(fontSize: 10), + ], + ), + ), + ); + } +} diff --git a/lib/ui/patient/widgets/patient_profile_header.dart b/lib/ui/patient/widgets/patient_profile_header.dart new file mode 100644 index 0000000..776a4f0 --- /dev/null +++ b/lib/ui/patient/widgets/patient_profile_header.dart @@ -0,0 +1,73 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/classes/date-utils.dart'; +import 'package:hmg_nurses/extensions/int_extensions.dart'; +import 'package:hmg_nurses/extensions/string_extensions.dart'; +import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; +import 'package:hmg_nurses/widgets/circular_avatar.dart'; +import 'package:hmg_nurses/widgets/commen/cusom_row.dart'; + +class PatientProfileHeader extends StatelessWidget { + GetPatientFileInformationPrmList patientProfile; + + PatientProfileHeader(this.patientProfile); + + @override + Widget build(BuildContext context) { + return Container( + width: double.infinity, + color: Colors.white, + padding: const EdgeInsets.only(top: 12, right: 21, left: 21, bottom: 21), + child: Row( + children: [ + Expanded( + child: Row( + children: [ + showGenderAvator(patientProfile.gender ?? 1), + 12.width, + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + (patientProfile.patientStatusType != null && patientProfile.patientStatusType == 43) + ? "Arrived P".toText10(isBold: true) + : "Not Arrived".toText10(isBold: true, color: Colors.red[800]), + CustomRow( + label: "File Number:", + value: patientProfile.patientId.toString(), + ), + CustomRow( + label: "Age : ", + value: AppDateUtils.getAgeByBirthday(patientProfile.dateofBirth ?? "", context, isServerFormat: true), + ), + ], + ) + ], + ), + ), + if (patientProfile.nationalityId != null) + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + (patientProfile.nationalityId ?? "").toTextAuto( + fontSize: 9, + color: const Color(0xFF2E303A), + textOverflow: TextOverflow.ellipsis, + ), + if (patientProfile.nationalityFlagUrl != null && patientProfile.nationalityFlagUrl!.isNotEmpty) + ClipRRect( + borderRadius: BorderRadius.circular(20.0), + child: CachedNetworkImage( + imageUrl: patientProfile.nationalityFlagUrl ?? "", + height: 16, + width: 22, + errorWidget: (context, url, error) => "No Image".toText10(), + ), + ) + ], + ), + ], + ), + ); + } +} diff --git a/lib/widgets/app_bar_widget.dart b/lib/widgets/app_bar_widget.dart index 0e4fb61..53d281a 100644 --- a/lib/widgets/app_bar_widget.dart +++ b/lib/widgets/app_bar_widget.dart @@ -6,12 +6,13 @@ import 'package:hmg_nurses/extensions/int_extensions.dart'; import 'package:hmg_nurses/extensions/string_extensions.dart'; import 'package:hmg_nurses/extensions/widget_extensions.dart'; -AppBar AppBarWidget(BuildContext context, - {required String title, - bool showHomeButton = true, - bool showNotificationButton = false, - bool showMemberButton = false, - String? image}) { +AppBar AppBarWidget( + BuildContext context, { + required String title, + String? image, + bool isNeedLeading = true, + List? actions, +}) { return AppBar( leadingWidth: 0, // leading: GestureDetector( @@ -22,49 +23,26 @@ AppBar AppBarWidget(BuildContext context, //titleSpacing: -1.44, title: Row( children: [ - GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: - Feedback.wrapForTap(() => Navigator.maybePop(context), context), - child: - const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor), - ), + if (isNeedLeading) + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: Feedback.wrapForTap(() => Navigator.maybePop(context), context), + child: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor), + ), 4.width, - if (image != null) SvgPicture.asset( - image, - height: 40, - width: 40, - ), + if (image != null) + SvgPicture.asset( + image, + height: 40, + width: 40, + ), if (image != null) 14.width, - title.toText24(color: MyColors.darkTextColor, isBold: true).expanded, + title.toText16(color: MyColors.darkTextColor, isBold: true).expanded, ], ), centerTitle: false, elevation: 0, backgroundColor: Colors.white, - actions: [ - if (showHomeButton) - IconButton( - onPressed: () { - // Navigator.popUntil( - // context, ModalRoute.withName(AppRoutes.dashboard)); - }, - icon: const Icon(Icons.home, color: MyColors.darkIconColor), - ), - if (showNotificationButton) - IconButton( - onPressed: () { - // Navigator.pushNamed(context, AppRoutes.worklistSettings); - }, - icon: const Icon(Icons.notifications, color: MyColors.textMixColor), - ), - if (showMemberButton) - IconButton( - onPressed: () { - // Navigator.pushNamed(context, AppRoutes.subordinateLeave); - }, - icon: const Icon(Icons.people, color: MyColors.textMixColor), - ), - ], + actions: actions, ); } diff --git a/lib/widgets/button/default_button.dart b/lib/widgets/button/default_button.dart index 8915ecb..19b8c6f 100644 --- a/lib/widgets/button/default_button.dart +++ b/lib/widgets/button/default_button.dart @@ -5,8 +5,7 @@ import 'package:hmg_nurses/classes/colors.dart'; extension WithContainer on Widget { Widget get insideContainer => Container( color: Colors.white, - padding: - const EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), + padding: const EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), child: this, ); } @@ -57,8 +56,8 @@ class DefaultButton extends StatelessWidget { : color == MyColors.yellowColorII ? const LinearGradient( colors: [ - MyColors.yellowColorII, - MyColors.yellowColorII, + MyColors.redColor, + MyColors.redColor, ], ) : LinearGradient( @@ -67,8 +66,8 @@ class DefaultButton extends StatelessWidget { end: Alignment.bottomLeft, colors: colors ?? [ - MyColors.gradiantEndColor, - MyColors.gradiantStartColor, + MyColors.redColor, + MyColors.redColor, ], ), ), @@ -76,8 +75,7 @@ class DefaultButton extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ if (iconData != null) Icon(iconData, color: textColor), - if (svgIcon != null) - SvgPicture.asset(svgIcon ?? "", color: textColor), + if (svgIcon != null) SvgPicture.asset(svgIcon ?? "", color: textColor), if (!isTextExpanded) Padding( padding: EdgeInsets.only( diff --git a/lib/widgets/circular_avatar.dart b/lib/widgets/circular_avatar.dart index a18cf03..af5fb18 100644 --- a/lib/widgets/circular_avatar.dart +++ b/lib/widgets/circular_avatar.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; class CircularAvatar extends StatelessWidget { final String? url; @@ -39,3 +40,15 @@ class CircularAvatar extends StatelessWidget { ); } } + +Widget showGenderAvator( + int gender, { + double size = 60, +}) { + return SvgPicture.asset( + gender == 1 ? 'assets/images/svgs/male avatar.svg' : 'assets/images/svgs/female avatar.svg', + fit: BoxFit.cover, + height: size, + width: size, + ); +} diff --git a/lib/widgets/commen/cusom_row.dart b/lib/widgets/commen/cusom_row.dart new file mode 100644 index 0000000..542fae7 --- /dev/null +++ b/lib/widgets/commen/cusom_row.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; +import 'package:hmg_nurses/extensions/string_extensions.dart'; + +class CustomRow extends StatelessWidget { + const CustomRow({super.key, + required this.label, + required this.value, + this.labelSize, + this.valueSize, + this.width, + this.isCopyable = true, + this.isExpanded = false, + this.labelColor, + this.valueColor, + }); + + final String label; + final String value; + final double? labelSize; + final double? valueSize; + final double? width; + final bool isCopyable; + final bool isExpanded; + final Color? labelColor; + final Color? valueColor; + + @override + Widget build(BuildContext context) { + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + label.toTextAuto( + fontSize: labelSize ?? 10, + color: labelColor ?? const Color(0xFF575757), + letterSpacing: -0.4, + ), + const SizedBox( + width: 1, + ), + Expanded( + flex: isExpanded ? 1 : 0, + child: value.toTextAuto( + fontSize: valueSize ?? 10, + color: valueColor ?? const Color(0xFF2B353E), + fontWeight: FontWeight.w700, + letterSpacing: -0.48, + ), + ), + ], + ); + } +} diff --git a/lib/widgets/cupertino_picker.dart b/lib/widgets/cupertino_picker.dart index c45ef8b..8cd48f8 100644 --- a/lib/widgets/cupertino_picker.dart +++ b/lib/widgets/cupertino_picker.dart @@ -5,7 +5,7 @@ import 'package:hmg_nurses/generated/locale_keys.g.dart'; import 'package:sizer/sizer.dart'; class CustomCupertinoPicker { - static TextStyle textStyle(context) => TextStyle(color: Theme.of(context).primaryColor); + static TextStyle textStyle(context) => TextStyle(color: Colors.black); static int cupertinoPickerIndex = 0; @@ -21,7 +21,7 @@ class CustomCupertinoPicker { children: items.map((item) { return Text( '${item.facilityName}', - style: TextStyle(fontSize: 12.sp), + style: TextStyle(fontSize: 12.sp, color: Colors.black), ); }).toList(), ); @@ -29,43 +29,48 @@ class CustomCupertinoPicker { static showCupertinoPicker(context, List items, onSelectFun) { showModalBottomSheet( - isDismissible: false, - context: context, - builder: (BuildContext builder) { - return Container( - height: 40.h, - color: const Color(0xfff7f7f7), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Container( - color: const Color(0xfff7f7f7), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - CupertinoButton( - child: Text(LocaleKeys.userID.tr(), style: textStyle(context)), - onPressed: () { - Navigator.pop(context); - }, + isDismissible: false, + context: context, + builder: (BuildContext builder) { + return Container( + height: 40.h, + color: const Color(0xfff7f7f7), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + color: const Color(0xfff7f7f7), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + CupertinoButton( + child: Text(LocaleKeys.cancel.tr(), style: textStyle(context)), + onPressed: () { + Navigator.pop(context); + }, + ), + CupertinoButton( + child: Text( + LocaleKeys.select.tr(), + style: textStyle(context), ), - CupertinoButton( - child: Text( - LocaleKeys.userID.tr(), - style: textStyle(context), - ), - onPressed: () { - Navigator.pop(context); - onSelectFun(cupertinoPickerIndex); - }, - ) - ], - ), + onPressed: () { + Navigator.pop(context); + onSelectFun(cupertinoPickerIndex); + }, + ) + ], ), - Container(height: 3.h, color: const Color(0xfff7f7f7), child: buildPickerItems(context, items, onSelectFun)) - ], - ), - ); - }); + ), + Container( + height: 30.h, + color: const Color(0xfff7f7f7), + child: buildPickerItems(context, items, onSelectFun), + ) + ], + ), + ); + }, + ); } } diff --git a/lib/dialogs/otp_dialog.dart b/lib/widgets/dialogs/otp_dialog.dart similarity index 97% rename from lib/dialogs/otp_dialog.dart rename to lib/widgets/dialogs/otp_dialog.dart index dbdb433..0c8f7e1 100644 --- a/lib/dialogs/otp_dialog.dart +++ b/lib/widgets/dialogs/otp_dialog.dart @@ -14,7 +14,7 @@ final ValueNotifier otpFieldClear = ValueNotifier(""); class OtpDialog { final int type; - final int? mobileNo; + final String? mobileNo; final Function(String, TextEditingController _pinPutController) onSuccess; final Function onFailure; final Function onResendCode; @@ -122,6 +122,7 @@ class OtpDialog { Expanded( child: LocaleKeys.codeExpire.tr().toText16( color: MyColors.redColor, + maxlines: 1, ), ), 12.width, @@ -215,9 +216,11 @@ class OtpDialog { void startTimer(setState) { remainingTime--; if (stopTimer) return; - setState(() { - displayTime = getSecondsAsDigitalClock(remainingTime); - }); + try { + setState(() { + displayTime = getSecondsAsDigitalClock(remainingTime); + }); + } catch (e) {} timer = Future.delayed(const Duration(seconds: 1), () { if (remainingTime > 0) { diff --git a/lib/widgets/errors/error_message.dart b/lib/widgets/errors/error_message.dart new file mode 100644 index 0000000..8223d06 --- /dev/null +++ b/lib/widgets/errors/error_message.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:hmg_nurses/extensions/string_extensions.dart'; + +class ErrorMessage extends StatelessWidget { + String? errorMessage; + + ErrorMessage({this.errorMessage}); + + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + child: Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 100, + ), + SvgPicture.asset('assets/images/svgs/no_data.svg'), + Center( + child: Center( + child: Padding( + padding: const EdgeInsets.only(top: 12, bottom: 12, right: 20, left: 30), + child: Center( + child: (errorMessage ?? "").toText16( + textAlign: TextAlign.center, + ), + ), + ), + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/widgets/icons_app/config.json b/lib/widgets/icons_app/config.json new file mode 100644 index 0000000..20885d7 --- /dev/null +++ b/lib/widgets/icons_app/config.json @@ -0,0 +1,2668 @@ +{ + "name": "DoctorApp", + "css_prefix_text": "", + "css_use_suffix": false, + "hinting": true, + "units_per_em": 1000, + "ascent": 850, + "glyphs": [ + { + "uid": "9caed7b74de0f5a625ccb960f00d9c8d", + "css": "female_icon", + "code": 59392, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M543.9 587C543.6 583.8 543.4 578.5 543.2 573 596.5 567.8 633.8 555.9 633.8 542 633.6 542 633.6 541.5 633.6 541.2 593.9 507.7 668.1 269.7 529.9 274.6 521.2 267.7 505.9 261.6 484.2 261.6 296.9 274.9 379.7 499.6 337 542 337 542 337 542 336.9 542 336.9 542 336.9 542 336.9 542.2 336.9 542.2 336.9 542.2 336.9 542.2S336.9 542.2 336.9 542.2C337 555.8 373.1 567.4 424.9 572.7 424.7 576.1 424.5 580.1 423.8 587 402.3 640.9 257.6 625.8 250.8 729.7H716.2C709.6 625.8 565.4 640.9 543.9 587Z", + "width": 986 + }, + "search": [ + "female_icon" + ] + }, + { + "uid": "d30b03087b318086eb4f93c8ee4f0cf3", + "css": "male", + "code": 59393, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M493.2 537.2C568.8 537.2 630.1 475.9 630.1 400.3S568.8 263.5 493.2 263.5 356.4 324.7 356.4 400.4C356.5 475.9 417.7 537.2 493.2 537.2ZM614.9 567.6H562.6C518.6 587.8 468 587.8 424.1 567.6H371.6C304.5 567.6 250 622 250 689.2V704.5C250 729.6 270.4 750 295.7 750.1H690.9C716.1 750.1 736.5 729.7 736.6 704.5V689.2C736.5 622 682 567.6 614.9 567.6Z", + "width": 986 + }, + "search": [ + "male" + ] + }, + { + "uid": "06d6838cdcf6af812f2eb51e0269afc0", + "css": "home_icon_active", + "code": 59395, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M973.1 435L973.1 435 565 27A92.1 92.1 0 0 0 434.9 27L27.1 434.7 26.7 435.1A92 92 0 0 0 88 592C88.9 592 89.9 592 90.8 592H107.1V892.2A107.9 107.9 0 0 0 214.8 999.9H374.4A29.3 29.3 0 0 0 403.7 970.6V735.4A49.2 49.2 0 0 1 452.9 686.2H547A49.2 49.2 0 0 1 596.2 735.4V970.7A29.3 29.3 0 0 0 625.5 1000H785.1A107.9 107.9 0 0 0 892.8 892.3V592.1H907.8A92.1 92.1 0 0 0 973 434.9ZM931.6 523.7A33.4 33.4 0 0 1 907.9 533.5H863.5A29.3 29.3 0 0 0 834.2 562.8V892.3A49.2 49.2 0 0 1 785.1 941.5H654.9V735.4A107.9 107.9 0 0 0 547 627.5H452.9A107.9 107.9 0 0 0 345.1 735.2V941.3H214.9A49.2 49.2 0 0 1 165.8 892.1V562.8A29.3 29.3 0 0 0 136.5 533.5H92.8L91.4 533.5A33.4 33.4 0 0 1 68.3 476.4H68.3L476.3 68.4A33.4 33.4 0 0 1 523.6 68.4L931.4 476.2 931.6 476.4A33.4 33.4 0 0 1 931.6 523.7ZM931.6 523.7", + "width": 1000 + }, + "search": [ + "home_icon_active" + ] + }, + { + "uid": "1ab45bf5797fa9ab96b13fccd2be2b3c", + "css": "menu_icon", + "code": 59396, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M406.7 0H83.2A83.3 83.3 0 0 0 0 83.2V406.7A83.3 83.3 0 0 0 83.2 489.9H406.7A83.3 83.3 0 0 0 489.9 406.7V83.2A83.3 83.3 0 0 0 406.7 0ZM406.7 449.1H83.2A42.4 42.4 0 0 1 40.8 406.7V83.2A42.4 42.4 0 0 1 83.2 40.8H406.7A42.4 42.4 0 0 1 449 83.2V406.7H449A42.4 42.4 0 0 1 406.7 449.1ZM916.8 0H593.3A83.3 83.3 0 0 0 510.1 83.2V406.7A83.3 83.3 0 0 0 593.3 489.9H916.8A83.3 83.3 0 0 0 1000 406.7V83.2A83.3 83.3 0 0 0 916.8 0ZM959.1 406.7A42.4 42.4 0 0 1 916.8 449.1H593.3A42.4 42.4 0 0 1 550.9 406.7V83.2A42.4 42.4 0 0 1 593.3 40.8H916.8A42.4 42.4 0 0 1 959.1 83.2ZM406.7 510.1H83.2A83.3 83.3 0 0 0 0 593.3V916.8A83.3 83.3 0 0 0 83.2 1000H406.7A83.3 83.3 0 0 0 489.9 916.8V593.3A83.3 83.3 0 0 0 406.7 510.1ZM406.7 959.2H83.2A42.4 42.4 0 0 1 40.8 916.8V593.3A42.4 42.4 0 0 1 83.2 550.9H406.7A42.4 42.4 0 0 1 449 593.3V916.8H449A42.4 42.4 0 0 1 406.7 959.1ZM916.8 510.1H593.3A83.3 83.3 0 0 0 510.1 593.3V916.8A83.3 83.3 0 0 0 593.3 1000H916.8A83.3 83.3 0 0 0 1000 916.8V593.3A83.3 83.3 0 0 0 916.8 510.1ZM959.1 916.8A42.4 42.4 0 0 1 916.8 959.2H593.3A42.4 42.4 0 0 1 550.9 916.8V593.3A42.4 42.4 0 0 1 593.3 550.9H916.8A42.4 42.4 0 0 1 959.1 593.3Z", + "width": 1000 + }, + "search": [ + "menu_icon" + ] + }, + { + "uid": "174fb3d81ce317465a3bfa96c20a84fa", + "css": "message_icon", + "code": 59398, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1182.9 44.3A100 100 0 0 0 1099.9 0.1H100A100 100 0 0 0 0 100V900A100 100 0 0 0 100 1000H1110.4A100 100 0 0 0 1200 900V100A100 100 0 0 0 1182.9 44.3ZM99.9 40H1100A60 60 0 0 1 1138.8 54.2L1061.2 128.2 734 440 612.8 555.7A20 20 0 0 1 589 555.7L466 440 60 54.3A60 60 0 0 1 100 40ZM39.9 90.4L423.2 454 40 820V100A59.7 59.7 0 0 1 40 90.4ZM1160 900A60 60 0 0 1 1107.6 960H100A60 60 0 0 1 40 900V874.6L452.2 481.6 562.4 586.4A60 60 0 0 0 571 592.2 58.4 58.4 0 0 0 600 600 63 63 0 0 0 640 586L748.8 482.4 1160 874.2ZM1160 100V819L776.8 454.7 1160 90.1A61.4 61.4 0 0 1 1160 100Z", + "width": 1200 + }, + "search": [ + "message_icon" + ] + }, + { + "uid": "f2ad4d0db965156a40b80bb175e15240", + "css": "discharge_patient", + "code": 59402, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1080.3 903.6H1059.9V694.9A80.5 80.5 0 0 0 979.6 614.6H929.9A80.5 80.5 0 0 0 899.3 566.4V384.4A59 59 0 0 0 840.5 325.5H733.4A59 59 0 0 0 674.5 384.4V502.2A16.1 16.1 0 1 0 706.6 502.2V384.4A26.8 26.8 0 0 1 733.4 357.6H840.5A26.8 26.8 0 0 1 867.3 384.4V552A80.5 80.5 0 0 0 851.2 550.4H642.4V463.6A80.5 80.5 0 0 0 562.1 383.3H417.6V315.9A59 59 0 0 0 358.7 256.9H251.6A59 59 0 0 0 195.1 299.2 176.8 176.8 0 0 1 32.1 123.1 16.1 16.1 0 0 0 0 123.1 209.1 209.1 0 0 0 192.7 331.2V529.9A112 112 0 0 0 224.7 608.5V771.3L131.1 910.7A16.1 16.1 0 0 0 128.3 919.7V983.9A16.1 16.1 0 0 0 160.5 983.9V924.5L254.2 785.2A16 16 0 0 0 257 776.2V631.5A112.2 112.2 0 0 0 353.4 631.5V962.5A16.1 16.1 0 0 0 364.5 977.7L428.7 999.1A16.1 16.1 0 1 0 438.8 968.6L385.6 950.9V608.5A112 112 0 0 0 417.7 530V415.4H562.3A48.2 48.2 0 0 1 610.4 463.6V625.9A187.3 187.3 0 1 0 810.2 775.1H899.6V841A80.3 80.3 0 1 0 994.3 935.7H1080.5A16.1 16.1 0 0 0 1080.5 903.6ZM305.2 610.3A80.5 80.5 0 0 1 226.5 546H383.8A80.5 80.5 0 0 1 305.2 610.3ZM385.5 513.9H224.7V315.9A26.8 26.8 0 0 1 251.5 289.1H289V337.4A16.1 16.1 0 0 0 321.1 337.4V289.1H358.6A26.8 26.8 0 0 1 385.4 315.9ZM706.7 582.5H851.3A48.2 48.2 0 0 1 899.5 630.7V678.8H786.9A80.5 80.5 0 0 1 706.6 598.6ZM642.5 582.5H674.6V598.5A112 112 0 0 0 680.2 633.1 186 186 0 0 0 642.6 626ZM626.4 967.9A155.4 155.4 0 1 1 781.8 812.5 155.4 155.4 0 0 1 626.4 967.9ZM800.4 743.2A187 187 0 0 0 783.7 711H899.5V743.2ZM915.5 967.9A48.2 48.2 0 1 1 963.7 919.7 48.2 48.2 0 0 1 915.4 967.9ZM1027.9 903.7H994.1A80.5 80.5 0 0 0 931.5 841V646.8H979.7A48.2 48.2 0 0 1 1027.9 695ZM786.9 68.6A112.6 112.6 0 0 0 677.8 154.3 69.6 69.6 0 1 0 726.3 275.6 112.4 112.4 0 1 0 786.9 68.6ZM786.9 100.7A80.5 80.5 0 0 1 865.5 164 174.8 174.8 0 0 1 753.6 108 79.8 79.8 0 0 1 786.9 100.7ZM679.9 261.3A37.5 37.5 0 0 1 674.7 186.7 111.9 111.9 0 0 0 701.7 254.2 37.4 37.4 0 0 1 679.9 261.3ZM786.9 261.3A80.3 80.3 0 0 1 727.4 127.2 206.6 206.6 0 0 0 865.7 196.3 80.5 80.5 0 0 1 786.9 261.3ZM626.4 689.5A123.1 123.1 0 1 0 749.5 812.7 123.3 123.3 0 0 0 626.4 689.5ZM626.4 903.7A91 91 0 1 1 717.4 812.7 91.1 91.1 0 0 1 626.4 903.6ZM337.2 113A23.3 23.3 0 0 1 318.3 103.2 16.1 16.1 0 0 0 292 103.2 23.3 23.3 0 0 1 273 113 16.1 16.1 0 1 0 273 145.2 55.5 55.5 0 0 0 305.1 134.9 55.5 55.5 0 0 0 337.3 145.2 16.1 16.1 0 1 0 337.3 113ZM305.1 0A112.4 112.4 0 1 0 417.5 112.4 112.5 112.5 0 0 0 305.1 0ZM305.1 192.7A80.3 80.3 0 1 1 385.4 112.5 80.5 80.5 0 0 1 305.1 192.7Z", + "width": 1096 + }, + "search": [ + "discharge_patient" + ] + }, + { + "uid": "f94c7f2a567a023799a9f230b749c677", + "css": "schedule_icon", + "code": 59401, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M444.6 698.3A29.5 29.5 0 0 0 486.4 698.3L591.8 592.8A29.5 29.5 0 0 0 550.1 551L465.5 635.6 427 597A29.5 29.5 0 0 0 385.2 638.8ZM444.6 698.3M488.5 859.1A234.4 234.4 0 1 0 254.1 624.7 234.7 234.7 0 0 0 488.5 859.1ZM488.5 449.3A175.4 175.4 0 1 1 313.2 624.7 175.5 175.5 0 0 1 488.5 449.3ZM488.5 449.3M881.5 62.9H827.7V29.5A29.5 29.5 0 1 0 768.6 29.5V62.9H710.6V29.5A29.5 29.5 0 0 0 651.5 29.5V62.9H325.5V29.5A29.5 29.5 0 0 0 266.4 29.5V62.9H208.4V29.5A29.5 29.5 0 0 0 149.4 29.5V62.9H95.5A95.6 95.6 0 0 0 0 158.4V904.5A95.6 95.6 0 0 0 95.5 1000H881.5A95.6 95.6 0 0 0 976.9 904.5V158.4A95.6 95.6 0 0 0 881.5 62.9ZM918 904.5A36.5 36.5 0 0 1 881.5 940.9H95.5A36.5 36.5 0 0 1 59 904.5V308.4H917.9ZM59.1 158.4A36.5 36.5 0 0 1 95.5 121.9H149.4V155.3A29.5 29.5 0 0 0 208.4 155.3V121.9H266.4V155.3A29.5 29.5 0 0 0 325.5 155.3V121.9H651.5V155.3A29.5 29.5 0 0 0 710.6 155.3V121.9H768.6V155.3A29.5 29.5 0 0 0 827.7 155.3V121.9H881.5A36.5 36.5 0 0 1 918 158.4V249.3H59.1ZM59.1 158.4", + "width": 977 + }, + "search": [ + "schedule_icon" + ] + }, + { + "uid": "dbebba4fbd61d05cd5150c5555ab572e", + "css": "scdedule_icon_active", + "code": 59400, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M445.8 693.2A28.8 28.8 0 0 0 486.5 693.2L589.2 590.5A28.8 28.8 0 1 0 548.5 549.8L466.1 632.1 428.6 594.6A28.8 28.8 0 1 0 387.9 635.2ZM445.8 693.2M488.5 849.9A228.4 228.4 0 1 0 260.1 621.5 228.7 228.7 0 0 0 488.5 849.9ZM488.5 450.6A170.8 170.8 0 1 1 317.6 621.5 171 171 0 0 1 488.5 450.6ZM488.5 450.6M881.5 62.9H827.7V29.5A29.5 29.5 0 0 0 768.6 29.5V62.9H710.6V29.5A29.5 29.5 0 0 0 651.5 29.5V62.9H325.5V29.5A29.5 29.5 0 0 0 266.4 29.5V62.9H208.4V29.5A29.5 29.5 0 0 0 149.4 29.5V62.9H95.5A95.6 95.6 0 0 0 0 158.4V904.5A95.6 95.6 0 0 0 95.5 1000H881.5A95.6 95.6 0 0 0 976.9 904.5V158.4A95.6 95.6 0 0 0 881.5 62.9ZM918 904.5A36.5 36.5 0 0 1 881.5 940.9H95.5A36.5 36.5 0 0 1 59 904.5V308.4H917.9ZM59.1 158.4A36.5 36.5 0 0 1 95.5 121.9H149.4V155.3A29.5 29.5 0 0 0 208.4 155.3V121.9H266.4V155.3A29.5 29.5 0 0 0 325.5 155.3V121.9H651.5V155.3A29.5 29.5 0 0 0 710.6 155.3V121.9H768.6V155.3A29.5 29.5 0 0 0 827.7 155.3V121.9H881.5A36.5 36.5 0 0 1 918 158.4V249.3H59.1ZM59.1 158.4", + "width": 977 + }, + "search": [ + "scdedule_icon_active" + ] + }, + { + "uid": "67294966cf1313317b699a3c127bde7e", + "css": "message_icon_active", + "code": 59399, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1182.9 44.3A100 100 0 0 0 1099.9 0.1H100A100 100 0 0 0 0 100V900A100 100 0 0 0 100 1000H1110.4A100 100 0 0 0 1200 900V100A100 100 0 0 0 1182.9 44.3ZM99.9 40H1100A60 60 0 0 1 1138.8 54.2L1061.2 128.2 734 440 612.8 555.7A20 20 0 0 1 589 555.7L466 440 60 54.3A60 60 0 0 1 100 40ZM39.9 90.4L423.2 454 40 820V100A59.7 59.7 0 0 1 40 90.4ZM1160 900A60 60 0 0 1 1107.6 960H100A60 60 0 0 1 40 900V874.6L452.2 481.6 562.4 586.4A60 60 0 0 0 571 592.2 58.4 58.4 0 0 0 600 600 63 63 0 0 0 640 586L748.8 482.4 1160 874.2ZM1160 100V819L776.8 454.7 1160 90.1A61.4 61.4 0 0 1 1160 100Z", + "width": 1200 + }, + "search": [ + "message_icon_active" + ] + }, + { + "uid": "d5276aeed9a2aead3e8b763de783f04e", + "css": "operations", + "code": 59411, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M166.4 983.8H859.2A452 452 0 0 0 166.4 983.8ZM275.2 471.7L231.5 515.4H230.7A154 154 0 0 0 76.7 669.5V780.4L330.4 526.7ZM335.1 554.4L353.5 536A50 50 0 0 0 385.5 547.8 50.8 50.8 0 0 0 421.1 533L436.4 517.8A50.3 50.3 0 0 0 518 533L575.8 475.3 735.4 547.8H884.3V596.2H1013.5V305.5H884.3V353.9H858.7L718 213.3 691.7 197.8 783.9 105.6A61.8 61.8 0 0 0 696.4 18.2L570.7 144H515.6A64.5 64.5 0 0 0 471.7 161.2L286.5 332.1A49.8 49.8 0 0 0 300.4 414.4L247.7 467ZM293.3 467L336.8 423.6A56.5 56.5 0 0 0 378.5 465.4L335.1 508.8ZM398.3 510.1A18.6 18.6 0 0 1 376.8 512.8L422.6 467H441.5ZM495.2 510.1A18.1 18.1 0 0 1 464.3 497.3 18 18 0 0 1 469.6 484.5L487.1 467H538.4ZM916.7 337.8H981.3V563.9H916.7V337.8ZM696.8 237.7L845.4 386.2H884.4V515.4H742.5L564.8 434.7H391.7A24.2 24.2 0 1 1 391.7 386.2H512.9L554 378.3A69 69 0 0 0 604.8 284.8L668.3 221.3ZM577.3 312.3A37.1 37.1 0 0 1 547.7 346.6L541.9 347.8ZM719.6 41A29.5 29.5 0 0 1 770 61.9 29.3 29.3 0 0 1 761.3 82.8L490 354.1H406.4ZM322.1 386.2H320.3A17.5 17.5 0 0 1 308.4 355.8L493.6 184.9A32.1 32.1 0 0 1 515.5 176.3H538.4L331.3 383.3A17.3 17.3 0 0 1 322.1 386.2ZM1011.2 975.6C1009.6 972.8 841.2 693.1 512.8 693.1S16 972.8 14.3 975.6L0 1000H1025.6ZM58.7 967.7C106.9 901.9 259.6 725.4 512.8 725.4S918.7 901.9 966.8 967.7Z", + "width": 1026 + }, + "search": [ + "operations" + ] + }, + { + "uid": "046c42711da6530ad1b224469263402a", + "css": "lab_results", + "code": 59406, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M258 580.6H225.8A48.5 48.5 0 0 0 274.2 629V596.9A16.1 16.1 0 0 1 258 580.6ZM258 580.6M419.4 758.1H451.5V790.2H419.4ZM419.4 758.1M290.3 822.6H322.5V854.7H290.3ZM290.3 822.6M177.4 903.2H209.6V935.4H177.4ZM177.4 903.2M403.2 887.1H435.4V919.2H403.2ZM403.2 887.1M241.9 725.8H274.1V758H241.9ZM241.9 725.8M290.3 0V225.8H129A32.1 32.1 0 0 0 96.9 258V290.1A32.1 32.1 0 0 0 129 322.3V436.5A81.6 81.6 0 0 1 125.5 460.7L5 852.1A114.3 114.3 0 0 0 114.3 1000H1000V0ZM129 258.1H419.4V290.2H129ZM419.4 322.6A32.1 32.1 0 0 0 451.5 290.4V258.3A32.1 32.1 0 0 0 419.4 226.1H387.2V96.8H645.3V354.8H419.4ZM156.3 470.5A114.3 114.3 0 0 0 161.3 436.9V322.6H387.1V436.9A114.3 114.3 0 0 0 392.1 470.5L436 612.9H382.4A112.8 112.8 0 0 0 387.1 580.8V575.3A113 113 0 0 0 371 517.2L274.2 355.8 177.4 517.1A112.9 112.9 0 0 0 161.3 575.2V580.6A112.2 112.2 0 0 0 166 612.8H112.5ZM274.1 661.3A80.8 80.8 0 0 1 193.5 580.6V575.2A80.6 80.6 0 0 1 205 533.7L274.1 418.4 343.3 533.6A80.7 80.7 0 0 1 354.8 575.1V580.6A80.8 80.8 0 0 1 274.2 661.3ZM114.3 967.9A81.3 81.3 0 0 1 33.8 871.1H145.2V838.9H42.9L52.8 806.8H193.5V774.6H62.8L72.7 742.5H145.2V710.4H82.6L102.5 645.9H181.7A112.6 112.6 0 0 0 366.7 645.9H445.9L512.5 862.3A82.1 82.1 0 0 1 434.1 967.9ZM967.9 967.9H513.5A114 114 0 0 0 543.4 852.2L423 461A81.6 81.6 0 0 1 419.4 436.9V387.1H677.5V64.5H354.8V225.8H322.7V32.1H967.9ZM967.9 967.9M758.1 580.6A177.4 177.4 0 1 0 935.5 758.1 177.6 177.6 0 0 0 758.1 580.6ZM758.1 903.2A145.2 145.2 0 1 1 903.2 758.1 145.3 145.3 0 0 1 758.1 903.2ZM758.1 903.2M806.5 661.3H709.7V709.7H661.3V806.5H709.7V854.9H806.5V806.5H854.9V709.7H806.5ZM822.6 741.9V774.1H774.2V822.5H742.1V774.1H693.4V741.9H741.8V693.4H774V741.8ZM822.6 741.9M709.7 80.6H741.8V112.8H709.7ZM709.7 80.6M774.2 80.6H935.5V112.8H774.2ZM774.2 80.6M709.7 209.7H741.8V241.8H709.7ZM709.7 209.7M774.2 209.7H935.5V241.8H774.2ZM774.2 209.7M709.7 145.2H935.5V177.3H709.7ZM709.7 145.2M709.7 274.2H935.5V306.3H709.7ZM709.7 274.2M709.7 338.7H935.5V370.9H709.7ZM709.7 338.7M483.9 451.6H935.5V483.8H483.9ZM483.9 451.6M483.9 516.1H935.5V548.3H483.9ZM483.9 516.1", + "width": 1000 + }, + "search": [ + "lab_results" + ] + }, + { + "uid": "406cfc8f4e89509892f7e12ecd31b289", + "css": "in_patient_white", + "code": 59405, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M527.4 413H462.3A18.1 18.1 0 1 0 462.3 449.1H527.4A18.1 18.1 0 0 0 527.4 413ZM1189.1 81.7H1134.6V36H1205.1A18.1 18.1 0 0 0 1205.1-0.2H276.4A18.1 18.1 0 0 0 276.4 36H1098.4V81.7H1043.9A34 34 0 0 0 1009.9 115.7V272.9A106.7 106.7 0 0 0 1065.4 366.5L1053.6 385.5A96.9 96.9 0 0 0 1049.3 479.6L1098.4 577.2A60.6 60.6 0 0 1 1085.9 648.1L996 729.3V380.9A50.5 50.5 0 0 0 945.6 330.4H893.4A176.1 176.1 0 0 0 887.3 304.3 45.1 45.1 0 0 1 886.3 281.3L899.6 219.5A35.2 35.2 0 0 0 857.7 177.6C839 180.1 793.2 196.3 774.1 189.3A177.2 177.2 0 0 0 752.2 183.6 18.1 18.1 0 0 0 745.3 219.1 140.6 140.6 0 0 1 762.7 223.6 81 81 0 0 0 805.4 225.9L864.1 213.2 851 273.7C844.2 299.6 859.8 327.5 859.3 357.4V544.3A140.8 140.8 0 0 1 852.7 587 80.6 80.6 0 0 0 849.7 600.4 229.7 229.7 0 0 0 696.9 542.5H619.5V524.7A174.6 174.6 0 0 0 669.7 432.7 98.9 98.9 0 0 0 726.2 371.9 69.3 69.3 0 0 0 687 282.5H687A43.9 43.9 0 0 0 673 280.3V194.2A95.3 95.3 0 0 0 577.8 99H417.5A95.3 95.3 0 0 0 323.3 180.4H276.9C251.4 177.8 225.6 193.3 197.7 190.7L137.6 177.7A35.2 35.2 0 0 0 95.7 219.6L109 281.4A45.1 45.1 0 0 1 108 304.4 176 176 0 0 0 101.9 330.5H56.1V75.1A39 39 0 0 1 95 36H193.3A18.1 18.1 0 0 0 193.3-0.2H95A75.1 75.1 0 0 0 20 75.1V340.8A50.4 50.4 0 0 0 0 380.9L0.5 968.4A31.6 31.6 0 0 0 32.1 1000H964.2A31.6 31.6 0 0 0 995.8 968.4L996.1 778 1110.3 674.7 1110.5 674.5A96.9 96.9 0 0 0 1130.8 561L1081.5 463.3A60.6 60.6 0 0 1 1084.2 404.5L1100.6 378.2A107 107 0 0 0 1116.5 379.4H1116.5A106.7 106.7 0 0 0 1207.7 328 111.8 111.8 0 0 0 1223.1 272.8V115.7A34 34 0 0 0 1189.1 81.7ZM960 380.8V762L940.2 779.9Q934.1 774.3 927.7 769A229.2 229.2 0 0 0 892.5 650.7 116.7 116.7 0 0 1 887.2 597.8 176.8 176.8 0 0 0 895.5 544.2V366.6H945.6A14.3 14.3 0 0 1 960 380.9ZM412 551.5A175.1 175.1 0 0 0 583.3 551.5V584.4A14.9 14.9 0 0 1 568.5 599.2H426.8A14.9 14.9 0 0 1 412 584.4ZM675.9 316.7A33.5 33.5 0 0 1 691.8 360.6C685.7 379.5 666.4 398.7 652.9 399.4A18.1 18.1 0 0 0 635.8 415.3 139.1 139.1 0 0 1 359.5 415.3 18.1 18.1 0 0 0 342.5 399.4C329 398.7 309.6 379.5 303.5 360.6A33.5 33.5 0 0 1 319.5 316.7 6.6 6.6 0 0 1 321.4 316.3C322.6 316.3 323.6 317.1 325.7 320.1A18 18 0 0 0 345.9 326.7C355.3 324 360.3 310.9 358.5 298.3A69.5 69.5 0 0 1 427.9 228.9H567.5A69.5 69.5 0 0 1 636.9 298.3C636.5 307.9 635.8 320.8 649.5 326.7A18 18 0 0 0 669.7 320.1C672.8 315.7 673.6 316 675.9 316.8ZM358.5 194.1A59.2 59.2 0 0 1 417.6 134.9H578A59.2 59.2 0 0 1 637.2 194.1V219A105.2 105.2 0 0 0 567.7 192.9H427.9A105.2 105.2 0 0 0 358.5 219ZM190.1 225.9A81.2 81.2 0 0 0 232.8 223.6 140.4 140.4 0 0 1 277.1 216.5H322.3V280.2A43.7 43.7 0 0 0 308.3 282.4 69.3 69.3 0 0 0 269.2 371.7 98.8 98.8 0 0 0 325.7 432.5 174.6 174.6 0 0 0 375.8 524.6V542.3H298.3A229.7 229.7 0 0 0 145.6 600.3 80.8 80.8 0 0 0 142.6 586.9 140.8 140.8 0 0 1 136 544.1V357.5C134.5 331.6 151.1 303.5 144.4 273.7L131.5 213.3ZM36.2 380.9A14.3 14.3 0 0 1 50.5 366.6H99.8V544.4A176.8 176.8 0 0 0 108.1 598.1 121.6 121.6 0 0 1 102.8 650.7 229.2 229.2 0 0 0 67.7 769Q56.9 778 46.6 787.8A148.1 148.1 0 0 0 36.1 799V380.9ZM959.7 963.9H36.6V896.2A114.3 114.3 0 0 1 71.6 814 359.5 359.5 0 0 1 251.1 720.6 18.1 18.1 0 1 0 244.1 685.1 394.5 394.5 0 0 0 106.5 740.6 194.8 194.8 0 0 1 298.3 578.5H375.9V584.3A51 51 0 0 0 426.8 635.3H568.7A51 51 0 0 0 619.6 584.3V578.5H696.9A194.8 194.8 0 0 1 888.6 740.4 395 395 0 0 0 674.2 677.6H332A18.1 18.1 0 1 0 332 713.8H674.3A358.9 358.9 0 0 1 898.1 791.4L898.6 791.8Q912.2 802.6 924.9 814.8A114.5 114.5 0 0 1 959.7 896.8V963.7ZM1187 117.8V167.6H1046V117.8ZM1181.5 300.3A73.5 73.5 0 0 1 1116.5 343.4 70.6 70.6 0 0 1 1046 272.9V203.6H1187V272.7A70.3 70.3 0 0 1 1181.5 300.3Z", + "width": 1223 + }, + "search": [ + "in_patient_white" + ] + }, + { + "uid": "58949bc191ed8ccb59251e337588f540", + "css": "out_patient", + "code": 59412, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M951.6 483.9H698.5A96.4 96.4 0 0 0 723.3 346.4 305.1 305.1 0 0 0 742 242.1V201.9A201.9 201.9 0 0 0 435.5 29.2 201.9 201.9 0 0 0 129 201.9V205.4L112.9 177.2 42.8 299.9A80.6 80.6 0 0 0 130.2 417.6 96.9 96.9 0 0 0 214.9 499.3 226.4 226.4 0 0 0 355 662.3V696.2L219.7 720.8A267.3 267.3 0 0 0 0 983.8V999.9H871V983.8A267.3 267.3 0 0 0 651.4 720.7L516.1 696.1V662.3A224.7 224.7 0 0 0 603.2 602.2C604 602.6 604.9 602.7 605.7 603.1A92.8 92.8 0 0 0 647.1 612.9H951.6A48.4 48.4 0 0 0 1000 564.5V532.3A48.4 48.4 0 0 0 951.6 483.9ZM660.5 465.7C660.8 461 661.3 456.3 661.3 451.6V341A64.2 64.2 0 0 1 660.5 465.7ZM161.3 242V201.9A169.6 169.6 0 0 1 424.9 60.8L435.5 67.8 446 60.8A169.6 169.6 0 0 1 709.7 201.9V242A273.3 273.3 0 0 1 697.8 322.1 96.2 96.2 0 0 0 661.4 307.9V282.3L596.8 233.9V193.5A32.3 32.3 0 0 0 564.5 161.3H306.5A32.3 32.3 0 0 0 274.3 193.5V233.9L209.7 282.3V307.8A95.4 95.4 0 0 0 189.2 313.9 78.8 78.8 0 0 0 183 299.9L162.2 263.6C161.6 256.4 161.2 249.2 161.2 242ZM564.5 290.3H306.5V193.5H564.5ZM112.1 387.1A47.7 47.7 0 0 1 70.8 316L112.9 242.2 155 316A47.7 47.7 0 0 1 112.1 387.2ZM161.3 403.3A79.4 79.4 0 0 0 192.7 348.1 63.2 63.2 0 0 1 209.7 341V451.6C209.7 456.4 210.1 461 210.4 465.7A64.5 64.5 0 0 1 161.3 403.3ZM242 451.6V298.4L274.3 274.3V290.4A32.3 32.3 0 0 0 306.5 322.7H564.6A32.3 32.3 0 0 0 596.9 290.4V274.3L629.1 298.5V451.7A195.1 195.1 0 0 1 625.7 486.5 92.8 92.8 0 0 0 605.8 493.7 60.6 60.6 0 0 1 578.9 500.1H467.7A48.4 48.4 0 1 0 467.7 596.9H563.1A193.2 193.2 0 0 1 242 451.6ZM467.8 564.5A16.1 16.1 0 1 1 467.8 532.3H483.9V564.5ZM362.7 727.6A80.7 80.7 0 0 0 416.3 771.7 64.5 64.5 0 0 1 354.8 806.5C319.2 806.5 290.2 784.8 290.2 758.1A36.4 36.4 0 0 1 295.4 739.8ZM838.2 967.8H32.8A235 235 0 0 1 225.3 752.6L259.2 746.4A64.8 64.8 0 0 0 258.1 758.1 89.9 89.9 0 0 0 354.8 838.7 102.9 102.9 0 0 0 435.4 802.6 102.9 102.9 0 0 0 516 838.7 89.9 89.9 0 0 0 612.8 758.1 65.9 65.9 0 0 0 611.7 746.4L645.6 752.6A235 235 0 0 1 838.2 967.7ZM575.4 739.8A36.4 36.4 0 0 1 580.6 758.1C580.6 784.8 551.6 806.5 516 806.5A64.5 64.5 0 0 1 454.4 771.7 80.5 80.5 0 0 0 508.1 727.6ZM483.8 677.4V693.6A48.4 48.4 0 1 1 387 693.6V672.1A222.6 222.6 0 0 0 483.8 672.1ZM620 574.3A92.9 92.9 0 0 0 578.6 564.5H516V532.3H578.6A93.1 93.1 0 0 0 620 522.5 60.6 60.6 0 0 1 646.9 516.1H870.8V580.6H647.1A60.6 60.6 0 0 1 620.1 574.3ZM967.7 564.5A16.2 16.2 0 0 1 951.5 580.7H903.3V516.1H951.7A16.2 16.2 0 0 1 967.8 532.3ZM475.1 368.4L493 341.5 589.7 406.1 571.8 432.9ZM281.5 405.8L378.2 341.3 396.1 368.1 299.4 432.7Z", + "width": 1000 + }, + "search": [ + "out_patient" + ] + }, + { + "uid": "31c2eb5f0f3a8d8d17c7b439045d641f", + "css": "menu_icon_active", + "code": 59397, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M406.7 0H83.2A83.3 83.3 0 0 0 0 83.2V406.7A83.3 83.3 0 0 0 83.2 489.9H406.7A83.3 83.3 0 0 0 489.9 406.7V83.2A83.3 83.3 0 0 0 406.7 0ZM406.7 449.1H83.2A42.4 42.4 0 0 1 40.8 406.7V83.2A42.4 42.4 0 0 1 83.2 40.8H406.7A42.4 42.4 0 0 1 449 83.2V406.7H449A42.4 42.4 0 0 1 406.7 449.1ZM916.8 0H593.3A83.3 83.3 0 0 0 510.1 83.2V406.7A83.3 83.3 0 0 0 593.3 489.9H916.8A83.3 83.3 0 0 0 1000 406.7V83.2A83.3 83.3 0 0 0 916.8 0ZM959.1 406.7A42.4 42.4 0 0 1 916.8 449.1H593.3A42.4 42.4 0 0 1 550.9 406.7V83.2A42.4 42.4 0 0 1 593.3 40.8H916.8A42.4 42.4 0 0 1 959.1 83.2ZM406.7 510.1H83.2A83.3 83.3 0 0 0 0 593.3V916.8A83.3 83.3 0 0 0 83.2 1000H406.7A83.3 83.3 0 0 0 489.9 916.8V593.3A83.3 83.3 0 0 0 406.7 510.1ZM406.7 959.2H83.2A42.4 42.4 0 0 1 40.8 916.8V593.3A42.4 42.4 0 0 1 83.2 550.9H406.7A42.4 42.4 0 0 1 449 593.3V916.8H449A42.4 42.4 0 0 1 406.7 959.1ZM916.8 510.1H593.3A83.3 83.3 0 0 0 510.1 593.3V916.8A83.3 83.3 0 0 0 593.3 1000H916.8A83.3 83.3 0 0 0 1000 916.8V593.3A83.3 83.3 0 0 0 916.8 510.1ZM959.1 916.8A42.4 42.4 0 0 1 916.8 959.2H593.3A42.4 42.4 0 0 1 550.9 916.8V593.3A42.4 42.4 0 0 1 593.3 550.9H916.8A42.4 42.4 0 0 1 959.1 593.3Z", + "width": 1000 + }, + "search": [ + "menu_icon_active" + ] + }, + { + "uid": "4a41c9ccf8e162ce37b5cfe9fa8faa79", + "css": "patient", + "code": 59413, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M527.5 413H462.5A18.1 18.1 0 1 0 462.5 449.1H527.5A18.1 18.1 0 1 0 527.5 413ZM1189.1 81.7H1134.5V36.1H1205.1A18.1 18.1 0 0 0 1205.1 0H276.4A18.1 18.1 0 1 0 276.4 36.1H1098.4V81.7H1043.8A34 34 0 0 0 1009.9 115.7V272.9A106.7 106.7 0 0 0 1065.4 366.4L1053.6 385.4A96.9 96.9 0 0 0 1049.3 479.6L1098.4 577.2A60.5 60.5 0 0 1 1085.9 648L996.1 729.3V380.9A50.5 50.5 0 0 0 945.6 330.4H893.5A176.1 176.1 0 0 0 887.4 304.3 45.2 45.2 0 0 1 886.3 281.3L899.6 219.5A35.2 35.2 0 0 0 857.8 177.7C839.2 180.1 793.2 196.3 774.1 189.4A177.3 177.3 0 0 0 752.3 183.6 18.1 18.1 0 0 0 745.4 219.1 140.6 140.6 0 0 1 762.7 223.7 81 81 0 0 0 805.3 225.9L864 213.3 850.9 273.8C844.1 299.7 859.8 327.6 859.3 357.5V544.4A140.8 140.8 0 0 1 852.7 586.9 80.7 80.7 0 0 0 849.7 600.2 229.7 229.7 0 0 0 697 542.3H619.6V524.5A174.6 174.6 0 0 0 669.7 432.4 98.9 98.9 0 0 0 726.3 371.6 69.3 69.3 0 0 0 687.2 282.2H687.2A43.9 43.9 0 0 0 673.1 280.1V194.2A95.3 95.3 0 0 0 577.9 99H417.5A95.3 95.3 0 0 0 323.3 180.4H276.9C251.4 177.8 225.6 193.3 197.7 190.6L137.6 177.7A35.2 35.2 0 0 0 95.7 219.6L109 281.4A45.2 45.2 0 0 1 108 304.4 176 176 0 0 0 101.9 330.4H56.1V75.2A39 39 0 0 1 95 36.2H193.3A18.1 18.1 0 1 0 193.3 0.1H95A75.1 75.1 0 0 0 20 75.1V340.8A50.4 50.4 0 0 0 0 380.9L0.5 968.4A31.6 31.6 0 0 0 32 1000H964.2A31.6 31.6 0 0 0 995.8 968.4L996.1 778 1110.2 674.7 1110.5 674.5A96.9 96.9 0 0 0 1130.7 561L1081.6 463.3A60.5 60.5 0 0 1 1084.3 404.5L1100.6 378.3A107 107 0 0 0 1116.5 379.5H1116.5A106.7 106.7 0 0 0 1207.7 328.2 111.7 111.7 0 0 0 1223.2 272.9V115.7A34 34 0 0 0 1189.1 81.7ZM959.9 380.9V762L940.2 779.9Q934 774.3 927.6 769A229.2 229.2 0 0 0 892.5 650.8 116.7 116.7 0 0 1 887.2 598 176.8 176.8 0 0 0 895.4 544.4V366.6H945.6A14.3 14.3 0 0 1 960 380.9ZM412 551.6A175.1 175.1 0 0 0 583.3 551.6V584.4A14.8 14.8 0 0 1 568.5 599.3H426.8A14.8 14.8 0 0 1 411.9 584.4ZM675.9 316.8A33.5 33.5 0 0 1 691.8 360.7C685.7 379.6 666.4 398.8 652.9 399.4A18.1 18.1 0 0 0 635.8 415.4 139.1 139.1 0 0 1 359.5 415.4 18.1 18.1 0 0 0 342.5 399.4C329 398.8 309.7 379.6 303.5 360.7A33.5 33.5 0 0 1 319.5 316.8 6.5 6.5 0 0 1 321.4 316.4C322.6 316.4 323.6 317.2 325.7 320.2A18.1 18.1 0 0 0 345.9 326.9C355.3 324.2 360.3 311.1 358.5 298.5A69.5 69.5 0 0 1 428 229.1H567.4A69.5 69.5 0 0 1 636.9 298.5C636.5 308.2 635.8 321 649.5 326.9A18.1 18.1 0 0 0 669.7 320.2C672.8 315.8 673.6 316.1 675.9 316.8ZM358.5 194.2A59.1 59.1 0 0 1 417.5 135.2H577.8A59.1 59.1 0 0 1 636.9 194.2V219.1A105.1 105.1 0 0 0 567.4 193H427.9A105.1 105.1 0 0 0 358.5 219.1ZM190.1 225.9A81.2 81.2 0 0 0 232.6 223.6 140.4 140.4 0 0 1 276.9 216.5H322.3V280.3A43.7 43.7 0 0 0 308.2 282.5 69.3 69.3 0 0 0 269.1 371.9 98.8 98.8 0 0 0 325.7 432.7 174.6 174.6 0 0 0 375.8 524.8V542.5H298.3A229.7 229.7 0 0 0 145.6 600.5 80.8 80.8 0 0 0 142.6 587.2 140.9 140.9 0 0 1 136 544.7V357.5C134.5 331.6 151.1 303.5 144.4 273.7L131.4 213.3ZM36.1 380.9A14.3 14.3 0 0 1 50.5 366.6H99.9V544.4A176.8 176.8 0 0 0 108.1 597.9 121.7 121.7 0 0 1 102.8 650.8 229.2 229.2 0 0 0 67.7 769.1Q56.9 778.2 46.6 787.9A148 148 0 0 0 36.1 799.1V380.9ZM959.7 963.9H36.6V896.2A114.3 114.3 0 0 1 71.6 814 359.5 359.5 0 0 1 251.1 720.5 18.1 18.1 0 1 0 244.1 685 394.5 394.5 0 0 0 106.5 740.6 194.8 194.8 0 0 1 298.3 578.4H375.8V584.2A51 51 0 0 0 426.8 635.4H568.5A51 51 0 0 0 619.6 584.4V578.6H697.1A194.8 194.8 0 0 1 888.9 740.5 395 395 0 0 0 674.4 677.7H331.9A18.1 18.1 0 1 0 331.9 713.8H674.3A359 359 0 0 1 898.1 791.5L898.6 791.9Q912.2 802.7 924.9 815A114.3 114.3 0 0 1 959.7 896.9V963.9ZM1187 117.8V167.7H1046.1V117.8ZM1181.5 300.3A73.5 73.5 0 0 1 1116.5 343.4 70.6 70.6 0 0 1 1046 272.9V203.8H1186.9V272.9A70.3 70.3 0 0 1 1181.5 300.3Z", + "width": 1223 + }, + "search": [ + "patient" + ] + }, + { + "uid": "7d90537e42db22c38e8bb2243c8be55a", + "css": "qr-code", + "code": 59414, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M968.8 281.3C951.5 281.3 937.5 267.3 937.5 250V89.8C937.5 74.8 925.2 62.5 910.2 62.5H750C732.7 62.5 718.8 48.5 718.8 31.3S732.7 0 750 0H910.2C959.7 0 1000 40.3 1000 89.8V250C1000 267.3 986 281.3 968.8 281.3ZM31.3 281.3C14 281.3 0 267.3 0 250V89.8C0 40.3 40.3 0 89.8 0H250C267.3 0 281.3 14 281.3 31.3S267.3 62.5 250 62.5H89.8C74.8 62.5 62.5 74.8 62.5 89.8V250C62.5 267.3 48.5 281.3 31.3 281.3ZM250 1000H89.8C40.3 1000 0 959.7 0 910.2V750C0 732.7 14 718.8 31.3 718.8S62.5 732.7 62.5 750V910.2C62.5 925.2 74.8 937.5 89.8 937.5H250C267.3 937.5 281.3 951.5 281.3 968.8S267.3 1000 250 1000ZM910.2 1000H750C732.7 1000 718.8 986 718.8 968.8S732.7 937.5 750 937.5H910.2C925.2 937.5 937.5 925.2 937.5 910.2V750C937.5 732.7 951.5 718.8 968.8 718.8S1000 732.7 1000 750V910.2C1000 959.7 959.7 1000 910.2 1000ZM378.9 468.8H214.8C165.3 468.8 125 428.4 125 378.9V214.8C125 165.3 165.3 125 214.8 125H378.9C428.4 125 468.8 165.3 468.8 214.8V378.9C468.8 428.4 428.4 468.8 378.9 468.8ZM214.8 187.5C199.8 187.5 187.5 199.8 187.5 214.8V378.9C187.5 394 199.8 406.3 214.8 406.3H378.9C394 406.3 406.3 394 406.3 378.9V214.8C406.3 199.8 394 187.5 378.9 187.5ZM378.9 875H214.8C165.3 875 125 834.7 125 785.2V621.1C125 571.6 165.3 531.3 214.8 531.3H378.9C428.4 531.3 468.8 571.6 468.8 621.1V785.2C468.8 834.7 428.4 875 378.9 875ZM214.8 593.8C199.8 593.8 187.5 606 187.5 621.1V785.2C187.5 800.2 199.8 812.5 214.8 812.5H378.9C394 812.5 406.3 800.2 406.3 785.2V621.1C406.3 606 394 593.8 378.9 593.8ZM785.2 468.8H621.1C571.6 468.8 531.3 428.4 531.3 378.9V214.8C531.3 165.3 571.6 125 621.1 125H785.2C834.7 125 875 165.3 875 214.8V378.9C875 428.4 834.7 468.8 785.2 468.8ZM621.1 187.5C606 187.5 593.8 199.8 593.8 214.8V378.9C593.8 394 606 406.3 621.1 406.3H785.2C800.2 406.3 812.5 394 812.5 378.9V214.8C812.5 199.8 800.2 187.5 785.2 187.5ZM824.2 687.5H750V582C750 554 727.2 531.3 699.2 531.3H582C554 531.3 531.3 554 531.3 582V699.2C531.3 727.2 554 750 582 750H687.5V824.2C687.5 852.2 710.3 875 738.3 875H824.2C852.2 875 875 852.2 875 824.2V738.3C875 710.3 852.2 687.5 824.2 687.5ZM593.8 593.8H687.5V687.5H593.8ZM812.5 812.5H750V750H812.5ZM312.5 343.8H281.3C264 343.8 250 329.8 250 312.5V281.3C250 264 264 250 281.3 250H312.5C329.8 250 343.8 264 343.8 281.3V312.5C343.8 329.8 329.8 343.8 312.5 343.8ZM718.8 343.8H687.5C670.2 343.8 656.3 329.8 656.3 312.5V281.3C656.3 264 670.2 250 687.5 250H718.8C736 250 750 264 750 281.3V312.5C750 329.8 736 343.8 718.8 343.8ZM312.5 750H281.3C264 750 250 736 250 718.8V687.5C250 670.2 264 656.3 281.3 656.3H312.5C329.8 656.3 343.8 670.2 343.8 687.5V718.8C343.8 736 329.8 750 312.5 750Z", + "width": 1000 + }, + "search": [ + "qr-code" + ] + }, + { + "uid": "47870853aec32b02cd5a40fbb389baa1", + "css": "radiology", + "code": 59415, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M9.5 420.4A9.5 9.5 0 0 1 2.1 405C147.5 223 255.4 180.6 359.8 139.6L366.3 137C407.7 120.8 430.8 77.5 435.2 8.9A9.6 9.6 0 0 1 445.2 0.1 9.5 9.5 0 0 1 454.1 10.1C449.2 86.8 422 135.5 373.3 154.7L366.8 157.2C264.6 197.2 159.1 238.8 16.9 416.9A9.5 9.5 0 0 1 9.5 420.4ZM216.3 1000L215.2 1000A9.5 9.5 0 0 1 206.9 989.5C207.1 987.8 227.5 820.4 227.4 753.3 227.4 695.6 209.9 542.1 203.5 488.5 178.7 511.9 127.1 560.1 104.3 577.7A458 458 0 0 1 62.3 604.7L49.8 612.2A9.5 9.5 0 1 1 40 596L52.6 588.4A445.8 445.8 0 0 0 92.9 562.6C122.1 540.1 203.5 462.6 204.3 461.8A9.5 9.5 0 0 1 220.2 467.5C221.3 476.2 246.5 682 246.5 753.2 246.5 821.5 226.7 984.8 225.9 991.7A9.5 9.5 0 0 1 216.5 1000.1ZM1058.7 420.4A9.5 9.5 0 0 1 1051.3 416.9C909.1 238.9 803.5 197.4 701.4 157.2L694.9 154.7C646.1 135.5 619 86.8 614.1 10.1A9.5 9.5 0 0 1 633.1 8.9C637.4 77.7 660.6 120.9 701.9 137L708.4 139.6C812.7 180.6 920.8 223 1066.2 405A9.5 9.5 0 0 1 1058.7 420.4ZM852.1 1000A9.5 9.5 0 0 1 842.8 991.7C841.9 984.7 821.8 821.4 821.8 753.2 821.8 681.9 847 476.1 848.1 467.4A9.5 9.5 0 0 1 864 461.8C864.8 462.5 946.2 540 975.4 562.5A448.1 448.1 0 0 0 1015.7 588.3L1028.2 595.9A9.5 9.5 0 0 1 1018.4 612.1L1006 604.6A458.9 458.9 0 0 1 963.9 577.6C941.1 560.1 889.6 511.8 864.8 488.4 858.4 542 840.9 695.5 840.8 753.2 840.8 820.2 861.5 987.7 861.8 989.3A9.5 9.5 0 0 1 853.6 999.8L852.4 999.8ZM399 631.1A96.4 96.4 0 0 1 307 589.4 19 19 0 0 1 341.2 573C350.9 593.3 408.2 604.5 479.4 576.7A19 19 0 1 1 493.3 612.1 263.1 263.1 0 0 1 399 631.1ZM388 705.8A167.6 167.6 0 0 1 333.5 697.1 89.7 89.7 0 0 1 280.3 655.8 19 19 0 1 1 314.5 639.4 53.5 53.5 0 0 0 346 661.3 171.1 171.1 0 0 0 477.9 645 19 19 0 0 1 494.8 679 241.9 241.9 0 0 1 388 705.8ZM348.5 817.7A76.6 76.6 0 0 1 310 808.1 86.8 86.8 0 0 1 276.4 711.3 19 19 0 0 1 313.7 717.8C308.8 746 314.3 766.8 328.8 775.2 349.3 786.9 395.9 778.4 465.4 719.2A19 19 0 0 1 489.9 748.1C425.6 802.7 379.6 817.7 348.4 817.7ZM599.7 557.3Q588.4 557.3 576.4 556.8A19 19 0 0 1 578 518.9C714.7 524.4 772.4 478.5 776.6 464.6A19 19 0 0 1 811.3 449.3 37.2 37.2 0 0 1 807.1 487.8C784.2 523.3 711.8 557.3 599.7 557.3ZM582.6 482.5H579.4A19 19 0 1 1 579.4 444.6C580.4 444.6 581.3 444.6 582.3 444.6 691.4 444.6 710.6 422.1 713.3 417.5 714.1 416.2 716 413 712.7 406.7A19 19 0 1 1 746.2 388.9 47.9 47.9 0 0 1 745.8 437.1C727.4 467.7 674 482.5 582.6 482.5ZM609.9 248.4A19 19 0 0 0 572.3 245.3 67 67 0 0 1 553.3 254.8V205.7A19 19 0 1 0 515.4 205.7V254.7A66.5 66.5 0 0 1 496.4 245.1 19 19 0 0 0 458.7 248.3C458.7 273.4 489.6 287.4 515.4 294.8V594.3A19 19 0 1 0 553.3 594.3V294.9C579.1 287.5 609.9 273.5 609.9 248.4ZM490.1 348.1H491.1A19 19 0 1 0 492 310.1C425.2 306.6 405.2 290 403.1 285A19 19 0 0 0 369.2 268 36.8 36.8 0 0 0 370.2 304C380.3 321.8 409.3 343.9 490.1 348.1ZM490.3 518.9C353.4 524.5 295.9 478.5 291.6 464.6A19 19 0 0 0 257 449.3 37.2 37.2 0 0 0 261.2 487.8C284 523.4 356.4 557.4 468.5 557.4Q479.9 557.4 491.8 556.9A19 19 0 0 0 490.3 519ZM485.8 482.5H488.8A19 19 0 0 0 488.8 444.6H488.8C376.8 444.9 357.7 422.1 354.9 417.5 354.1 416.2 352.2 413 355.6 406.7A19 19 0 0 0 322 388.9 47.9 47.9 0 0 0 322.4 437.1C340.8 467.7 394.3 482.5 485.8 482.5ZM577.1 348.1H578.1C658.8 343.9 687.8 321.8 697.9 304.1A36.8 36.8 0 0 0 698.9 268 19 19 0 0 0 665.1 285.1C662.9 290 642.9 306.8 576.1 310.2A19 19 0 0 0 577.1 348.1ZM491.3 369.3H491.3C385.8 369.7 367.8 348.3 365.2 344.1 364.6 343 363 340.3 365.9 334.8A19 19 0 1 0 332.4 317 46.5 46.5 0 0 0 332.8 363.7C350.4 393 401.4 407.3 488.6 407.3H491.4A19 19 0 0 0 491.4 369.4ZM736.3 317A19 19 0 1 0 702.8 334.8C705.8 340.4 704.2 343 703.5 344.1 700.9 348.4 683 369.4 580.1 369.4 579.2 369.4 578.3 369.4 577.3 369.4A19 19 0 0 0 577.3 407.3H580.2C667.3 407.3 718.3 393.1 736 363.7A46.5 46.5 0 0 0 736.3 317ZM669.3 631.1A263 263 0 0 1 575.1 612 19 19 0 1 1 588.9 576.7C660.1 604.7 717.4 593.3 727.2 572.9A19 19 0 1 1 761.4 589.3 96.5 96.5 0 0 1 669.3 631.1ZM680.2 705.8A241.9 241.9 0 0 1 573.5 679 19 19 0 0 1 590.4 645.1 171 171 0 0 0 722.3 661.3 53.5 53.5 0 0 0 753.8 639.5 19 19 0 1 1 788 655.9 89.7 89.7 0 0 1 734.8 697.1 167.6 167.6 0 0 1 680.3 705.8ZM719.7 817.7C688.5 817.7 642.5 802.7 578.2 748.2A19 19 0 0 1 602.7 719.3C672.3 778.4 718.9 786.9 739.2 775.3 753.8 767 759.3 746 754.4 717.9A19 19 0 1 1 791.7 711.3 86.8 86.8 0 0 1 758.1 808.2 76.7 76.7 0 0 1 719.7 817.7ZM854.3 931.9H215.3A102.8 102.8 0 0 1 112.6 829.2V190.2A102.8 102.8 0 0 1 215.3 87.5H854.3A102.8 102.8 0 0 1 957 190.2V829.2A102.8 102.8 0 0 1 854.3 931.9ZM215.3 106.5A84 84 0 0 0 131.6 190.2V829.2A84 84 0 0 0 215.3 912.9H854.3A84 84 0 0 0 938.1 829.2V190.2A84 84 0 0 0 854.3 106.5Z", + "width": 1068 + }, + "search": [ + "radiology" + ] + }, + { + "uid": "166043ccaa1f7fdaa8ec9a357a798f8c", + "css": "referral", + "code": 59416, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M888.2 752.2A107.4 107.4 0 0 0 944.6 658.3 110.5 110.5 0 0 0 723.6 658.3 107.4 107.4 0 0 0 780 752.2 166.1 166.1 0 0 0 668.1 908.8V983.3A16.7 16.7 0 0 0 684.8 1000H983.3A16.7 16.7 0 0 0 1000 983.3V908.8A166.1 166.1 0 0 0 888.2 752.2ZM756.9 658.3A77.2 77.2 0 1 1 834.1 732.7 75.9 75.9 0 0 1 756.9 658.3ZM966.7 966.7H701.4V908.8A132.6 132.6 0 0 1 966.6 908.8ZM888.2 201.5A107.3 107.3 0 0 0 944.6 107.7 110.5 110.5 0 0 0 723.6 107.7 107.3 107.3 0 0 0 779.9 201.5 166.1 166.1 0 0 0 668.1 358.2V432.7A16.7 16.7 0 0 0 684.8 449.3H983.3A16.7 16.7 0 0 0 1000 432.7V358.2A166.1 166.1 0 0 0 888.2 201.5ZM756.9 107.7A77.2 77.2 0 0 1 911.2 107.7 77.2 77.2 0 0 1 756.9 107.7ZM966.7 416H701.4V358.2A132.6 132.6 0 0 1 966.6 358.2ZM537.3 492.6L631.1 411.9A16.7 16.7 0 0 0 609.3 386.6L505.3 476.3H388A16.7 16.7 0 1 0 388 509.6H505.3L609.5 595A18.6 18.6 0 0 0 632.8 592.7 16.2 16.2 0 0 0 630.5 569.3ZM292.4 452.7A125.9 125.9 0 0 0 323.3 369.9 128.6 128.6 0 0 0 66.1 369.9 125.9 125.9 0 0 0 97.1 452.7 183.8 183.8 0 0 0 0 613.2V711.2A16.7 16.7 0 0 0 16.7 727.9H372.9A16.7 16.7 0 0 0 389.6 711.2V613.2A183.9 183.9 0 0 0 292.4 452.7ZM194.8 276A94 94 0 1 1 99.5 370 94.8 94.8 0 0 1 194.8 275.9ZM176.8 496A130.7 130.7 0 0 0 194.8 497.4 128.1 128.1 0 0 0 212.8 496V574L194.8 597 176.7 573.8ZM356.2 694.7H303.9V612.9A16.7 16.7 0 0 0 270.5 612.9V694.6H119.1V612.9A16.7 16.7 0 0 0 85.7 612.9V694.6H33.3V613.2A150.5 150.5 0 0 1 124.8 476.5 128.9 128.9 0 0 0 143.5 486.5V585.2L181.7 634.1A16.7 16.7 0 0 0 207.9 634.1L246.1 585.2V486.6A129.8 129.8 0 0 0 264.8 476.6 150.5 150.5 0 0 1 356.2 613.3V694.7Z", + "width": 1000 + }, + "search": [ + "referral" + ] + }, + { + "uid": "a1c284f339f4b6bc2d580afc2e7b2639", + "css": "search_patient", + "code": 59418, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M388.6 97.1A291.3 291.3 0 1 0 680 388.4 291.7 291.7 0 0 0 388.6 97.1ZM388.6 647.5A259.1 259.1 0 1 1 647.7 388.4 259.3 259.3 0 0 1 388.6 647.5ZM178.1 404.7H210.4A194.6 194.6 0 0 1 404.7 210.4V178.1A226.7 226.7 0 0 0 178.1 404.7ZM977.2 885.6L1000 862.8 768.3 630.9 745.5 653.7 704.9 613.2A387.8 387.8 0 1 0 613.4 705.1L654 745.7 631.1 768.5 862.5 999.9 885.4 977.1 676.7 768.2 768.2 676.7ZM388.4 744.7A356.1 356.1 0 1 1 744.5 388.6 356.6 356.6 0 0 1 388.4 744.7ZM676.8 722.4L639.2 685A388.2 388.2 0 0 0 685.1 639.1L722.7 676.7Z", + "width": 1000 + }, + "search": [ + "search_patient" + ] + }, + { + "uid": "5a324eddf382f5a1167d7d40325f82c8", + "css": "reject_icon", + "code": 59394, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M681 626.7L554.3 500 681 373.3A38.5 38.5 0 0 0 626.7 318.9L500 445.7 373.3 319A38.5 38.5 0 1 0 318.9 373.3L445.7 500 318.9 626.8A37.2 37.2 0 0 0 318.9 681.1 38.2 38.2 0 0 0 373.3 681.1L500 554.4 626.7 681.1A38.5 38.5 0 0 0 681.1 681.1 38.2 38.2 0 0 0 681 626.7ZM500 67.3A432.5 432.5 0 1 1 194 194 429.8 429.8 0 0 1 500 67.3M500 0A500 500 0 1 0 1000 500 500 500 0 0 0 500 0Z", + "width": 1000 + }, + "search": [ + "reject_icon" + ] + }, + { + "uid": "2742f64b5e69cc4f39a2dcc5a081ad03", + "css": "approved_icon", + "code": 59403, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M756.3 348.3L714 304.8A9.1 9.1 0 0 0 707.2 302H707.2A8.7 8.7 0 0 0 700.5 304.8L407.2 600.3 300.5 493.5A9.3 9.3 0 0 0 287.1 493.5L244.2 536.3A9.6 9.6 0 0 0 244.2 550L378.8 684.5A42.6 42.6 0 0 0 406.9 698.2 44.6 44.6 0 0 0 434.8 685H435L756.5 362A10.3 10.3 0 0 0 756.3 348.3ZM500 67.3A432.5 432.5 0 1 1 194 194 429.8 429.8 0 0 1 500 67.3M500 0A499.9 499.9 0 1 0 999.9 500 499.9 499.9 0 0 0 500 0Z", + "width": 1000 + }, + "search": [ + "approved_icon" + ] + }, + { + "uid": "148de09f7fd22c378cdfdbaacaa8e205", + "css": "pending_icon", + "code": 59404, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M809.8 932H797.3C781.5 932 768.2 929.8 766.5 914V913.7C731 583.9 523.3 577.6 523.3 499.9S731.1 415.9 766.5 86V85.9C768.2 70.1 781.5 68 797.3 68H809.8A34.8 34.8 0 0 0 844.7 35.7 34 34 0 0 0 810.7 0H35A34.8 34.8 0 0 0 0 32.3 34 34 0 0 0 34 68H47.2C63 68 76.3 70.2 78.1 85.9V86.2C113.7 416 321.5 422.3 321.5 500S113.7 584 78.3 913.8V914C76.6 929.8 63.3 932 47.5 932H35A34.8 34.8 0 0 0 0.1 964.3 34 34 0 0 0 34.1 1000H810.7A33.9 33.9 0 0 0 844.7 964.3 34.8 34.8 0 0 0 809.8 932ZM197.4 848.9C267 655.2 390.6 678.7 390.6 602.3V467.5C390.6 420.4 301.2 387.6 245.4 311.1A19 19 0 0 1 261.2 281H583.8A18.9 18.9 0 0 1 600 310.6C545.2 387.3 454.2 420.4 454.2 467.4V602.4C454.2 678.1 572.9 657.5 647.8 849 654.7 866.3 649.5 887.8 631.2 887.8H214.1C195.4 887.8 191.1 866.5 197.4 849Z", + "width": 845 + }, + "search": [ + "pending_icon" + ] + }, + { + "uid": "0bbb324cc39e62b3a4e05639a4f4008f", + "css": "home_icon", + "code": 59407, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M973.1 435L973.1 435 565 27A92 92 0 0 0 434.9 27L27.2 434.7 26.8 435.1A92 92 0 0 0 88 591.9C88.9 591.9 89.9 591.9 90.8 591.9H107.1V892.1A107.9 107.9 0 0 0 214.8 999.9H374.4A29.3 29.3 0 0 0 403.7 970.6V735.3A49.2 49.2 0 0 1 452.9 686.2H547A49.2 49.2 0 0 1 596.2 735.3V970.7A29.3 29.3 0 0 0 625.5 1000H785.1A107.9 107.9 0 0 0 892.8 892.3V592H907.8A92.1 92.1 0 0 0 973 434.9ZM931.6 523.7A33.4 33.4 0 0 1 907.9 533.5H863.5A29.3 29.3 0 0 0 834.2 562.8V892.3A49.2 49.2 0 0 1 785.1 941.4H654.9V735.3A107.9 107.9 0 0 0 547 627.5H452.9A107.9 107.9 0 0 0 345.1 735.2V941.3H215A49.2 49.2 0 0 1 165.8 892.1V562.8A29.3 29.3 0 0 0 136.5 533.5H92.8L91.4 533.5A33.4 33.4 0 0 1 68.4 476.4H68.4L476.3 68.4A33.4 33.4 0 0 1 523.6 68.4L931.4 476.2 931.6 476.4A33.4 33.4 0 0 1 931.6 523.7ZM931.6 523.7", + "width": 1000 + }, + "search": [ + "home_icon" + ] + }, + { + "uid": "d8fc8a6e9f001147307d87b3b620b86f", + "css": "mail", + "code": 59422, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1055.6 667.9V111.1A111.2 111.2 0 0 0 944.4 0H111.1A111.2 111.2 0 0 0 0 111.1V666.7A111.2 111.2 0 0 0 111.1 777.8H777.8A46 46 0 0 0 789.7 810C819.2 841 869.8 889 914.5 931.2 936.9 952.3 957.3 971.7 972.1 986A48.3 48.3 0 0 0 1006 1000 50.2 50.2 0 0 0 1055.5 949.3V889.4C1198.9 894.6 1277.9 940.2 1277.9 972.2A27.8 27.8 0 1 0 1333.4 972.2 306 306 0 0 0 1055.6 667.9ZM111.1 55.7H944.4C945.6 55.7 946.6 56.2 947.7 56.3L551.3 381.8A46.3 46.3 0 0 1 506.8 383.6L107.9 56.2C109 56.1 110 55.6 111.1 55.6ZM111.1 722.3A55.6 55.6 0 0 1 55.6 666.8V111.1A55 55 0 0 1 60.3 89L474 428.4A98.2 98.2 0 0 0 527.8 444.5 100.7 100.7 0 0 0 584.2 426.5L995.3 89A55 55 0 0 1 1000 111.1V556.8A48.1 48.1 0 0 0 972.1 569.7C957.4 584.1 936.9 603.4 914.6 624.5 879.9 657.3 841.9 693.2 812.7 722.3H111.1ZM1027.9 833.3A27.8 27.8 0 0 0 1000.2 861.1V935.7C986.8 922.8 970.4 907.3 952.9 890.8 911.6 851.7 865 807.8 836 777.8 865 747.8 911.6 703.8 952.9 664.7 971.6 647.1 989 630.6 1000.2 618.2V694.4A27.8 27.8 0 0 0 1027.9 722.2 250.3 250.3 0 0 1 1259.3 877.5 525.9 525.9 0 0 0 1027.9 833.3Z", + "width": 1333 + }, + "search": [ + "mail" + ] + }, + { + "uid": "afe3a55435e46aeeeeae8f60731d4706", + "css": "medicine_search", + "code": 59423, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M986 125.2A171.6 171.6 0 1 0 1157.6 296.8 171.8 171.8 0 0 0 986 125.2ZM986 449.3A152.6 152.6 0 1 1 1138.6 296.8 152.7 152.7 0 0 1 986 449.3ZM862.1 306.4H881.1A114.6 114.6 0 0 1 995.5 192V173A133.5 133.5 0 0 0 862.1 306.4ZM1332.6 589.6L1346.1 576.2 1209.6 439.6 1196.2 453 1172.3 429.1A228.3 228.3 0 1 0 1118.4 483.3L1142.3 507.2 1128.8 520.6 1265.1 657 1278.6 643.5 1155.7 520.6 1209.6 466.7ZM985.9 506.6A209.7 209.7 0 1 1 1195.6 296.9 210 210 0 0 1 985.9 506.6ZM1155.7 493.5L1133.6 471.4A228.6 228.6 0 0 0 1160.6 444.5L1182.7 466.6ZM416.7 700V733.3H100A16.7 16.7 0 0 1 83.3 716.6V566.6A16.7 16.7 0 0 1 100 550H416.7V583.2H116.6V699.9ZM33.3 866.7H416.7V900H33.3A66.7 66.7 0 0 0 99.9 966.5H466.6A67.2 67.2 0 0 0 479.9 965.2L486.6 997.9A100.5 100.5 0 0 1 466.6 999.9H99.9A100.1 100.1 0 0 1-0.1 899.9V583.3H33.2ZM79.2 316.7H83.3V266.7H70.9A37.5 37.5 0 0 1 33.3 229.2V58.3A58.4 58.4 0 0 1 91.7 0H400V33.3H91.7A25 25 0 0 0 66.7 58.3V229.2A4.2 4.2 0 0 0 70.9 233.3H495.9A4.2 4.2 0 0 0 500.1 229.2V58.3A25 25 0 0 0 475.1 33.3H433.4V0H475.1A58.4 58.4 0 0 1 533.4 58.3V229.2A37.5 37.5 0 0 1 495.9 266.7H483.4V316.7H487.6A79.4 79.4 0 0 1 566.8 395.9V400H533.5V395.9A45.9 45.9 0 0 0 487.6 350H79.2A45.9 45.9 0 0 0 33.3 395.9V466.7H450V500H33.3V550H0V395.8A79.4 79.4 0 0 1 79.2 316.7ZM450 316.7V266.7H116.7V316.7ZM466.6 66.7H433.3V200H466.6ZM400 66.7H366.7V200H400ZM333.3 66.7H300V200H333.3ZM266.6 66.7H233.3V200H266.6ZM200 66.7H166.7V200H200ZM133.3 66.7H100V200H133.3ZM416.7 783.3H316.7V816.6H416.7ZM283.3 783.3H83.3V816.6H283.3ZM450 595.8A162.7 162.7 0 0 1 612.5 433.3H620.8A163 163 0 0 1 780 563.3L747.4 570A129.5 129.5 0 0 0 620.8 466.7H612.5A129.3 129.3 0 0 0 483.3 595.8V683.3H583.3V716.6H483.3V749.9H566.7V783.2H483.3V837.3A129.3 129.3 0 0 0 612.5 966.5H620.8A129.1 129.1 0 0 0 661.4 960L671.9 991.6A162.3 162.3 0 0 1 620.8 999.8H612.5A162.7 162.7 0 0 1 450 837.3ZM600 800A200 200 0 1 1 800 1000 200 200 0 0 1 600 800ZM633.3 800A165.6 165.6 0 0 0 652.2 877L877 652.2A166.6 166.6 0 0 0 633.3 800ZM694.5 929L838.2 785.3 861.7 808.9 722.9 947.8A166.6 166.6 0 0 0 947.7 722.9L892.2 778.5 868.6 754.9 928.9 694.6A168.3 168.3 0 0 0 905.4 671L670.9 905.4A168.1 168.1 0 0 0 694.5 929Z", + "width": 1346 + }, + "search": [ + "medicine_search" + ] + }, + { + "uid": "609e74ef20b926b8e212d28a24bf0f36", + "css": "referred", + "code": 59426, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M887.8 751.4A107.7 107.7 0 0 0 944.3 657.2 110.9 110.9 0 0 0 722.6 657.2 107.7 107.7 0 0 0 779.1 751.4 166.6 166.6 0 0 0 666.9 908.6V983.2A16.7 16.7 0 0 0 683.7 999.9H983.3A16.7 16.7 0 0 0 1000 983.2V908.6A166.6 166.6 0 0 0 887.8 751.4ZM756.1 657.2A77.5 77.5 0 1 1 833.5 731.9 76.1 76.1 0 0 1 756.1 657.2ZM966.6 966.5H700.5V908.6A133 133 0 0 1 966.6 908.6ZM887.9 202.2A107.7 107.7 0 0 0 944.4 108.1 110.9 110.9 0 0 0 722.7 108.1 107.7 107.7 0 0 0 779.2 202.2 166.6 166.6 0 0 0 667.1 359.3V434.1A16.7 16.7 0 0 0 683.8 450.8H983.3A16.7 16.7 0 0 0 1000 434.1V359.3A166.6 166.6 0 0 0 887.9 202.2ZM756.2 108.1A77.5 77.5 0 0 1 911 108.1 77.5 77.5 0 0 1 756.2 108.1ZM966.6 417.4H700.5V359.3A133 133 0 0 1 966.6 359.3ZM537.5 492.7L631.5 411.6A16.7 16.7 0 0 0 609.7 386.3L505.4 476.3H387.6A16.7 16.7 0 1 0 387.6 509.7H505.5L610 595.4A18.7 18.7 0 0 0 633.5 593 16.3 16.3 0 0 0 631.1 569.5ZM293.3 452.6A126.3 126.3 0 0 0 324.5 369.6 129.1 129.1 0 0 0 66.4 369.6 126.3 126.3 0 0 0 97.5 452.6 184.4 184.4 0 0 0 0 613.7V712A16.7 16.7 0 0 0 16.7 728.7H374.1A16.7 16.7 0 0 0 390.8 712V613.7A184.4 184.4 0 0 0 293.3 452.6ZM195.5 275.3A94.3 94.3 0 1 1 99.9 369.6 95.1 95.1 0 0 1 195.4 275.3ZM177.5 496A131.1 131.1 0 0 0 195.5 497.4 128.5 128.5 0 0 0 213.6 496V574.2L195.4 597.2 177.4 574.1ZM357.5 695.3H304.8V613.3A16.7 16.7 0 0 0 271.4 613.3V695.3H119.4V613.3A16.7 16.7 0 0 0 86 613.3V695.3H33.4V613.7A151 151 0 0 1 125.2 476.7 129.3 129.3 0 0 0 144 486.7V585.8L182.3 634.8A16.7 16.7 0 0 0 208.6 634.8L246.9 585.7V486.7A130.2 130.2 0 0 0 265.7 476.7 151 151 0 0 1 357.4 613.6V695.2Z", + "width": 1000 + }, + "search": [ + "referred" + ] + }, + { + "uid": "5af6e4cb377acd0ad97c464f6813ab1a", + "css": "sync", + "code": 59428, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1000 168.7V346.9A62.5 62.5 0 0 1 937.5 409.4H759.3A62.5 62.5 0 0 1 759.3 284.4H807.1A375.4 375.4 0 0 0 150.8 363.4 62.5 62.5 0 0 1 34.3 317.9 500.4 500.4 0 0 1 875 169.1V169.1A62.5 62.5 0 0 1 1000 169.1ZM930.4 601.1A62.5 62.5 0 0 0 849.4 636.5 375.4 375.4 0 0 1 197.4 721.8H240.7A62.5 62.5 0 1 0 240.7 596.8H62.5A62.5 62.5 0 0 0 0 659.3V837.5A62.5 62.5 0 0 0 125 837.5V830.9A503 503 0 0 0 215.2 910.8 500.4 500.4 0 0 0 966 682.2 62.5 62.5 0 0 0 930.3 601.2Z", + "width": 1000 + }, + "search": [ + "sync" + ] + }, + { + "uid": "a0f7dbb184f90f285a9cba8cf09a9b6a", + "css": "drawer_icon", + "code": 59429, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1564.7 1000H68C30.6 1000 0 958.7 0 908.2H0C0 857.6 30.6 816.3 68 816.3H1564.7C1602 816.3 1632.7 857.6 1632.7 908.2H1632.7C1632.7 958.7 1602 1000 1564.7 1000ZM911.6 591.8H68C30.6 591.8 0 550.5 0 500H0C0 449.5 30.6 408.2 68 408.2H911.6C949 408.2 979.6 449.5 979.6 500H979.6C979.6 550.5 949 591.8 911.6 591.8ZM1238.1 183.7H68C30.6 183.7 0 142.4 0 91.8H0C0 41.3 30.6 0 68 0H1238.1C1275.5 0 1306.1 41.3 1306.1 91.8H1306.1C1306.1 142.4 1275.5 183.7 1238.1 183.7Z", + "width": 1633 + }, + "search": [ + "drawer_icon" + ] + }, + { + "uid": "764baf138776221a3e1e845391b188a4", + "css": "leaves", + "code": 59446, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M968.7 468.7H572.9A31.3 31.3 0 1 1 572.9 406.2H968.7A31.3 31.3 0 1 1 968.7 468.7ZM968.7 468.7M812.5 625A31.3 31.3 0 0 1 790.4 571.6L924.5 437.5 790.4 303.3A31.3 31.3 0 0 1 834.6 259.1L990.9 415.4A31.3 31.3 0 0 1 990.9 459.6L834.6 615.8A31.2 31.2 0 0 1 812.5 625ZM812.5 625M333.3 1000A83.3 83.3 0 0 0 416.7 916.7V166.7A83.9 83.9 0 0 0 360.3 87.5L109.9 4.1A84.2 84.2 0 0 0 0 83.4V833.4A83.9 83.9 0 0 0 56.4 912.4L306.8 995.8A87.2 87.2 0 0 0 333.3 1000ZM83.3 62.5A24.5 24.5 0 0 1 90.8 63.6L340.1 146.7A21.4 21.4 0 0 1 354.2 166.6V916.6A22 22 0 0 1 325.9 936.4L76.6 853.3A21.5 21.5 0 0 1 62.5 833.3V83.3A20.9 20.9 0 0 1 83.3 62.5ZM83.3 62.5M635.4 208.3A31.3 31.3 0 0 0 666.7 177.1V114.6A114.7 114.7 0 0 0 552.1 0H83.3A31.3 31.3 0 0 0 83.3 62.5H552.1A52.1 52.1 0 0 1 604.2 114.6V177.1A31.3 31.3 0 0 0 635.4 208.3ZM635.4 208.3M385.4 875H552.1A114.7 114.7 0 0 0 666.6 760.4V697.9A31.3 31.3 0 0 0 604.1 697.9V760.4A52.1 52.1 0 0 1 552.1 812.5H385.4A31.3 31.3 0 0 0 385.4 875ZM385.4 875", + "width": 1000 + }, + "search": [ + "leaves" + ] + }, + { + "uid": "4477771717c5280f9030b8e410040eda", + "css": "search_patient-1", + "code": 59465, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1142.7 436.8A165.2 165.2 0 1 0 1307.8 601.9 165.4 165.4 0 0 0 1142.7 436.8ZM1142.7 748.8A146.9 146.9 0 1 1 1289.5 601.9 147 147 0 0 1 1142.7 748.8ZM1023.4 611.1H1041.7A110.3 110.3 0 0 1 1151.8 500.9V482.7A128.5 128.5 0 0 0 1023.4 611.1ZM1476.4 883.8L1489.3 870.9 1357.9 739.4 1345 752.4 1322 729.4A219.8 219.8 0 1 0 1270.1 781.5L1293.1 804.5 1280.2 817.4 1411.4 948.7 1424.4 935.7 1306 817.3 1357.9 765.4ZM1142.6 803.9A201.9 201.9 0 1 1 1344.4 602 202.2 202.2 0 0 1 1142.6 803.9ZM1306 791.3L1284.7 770.1A220.1 220.1 0 0 0 1310.7 744.1L1332.1 765.5ZM48.4 483.9H301.4A96.4 96.4 0 0 1 276.7 346.5 305.1 305.1 0 0 1 257.9 242V201.9A201.8 201.8 0 0 1 564.5 29.2 201.8 201.8 0 0 1 871 201.8V205.4L887 177.2 957.1 299.9A80.6 80.6 0 0 1 869.7 417.5 96.9 96.9 0 0 1 785.1 499.2 226.4 226.4 0 0 1 645.1 662.2V696.2L780.4 720.8A267.4 267.4 0 0 1 999.9 983.9V999.9H129V983.9A267.4 267.4 0 0 1 348.6 720.8L483.9 696.2V662.3A224.6 224.6 0 0 1 396.8 602.3C396 602.6 395.1 602.8 394.3 603.1A92.8 92.8 0 0 1 352.9 612.9H48.4A48.4 48.4 0 0 1 0 564.5V532.3A48.4 48.4 0 0 1 48.4 483.9ZM339.5 465.8C339.3 461.1 338.7 456.4 338.7 451.7V341A64.2 64.2 0 0 0 339.5 465.7ZM838.7 242V201.9A169.6 169.6 0 0 0 575.1 60.8L564.5 67.8 554 60.8A169.6 169.6 0 0 0 290.3 201.9V242A273.2 273.2 0 0 0 302.3 322.2 96.2 96.2 0 0 1 338.7 308.1V282.4L403.2 234V193.5A32.3 32.3 0 0 1 435.5 161.3H693.5A32.3 32.3 0 0 1 725.8 193.5V233.9L790.3 282.3V307.8A95.4 95.4 0 0 1 810.8 313.9 78.8 78.8 0 0 1 817 299.9L837.7 263.6C838.3 256.4 838.7 249.2 838.7 242ZM435.5 290.4H693.6V193.5H435.5ZM887.9 387.2A47.6 47.6 0 0 0 929.3 316L887.1 242.2 844.9 315.9A47.6 47.6 0 0 0 887.6 387.1ZM838.8 403.2A79.4 79.4 0 0 1 807.4 348.1 63.2 63.2 0 0 0 790.4 340.9V451.6C790.4 456.4 790 461 789.7 465.7A64.5 64.5 0 0 0 838.7 403.2ZM758.1 451.6V298.4L725.9 274.3V290.4A32.3 32.3 0 0 1 693.6 322.6H435.5A32.3 32.3 0 0 1 403.2 290.4V274.3L370.9 298.4V451.6A195.2 195.2 0 0 0 374.4 486.4 92.8 92.8 0 0 1 394.3 493.6 60.6 60.6 0 0 0 421.2 500H532.2A48.4 48.4 0 1 1 532.2 596.7H436.9A193.2 193.2 0 0 0 758.1 451.6ZM532.3 564.5A16 16 0 1 0 532.3 532.2H516.3V564.5ZM637.4 727.6A80.7 80.7 0 0 1 583.6 771.6 64.5 64.5 0 0 0 645.1 806.4C680.7 806.4 709.6 784.7 709.6 758A36.4 36.4 0 0 0 704.4 739.7ZM161.8 967.8H967.2A235 235 0 0 0 774.7 752.6L740.8 746.5A64.8 64.8 0 0 1 742 758.2C742 802.6 698.6 838.8 645.2 838.8A102.9 102.9 0 0 1 564.6 802.6 102.9 102.9 0 0 1 483.9 838.7C430.4 838.7 387.1 802.5 387.1 758.1A65.9 65.9 0 0 1 388.2 746.4L354.4 752.6A235 235 0 0 0 161.8 967.8ZM424.5 739.9A36.4 36.4 0 0 0 419.4 758.2C419.4 784.9 448.3 806.6 483.9 806.6A64.5 64.5 0 0 0 545.4 771.8 80.6 80.6 0 0 1 491.6 727.7ZM516 677.4V693.4A48.4 48.4 0 1 0 612.8 693.4V672.1A222.6 222.6 0 0 1 516 672.1ZM379.6 574.3A92.9 92.9 0 0 1 421 564.5H483.9V532.3H421.2A93.1 93.1 0 0 1 379.9 522.5 60.6 60.6 0 0 0 352.9 516H129V580.5H352.9A60.6 60.6 0 0 0 379.9 574.3ZM32.1 564.5A16 16 0 0 0 48.1 580.5H96.8V516H48.4A16 16 0 0 0 32.4 532ZM524.9 368.4L507 341.5 410.3 406.1 428.2 432.9ZM718.5 405.8L621.8 341.3 603.9 368.1 700.6 432.7Z", + "width": 1489 + }, + "search": [ + "search_patient" + ] + }, + { + "uid": "acee3dc68dc70f4b268b59a42fd957ee", + "css": "referral-1", + "code": 59408, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M681.4 793.1L735.5 860.8 683 913.3 659.1 793.7C663.5 793.4 667.9 793.1 672.4 793.1ZM791.7 793.1L758.6 834.3 725.6 793.1ZM835.9 793.1H844.8C849.3 793.1 853.7 793.4 858.1 793.7L834.2 913.3 781.7 860.8ZM913.8 655.1H912.8A154.1 154.1 0 0 0 913.8 637.9V586.2A34.5 34.5 0 0 1 913.8 655.1ZM603.4 482.7A103.6 103.6 0 0 1 706.9 379.3H810.3A103.6 103.6 0 0 1 913.8 482.8V551.7H844.8A34.5 34.5 0 0 1 810.3 517.2V448.3H775.9V465.5A86.3 86.3 0 0 1 689.7 551.7H603.5ZM603.4 655.1A34.5 34.5 0 1 1 603.4 586.2V637.9A154.1 154.1 0 0 0 604.4 655.1ZM637.9 637.9V586.2H689.6A120.4 120.4 0 0 0 781.2 543.9 69 69 0 0 0 844.7 586.2H879.2V637.9A120.6 120.6 0 0 1 637.9 637.9ZM1000 1000H517.2V948.3A155.6 155.6 0 0 1 625.2 800.5L655.4 951.7A17.3 17.3 0 0 0 667.3 964.8 17.6 17.6 0 0 0 672.3 965.5 17.3 17.3 0 0 0 684.5 960.4L758.5 886.4 832.5 960.5A17.2 17.2 0 0 0 861.7 951.7L891.9 800.5A155.6 155.6 0 0 1 999.8 948.3ZM164.1 413.8L218.3 481.5 165.7 534 141.8 414.5C146.3 414.1 150.7 413.8 155.2 413.8ZM274.5 413.8L241.4 455 208.3 413.8ZM318.6 413.8H327.6C332.1 413.8 336.5 414.1 340.9 414.4L317 534 264.5 481.5ZM396.5 275.8H395.5A154 154 0 0 0 396.5 258.6V206.9A34.5 34.5 0 0 1 396.5 275.8ZM86.2 103.5A103.6 103.6 0 0 1 189.7 0H293.1A103.6 103.6 0 0 1 396.6 103.5V172.4H327.6A34.5 34.5 0 0 1 293.1 137.9V69H258.6V86.2A86.3 86.3 0 0 1 172.4 172.4H86.2ZM86.2 275.9A34.5 34.5 0 1 1 86.2 206.9V258.6A154 154 0 0 0 87.2 275.9ZM120.6 258.6V206.9H172.4A120.4 120.4 0 0 0 264 164.6 69 69 0 0 0 327.5 206.9H362V258.6A120.6 120.6 0 1 1 120.7 258.6ZM482.8 620.7H0V569A155.6 155.6 0 0 1 107.9 421.2L138.2 572.3A17.3 17.3 0 0 0 150.1 585.5 17.6 17.6 0 0 0 155.1 586.2 17.3 17.3 0 0 0 167.3 581.1L241.3 507.1 315.3 581.2A17.2 17.2 0 0 0 344.4 572.3L374.7 421.2A155.6 155.6 0 0 1 482.6 569ZM172.4 827.6A17.2 17.2 0 0 0 155.2 810.3H127.8L206.8 731.3 286.1 810.2H258.8A17.2 17.2 0 0 0 241.6 827.4 206.9 206.9 0 0 0 333.6 999.5 172.6 172.6 0 0 1 172.4 827.6Z", + "width": 1000 + }, + "search": [ + "referral" + ] + }, + { + "uid": "7c82c028b3a01309cc1ffd1eaeb1ccf8", + "css": "search", + "code": 59467, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M543.6 353.5A132.3 132.3 0 1 1 411.3 221.2 132.3 132.3 0 0 1 543.6 353.5ZM974.2 974.1A88.2 88.2 0 0 1 849.4 974.1S624.7 749.2 622.9 747A405.4 405.4 0 1 1 747 622.8C749.2 624.6 974.2 849.4 974.2 849.4A88.2 88.2 0 0 1 974.1 974.1ZM726 405.2A320.8 320.8 0 1 0 206.8 657.2 146.9 146.9 0 0 1 352.4 530H470.1A146.9 146.9 0 0 1 614.3 648.4 320 320 0 0 0 726 405.2Z", + "width": 1000 + }, + "search": [ + "search" + ] + }, + { + "uid": "898cfb6ea07e1c004d9173c59903b3c3", + "css": "arrival-patients", + "code": 59469, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M490.4 621.6L473.9 574.9A181.3 181.3 0 0 1 396.3 590.7 177.3 177.3 0 0 1 318 574.2L295.4 620.7A13.4 13.4 0 0 1 287.5 627.5Q281.1 629.6 274.2 631.7A117.4 117.4 0 0 0 304 686.6 127.3 127.3 0 0 0 493.2 682.1 264 264 0 0 1 513.3 634.8C508.1 633.1 503.1 631.4 498.5 629.9A13.2 13.2 0 0 1 490.4 621.6ZM481.4 761.4A266.9 266.9 0 0 1 483.6 727 150.9 150.9 0 0 1 396.3 753.5 149.3 149.3 0 0 1 284.6 705 146.4 146.4 0 0 1 248.5 639.3L233.3 643.5C129.3 672.7 0 708.9 0 820.9V960.9C0 977.4 7.5 1000.1 19.8 1000.1H630.7A265.8 265.8 0 0 1 481.4 761.4ZM401.9 191.2C406.8 191.6 411.8 192 416.4 192.4 457.3 196.1 484.3 198.5 510.1 141.6A13.2 13.2 0 0 1 534.3 141.2L535.6 143.8A198.4 198.4 0 0 1 571.3 227.5C572.5 212.4 573.2 199.6 573.2 194.6S573.2 184.2 573.4 178.7A151.6 151.6 0 0 0 536.5 56.1 193.6 193.6 0 0 0 393.6 0.1 191.6 191.6 0 0 0 255.3 63L251.6 67.2A164.1 164.1 0 0 0 205.3 202.8 286.8 286.8 0 0 0 212.2 239.2 145.9 145.9 0 0 1 243.7 164 70.6 70.6 0 0 1 297.3 140.8C317.2 140.8 324.1 160.7 330.7 179.6 340.6 208.7 352 241.1 399 243.9 374.8 216.8 379 207 381.1 202.3A19.2 19.2 0 0 1 401.9 191.2ZM541.8 420.1A12.9 12.9 0 0 1 549.2 418.1H549.6C571.7 418.1 597.4 385 607.1 343.9A25.6 25.6 0 0 0 599.3 314.8 13.2 13.2 0 0 0 584.1 319.6 13.4 13.4 0 0 1 572.7 328.1L571.6 328.1A13.2 13.2 0 0 1 558.4 315.9 438.1 438.1 0 0 0 524 173C491.9 225.9 452.4 222.6 414.1 219.1H413.5A270.3 270.3 0 0 0 438.7 245.5 13.2 13.2 0 0 1 431.6 268.7C337.9 281.9 317.5 223.2 305.3 188.1A89.3 89.3 0 0 0 296.5 167.3 44.1 44.1 0 0 0 263.2 181.9 131.4 131.4 0 0 0 236.7 255.8 309.2 309.2 0 0 0 235.2 305.5 15.4 15.4 0 0 1 210.2 321.5C204.3 315.3 198 313.3 192.9 316.1A24.5 24.5 0 0 0 185.5 344C195.3 385.1 221 418.2 243.1 418.2H243.7A13.2 13.2 0 0 1 257 431.2 150 150 0 0 0 318.4 544 143.4 143.4 0 0 0 396.2 564.1 146.3 146.3 0 0 0 474.1 544.5L474.3 544.5A145.9 145.9 0 0 0 535.4 431.5 13.2 13.2 0 0 1 541.7 420.4ZM746.8 522.7A238.6 238.6 0 1 0 985.4 761.3 238.6 238.6 0 0 0 746.8 522.7ZM881.7 796.9A17.9 17.9 0 0 1 863.8 814.7H792.4V888.4A17.9 17.9 0 0 1 774.5 906.2H712A17.9 17.9 0 0 1 694.1 888.4V814.7H620.5A17.9 17.9 0 0 1 602.6 796.9V734.4A17.9 17.9 0 0 1 620.5 716.5H694.1V645.1A17.9 17.9 0 0 1 712 627.2H774.5A17.9 17.9 0 0 1 792.4 645.1V716.5H863.8A17.9 17.9 0 0 1 881.7 734.4ZM765.6 725.4V654H721V725.4A17.9 17.9 0 0 1 703.1 743.3H629.5V787.9H703.1A17.9 17.9 0 0 1 721 805.8V879.5H765.6V805.8A17.9 17.9 0 0 1 783.5 787.9H854.9V743.3H783.5A17.9 17.9 0 0 1 765.6 725.4Z", + "width": 985 + }, + "search": [ + "arrival-patients" + ] + }, + { + "uid": "23c2239369a69f752e790de95123b9e9", + "css": "male-2", + "code": 59417, + "src": "mfglabs" + }, + { + "uid": "10b2be8b48bebc1974d6f94bac9de71d", + "css": "female-1", + "code": 59419, + "src": "mfglabs" + }, + { + "uid": "84aaf4992ded44854de2b7090335db03", + "css": "progress-notes", + "code": 59409, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M400 266.7V33.4A33.4 33.4 0 0 1 466.6 33.4V266.7ZM300 933.3A99.3 99.3 0 0 1 229.3 904.1 1011.6 1011.6 0 0 1 0 550.5V966.6A33.4 33.4 0 0 0 33.4 1000H833.3A33.4 33.4 0 0 0 866.7 966.6V933.3ZM1128 809.7A885.7 885.7 0 0 1 866.6 189.5V166.6A33.4 33.4 0 0 0 833.3 133.3H533.3V300A33.4 33.4 0 0 1 500 333.3H366.6A33.4 33.4 0 0 1 333.3 300V133.3H33.4A33.4 33.4 0 0 0 0 166.7V189.6A943.4 943.4 0 0 0 276.4 856.9 33.4 33.4 0 0 0 300 866.7H1104.5A33.4 33.4 0 0 0 1128.1 809.8ZM433.3 400H700A33.4 33.4 0 0 1 700 466.6H433.3A33.4 33.4 0 0 1 433.3 400ZM700 733.3H366.7A33.4 33.4 0 0 1 366.7 666.6H700A33.4 33.4 0 0 1 700 733.3ZM766.7 600H300A33.4 33.4 0 1 1 300 533.3H766.7A33.4 33.4 0 1 1 766.7 600Z", + "width": 1138 + }, + "search": [ + "progress-notes" + ] + }, + { + "uid": "740f78c2b53c8cc100a8b0d283bbd34f", + "css": "home_icon-1", + "code": 59410, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M973.1 435L973.1 435 565 27A92 92 0 0 0 434.9 27L27.2 434.7 26.8 435.1A92 92 0 0 0 88 591.9C88.9 591.9 89.9 591.9 90.8 591.9H107.1V892.1A107.9 107.9 0 0 0 214.8 999.9H374.4A29.3 29.3 0 0 0 403.7 970.6V735.3A49.2 49.2 0 0 1 452.9 686.2H547A49.2 49.2 0 0 1 596.2 735.3V970.7A29.3 29.3 0 0 0 625.5 1000H785.1A107.9 107.9 0 0 0 892.8 892.3V592H907.8A92.1 92.1 0 0 0 973 434.9ZM931.6 523.7A33.4 33.4 0 0 1 907.9 533.5H863.5A29.3 29.3 0 0 0 834.2 562.8V892.3A49.2 49.2 0 0 1 785.1 941.4H654.9V735.3A107.9 107.9 0 0 0 547 627.5H452.9A107.9 107.9 0 0 0 345.1 735.2V941.3H215A49.2 49.2 0 0 1 165.8 892.1V562.8A29.3 29.3 0 0 0 136.5 533.5H92.8L91.4 533.5A33.4 33.4 0 0 1 68.4 476.4H68.4L476.3 68.4A33.4 33.4 0 0 1 523.6 68.4L931.4 476.2 931.6 476.4A33.4 33.4 0 0 1 931.6 523.7ZM931.6 523.7", + "width": 1000 + }, + "search": [ + "home_icon" + ] + }, + { + "uid": "a0ef39403e015fe3fe4252f11df60fda", + "css": "home_icon_active-1", + "code": 59420, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M973.1 435L973.1 435 565 27A92.1 92.1 0 0 0 434.9 27L27.1 434.7 26.7 435.1A92 92 0 0 0 88 592C88.9 592 89.9 592 90.8 592H107.1V892.2A107.9 107.9 0 0 0 214.8 999.9H374.4A29.3 29.3 0 0 0 403.7 970.6V735.4A49.2 49.2 0 0 1 452.9 686.2H547A49.2 49.2 0 0 1 596.2 735.4V970.7A29.3 29.3 0 0 0 625.5 1000H785.1A107.9 107.9 0 0 0 892.8 892.3V592.1H907.8A92.1 92.1 0 0 0 973 434.9ZM931.6 523.7A33.4 33.4 0 0 1 907.9 533.5H863.5A29.3 29.3 0 0 0 834.2 562.8V892.3A49.2 49.2 0 0 1 785.1 941.5H654.9V735.4A107.9 107.9 0 0 0 547 627.5H452.9A107.9 107.9 0 0 0 345.1 735.2V941.3H214.9A49.2 49.2 0 0 1 165.8 892.1V562.8A29.3 29.3 0 0 0 136.5 533.5H92.8L91.4 533.5A33.4 33.4 0 0 1 68.3 476.4H68.3L476.3 68.4A33.4 33.4 0 0 1 523.6 68.4L931.4 476.2 931.6 476.4A33.4 33.4 0 0 1 931.6 523.7ZM931.6 523.7", + "width": 1000 + }, + "search": [ + "home_icon_active" + ] + }, + { + "uid": "9d734a7694af3729960d4b9060982cc0", + "css": "menu_icon-1", + "code": 59421, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M406.7 0H83.2A83.3 83.3 0 0 0 0 83.2V406.7A83.3 83.3 0 0 0 83.2 489.9H406.7A83.3 83.3 0 0 0 489.9 406.7V83.2A83.3 83.3 0 0 0 406.7 0ZM406.7 449.1H83.2A42.4 42.4 0 0 1 40.8 406.7V83.2A42.4 42.4 0 0 1 83.2 40.8H406.7A42.4 42.4 0 0 1 449 83.2V406.7H449A42.4 42.4 0 0 1 406.7 449.1ZM916.8 0H593.3A83.3 83.3 0 0 0 510.1 83.2V406.7A83.3 83.3 0 0 0 593.3 489.9H916.8A83.3 83.3 0 0 0 1000 406.7V83.2A83.3 83.3 0 0 0 916.8 0ZM959.1 406.7A42.4 42.4 0 0 1 916.8 449.1H593.3A42.4 42.4 0 0 1 550.9 406.7V83.2A42.4 42.4 0 0 1 593.3 40.8H916.8A42.4 42.4 0 0 1 959.1 83.2ZM406.7 510.1H83.2A83.3 83.3 0 0 0 0 593.3V916.8A83.3 83.3 0 0 0 83.2 1000H406.7A83.3 83.3 0 0 0 489.9 916.8V593.3A83.3 83.3 0 0 0 406.7 510.1ZM406.7 959.2H83.2A42.4 42.4 0 0 1 40.8 916.8V593.3A42.4 42.4 0 0 1 83.2 550.9H406.7A42.4 42.4 0 0 1 449 593.3V916.8H449A42.4 42.4 0 0 1 406.7 959.1ZM916.8 510.1H593.3A83.3 83.3 0 0 0 510.1 593.3V916.8A83.3 83.3 0 0 0 593.3 1000H916.8A83.3 83.3 0 0 0 1000 916.8V593.3A83.3 83.3 0 0 0 916.8 510.1ZM959.1 916.8A42.4 42.4 0 0 1 916.8 959.2H593.3A42.4 42.4 0 0 1 550.9 916.8V593.3A42.4 42.4 0 0 1 593.3 550.9H916.8A42.4 42.4 0 0 1 959.1 593.3Z", + "width": 1000 + }, + "search": [ + "menu_icon" + ] + }, + { + "uid": "692c2d7a7dd50e46b66699b0e1b27dab", + "css": "height", + "code": 59453, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M400 50V150H600V250H400V350H500V450H400V550H600V650H400V750H500V850H400V950A50 50 0 0 0 450 1000H750A50 50 0 0 0 800 950V50A50 50 0 0 0 750 0H450A50 50 0 0 0 400 50ZM0 200L150 29.3 300 200H200V1000H100V200Z", + "width": 800 + }, + "search": [ + "height" + ] + }, + { + "uid": "9e8380e2a5811e19ab4393d5a252df32", + "css": "qr-code-1", + "code": 59424, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M650 0V350H1000V0ZM900 250H750V100H900ZM350 200V0H0V350H450V200H350ZM250 250H100V100H250ZM700 550H800V700H900V450H550V550H600V650.1H700.1ZM700 800H600V900H500V1000H700V900H800V1000H950V900H900V800H700ZM350 800V650H0V1000H350V900H500V800ZM250 900H100V750H250Z", + "width": 1000 + }, + "search": [ + "qr-code" + ] + }, + { + "uid": "6ec3034cfbe5c91e478ef9b9437647ed", + "css": "arrival-patients-bg", + "code": 59470, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M490.4 621.6L473.9 574.8A181.3 181.3 0 0 1 396.3 590.7 177.3 177.3 0 0 1 318 574.1L295.4 620.6A13.4 13.4 0 0 1 287.5 627.5Q281.1 629.6 274.3 631.6A117.4 117.4 0 0 0 304.2 686.6 127.3 127.3 0 0 0 493.5 682 264 264 0 0 1 513.6 634.6C508.3 633 503.4 631.3 498.7 629.8A13.4 13.4 0 0 1 490.4 621.6ZM481.4 761.4A266.9 266.9 0 0 1 483.6 727 150.9 150.9 0 0 1 396.3 753.3 149.3 149.3 0 0 1 284.6 704.8 146.4 146.4 0 0 1 248.5 639.1L233.3 643.4C129.4 672.5 0 708.8 0 820.7V960.8C0 977.1 7.5 1000 19.9 1000H630.7A265.8 265.8 0 0 1 481.4 761.4ZM401.8 191.2C406.8 191.6 411.6 192 416.4 192.4 457.3 196.1 484.2 198.5 510.1 141.7A13.4 13.4 0 0 1 534.2 141.2L535.5 143.8C552.2 161.8 563.7 195.1 571.3 227.6 572.5 212.4 573.2 199.7 573.2 194.7S573.3 184.3 573.4 178.8C574.2 139.6 575 95.1 536.5 56.1A193.6 193.6 0 0 0 393.6 0 191.5 191.5 0 0 0 255.3 62.7L251.6 67C228.8 92.4 203.1 121.1 205.1 202.5A286.9 286.9 0 0 0 212 238.8 146 146 0 0 1 243.5 163.5 70.6 70.6 0 0 1 297.2 140.4C317.1 140.4 324 160.1 330.5 179.2 340.6 208.3 351.7 240.7 398.9 243.5 374.6 216.4 378.9 206.6 380.9 201.9A19.2 19.2 0 0 1 401.8 191.2ZM541.8 420.1A12.9 12.9 0 0 1 549.2 418.1H549.6C571.7 418.1 597.4 384.9 607.2 343.8A25.6 25.6 0 0 0 599.3 314.8 13.4 13.4 0 0 0 584.2 319.5 13.4 13.4 0 0 1 572.8 328C572.5 328 572.1 328 571.7 328A13.4 13.4 0 0 1 558.3 315.8C555.8 285.8 544.9 209 523.9 172.9 491.9 226 452.4 222.4 414.1 219L413.5 219A270.3 270.3 0 0 0 438.7 245.4 13.4 13.4 0 0 1 431.6 268.5C337.9 281.9 317.5 223.1 305.3 187.9A89.4 89.4 0 0 0 296.5 167.2 44.1 44.1 0 0 0 263.2 181.7 131.4 131.4 0 0 0 236.8 255.7 309.1 309.1 0 0 0 235.3 305.2 15.4 15.4 0 0 1 210.2 321.3C204.3 315.1 198 313.1 192.9 315.9A24.5 24.5 0 0 0 185.6 343.8C195.3 384.9 221 418.1 243.2 418.1H243.8A13.4 13.4 0 0 1 257.2 431C258.1 443.9 265.2 510.1 318.6 543.8A143.4 143.4 0 0 0 396.4 563.9 146.4 146.4 0 0 0 474.3 544.3L474.6 544.1C528.8 510.5 534.9 444.1 535.6 431.1A13.4 13.4 0 0 1 541.9 420.1ZM746.8 522.7A238.6 238.6 0 1 0 985.5 761.3 238.7 238.7 0 0 0 746.8 522.7ZM881.7 796.9A17.9 17.9 0 0 1 863.9 814.7H792.4V888.4A17.9 17.9 0 0 1 774.6 906.2H712.1A17.9 17.9 0 0 1 694.2 888.4V814.7H620.6A17.9 17.9 0 0 1 602.7 796.9V734.4A17.9 17.9 0 0 1 620.6 716.5H694.2V645.1A17.9 17.9 0 0 1 712.1 627.3H774.6A17.9 17.9 0 0 1 792.4 645.1V716.5H863.9A17.9 17.9 0 0 1 881.7 734.4ZM765.6 725.4V654H721V725.4A17.9 17.9 0 0 1 703.1 743.3H629.4V787.9H703.1A17.9 17.9 0 0 1 721 805.8V879.4H765.6V805.8A17.9 17.9 0 0 1 783.5 787.9H854.9V743.3H783.5A17.9 17.9 0 0 1 765.6 725.4Z", + "width": 985 + }, + "search": [ + "arrival-patients-bg" + ] + }, + { + "uid": "961571413453d8de8d1d6325705ef204", + "css": "search-bg", + "code": 59468, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M543.6 353.5A132.3 132.3 0 1 1 411.3 221.2 132.3 132.3 0 0 1 543.6 353.5ZM974.2 974.2A88.2 88.2 0 0 1 849.4 974.2S624.7 749.2 622.9 747A405.4 405.4 0 1 1 747 622.9C749.2 624.6 974.2 849.4 974.2 849.4A88.2 88.2 0 0 1 974.2 974.2ZM726 405.2A320.8 320.8 0 1 0 206.8 657.2 147 147 0 0 1 352.4 530H470A147.1 147.1 0 0 1 614.3 648.5 320 320 0 0 0 726 405.2Z", + "width": 1000 + }, + "search": [ + "search-bg" + ] + }, + { + "uid": "2661cb62f53ed61755aa809d5280808e", + "css": "referral-bg", + "code": 59466, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M681.4 793.1L735.5 860.8 683 913.3 659.1 793.8C663.5 793.4 667.9 793.1 672.4 793.1ZM791.7 793.1L758.6 834.5 725.5 793.1ZM835.9 793.1H844.8C849.4 793.1 853.7 793.4 858.1 793.8L834.2 913.3 781.7 860.8ZM913.8 655.2H912.8A154 154 0 0 0 913.8 637.9V586.2A34.5 34.5 0 0 1 913.8 655.2ZM603.4 482.8A103.6 103.6 0 0 1 706.9 379.3H810.3A103.6 103.6 0 0 1 913.8 482.8V551.7H844.8A34.5 34.5 0 0 1 810.3 517.3V448.3H775.9V465.5A86.3 86.3 0 0 1 689.7 551.7H603.4ZM603.4 655.2A34.5 34.5 0 0 1 603.4 586.2V637.9A154 154 0 0 0 604.5 655.2ZM637.9 637.9V586.2H689.6A120.4 120.4 0 0 0 781.2 543.9 69 69 0 0 0 844.8 586.2H879.3V637.9A120.7 120.7 0 1 1 637.9 637.9ZM1000 1000H517.2V948.3A155.4 155.4 0 0 1 625.3 800.5L655.5 951.7A17.3 17.3 0 0 0 667.4 964.8 17.6 17.6 0 0 0 672.4 965.5 17.3 17.3 0 0 0 684.6 960.5L758.6 886.5 832.6 960.5A17.2 17.2 0 0 0 861.7 951.7L891.9 800.5A155.5 155.5 0 0 1 999.9 948.3ZM164.1 413.8L218.3 481.5 165.8 534 141.9 414.5C146.3 414.1 150.7 413.8 155.2 413.8ZM274.5 413.8L241.4 455.2 208.3 413.8ZM318.6 413.8H327.6C332.1 413.8 336.5 414.1 340.9 414.5L317 534 264.5 481.5ZM396.6 275.9H395.5A154 154 0 0 0 396.5 258.6V206.9A34.5 34.5 0 0 1 396.5 275.9ZM86.2 103.5A103.6 103.6 0 0 1 189.7 0H293.1A103.6 103.6 0 0 1 396.6 103.5V172.4H327.6A34.5 34.5 0 0 1 293.1 137.9V69H258.6V86.2A86.3 86.3 0 0 1 172.4 172.4H86.2ZM86.2 275.9A34.5 34.5 0 1 1 86.2 206.9V258.6A154 154 0 0 0 87.2 275.9ZM120.7 258.6V206.9H172.4A120.4 120.4 0 0 0 264 164.6 69 69 0 0 0 327.6 206.9H362V258.6A120.7 120.7 0 1 1 120.7 258.6ZM482.8 620.7H0V569A155.4 155.4 0 0 1 108 421.2L138.2 572.4A17.3 17.3 0 0 0 150.2 585.5 17.6 17.6 0 0 0 155.1 586.2 17.3 17.3 0 0 0 167.3 581.2L241.3 507.2 315.3 581.2A17.2 17.2 0 0 0 344.4 572.3L374.6 421.2A155.5 155.5 0 0 1 482.7 569ZM172.4 827.6A17.2 17.2 0 0 0 155.2 810.3H127.8L206.9 731.3 286 810.3H258.6A17.2 17.2 0 0 0 241.4 827.6 206.9 206.9 0 0 0 333.5 999.6 172.6 172.6 0 0 1 172.4 827.6Z", + "width": 1000 + }, + "search": [ + "referral-bg" + ] + }, + { + "uid": "f7fb556e96e9f2dfe8d87fafd4952bc8", + "css": "search-1", + "code": 59425, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M402.7 804.7A401.8 401.8 0 0 0 649.6 719.9L915.7 986A50 50 0 0 0 986.5 915.3L720.3 649.2A402.6 402.6 0 1 0 402.7 804.7ZM188.8 188.6A302.4 302.4 0 1 1 188.8 616.2H188.8A301.2 301.2 0 0 1 187.1 190.2L188.6 188.6Z", + "width": 1001 + }, + "search": [ + "search" + ] + }, + { + "uid": "d158c7d34d65d4d174f62fd0e4a85721", + "css": "send", + "code": 59427, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1000.1 0L0 562.5 319.4 680.9 812.5 218.8 437.6 724.5 437.9 724.5 437.5 724.5V1000.1L616.7 790.9 843.7 875Z", + "width": 1000 + }, + "search": [ + "send" + ] + }, + { + "uid": "29b6fa307d6eeddd2d501aa1fbe72411", + "css": "view", + "code": 59430, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M776.8 250A250 250 0 1 0 1026.8 500 250.2 250.2 0 0 0 776.8 250ZM757.8 425.9A57.4 57.4 0 0 0 700.9 482.8H618.1A141.3 141.3 0 0 1 757.8 343.1ZM1535.4 448.3C1450.9 343.1 1149.2-0.1 776.8-0.1S102.6 342.9 18.1 448.3A82.9 82.9 0 0 0 18.1 551.8C102.6 657 404.3 1000.1 776.8 1000.1S1450.9 657 1535.4 551.8A82.9 82.9 0 0 0 1535.4 448.3ZM776.8 862.1A362 362 0 1 1 1138.8 500 362 362 0 0 1 776.8 862.1Z", + "width": 1553 + }, + "search": [ + "view" + ] + }, + { + "uid": "6dd961ddeafa6f1221c571e3a96c5e0d", + "css": "warning", + "code": 59431, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1165.9 890.7L649.9 34.8A72.1 72.1 0 0 0 526.5 34.8L10.4 890.7A72.1 72.1 0 0 0 72.1 1000H1104.2A72.1 72.1 0 0 0 1165.9 890.7ZM588.5 296.1A48.8 48.8 0 0 1 643.3 342.4C643.3 432.8 632.7 562.8 632.7 653.2 632.7 676.8 606.8 686.9 588.6 686.9 564.3 686.9 543.7 677 543.7 653.2 543.7 562.8 533.1 432.8 533.1 342.4 533.1 312.8 557.3 296.1 588.5 296.1ZM589.3 856.1A58.5 58.5 0 1 1 647.1 797.6 59.4 59.4 0 0 1 589.3 856.1Z", + "width": 1176 + }, + "search": [ + "warning" + ] + }, + { + "uid": "1a56c6056532ad852281ae8316f6ac0a", + "css": "add", + "code": 59432, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M769.7 0H230.3A230.9 230.9 0 0 0 0 230.3V769.7A230.9 230.9 0 0 0 230.3 1000H769.7A230.9 230.9 0 0 0 1000 769.7V230.3A230.9 230.9 0 0 0 769.7 0ZM705.2 543.1H553.6A8.8 8.8 0 0 0 544.8 551.9V704A44.7 44.7 0 0 1 455.4 704V552A8.8 8.8 0 0 0 446.6 543.2H294.7A44.7 44.7 0 0 1 294.7 453.8H446.4A8.8 8.8 0 0 0 455.2 445V293.1A44.7 44.7 0 1 1 544.6 293.1V444.9A8.8 8.8 0 0 0 553.4 453.9H705.2A44.7 44.7 0 1 1 705.2 543.3Z", + "width": 1000 + }, + "search": [ + "add" + ] + }, + { + "uid": "84f81a72b1b0ffb0132cd1bbe1c22ca7", + "css": "close", + "code": 59433, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M591.6 500L981.2 110.4A64.8 64.8 0 1 0 889.4 19L499.8 408.6 110.2 19A64.8 64.8 0 0 0 19 110.6L408.6 500.2 19 889.8A64.8 64.8 0 1 0 110.6 981.4L500.2 591.8 889.8 981.4A64.8 64.8 0 1 0 981.4 889.8ZM591.6 500", + "width": 1000 + }, + "search": [ + "close" + ] + }, + { + "uid": "77819ffd4aac6bbd19e5760b252d420a", + "css": "back", + "code": 59434, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M14.6 535.8L464.3 985.3A50.5 50.5 0 1 0 535.8 914L121.8 500.1 535.8 86.2A50.5 50.5 0 0 0 464.3 14.7L14.6 464.3A51 51 0 0 0 14.6 535.8Z", + "width": 551 + }, + "search": [ + "back" + ] + }, + { + "uid": "c6bf117fcd1f7bb313ba6e9c3c2577ee", + "css": "qr-code-2", + "code": 59437, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M650 0V350H1000V0ZM900 250H750V100H900ZM350 200V0H0V350H450V200H350ZM250 250H100V100H250ZM700 550H800V700H900V450H550V550H600V650.1H700.1ZM700 800H600V900H500V1000H700V900H800V1000H950V900H900V800H700ZM350 800V650H0V1000H350V900H500V800ZM250 900H100V750H250Z", + "width": 1000 + }, + "search": [ + "qr-code" + ] + }, + { + "uid": "db7c621524e167c8d42abc9418ae711d", + "css": "health-summary", + "code": 59435, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M714.1 956.9H146.5A97 97 0 0 1 47.4 862.1V79.8A63 63 0 0 0 0 137.9V939.7A62.5 62.5 0 0 0 64.7 1000H652A63.3 63.3 0 0 0 714.1 956.9ZM714.1 956.9M799.6 862.1V435.3H312.3L312 462C312 462.3 312 461.2 312 463.4H519.4A17.2 17.2 0 1 1 519.4 497.9H310.1A32.1 32.1 0 0 1 287.8 487.8 38 38 0 0 1 277.5 461.2L277.7 435.4H241.3A16.9 16.9 0 0 1 224.1 418.5V416H172.3A17.2 17.2 0 0 1 155.1 398.9L154.5 324A17.8 17.8 0 0 1 171.8 306.2H171.8L224 307.2V304.9A18 18 0 0 1 241.2 286.6H799.6V209.1H653.6A56.2 56.2 0 0 1 597 152.5V0H146.4A63.1 63.1 0 0 0 81.4 58.1 16.8 16.8 0 0 1 81.9 60.3C81.9 61.2 81.9 62.1 81.9 63V862.1A62.6 62.6 0 0 0 146.4 922.4H733.8A63.6 63.6 0 0 0 799.6 862.1ZM172.5 543.1H456A17.2 17.2 0 1 1 456 577.6H172.5A17.2 17.2 0 0 1 172.5 543.1ZM665.8 829.7H172.5A17.2 17.2 0 0 1 172.5 795.2H665.8A17.2 17.2 0 0 1 665.8 829.7ZM665.8 745.6H172.5A17.2 17.2 0 0 1 172.5 711.2H665.8A17.2 17.2 0 1 1 665.8 745.6ZM665.8 661.6H172.5A17.2 17.2 0 0 1 172.5 627.1H665.8A17.2 17.2 0 1 1 665.8 661.6ZM665.8 661.6M773.5 174.6L631.5 27.6V152.5A21.8 21.8 0 0 0 653.6 174.5ZM773.5 174.6M898.7 336.6V386.6L937.2 361.6ZM898.7 336.6M258.6 321.1H864.2V400.9H258.6ZM258.6 321.1M224.1 381.5V341.5L189.2 341.1 189.4 381.5ZM224.1 381.5", + "width": 937 + }, + "search": [ + "health-summary" + ] + }, + { + "uid": "50d667f8b7f88d80bebfb19c6d88f412", + "css": "powered-by-cs", + "code": 59436, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M5611.5 942.8L5603.8 947.4A13.5 13.5 0 0 0 5599.7 942.5 9.5 9.5 0 0 0 5594.5 941.2 9.7 9.7 0 0 0 5587.9 943.5 6.9 6.9 0 0 0 5585.4 949C5585.4 952 5587.6 954.5 5592.2 956.3L5598.4 958.7A26.4 26.4 0 0 1 5609.6 966.3 16.8 16.8 0 0 1 5613.1 977.1 19.1 19.1 0 0 1 5607.4 991.4 19.7 19.7 0 0 1 5593 997.1 19.2 19.2 0 0 1 5579.5 992.2 22.3 22.3 0 0 1 5572.9 978.6L5582.5 976.5A16.5 16.5 0 0 0 5584.8 984.2 10.8 10.8 0 0 0 5600.7 985.3 10.2 10.2 0 0 0 5603.6 977.7 11 11 0 0 0 5603.1 974.4 9 9 0 0 0 5601.5 971.6 12.9 12.9 0 0 0 5598.7 969.2 27.3 27.3 0 0 0 5594.7 967L5588.6 964.6A17.4 17.4 0 0 1 5575.7 948.9 15.1 15.1 0 0 1 5581.1 937.1 19.5 19.5 0 0 1 5594.6 932.3 18.8 18.8 0 0 1 5611.6 942.8M5623.8 964.5A30.6 30.6 0 0 1 5633.5 941.8 31.8 31.8 0 0 1 5656.8 932.3 32.7 32.7 0 0 1 5689.3 964.9 30.8 30.8 0 0 1 5679.6 987.9 33.1 33.1 0 0 1 5634.4 988.9 30.8 30.8 0 0 1 5623.8 964.6M5633.3 964.7A23.2 23.2 0 0 0 5673 981.7 24.3 24.3 0 0 0 5673 948.1 22.2 22.2 0 0 0 5656.5 941.3 22.4 22.4 0 0 0 5640 948.1 22.6 22.6 0 0 0 5633.2 964.8M5713.1 933.5V987.3H5731.5V996.2H5703.5V933.5ZM5750.4 933.5V971.3A20.8 20.8 0 0 0 5753.1 983.1 14.1 14.1 0 0 0 5775.3 983.1 20.5 20.5 0 0 0 5777.9 971.3V933.5H5787.4V973.8A22.6 22.6 0 0 1 5781.2 990.2 23.8 23.8 0 0 1 5747.1 990.2 22.6 22.6 0 0 1 5740.9 973.8V933.5ZM5822.1 942.4V996.2H5812.6V942.4H5798.2V933.5H5836.5V942.4ZM5871.1 964.5A30.6 30.6 0 0 1 5880.8 941.8 31.8 31.8 0 0 1 5904 932.3 32.7 32.7 0 0 1 5936.6 964.9 30.8 30.8 0 0 1 5926.9 987.9 33.1 33.1 0 0 1 5881.7 988.9 30.8 30.8 0 0 1 5871 964.6M5880.6 964.7A23.2 23.2 0 0 0 5920.2 981.7 24.3 24.3 0 0 0 5920.2 948.1 22.2 22.2 0 0 0 5903.8 941.3 22.4 22.4 0 0 0 5887.2 948.1 22.6 22.6 0 0 0 5880.5 964.8M5950.9 996.2V929.2L5996.6 977.1V933.5H6006.1V1000L5960.4 952.3V996.1ZM6058.9 942.8L6051.3 947.4A13.8 13.8 0 0 0 6047.2 942.5 9.5 9.5 0 0 0 6041.9 941.2 9.7 9.7 0 0 0 6035.4 943.5 6.9 6.9 0 0 0 6032.8 949C6032.8 952 6035.1 954.5 6039.6 956.3L6045.9 958.7A26.4 26.4 0 0 1 6057 966.3 16.8 16.8 0 0 1 6060.5 977.1 19.1 19.1 0 0 1 6054.8 991.4 19.8 19.8 0 0 1 6040.4 997.1 19.2 19.2 0 0 1 6026.9 992.2 22.2 22.2 0 0 1 6020.4 978.6L6030 976.5A16.5 16.5 0 0 0 6032.2 984.2 9.9 9.9 0 0 0 6040.7 988.2 9.7 9.7 0 0 0 6048 985.3 10.1 10.1 0 0 0 6051 977.7 11 11 0 0 0 6050.5 974.4 9 9 0 0 0 6048.9 971.6 12.9 12.9 0 0 0 6046.1 969.2 27.3 27.3 0 0 0 6042 967L6036 964.6A17.4 17.4 0 0 1 6023.2 948.9 15.1 15.1 0 0 1 6028.6 937.1 19.5 19.5 0 0 1 6042 932.3 18.8 18.8 0 0 1 6059 942.8M5307.1 772.3A43.1 43.1 0 0 0 5292 754.6 42 42 0 0 0 5267.6 747.8 55.5 55.5 0 0 0 5245.7 752.3 61 61 0 0 0 5227.1 764.7 68.4 68.4 0 0 0 5213.5 783.5 71.1 71.1 0 0 0 5206.5 807.5 65.9 65.9 0 0 0 5207.7 831.8 49 49 0 0 0 5216.9 850.5 43 43 0 0 0 5232.4 862.7 49.2 49.2 0 0 0 5253.5 867 49.2 49.2 0 0 0 5279 860.1 64.7 64.7 0 0 0 5298.9 841.7L5327.2 860.1A101.6 101.6 0 0 1 5295.8 887 89.4 89.4 0 0 1 5251.4 897.6 90 90 0 0 1 5215.8 890.7 78.4 78.4 0 0 1 5188.5 871.8 75.1 75.1 0 0 1 5172.1 843.2 85.8 85.8 0 0 1 5168.8 807.5 103.1 103.1 0 0 1 5179.8 771.3 99.5 99.5 0 0 1 5201.9 742.7 102.6 102.6 0 0 1 5270.1 717.2 77.9 77.9 0 0 1 5312.2 727.9 73.7 73.7 0 0 1 5338.2 754.7ZM5455.3 892.5H5346.6L5384.6 722.3H5422.1L5391 862.4H5462.2ZM5669.4 843.6A98.2 98.2 0 0 1 5647.5 872 99.3 99.3 0 0 1 5617.3 890.8 97.5 97.5 0 0 1 5580.9 897.6 85.2 85.2 0 0 1 5546 890.6 76.5 76.5 0 0 1 5519.2 871.3 77.4 77.4 0 0 1 5503.3 842.7 83 83 0 0 1 5500.5 807.5 105.7 105.7 0 0 1 5511.2 771.6 98.4 98.4 0 0 1 5563.1 724 97 97 0 0 1 5599.5 717.2 84.4 84.4 0 0 1 5634.4 724.3 76.4 76.4 0 0 1 5677 772.4 82.7 82.7 0 0 1 5679.8 807.5 105.8 105.8 0 0 1 5669.1 843.6M5641.6 784.3A50.6 50.6 0 0 0 5633.7 765.3 40.1 40.1 0 0 0 5618.9 752.5 46.2 46.2 0 0 0 5597.4 747.8 51.9 51.9 0 0 0 5575.2 752.5 59.4 59.4 0 0 0 5557.3 765.3 66.2 66.2 0 0 0 5544.5 784.3 80.3 80.3 0 0 0 5538 807.5 69.2 69.2 0 0 0 5538.7 830.6 50.7 50.7 0 0 0 5546.7 849.5 40.2 40.2 0 0 0 5561.5 862.2 46.2 46.2 0 0 0 5582.9 866.9 52.2 52.2 0 0 0 5605.1 862.2 60.8 60.8 0 0 0 5623.1 849.5 67.1 67.1 0 0 0 5635.8 830.6 78.5 78.5 0 0 0 5642.4 807.5 70.2 70.2 0 0 0 5641.6 784.3M5864.8 834.8A84.6 84.6 0 0 1 5854.8 859.3 76.6 76.6 0 0 1 5813.5 892.7 93.5 93.5 0 0 1 5782.5 897.6 76.3 76.3 0 0 1 5751.1 891.5 62.6 62.6 0 0 1 5728.4 874.9 58.7 58.7 0 0 1 5716 850.5 64.1 64.1 0 0 1 5715.9 821.3Q5722.3 792.1 5726.2 773.1C5728.8 760.5 5730.9 750.8 5732.3 743.9S5734.8 732 5735.4 728.8 5736.4 723.4 5736.5 722.4H5774.8L5752.6 825.4A39.5 39.5 0 0 0 5752.2 840 32.9 32.9 0 0 0 5757.3 853.4 30 30 0 0 0 5768.2 863.2 33.9 33.9 0 0 0 5785 867 41.7 41.7 0 0 0 5800.7 864.1 45.6 45.6 0 0 0 5813.6 856.3 48.7 48.7 0 0 0 5823.2 845.1 42.6 42.6 0 0 0 5828.6 831.5L5853.4 722.3H5891.7ZM6063.9 842.6A90.3 90.3 0 0 1 6042.6 869.4 93.8 93.8 0 0 1 6012.6 886.4 108.4 108.4 0 0 1 5976.1 892.4H5896.7L5934.5 722.2H5993A94.2 94.2 0 0 1 6028.4 728.6 74.2 74.2 0 0 1 6055.1 746.3 71.1 71.1 0 0 1 6071.2 773.2 78.9 78.9 0 0 1 6074.4 807.3 98.4 98.4 0 0 1 6063.8 842.4M6035.4 785.5A44.4 44.4 0 0 0 6027.3 768 39.2 39.2 0 0 0 6012.6 756.4 49.2 49.2 0 0 0 5991.5 752.2H5965.3L5940.8 862.1H5976.8A55 55 0 0 0 5998.4 857.8 63.4 63.4 0 0 0 6016.7 846.1 62.3 62.3 0 0 0 6030 828.6 59.9 59.9 0 0 0 6036.5 807.3 65.7 65.7 0 0 0 6035.5 785.4M5877.9 372.8S5868.5 321.5 5791.5 321.5A102.2 102.2 0 0 0 5714.5 228.1S5701.4 135.9 5642.7 114.9L5844.1 166.3S5881.4 166.3 5877.9 231.6ZM5591.9 98.6L5226.6 0.6S5174.1-7.6 5172.9 40.2 5172.9 312.1 5172.9 312.1 5224.3 228.1 5359.7 243.9C5359.7 243.9 5384.2 98.6 5521.9 165.1A82.7 82.7 0 0 1 5591.9 98.6M5591.3 395S5599.4 347.1 5636.8 360 5739.5 403.1 5739.5 403.1A54 54 0 0 1 5766.2 460.4L5759.6 516.3A27.3 27.3 0 0 1 5719.6 537.4L5600.5 487.1A35 35 0 0 1 5586.5 448.2ZM5441.9 434.5S5448.3 407.5 5469.2 416.2 5526.2 444.5 5526.2 444.5A30.8 30.8 0 0 1 5539.4 478.1L5533.6 509.7A15.6 15.6 0 0 1 5510 520.3L5443.9 487.3A20 20 0 0 1 5437.4 464.5ZM5832.1 408.8S5838.5 381.8 5859.3 390.4 5916.3 418.8 5916.3 418.8A30.9 30.9 0 0 1 5929.5 452.4L5923.7 484A15.6 15.6 0 0 1 5900.1 494.6L5834 461.6A20 20 0 0 1 5827.5 438.8ZM5520.3 255.2S5525.7 232.5 5543.2 239.8 5591.3 263.7 5591.3 263.7A26 26 0 0 1 5602.5 292L5597.6 318.7A13.2 13.2 0 0 1 5577.7 327.6L5522 299.9A16.9 16.9 0 0 1 5516.4 280.6ZM5687.2 300.9S5691.8 281.5 5706.7 287.7 5747.5 308 5747.5 308A22.1 22.1 0 0 1 5757 332.1L5752.8 354.8A11.2 11.2 0 0 1 5735.9 362.3L5688.6 338.7A14.3 14.3 0 0 1 5683.9 322.4ZM5600.9 555S5605.4 535.7 5620.3 541.9 5661.1 562.2 5661.1 562.2A22 22 0 0 1 5670.6 586.2L5666.4 608.9A11.1 11.1 0 0 1 5649.6 616.5L5602.3 592.9A14.3 14.3 0 0 1 5597.6 576.6ZM5403.2 300.9S5407.7 281.5 5422.6 287.7 5463.4 308 5463.4 308A22.1 22.1 0 0 1 5472.9 332.1L5468.7 354.8A11.2 11.2 0 0 1 5451.9 362.3L5404.6 338.7A14.3 14.3 0 0 1 5399.9 322.4ZM5943.5 607.8S5948.1 588.5 5963 594.7 6003.8 615 6003.8 615A22.1 22.1 0 0 1 6013.3 639L6009.1 661.7A11.1 11.1 0 0 1 5992.2 669.2L5944.9 645.7A14.4 14.4 0 0 1 5940.2 629.4ZM5785 603.8S5787.7 592.4 5796.5 596.1 5820.5 608.1 5820.5 608.1A13 13 0 0 1 5826.1 622.2L5823.7 635.6A6.6 6.6 0 0 1 5813.7 640L5785.9 626.1A8.5 8.5 0 0 1 5783.1 616.5ZM5332.2 445.1S5334.9 433.7 5343.7 437.4 5367.7 449.4 5367.7 449.4A13 13 0 0 1 5373.3 463.5L5370.8 476.9A6.6 6.6 0 0 1 5360.9 481.3L5333 467.4A8.4 8.4 0 0 1 5330.3 457.7ZM5261 326.8S5263.7 315.5 5272.5 319.1 5296.5 331.1 5296.5 331.1A13 13 0 0 1 5302.1 345.2L5299.6 358.6A6.6 6.6 0 0 1 5289.7 363L5261.8 349.1A8.4 8.4 0 0 1 5259.1 339.5ZM5218.3 680.7H5212.9C5206.5 680.7 5202.4 678.7 5200.8 674.5A11.8 11.8 0 0 1 5188.6 680.7C5178.1 680.7 5172.9 673.9 5172.9 660.3 5172.9 647 5178.1 640.4 5188.6 640.4H5205.3V664.3C5205.3 670.4 5208 673.4 5213.4 673.4H5218.2ZM5197.4 647.2H5189.1A7.1 7.1 0 0 0 5182.3 650.7 20.4 20.4 0 0 0 5180.7 660.2 21.1 21.1 0 0 0 5182.3 669.7 7 7 0 0 0 5189.1 673.3 6.9 6.9 0 0 0 5195.8 669.7 21 21 0 0 0 5197.5 660.2ZM5190.1 627.8A4.5 4.5 0 0 1 5185.7 632.4 4.5 4.5 0 0 1 5181.6 627.8 4.5 4.5 0 0 1 5185.9 623.2 4.5 4.5 0 0 1 5190.3 627.8M5201.3 627.8A4.6 4.6 0 0 1 5197 632.4 4.5 4.5 0 0 1 5192.8 627.8 4.4 4.4 0 0 1 5197 623.2 4.5 4.5 0 0 1 5201.3 627.8M5238.1 664.9A15.8 15.8 0 0 1 5233.9 676.3 14.8 14.8 0 0 1 5222.6 680.7H5216.3V673.4H5222.2Q5230.3 673.4 5230.3 664.3V643L5238.1 640.5ZM5233.2 693.3A4.3 4.3 0 1 1 5224.7 693.3 4.3 4.3 0 1 1 5233.2 693.3M5268.4 680.7H5259.7A10.4 10.4 0 0 1 5248.8 669.2V625.8L5256.6 623.1V668.9C5256.6 671.8 5257.9 673.2 5260.6 673.2H5268.4ZM5321.5 680.7H5266.3V673.4H5303.3V670.2A45.7 45.7 0 0 0 5301.6 655.5 10.6 10.6 0 0 0 5290.7 647.9 16.4 16.4 0 0 0 5278.2 654.9L5272.6 649.2A24.6 24.6 0 0 1 5290.7 640.5 17.5 17.5 0 0 1 5308 650.2 46.9 46.9 0 0 1 5311.3 670.1V673.1H5321.5ZM5394.5 680.7H5319.6V673.2H5329.4V650.6L5337.2 648.2V673.2H5353.5V646.9L5361.3 644.4V673.3H5377.8V642.9L5385.6 640.5V673.3H5394.5ZM5413.5 664.9A16.2 16.2 0 0 1 5409.3 676.3 14.9 14.9 0 0 1 5398 680.7H5392.7V673.2H5397.6C5402.9 673.2 5405.7 670.2 5405.7 664.1V625.8L5413.5 623.4ZM5432 680.7H5424.2V625.8L5432 623.1ZM5527.1 678.3C5527.1 691.4 5519.8 697.8 5505 697.8A20.9 20.9 0 0 1 5487.1 690.4 40.6 40.6 0 0 1 5481.3 670L5489.2 667.2A31.6 31.6 0 0 0 5492.7 684.8 14.4 14.4 0 0 0 5505.1 689.9 18.8 18.8 0 0 0 5515.3 687.7 10.7 10.7 0 0 0 5519.2 678.4V625.9L5527 623.3ZM5578.7 680.7H5568.9A21.9 21.9 0 0 1 5563.5 692.7 15.2 15.2 0 0 1 5551.6 697.9 17 17 0 0 1 5541.9 695.4L5538.4 687.2A27 27 0 0 0 5551.4 690.4 10.4 10.4 0 0 0 5561.1 680.6H5554.7A16.3 16.3 0 0 1 5541.9 675.3 18.9 18.9 0 0 1 5537.7 662.4 25.8 25.8 0 0 1 5541.3 648.1 14.3 14.3 0 0 1 5554.1 641.5C5564.5 641.5 5569.8 648.5 5569.8 662.4 5569.8 665.2 5569.8 668.8 5569.6 673.3H5578.6ZM5562 662.5A26.2 26.2 0 0 0 5560.9 653.5 6.7 6.7 0 0 0 5554.1 649C5548.4 649 5545.6 653.5 5545.6 662.5 5545.6 669.8 5548.6 673.4 5554.7 673.4H5562ZM5611.8 680.7H5606.4A14.6 14.6 0 0 1 5594.9 675.9 14.2 14.2 0 0 1 5583.3 680.7H5576.7V673.2H5582.8C5588.3 673.2 5591 670.2 5591 664.1V625.8L5598.8 623.1V664.5C5598.8 670.3 5601.5 673.1 5606.9 673.1H5611.7ZM5653.5 680.7H5609.7V673.4H5645.6V670.2A45.5 45.5 0 0 0 5643.8 655.5 10.6 10.6 0 0 0 5633.1 647.9 16.6 16.6 0 0 0 5620.5 654.9L5614.9 649.2A24.7 24.7 0 0 1 5633.1 640.5 17.6 17.6 0 0 1 5650.3 650.2 48.7 48.7 0 0 1 5653.5 670.1ZM6139 744.3A28.9 28.9 0 0 1 6130.3 765.5 29.7 29.7 0 0 1 6088.2 765.5 29 29 0 0 1 6079.5 744.3 27.8 27.8 0 0 1 6082.3 731.7 28.9 28.9 0 0 1 6090.3 721.5 28.5 28.5 0 0 1 6109 714.6 29.2 29.2 0 0 1 6121.4 717.2 28.6 28.6 0 0 1 6134.2 728.1 29.6 29.6 0 0 1 6139 744.4M6109.1 718.9A23.5 23.5 0 0 0 6091.6 726.4 25.8 25.8 0 0 0 6091.6 762.5 24.5 24.5 0 0 0 6126.9 762.5 25.1 25.1 0 0 0 6134.2 744.3 27.6 27.6 0 0 0 6131.4 732.6 24 24 0 0 0 6123.8 723.5 24.9 24.9 0 0 0 6109.1 718.8M6112.2 747.2L6123.4 761.6H6115.4L6105.1 748V761.6H6098.6V727.2H6105.5A17.3 17.3 0 0 1 6116 729.7 9.5 9.5 0 0 1 6119.6 737.4 10.2 10.2 0 0 1 6117.7 743.4 9.4 9.4 0 0 1 6112.7 747ZM6105.1 742.4H6106.2C6110.9 742.4 6113.3 740.7 6113.3 737.5S6111 732.9 6106.5 732.9H6105Z", + "width": 6139 + }, + "search": [ + "powered-by-cs" + ] + }, + { + "uid": "d22e70eb076c0432112b21f188078144", + "css": "ecg", + "code": 59438, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M34.6 0H965.4A34.6 34.6 0 0 1 1000 34.6V464.3L698.3 464.3A35.7 35.7 0 0 0 665 487.3L598.8 660.6 433.1 226.5A35.5 35.5 0 0 0 399.8 203.5H399.8A35.5 35.5 0 0 0 366.4 226.4L275.4 464.5 0 464.3V34.6A34.6 34.6 0 0 1 34.6 0ZM965.4 1000A34.6 34.6 0 0 0 1000 965.4V535.7L722.9 535.7 632.2 773.5A35.7 35.7 0 0 1 565.4 773.5L399.7 339.3 333.4 512.8A35.7 35.7 0 0 1 300 535.8H300L0.2 535.8V965.4A34.6 34.6 0 0 0 34.8 1000H965.4Z", + "width": 1000 + }, + "search": [ + "ecg" + ] + }, + { + "uid": "742f19f79dc108f718fea3d8f79078b1", + "css": "create-episode", + "code": 59439, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M825.8 83.3A125 125 0 0 0 708.4 0H125A125.4 125.4 0 0 0 0 125V708.4A125 125 0 0 0 83.3 825.9V291.7A208.3 208.3 0 0 1 291.7 83.3ZM875 166.7H291.6A125.4 125.4 0 0 0 166.7 291.6V875A125.4 125.4 0 0 0 291.6 1000H875A125.4 125.4 0 0 0 1000 875V291.6A125.4 125.4 0 0 0 875 166.7ZM750 625H625V750A41.7 41.7 0 0 1 541.7 750V625H416.7A41.7 41.7 0 1 1 416.7 541.7H541.7V416.7A41.7 41.7 0 1 1 625 416.7V541.7H750A41.7 41.7 0 0 1 750 625Z", + "width": 1000 + }, + "search": [ + "create-episode" + ] + }, + { + "uid": "2ba8ebad7ef116f8bea385f28153e2d1", + "css": "booked", + "code": 59440, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M907.9 1000H162.7A163.1 163.1 0 0 1 0 837.9V321.9H1070.7V837.9A163.1 163.1 0 0 1 907.9 1000.3ZM71.4 393.3V837.9A91.7 91.7 0 0 0 162.7 928.8H907.9A91.7 91.7 0 0 0 999.2 837.9V393.3ZM1070.7 393H0V235.7A163.1 163.1 0 0 1 162.7 72.1H907.9A163.1 163.1 0 0 1 1070.6 235.7ZM71.4 321.9H999.2V235.7A91.7 91.7 0 0 0 907.9 143.6H162.7A91.7 91.7 0 0 0 71.4 235.7ZM46.8 357.6V937.5H1017.1V357.6ZM356.9 717.3A35.7 35.7 0 1 1 392.6 681.6 35.7 35.7 0 0 1 356.9 717.3ZM535.3 717.3A35.7 35.7 0 1 1 571 681.6 35.7 35.7 0 0 1 535.3 717.3ZM713.8 717.3A35.7 35.7 0 1 1 749.4 681.6 35.7 35.7 0 0 1 713.8 717.3Z", + "width": 1071 + }, + "search": [ + "booked" + ] + }, + { + "uid": "2b6d9d51ce00485109e1548f1318cd5c", + "css": "admission-req", + "code": 59441, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M0 1000H1101.9V598.3H0ZM518.7 689.9H583.2V762.6H655.9V827.1H583.2V899.8H518.7V827.1H445.9V762.6H518.6ZM64.5 458.4H1037.3V533.7H64.5ZM422.6 178C422.6 176.1 422.6 174.2 422.4 172.3H219.5C219.5 174.2 219.3 176.1 219.3 178A101.7 101.7 0 0 0 309.7 278.9H332.1A101.7 101.7 0 0 0 422.6 178ZM288.7 279H258.4A129.4 129.4 0 0 0 129.9 393.8H288.7V279ZM383.6 279H353.3V393.8H512.1A129.4 129.4 0 0 0 383.6 279ZM425.1 107.8L444.1 22.7A344.4 344.4 0 0 0 198.1 22.7L217 107.8ZM639.1 241.7H972.7V393.9H639.1Z", + "width": 1102 + }, + "search": [ + "admission-req" + ] + }, + { + "uid": "68d26212e04d7c6eb8c87d3d2c656220", + "css": "walkin", + "code": 59442, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M271.2 118.6H305.1A50.4 50.4 0 0 0 334.2 164.4 101.6 101.6 0 1 0 254.2 203.4 100 100 0 0 0 307.5 188.3 85.2 85.2 0 0 1 271.2 118.6ZM168 639.4L135.6 779.7 33.9 932.2 118.6 1000 254.2 813.6 274.5 746.2 171.1 642.8C170 641.7 169.1 640.5 168 639.4ZM108.3 529.8A238 238 0 0 1 101.7 475.1V385L0 508.4 67.8 576.4ZM383.6 583.9L227.8 498.8 155.6 335.8 186.6 322 254.4 474.6 372.9 539.4 440.7 576.4 491.6 491.4 373 420.2V271.2A67.8 67.8 0 0 0 305.1 203.4H203.4A67.8 67.8 0 0 0 135.6 271.2V475.2A203.2 203.2 0 0 0 195.1 618.9L339.1 762.9 389.9 983.2H491.6L440.8 712Z", + "width": 492 + }, + "search": [ + "walkin" + ] + }, + { + "uid": "579dfe811674561f24e9f789ce658182", + "css": "health-bmi", + "code": 59450, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M215.7 571.7C214.2 589.1 226 680.9 232 716.9 234.9 734 242.9 761.8 240 776.5A216.6 216.6 0 0 0 237 839.2C238.4 848.6 242.9 892 236.5 907.9A500.9 500.9 0 0 0 227.1 958.9C211.1 999.1 220.1 997.1 220.1 997.1 225 1003.2 233.5 997.6 233.5 997.6A8.2 8.2 0 0 0 244.4 996.6 9.9 9.9 0 0 0 256.4 996.1 12.2 12.2 0 0 0 269.8 993C273.7 995 274.7 992.5 274.7 992.5 286.7 991.7 268 953.5 268 953.5A104.5 104.5 0 0 1 272.5 900C301.6 813.7 303 790.8 291.4 758.3 288.1 748.9 287.3 745.2 288.8 741.1 292.3 731.7 289.8 693.9 294 678.8 302.2 649.9 310.3 576.4 314.5 542.1 320.1 495.9 294.4 434 294.4 434 288.8 408.8 297 319 297 319 308.6 336.9 308.1 368.6 308.1 368.6 306.3 401.9 335 452.7 335 452.7A135.3 135.3 0 0 1 354 495.1C354 501.1 352.7 515.8 352.7 515.8L353.2 528.5A181.9 181.9 0 0 1 354.9 548.4C352.8 581.7 358 575.4 358 575.4 362.5 575.4 367.4 548.6 367.4 548.6A114.7 114.7 0 0 0 369.5 584C373.9 593.2 377.2 582.4 377.2 580.2 378.4 537.8 381 548.9 381 548.9 383.4 583.3 386.5 591 391.9 588.3 396.1 586.4 392.3 547.1 392.3 547.1 399.4 570.4 404.7 574.1 404.7 574.1 416.4 582.4 409.2 559.7 407.6 555.2A128.9 128.9 0 0 1 398.7 523.1C409.5 544.5 417.6 543.7 417.6 543.7 428.1 540.3 408.4 510 396.8 495.5A118.2 118.2 0 0 1 381.1 472.2 280.5 280.5 0 0 1 374.8 430.2 126.3 126.3 0 0 0 364.3 375.9C348.3 350.3 345.3 302.6 345.3 302.6L344.6 222C339 167 298.5 166.6 298.5 166.6 257.5 160.5 251.8 147.3 251.8 147.3 243.2 134.8 248.1 110.8 248.1 110.8A43.5 43.5 0 0 0 258.1 89.4C270 80.3 269.4 66.9 263.9 67 259.5 67.1 260.5 63.4 260.5 63.4 268 3.1 214.4 0 214.4 0H206.2S152.6 3.1 160.1 63.4C160.1 63.4 161.1 67.1 156.6 67 151.1 66.8 150.6 80.3 162.5 89.4A43.5 43.5 0 0 0 172.5 110.8S177.4 134.8 168.8 147.2C168.8 147.2 163.1 160.5 122.1 166.6 122.1 166.6 81.5 167 76 222L75.2 302.6S72.3 350.3 56.2 375.9A126.8 126.8 0 0 0 45.8 430.2 282.3 282.3 0 0 1 39.5 472.3 116.9 116.9 0 0 1 23.8 495.5C12.1 510-7.5 540.2 3 543.7 3 543.7 11.2 544.5 21.9 523.1A127.6 127.6 0 0 1 13.1 555.2C11.4 559.6 4.1 582.3 15.8 574.2 15.8 574.2 21.2 570.4 28.3 547.1 28.3 547.1 24.5 586.4 28.7 588.4 34.2 591 37.2 583.3 39.7 548.9 39.7 548.9 42.2 537.8 43.4 580.2 43.5 582.4 46.7 593.3 51.1 584A113.1 113.1 0 0 0 53.2 548.6S58 575.4 62.6 575.4C62.6 575.4 67.9 581.7 65.7 548.4A167.4 167.4 0 0 1 67.4 528.6L68 515.8S66.6 501.2 66.6 495.1A135.1 135.1 0 0 1 85.6 452.7S114.3 401.9 112.4 368.7C112.4 368.7 112 337 123.6 319 123.6 319 131.8 408.8 126.2 434 126.2 434 100.4 496 106.1 542.2 110.3 576.5 118.4 649.9 126.6 678.9 130.9 693.9 128.4 731.7 131.8 741.2 133.3 745.3 132.5 749.1 129.2 758.4 117.6 790.9 119.1 813.8 148.2 900.1A103.5 103.5 0 0 1 152.6 953.6S134 991.8 145.9 992.6C145.9 992.6 146.9 995.1 150.9 993.1A12.3 12.3 0 0 0 164.3 996.1 9.9 9.9 0 0 0 176.2 996.7 8.2 8.2 0 0 0 187.1 997.7S195.5 1003.4 200.5 997.2C200.5 997.2 209.4 999.2 193.6 959A498.5 498.5 0 0 0 184.1 908C177.8 892.1 182.3 848.6 183.6 839.3A220.4 220.4 0 0 0 180.7 776.5C177.8 761.8 185.7 734 188.7 716.9 194.7 680.9 206.5 589.1 205.1 571.7L209.9 573.4A9.9 9.9 0 0 0 215.7 571.7Z", + "width": 421 + }, + "search": [ + "health-bmi" + ] + }, + { + "uid": "389526f53cb47083744673fb25e56e5e", + "css": "health-bmi-r", + "code": 59451, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M215.7 571.7C214.2 589.1 226 680.9 232 716.9 234.9 734 242.9 761.8 240 776.5A216.6 216.6 0 0 0 237 839.2C238.4 848.6 242.9 892 236.5 907.9A500.9 500.9 0 0 0 227.1 958.9C211.1 999.1 220.1 997.1 220.1 997.1 225 1003.2 233.5 997.6 233.5 997.6A8.2 8.2 0 0 0 244.4 996.6 9.9 9.9 0 0 0 256.4 996.1 12.2 12.2 0 0 0 269.8 993C273.7 995 274.7 992.5 274.7 992.5 286.7 991.7 268 953.5 268 953.5A104.5 104.5 0 0 1 272.5 900C301.6 813.7 303 790.8 291.4 758.3 288.1 748.9 287.3 745.2 288.8 741.1 292.3 731.7 289.8 693.9 294 678.8 302.2 649.9 310.3 576.4 314.5 542.1 320.1 495.9 294.4 434 294.4 434 288.8 408.8 297 319 297 319 308.6 336.9 308.1 368.6 308.1 368.6 306.3 401.9 335 452.7 335 452.7A135.3 135.3 0 0 1 354 495.1C354 501.1 352.7 515.8 352.7 515.8L353.2 528.5A181.9 181.9 0 0 1 354.9 548.4C352.8 581.7 358 575.4 358 575.4 362.5 575.4 367.4 548.6 367.4 548.6A114.7 114.7 0 0 0 369.5 584C373.9 593.2 377.2 582.4 377.2 580.2 378.4 537.8 381 548.9 381 548.9 383.4 583.3 386.5 591 391.9 588.3 396.1 586.4 392.3 547.1 392.3 547.1 399.4 570.4 404.7 574.1 404.7 574.1 416.4 582.4 409.2 559.7 407.6 555.2A128.9 128.9 0 0 1 398.7 523.1C409.5 544.5 417.6 543.7 417.6 543.7 428.1 540.3 408.4 510 396.8 495.5A118.2 118.2 0 0 1 381.1 472.2 280.5 280.5 0 0 1 374.8 430.2 126.3 126.3 0 0 0 364.3 375.9C348.3 350.3 345.3 302.6 345.3 302.6L344.6 222C339 167 298.5 166.6 298.5 166.6 257.5 160.5 251.8 147.3 251.8 147.3 243.2 134.8 248.1 110.8 248.1 110.8A43.5 43.5 0 0 0 258.1 89.4C270 80.3 269.4 66.9 263.9 67 259.5 67.1 260.5 63.4 260.5 63.4 268 3.1 214.4 0 214.4 0H206.2S152.6 3.1 160.1 63.4C160.1 63.4 161.1 67.1 156.6 67 151.1 66.8 150.6 80.3 162.5 89.4A43.5 43.5 0 0 0 172.5 110.8S177.4 134.8 168.8 147.2C168.8 147.2 163.1 160.5 122.1 166.6 122.1 166.6 81.5 167 76 222L75.2 302.6S72.3 350.3 56.2 375.9A126.8 126.8 0 0 0 45.8 430.2 282.3 282.3 0 0 1 39.5 472.3 116.9 116.9 0 0 1 23.8 495.5C12.1 510-7.5 540.2 3 543.7 3 543.7 11.2 544.5 21.9 523.1A127.6 127.6 0 0 1 13.1 555.2C11.4 559.6 4.1 582.3 15.8 574.2 15.8 574.2 21.2 570.4 28.3 547.1 28.3 547.1 24.5 586.4 28.7 588.4 34.2 591 37.2 583.3 39.7 548.9 39.7 548.9 42.2 537.8 43.4 580.2 43.5 582.4 46.7 593.3 51.1 584A113.1 113.1 0 0 0 53.2 548.6S58 575.4 62.6 575.4C62.6 575.4 67.9 581.7 65.7 548.4A167.4 167.4 0 0 1 67.4 528.6L68 515.8S66.6 501.2 66.6 495.1A135.1 135.1 0 0 1 85.6 452.7S114.3 401.9 112.4 368.7C112.4 368.7 112 337 123.6 319 123.6 319 131.8 408.8 126.2 434 126.2 434 100.4 496 106.1 542.2 110.3 576.5 118.4 649.9 126.6 678.9 130.9 693.9 128.4 731.7 131.8 741.2 133.3 745.3 132.5 749.1 129.2 758.4 117.6 790.9 119.1 813.8 148.2 900.1A103.5 103.5 0 0 1 152.6 953.6S134 991.8 145.9 992.6C145.9 992.6 146.9 995.1 150.9 993.1A12.3 12.3 0 0 0 164.3 996.1 9.9 9.9 0 0 0 176.2 996.7 8.2 8.2 0 0 0 187.1 997.7S195.5 1003.4 200.5 997.2C200.5 997.2 209.4 999.2 193.6 959A498.5 498.5 0 0 0 184.1 908C177.8 892.1 182.3 848.6 183.6 839.3A220.4 220.4 0 0 0 180.7 776.5C177.8 761.8 185.7 734 188.7 716.9 194.7 680.9 206.5 589.1 205.1 571.7L209.9 573.4A9.9 9.9 0 0 0 215.7 571.7Z", + "width": 421 + }, + "search": [ + "health-bmi-r" + ] + }, + { + "uid": "b10e8135ab3032dd84d104a1d1600e59", + "css": "reschedule-", + "code": 59443, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M484.5 67.2L7.6 3.6A17.9 17.9 0 0 0 0 17.9V920.2A17.9 17.9 0 0 0 15.5 937.9L479.8 999.8A17.9 17.9 0 0 0 493.8 995.7 17.5 17.5 0 0 0 500 982.3V84.9A17.9 17.9 0 0 0 484.5 67.2ZM423.3 512.6L369.7 566.3A17.9 17.9 0 0 1 344.4 541L367.5 518H89.3A17.9 17.9 0 1 1 89.3 482.3H367.6L344.5 459.2A17.9 17.9 0 0 1 369.8 433.9L423.5 487.6A17.9 17.9 0 0 1 423.5 512.8ZM535.7 201.4A336 336 0 0 1 643 165V17.9A17.9 17.9 0 0 0 625.2 0H251.5L489.4 31.7A53.7 53.7 0 0 1 535.9 84.9V201.4ZM535.7 928.5H625A17.9 17.9 0 0 0 642.9 910.6V834.8A336 336 0 0 1 535.5 798.4ZM696.4 196.4A301.3 301.3 0 0 0 535.7 242.9V286.2A267.5 267.5 0 1 1 831.7 730.9C831.2 731.2 830.9 731.7 830.4 732A13.8 13.8 0 0 1 828.6 732.7 266.1 266.1 0 0 1 535.7 713.9V757.2A303.5 303.5 0 1 0 696.4 196.4ZM598.2 329.9A17.9 17.9 0 0 1 573.8 323.3L565.3 308.5A234.4 234.4 0 0 0 535.7 332.9V667.1A234.5 234.5 0 0 0 565.3 691.5L573.8 676.7A17.9 17.9 0 1 1 604.8 694.5L596.3 709.2A229.9 229.9 0 0 0 678.6 731.3V714.3A17.9 17.9 0 1 1 714.3 714.3V731.2A229.9 229.9 0 0 0 796.6 709.1L788.3 694.5A17.9 17.9 0 1 1 819.2 676.6L827.7 691.4A233.9 233.9 0 0 0 888 631.1L873.3 622.6A17.9 17.9 0 1 1 891.2 591.7L905.8 599.9A229.7 229.7 0 0 0 927.9 517.7H910.9A17.9 17.9 0 0 1 910.9 482H927.8A229.7 229.7 0 0 0 905.7 399.7L891.1 408A17.9 17.9 0 1 1 873.2 377.1L887.9 368.6A233.9 233.9 0 0 0 827.7 308.3L819.2 323A17.9 17.9 0 1 1 788.2 305.1L796.5 290.5A229.8 229.8 0 0 0 714.2 268.4V285.4A17.9 17.9 0 1 1 678.5 285.4V268.4A229.9 229.9 0 0 0 596.2 290.4L604.7 305.1A17.9 17.9 0 0 1 598.2 329.9ZM678.6 449.6V374.9A17.9 17.9 0 0 1 714.3 374.9V449.6A53.7 53.7 0 0 1 746.8 482H785.8A17.9 17.9 0 1 1 785.8 517.7H746.8A53.5 53.5 0 1 1 678.7 449.6Z", + "width": 1000 + }, + "search": [ + "reschedule-" + ] + }, + { + "uid": "b3149ed370567049bc19ff11fb449d92", + "css": "edit", + "code": 59444, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M571.4 635.7A88.7 88.7 0 0 1 537 657L412.7 698.4A87.7 87.7 0 0 1 384.9 702.9H384.9A87.9 87.9 0 0 1 301.5 587.2L342.9 462.9A88.3 88.3 0 0 1 364.1 428.6L632.7 160.1H107.4A107.5 107.5 0 0 0 0 267.6V892.6A107.5 107.5 0 0 0 107.4 999.8H732.4A107.5 107.5 0 0 0 839.9 892.4V367.3ZM405.7 469.9A29.3 29.3 0 0 0 398.6 481.4L357.2 605.7A29.3 29.3 0 0 0 394.2 642.7L518.5 601.3A29.3 29.3 0 0 0 530 594.2L895.9 228.2 771.7 103.9ZM930.5 14.3A48.8 48.8 0 0 0 861.4 14.3L813.1 62.6 937.4 186.9 985.7 138.6A48.8 48.8 0 0 0 985.7 69.5Z", + "width": 1000 + }, + "search": [ + "edit" + ] + }, + { + "uid": "62eceb513690fcf588af5818c18d0094", + "css": "lab-results", + "code": 59445, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M633.4 0L547 23.2 523.8 109.6 587 172.8 673.4 149.6C681.4 120.9 688.9 92.1 696.6 63.3ZM206.2 20.1V53.8H239.8C240.2 143.1 239.8 232.1 239.8 321.2 237.7 325.8 72 689.9 4.2 893.4A102.8 102.8 0 0 0 6.2 957.1 75.5 75.5 0 0 0 22.3 985.5 44.5 44.5 0 0 0 54.1 1000H628.1A44.5 44.5 0 0 0 659.9 985.5 75.5 75.5 0 0 0 676.1 957.1 102.8 102.8 0 0 0 678 893.4C610.2 689.9 444.4 325.9 442.5 321.2 442.8 232.1 442.7 143 442.7 53.8H476.5V20.1ZM815 52.1L728.6 75.2 705.6 161.6 768.8 224.9 855.2 201.7C862.7 172.9 870.6 144.1 878.4 115.3ZM408.8 53.8V222.8L273.6 223.2 273.6 54.3ZM684.3 177L597.9 200.2 574.7 286.6 638 349.8 724.4 326.6Q735.9 283.4 747.4 240.2ZM712.8 391.5V425.3H746.6V847.5A357 357 0 0 0 753 948 70.1 70.1 0 0 0 779.3 985.8 89.1 89.1 0 0 0 831 999.4 89 89 0 0 0 882.7 985.8 69.7 69.7 0 0 0 908.9 948 356.8 356.8 0 0 0 915.4 847.5V425.3H949.1V391.6ZM780.2 425.3H881.7V560.4H780.3ZM464.5 611.6A46.1 46.1 0 0 1 433.7 669.3 45.5 45.5 0 0 1 416.8 671L398.3 713.8A65.5 65.5 0 0 1 419 780.9L461.3 804.7A45.3 45.3 0 0 1 476.3 796.7 46.3 46.3 0 1 1 445.4 854.4 45.3 45.3 0 0 1 444.2 833.8L402.6 810.4A66.5 66.5 0 0 1 373.6 828.7 67.5 67.5 0 0 1 289.6 783.9 66.7 66.7 0 0 1 289.3 746.5L260.3 730.2A45.3 45.3 0 0 1 242.9 740.3 46.2 46.2 0 1 1 273.6 682.6 45.3 45.3 0 0 1 275.3 700L306.3 717.5A64.3 64.3 0 0 1 368 698.9L386.4 656.5A45.3 45.3 0 0 1 375.9 638.7 48.8 48.8 0 0 1 418.7 579.7 43.1 43.1 0 0 1 464.5 611.8Z", + "width": 949 + }, + "search": [ + "lab-results" + ] + }, + { + "uid": "b8c24ee4205dd048e10770f7e63b6315", + "css": "logout", + "code": 59447, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M500 0A500 500 0 1 0 1000 500 500.5 500.5 0 0 0 500 0ZM470.7 167.9A29.3 29.3 0 1 1 529.3 167.9V402.3A29.3 29.3 0 0 1 470.7 402.3ZM500 822.3A322.2 322.2 0 0 1 371.2 204.7 29.3 29.3 0 0 1 394.7 258.4 263.7 263.7 0 1 0 605.6 258.4 29.3 29.3 0 0 1 629.1 204.8 322.2 322.2 0 0 1 500 822.3Z", + "width": 1000 + }, + "search": [ + "logout" + ] + }, + { + "uid": "64a64005d594ba0971f9384a182f3e62", + "css": "obese-bmi", + "code": 59448, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M307.3 571.7C305.2 589.1 322 680.9 330.6 716.9 334.8 734 346.1 761.8 342 776.5A153.3 153.3 0 0 0 337.7 839.2C339.7 848.6 346 892 337 907.9A369.5 369.5 0 0 0 323.5 958.9C300.8 999.1 313.6 997.1 313.6 997.1 320.6 1003.2 332.7 997.6 332.7 997.6A15.3 15.3 0 0 0 348.1 996.6 18.9 18.9 0 0 0 365.2 996.1 22.4 22.4 0 0 0 384.2 993C389.9 995 391.3 992.5 391.3 992.5 408.3 991.7 381.8 953.5 381.8 953.5A76.3 76.3 0 0 1 388.1 900C429.5 813.7 431.7 790.8 415.1 758.3 410.4 748.9 409.2 745.2 411.4 741.1 416.3 731.7 412.7 693.9 418.8 678.8 430.5 649.9 442 576.4 448 542.1 456.1 495.9 419.4 434 419.4 434 411.4 408.8 423.1 319 423.1 319 439.6 336.9 439 368.6 439 368.6 436.4 401.9 477.2 452.7 477.2 452.7A118.4 118.4 0 0 1 504.3 495.1C504.3 501.1 502.4 515.8 502.4 515.8L503.2 528.5A129.3 129.3 0 0 1 505.7 548.3C502.6 581.6 510.2 575.3 510.2 575.3 516.5 575.3 523.5 548.5 523.5 548.5 523.5 555.4 521.1 576.1 526.4 583.9 532.7 593.2 537.4 582.3 537.5 580.1 539.2 537.8 542.8 548.9 542.8 548.9 546.3 583.2 550.7 591 558.4 588.3 564.3 586.3 558.9 547.1 558.9 547.1 569 570.4 576.7 574.1 576.7 574.1 593.3 582.3 583 559.6 580.7 555.1A99.2 99.2 0 0 1 568 523C583.4 544.5 595 543.6 595 543.6 610 540.3 581.9 509.9 565.4 495.4A126 126 0 0 1 543 472.2 203.5 203.5 0 0 1 534 430.1C532.4 392.3 519.1 375.9 519.1 375.9 496.3 350.3 492 302.5 492 302.5L491 221.9C483 166.9 425.3 166.5 425.3 166.5 366.9 160.4 358.8 147.2 358.8 147.2 346.4 134.7 353.5 110.8 353.5 110.8A38.7 38.7 0 0 0 367.7 89.4C384.7 80.2 383.9 66.8 376 66.9 369.7 67 371.2 63.4 371.2 63.4 381.9 3.1 305.5 0 305.5 0H293.9S217.5 3.1 228.1 63.4C228.1 63.4 229.6 67.1 223.2 67 215.4 66.8 214.6 80.3 231.6 89.4A38.7 38.7 0 0 0 245.8 110.8S252.9 134.8 240.5 147.2C240.5 147.2 232.4 160.5 174 166.6 174 166.6 116.2 167 108.3 222L107.2 302.6S103 350.3 80.2 375.9C80.2 375.9 66.9 392.4 65.4 430.2A204.8 204.8 0 0 1 56.4 472.3 124.6 124.6 0 0 1 33.9 495.5C17.3 510-10.7 540.2 4.3 543.7 4.3 543.7 16 544.5 31.3 523.1A98.1 98.1 0 0 1 18.7 555.2C16.3 559.6 6 582.3 22.6 574.2 22.6 574.2 30.3 570.4 40.4 547.1 40.4 547.1 35 586.4 41 588.4 48.8 591 53.1 583.3 56.6 548.9 56.6 548.9 60.2 537.8 61.9 580.2 62 582.4 66.5 593.3 72.9 584 78.3 576.2 75.9 555.5 75.9 548.6 75.9 548.6 82.8 575.4 89.2 575.4 89.2 575.4 96.8 581.7 93.7 548.4A119.1 119.1 0 0 1 96.2 528.5L96.9 515.8S95 501.1 95 495.1A118.3 118.3 0 0 1 122.1 452.7S162.9 401.8 160.3 368.6C160.3 368.6 159.7 336.9 176.2 319 176.2 319 187.9 408.8 180 434 180 434 143.2 495.9 151.3 542.1 157.3 576.5 168.8 649.9 180.5 678.8 186.6 693.8 183 731.7 187.9 741.1 190.1 745.2 188.9 749 184.2 758.3 167.7 790.8 169.8 813.7 211.3 900A75.6 75.6 0 0 1 217.6 953.5S191.1 991.7 208.1 992.5C208.1 992.5 209.4 995 215.1 993A22.4 22.4 0 0 0 234.2 996.1 18.8 18.8 0 0 0 251.2 996.6 15.2 15.2 0 0 0 266.7 997.6S278.7 1003.3 285.8 997.1C285.8 997.1 298.5 999.1 275.9 958.9A367.7 367.7 0 0 0 262.5 907.9C253.4 892.1 259.9 848.6 261.8 839.2A155.9 155.9 0 0 0 257.5 776.5C253.3 761.8 264.7 734 268.9 716.9 277.5 680.9 294.3 589.1 292.2 571.7L299.2 573.4A18.3 18.3 0 0 0 307.3 571.7Z", + "width": 599 + }, + "search": [ + "obese-bmi" + ] + }, + { + "uid": "8def4a3c24de0ce8f44b7815c2c60e8b", + "css": "livecare", + "code": 59449, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M359.7 999.9H201.4A198.3 198.3 0 0 1 123.3 984 203.2 203.2 0 0 1 16.1 877 197.1 197.1 0 0 1 0.2 799.1V200.7A197.7 197.7 0 0 1 16.1 122.7 203 203 0 0 1 123.2 15.8 197.7 197.7 0 0 1 201 0H943.2A197.7 197.7 0 0 1 1021.2 15.9 202.9 202.9 0 0 1 1128.1 123 197.7 197.7 0 0 1 1143.3 200.8V348.4A165.5 165.5 0 0 0 1143.3 658.1V798.8A198.3 198.3 0 0 1 1127.7 876.9 202.3 202.3 0 0 1 1020.9 984.1 197.7 197.7 0 0 1 943 1000H769.8A523.4 523.4 0 0 0 826.4 943.9 52.2 52.2 0 0 0 837.9 902.6 762.6 762.6 0 0 0 945.5 700.1 735.6 735.6 0 0 0 974.8 593.4 534.2 534.2 0 0 0 985 493.3 353.7 353.7 0 0 0 969.2 377.4 151.4 151.4 0 0 0 923.5 309.3 216.9 216.9 0 0 0 851 271.4C822.4 261.7 789.4 254.2 754.4 246.2H754.4L754.4 246.2A54 54 0 0 0 706.1 215.5 54.9 54.9 0 1 0 706.1 325.4 52.7 52.7 0 0 0 738.4 313.3L739.7 313.7H739.7L740.6 313.7C775.5 321.8 803.1 328.4 826 335.7A149.3 149.3 0 0 1 880.4 363.5 93 93 0 0 1 908.6 411.4 320 320 0 0 1 916.7 493.8 460.9 460.9 0 0 1 907.2 582.5 666.4 666.4 0 0 1 880.5 677.7 743.1 743.1 0 0 1 838.7 772.4 656 656 0 0 1 784.3 859 52.4 52.4 0 0 0 748.2 876.5 370.9 370.9 0 0 1 670.2 946.2 179.5 179.5 0 0 1 459.8 946.2 368 368 0 0 1 381.8 876.9 52.4 52.4 0 0 0 345.7 859.4 659.1 659.1 0 0 1 291.2 772.5 747 747 0 0 1 249.4 677.3 664.2 664.2 0 0 1 222.6 582.1 463.2 463.2 0 0 1 213.1 493.3 323.7 323.7 0 0 1 221.1 410.8 92.7 92.7 0 0 1 249.2 362.9 148.8 148.8 0 0 1 303.6 335.1C326.8 327.8 355.9 321 389.6 313.1L390.3 313.1H390.3L390.8 312.7A54.1 54.1 0 0 0 423.8 324.9 54.8 54.8 0 1 0 423.8 215 53.1 53.1 0 0 0 394.5 223.7 59.5 59.5 0 0 0 374.6 245.6H374.6L373.9 245.6C230.3 278.8 143.6 298.8 143.6 492.9A534.1 534.1 0 0 0 153.9 593.2 737.8 737.8 0 0 0 183.2 700 757.5 757.5 0 0 0 291.6 902.9 52 52 0 0 0 303.2 944.1 529.8 529.8 0 0 0 359.1 999.6H359.1ZM1787.8 895.3H1706.6A70 70 0 0 1 1669.9 884.8L1332 671.5A33.4 33.4 0 0 1 1316.4 643.4V622.6A165.3 165.3 0 0 0 1316.4 384.5V347A33.4 33.4 0 0 1 1332 318.9L1669.9 105.6A66.9 66.9 0 0 1 1706.6 95.1H1787.8A33.5 33.5 0 0 1 1821.5 128.2V862.6A32.9 32.9 0 0 1 1811.7 886 33.5 33.5 0 0 1 1787.9 895.7ZM467.9 673.5H485.2L539.5 673.5C546 673.5 551.4 666.6 551.7 656.7V611.6C551.7 601.9 556 594.4 562.7 593.9L579.3 593.9C586.1 594.4 590.7 602 590.7 611.6V656.8C590.7 666.8 595.5 673.2 602.1 673.2L675.3 673.2 675.3 617.1C675.3 607.5 670.7 600 663.9 599.6L634.6 599.6C628.1 599.6 623.1 592.7 622.8 582.7L622.8 567.6C622.8 557.6 628.2 550.8 634.7 550.8H664C670.7 550.3 675.1 542.4 675.1 532.8V463.3A29.8 29.8 0 0 1 652.4 477.4H602.8C596.3 477.4 590.9 484.7 590.6 494.4V539.7C590.6 549.6 585.3 556.6 578.8 556.6L564.1 556.6C557.6 556.6 552.4 549.8 552.1 539.9V494C552.1 484.1 546.7 477.4 540.2 477.4H468.1V533.3C468.1 543 472.6 550.6 479.4 551.2L508.7 551.2C515.3 551.6 520.1 559.6 520.1 569.2V582.1C520.1 591.8 515.6 599.5 508.8 599.9H479.5C472.8 600.4 468.3 608.1 468.3 617.6ZM716 459.1V693.1A29.7 29.7 0 0 1 686 721.3H455.4A29.3 29.3 0 0 1 425.6 693.1V459.1A29.7 29.7 0 0 1 455.4 430.5H685.9A30.2 30.2 0 0 1 716 459.1ZM468.1 673.5H485.5L539.7 673.5C546.2 673.5 551.6 666.6 551.9 656.7V611.6C551.9 601.9 556.2 594.4 562.9 593.9L579.6 593.9C586.2 594.4 590.8 602 590.8 611.6V657.2C590.8 667.2 595.7 673.6 602.2 673.6L675.4 673.6 675.4 617.5C675.4 607.8 670.8 600.4 664.1 599.9L634.8 599.9C628.3 599.9 623.2 593 622.9 583.1L622.9 567.9C622.9 558 628.3 551.2 634.9 551.2H664.2C670.9 550.7 675.2 542.8 675.2 533.2V463.3A29.8 29.8 0 0 1 652.6 477.4H602.9C596.5 477.4 591.1 484.7 590.8 494.4V539.4C590.8 549.3 585.4 556.3 578.9 556.3L563.9 556.3C557.4 556.3 552.2 549.5 551.9 539.6V494.2C551.9 484.2 546.5 477.6 539.9 477.6H468.1V533.4C468.1 543.1 472.6 550.8 479.4 551.3L508.7 551.3C515.3 551.7 520.1 559.7 520.1 569.3V582.3C520.1 591.9 515.6 599.6 508.8 600.1H479.5C472.8 600.5 468.3 608.2 468.3 617.8ZM1202.1 400.4A96.2 96.2 0 1 1 1106 496.6H1106A96.2 96.2 0 0 1 1202.1 400.4Z", + "width": 1821 + }, + "search": [ + "livecare" + ] + }, + { + "uid": "a02f08ac7cc84e1f52f4753adda54c87", + "css": "modify-episode", + "code": 59452, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M825.8 83.3A125 125 0 0 0 708.3 0H125A125.4 125.4 0 0 0 0 125V708.3A125 125 0 0 0 83.3 825.8V291.7A208.3 208.3 0 0 1 291.7 83.3ZM875 1000H291.7A125.8 125.8 0 0 1 166.7 875V291.6A125.7 125.7 0 0 1 291.7 166.6H875A125.7 125.7 0 0 1 1000 291.6V875A125.7 125.7 0 0 1 875 1000ZM650.9 428.6H650.9L370.5 709A21.9 21.9 0 0 0 365.1 717.8L333.1 813A22.3 22.3 0 0 0 338.6 836 22.6 22.6 0 0 0 354.6 842.5 21.4 21.4 0 0 0 361.7 841.4L456.9 809.7A22.5 22.5 0 0 0 465.6 804.3L746 523.8 650.8 428.6ZM746.2 349A37.4 37.4 0 0 0 719.7 359.9L682.7 397 777.9 492.1 814.9 455.1A37.1 37.1 0 0 0 825.9 428.6 36.8 36.8 0 0 0 814.9 402.2L772.6 359.8A37.4 37.4 0 0 0 746.1 349.1Z", + "width": 1000 + }, + "search": [ + "modify-episode" + ] + }, + { + "uid": "abc3d36a67f52088185b185d6ec822cd", + "css": "obese-bmi-r", + "code": 59454, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M307.3 571.7C305.2 589.1 322 680.9 330.6 716.9 334.8 734 346.1 761.8 342 776.5A153.3 153.3 0 0 0 337.7 839.2C339.7 848.6 346 892 337 907.9A369.5 369.5 0 0 0 323.5 958.9C300.8 999.1 313.6 997.1 313.6 997.1 320.6 1003.2 332.7 997.6 332.7 997.6A15.3 15.3 0 0 0 348.1 996.6 18.9 18.9 0 0 0 365.2 996.1 22.4 22.4 0 0 0 384.2 993C389.9 995 391.3 992.5 391.3 992.5 408.3 991.7 381.8 953.5 381.8 953.5A76.3 76.3 0 0 1 388.1 900C429.5 813.7 431.7 790.8 415.1 758.3 410.4 748.9 409.2 745.2 411.4 741.1 416.3 731.7 412.7 693.9 418.8 678.8 430.5 649.9 442 576.4 448 542.1 456.1 495.9 419.4 434 419.4 434 411.4 408.8 423.1 319 423.1 319 439.6 336.9 439 368.6 439 368.6 436.4 401.9 477.2 452.7 477.2 452.7A118.4 118.4 0 0 1 504.3 495.1C504.3 501.1 502.4 515.8 502.4 515.8L503.2 528.5A129.3 129.3 0 0 1 505.7 548.3C502.6 581.6 510.2 575.3 510.2 575.3 516.5 575.3 523.5 548.5 523.5 548.5 523.5 555.4 521.1 576.1 526.4 583.9 532.7 593.2 537.4 582.3 537.5 580.1 539.2 537.8 542.8 548.9 542.8 548.9 546.3 583.2 550.7 591 558.4 588.3 564.3 586.3 558.9 547.1 558.9 547.1 569 570.4 576.7 574.1 576.7 574.1 593.3 582.3 583 559.6 580.7 555.1A99.2 99.2 0 0 1 568 523C583.4 544.5 595 543.6 595 543.6 610 540.3 581.9 509.9 565.4 495.4A126 126 0 0 1 543 472.2 203.5 203.5 0 0 1 534 430.1C532.4 392.3 519.1 375.9 519.1 375.9 496.3 350.3 492 302.5 492 302.5L491 221.9C483 166.9 425.3 166.5 425.3 166.5 366.9 160.4 358.8 147.2 358.8 147.2 346.4 134.7 353.5 110.8 353.5 110.8A38.7 38.7 0 0 0 367.7 89.4C384.7 80.2 383.9 66.8 376 66.9 369.7 67 371.2 63.4 371.2 63.4 381.9 3.1 305.5 0 305.5 0H293.9S217.5 3.1 228.1 63.4C228.1 63.4 229.6 67.1 223.2 67 215.4 66.8 214.6 80.3 231.6 89.4A38.7 38.7 0 0 0 245.8 110.8S252.9 134.8 240.5 147.2C240.5 147.2 232.4 160.5 174 166.6 174 166.6 116.2 167 108.3 222L107.2 302.6S103 350.3 80.2 375.9C80.2 375.9 66.9 392.4 65.4 430.2A204.8 204.8 0 0 1 56.4 472.3 124.6 124.6 0 0 1 33.9 495.5C17.3 510-10.7 540.2 4.3 543.7 4.3 543.7 16 544.5 31.3 523.1A98.1 98.1 0 0 1 18.7 555.2C16.3 559.6 6 582.3 22.6 574.2 22.6 574.2 30.3 570.4 40.4 547.1 40.4 547.1 35 586.4 41 588.4 48.8 591 53.1 583.3 56.6 548.9 56.6 548.9 60.2 537.8 61.9 580.2 62 582.4 66.5 593.3 72.9 584 78.3 576.2 75.9 555.5 75.9 548.6 75.9 548.6 82.8 575.4 89.2 575.4 89.2 575.4 96.8 581.7 93.7 548.4A119.1 119.1 0 0 1 96.2 528.5L96.9 515.8S95 501.1 95 495.1A118.3 118.3 0 0 1 122.1 452.7S162.9 401.8 160.3 368.6C160.3 368.6 159.7 336.9 176.2 319 176.2 319 187.9 408.8 180 434 180 434 143.2 495.9 151.3 542.1 157.3 576.5 168.8 649.9 180.5 678.8 186.6 693.8 183 731.7 187.9 741.1 190.1 745.2 188.9 749 184.2 758.3 167.7 790.8 169.8 813.7 211.3 900A75.6 75.6 0 0 1 217.6 953.5S191.1 991.7 208.1 992.5C208.1 992.5 209.4 995 215.1 993A22.4 22.4 0 0 0 234.2 996.1 18.8 18.8 0 0 0 251.2 996.6 15.2 15.2 0 0 0 266.7 997.6S278.7 1003.3 285.8 997.1C285.8 997.1 298.5 999.1 275.9 958.9A367.7 367.7 0 0 0 262.5 907.9C253.4 892.1 259.9 848.6 261.8 839.2A155.9 155.9 0 0 0 257.5 776.5C253.3 761.8 264.7 734 268.9 716.9 277.5 680.9 294.3 589.1 292.2 571.7L299.2 573.4A18.3 18.3 0 0 0 307.3 571.7Z", + "width": 599 + }, + "search": [ + "obese-bmi-r" + ] + }, + { + "uid": "6155f39d20a8f84da651fa66bdcabfeb", + "css": "ovrweight-bmi", + "code": 59455, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M240.4 571.7C238.7 589.1 251.9 680.9 258.6 716.9 261.9 734 270.7 761.8 267.5 776.5A194.7 194.7 0 0 0 264.2 839.2C265.7 848.6 270.7 892 263.6 907.9A454.8 454.8 0 0 0 253.1 958.9C235.3 999.1 245.3 997.1 245.3 997.1 250.8 1003.2 260.3 997.6 260.3 997.6A9.9 9.9 0 0 0 272.4 996.6 12 12 0 0 0 285.7 996.1 14.6 14.6 0 0 0 300.6 993C305.1 995 306.1 992.5 306.1 992.5 319.5 991.7 298.7 953.5 298.7 953.5A94.6 94.6 0 0 1 303.6 900C336.1 813.7 337.7 790.8 324.7 758.3 321.1 748.9 320.2 745.2 321.8 741.1 325.7 731.7 322.9 693.9 327.6 678.8 336.8 649.9 345.8 576.4 350.5 542.1 356.8 495.9 328.1 434 328.1 434 321.9 408.8 331.1 319 331.1 319 343.9 336.9 343.4 368.6 343.4 368.6 341.4 401.9 373.3 452.7 373.3 452.7A128.3 128.3 0 0 1 394.5 495.1C394.5 501.1 393 515.8 393 515.8L393.6 528.5A163.7 163.7 0 0 1 395.6 548.4C393.2 581.6 399.1 575.4 399.1 575.4 404.1 575.4 409.5 548.6 409.5 548.6 409.5 555.5 407.6 576.1 411.8 583.9 416.8 593.2 420.4 582.3 420.5 580.1 421.8 537.8 424.6 548.9 424.6 548.9 427.4 583.2 430.8 591 436.8 588.3 441.4 586.3 437.2 547.1 437.2 547.1 445.1 570.4 451.1 574.1 451.1 574.1 464.1 582.3 456.1 559.7 454.3 555.2A118.2 118.2 0 0 1 444.3 523C456.4 544.5 465.4 543.7 465.4 543.7 477.2 540.3 455.1 510 442.3 495.4A118.3 118.3 0 0 1 424.7 472.2 253.7 253.7 0 0 1 417.7 430.2C416.5 392.3 406.1 375.9 406.1 375.9 388.2 350.3 384.9 302.5 384.9 302.5L384.1 221.9C377.8 166.9 332.7 166.5 332.7 166.5 287.1 160.5 280.7 147.3 280.7 147.3 271 134.8 276.6 110.8 276.6 110.8A41.5 41.5 0 0 0 287.7 89.4C301 80.3 300.4 66.9 294.2 67 289.3 67.1 290.4 63.4 290.4 63.4 298.7 3.1 239 0 239 0H229.9S170.1 3.1 178.4 63.4C178.4 63.4 179.6 67.1 174.6 67 168.4 66.8 167.9 80.3 181.1 89.4A41.4 41.4 0 0 0 192.3 110.8S197.8 134.8 188.1 147.2C188.1 147.2 181.8 160.5 136.1 166.6 136.1 166.6 90.9 167 84.7 222L83.8 302.6S80.5 350.3 62.6 375.9C62.6 375.9 52.3 392.4 51.1 430.2A255.3 255.3 0 0 1 44 472.3 117.1 117.1 0 0 1 26.5 495.5C13.5 510-8.4 540.2 3.3 543.7 3.3 543.7 12.5 544.5 24.4 523.1A117 117 0 0 1 14.6 555.2C12.7 559.6 4.6 582.3 17.7 574.2 17.7 574.2 23.7 570.4 31.5 547.1 31.5 547.1 27.3 586.4 32 588.4 38.1 591 41.5 583.3 44.2 548.9 44.2 548.9 47.1 537.8 48.4 580.2 48.4 582.4 52 593.3 57 584 61.2 576.2 59.3 555.5 59.3 548.6 59.3 548.6 64.7 575.4 69.7 575.4 69.7 575.4 75.7 581.7 73.2 548.4A150.7 150.7 0 0 1 75.2 528.6L75.8 515.8S74.3 501.2 74.3 495.1A128.1 128.1 0 0 1 95.5 452.7S127.5 401.9 125.4 368.7C125.4 368.7 125 337 137.8 319 137.8 319 146.9 408.8 140.7 434 140.7 434 112 496 118.3 542.2 123 576.5 132 649.9 141.2 678.9 145.9 693.9 143.1 731.7 146.9 741.2 148.7 745.3 147.8 749.1 144 758.4 131.2 790.8 132.9 813.7 165.3 900A93.8 93.8 0 0 1 170.2 953.5S149.5 991.7 162.7 992.5C162.7 992.5 163.8 995 168.3 993A14.6 14.6 0 0 0 183.2 996.1 12 12 0 0 0 196.5 996.6 9.9 9.9 0 0 0 208.6 997.6S218 1003.3 223.6 997.1C223.6 997.1 233.5 999.1 215.8 958.9A452.6 452.6 0 0 0 205.3 907.9C198.2 892 203.2 848.5 204.7 839.2A198.1 198.1 0 0 0 201.4 776.5C198.1 761.8 207 734 210.2 716.9 217 680.9 230.2 589.1 228.5 571.7L233.9 573.4A11.9 11.9 0 0 0 240.4 571.7Z", + "width": 469 + }, + "search": [ + "ovrweight-bmi" + ] + }, + { + "uid": "2d2f5e7a3046c40afa3ccb117d321149", + "css": "order-prescription", + "code": 59456, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M596.3 192.4A28.8 28.8 0 0 0 588.5 172.7L434.6 9.1A28.9 28.9 0 0 0 413.6 0H404V202H596.3ZM596.3 192.4M567.2 567.5A164.8 164.8 0 0 1 596.3 570.1V259.7H375.1A28.9 28.9 0 0 1 346.3 230.8V0H28.9A28.9 28.9 0 0 0 0 28.9V769.5A28.9 28.9 0 0 0 28.9 798.3H271.5A163.6 163.6 0 0 1 288.4 778.6L451.6 615.5A162.4 162.4 0 0 1 567.2 567.5ZM240.4 336.6H269.3V307.8A28.9 28.9 0 1 1 327 307.8V336.6H355.9A28.9 28.9 0 1 1 355.9 394.3H327V423.2A28.9 28.9 0 0 1 269.3 423.2V394.3H240.4A28.9 28.9 0 0 1 240.4 336.6ZM144.3 509.8H452A28.9 28.9 0 1 1 452 567.5H144.3A28.9 28.9 0 0 1 144.3 509.8ZM336.6 682.9H144.3A28.9 28.9 0 1 1 144.3 625.2H336.6A28.9 28.9 0 1 1 336.6 682.9ZM336.6 682.9M329.1 819.4A105.8 105.8 0 1 0 478.8 969L540 907.8 390.4 758.1ZM329.1 819.4M642 656.2A105.8 105.8 0 0 0 492.4 656.2L431.2 717.4 580.8 867 642 805.8A105.9 105.9 0 0 0 642 656.2ZM642 656.2", + "width": 673 + }, + "search": [ + "order-prescription" + ] + }, + { + "uid": "6e8d360bfcc0238a6164f21160b4203f", + "css": "order-procedures", + "code": 59457, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1040.4 721.4L997.6 778.4 1054.8 821.3H926A142.7 142.7 0 0 0 788.2 714.3H430.9A142.7 142.7 0 0 0 293.1 821.3H214.3A142.8 142.8 0 0 1 214.3 535.6H293.1A142.7 142.7 0 0 0 430.9 642.6H788.1A142.7 142.7 0 0 0 925.9 535.6H1004.8A214.3 214.3 0 1 0 1004.8 107H926A142.7 142.7 0 0 0 788.1 0H430.9A142.7 142.7 0 0 0 293.1 107H261.9L128.6 7.2 85.7 64.3 142.8 107H0V178.6H142.8L85.7 221.4 128.6 278.6 261.9 178.6H293.2A142.7 142.7 0 0 0 431 285.5H788.1A142.7 142.7 0 0 0 926 178.6H1004.9A142.8 142.8 0 1 1 1004.9 464.3H926A142.7 142.7 0 0 0 788.2 357.3H430.9A142.7 142.7 0 0 0 293.1 464.3H214.3A214.3 214.3 0 1 0 214.3 892.8H293.1A142.7 142.7 0 0 0 430.9 999.8H788.1A142.7 142.7 0 0 0 926 892.8H1054.9L997.7 935.7 1040.4 992.8 1218.9 857.2ZM1040.4 721.4", + "width": 1219 + }, + "search": [ + "order-procedures" + ] + }, + { + "uid": "d6fe7b7abad6762bf429e2025e6db5d5", + "css": "ovrweight-bmi-r", + "code": 59458, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M240.4 571.7C238.7 589.1 251.9 680.9 258.6 716.9 261.9 734 270.7 761.8 267.5 776.5A194.7 194.7 0 0 0 264.2 839.2C265.7 848.6 270.7 892 263.6 907.9A454.8 454.8 0 0 0 253.1 958.9C235.3 999.1 245.3 997.1 245.3 997.1 250.8 1003.2 260.3 997.6 260.3 997.6A9.9 9.9 0 0 0 272.4 996.6 12 12 0 0 0 285.7 996.1 14.6 14.6 0 0 0 300.6 993C305.1 995 306.1 992.5 306.1 992.5 319.5 991.7 298.7 953.5 298.7 953.5A94.6 94.6 0 0 1 303.6 900C336.1 813.7 337.7 790.8 324.7 758.3 321.1 748.9 320.2 745.2 321.8 741.1 325.7 731.7 322.9 693.9 327.6 678.8 336.8 649.9 345.8 576.4 350.5 542.1 356.8 495.9 328.1 434 328.1 434 321.9 408.8 331.1 319 331.1 319 343.9 336.9 343.4 368.6 343.4 368.6 341.4 401.9 373.3 452.7 373.3 452.7A128.3 128.3 0 0 1 394.5 495.1C394.5 501.1 393 515.8 393 515.8L393.6 528.5A163.7 163.7 0 0 1 395.6 548.4C393.2 581.6 399.1 575.4 399.1 575.4 404.1 575.4 409.5 548.6 409.5 548.6 409.5 555.5 407.6 576.1 411.8 583.9 416.8 593.2 420.4 582.3 420.5 580.1 421.8 537.8 424.6 548.9 424.6 548.9 427.4 583.2 430.8 591 436.8 588.3 441.4 586.3 437.2 547.1 437.2 547.1 445.1 570.4 451.1 574.1 451.1 574.1 464.1 582.3 456.1 559.7 454.3 555.2A118.2 118.2 0 0 1 444.3 523C456.4 544.5 465.4 543.7 465.4 543.7 477.2 540.3 455.1 510 442.3 495.4A118.3 118.3 0 0 1 424.7 472.2 253.7 253.7 0 0 1 417.7 430.2C416.5 392.3 406.1 375.9 406.1 375.9 388.2 350.3 384.9 302.5 384.9 302.5L384.1 221.9C377.8 166.9 332.7 166.5 332.7 166.5 287.1 160.5 280.7 147.3 280.7 147.3 271 134.8 276.6 110.8 276.6 110.8A41.5 41.5 0 0 0 287.7 89.4C301 80.3 300.4 66.9 294.2 67 289.3 67.1 290.4 63.4 290.4 63.4 298.7 3.1 239 0 239 0H229.9S170.1 3.1 178.4 63.4C178.4 63.4 179.6 67.1 174.6 67 168.4 66.8 167.9 80.3 181.1 89.4A41.4 41.4 0 0 0 192.3 110.8S197.8 134.8 188.1 147.2C188.1 147.2 181.8 160.5 136.1 166.6 136.1 166.6 90.9 167 84.7 222L83.8 302.6S80.5 350.3 62.6 375.9C62.6 375.9 52.3 392.4 51.1 430.2A255.3 255.3 0 0 1 44 472.3 117.1 117.1 0 0 1 26.5 495.5C13.5 510-8.4 540.2 3.3 543.7 3.3 543.7 12.5 544.5 24.4 523.1A117 117 0 0 1 14.6 555.2C12.7 559.6 4.6 582.3 17.7 574.2 17.7 574.2 23.7 570.4 31.5 547.1 31.5 547.1 27.3 586.4 32 588.4 38.1 591 41.5 583.3 44.2 548.9 44.2 548.9 47.1 537.8 48.4 580.2 48.4 582.4 52 593.3 57 584 61.2 576.2 59.3 555.5 59.3 548.6 59.3 548.6 64.7 575.4 69.7 575.4 69.7 575.4 75.7 581.7 73.2 548.4A150.7 150.7 0 0 1 75.2 528.6L75.8 515.8S74.3 501.2 74.3 495.1A128.1 128.1 0 0 1 95.5 452.7S127.5 401.9 125.4 368.7C125.4 368.7 125 337 137.8 319 137.8 319 146.9 408.8 140.7 434 140.7 434 112 496 118.3 542.2 123 576.5 132 649.9 141.2 678.9 145.9 693.9 143.1 731.7 146.9 741.2 148.7 745.3 147.8 749.1 144 758.4 131.2 790.8 132.9 813.7 165.3 900A93.8 93.8 0 0 1 170.2 953.5S149.5 991.7 162.7 992.5C162.7 992.5 163.8 995 168.3 993A14.6 14.6 0 0 0 183.2 996.1 12 12 0 0 0 196.5 996.6 9.9 9.9 0 0 0 208.6 997.6S218 1003.3 223.6 997.1C223.6 997.1 233.5 999.1 215.8 958.9A452.6 452.6 0 0 0 205.3 907.9C198.2 892 203.2 848.5 204.7 839.2A198.1 198.1 0 0 0 201.4 776.5C198.1 761.8 207 734 210.2 716.9 217 680.9 230.2 589.1 228.5 571.7L233.9 573.4A11.9 11.9 0 0 0 240.4 571.7Z", + "width": 469 + }, + "search": [ + "ovrweight-bmi-r" + ] + }, + { + "uid": "d3a35963df4d21d3ec3cf69077ac511e", + "css": "respiration-rate", + "code": 59459, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M989.3 410.2C907.2 230.7 805.1 123.6 716.1 123.6A91.6 91.6 0 0 0 667.3 137C595.3 181.3 592 319.6 591.9 334.9 591.9 339.7 590.8 377.9 590 431.1L560.9 420.4V20.1A20.3 20.3 0 0 0 540.6-0.2H499.9A20.3 20.3 0 0 0 479.6 20.1V420.4L450.5 431.1C449.7 378 448.7 339.9 448.6 335.3 448.6 319.6 445.2 181.3 373.2 137A91.6 91.6 0 0 0 324.4 123.6C235.5 123.6 133.3 230.8 51.2 410.3-57.1 647.8 39 972 43.2 985.6A20.1 20.1 0 0 0 67.1 999.3 1776.9 1776.9 0 0 0 243.4 946.2C369.2 900.2 434.5 855.1 442.6 808.2A2836.5 2836.5 0 0 0 451.6 473.7L506.5 453.4H534.7L589.6 473.7A2835.8 2835.8 0 0 0 598.6 808.2C606.7 855.1 671.8 900.2 797.8 946.2A1778.4 1778.4 0 0 0 974.1 999.5 20.1 20.1 0 0 0 998 985.7C1001.8 972 1097.9 647.8 989.3 410.2ZM393.1 500.5L249.7 574.6V634.8L260.7 668.2 288.1 694.8A20.3 20.3 0 0 1 260.1 723.7L230.5 695.2 197 732.2A20.3 20.3 0 0 1 167.2 705.1L209.4 658.4V595.3L130.2 636.3A20.3 20.3 0 1 1 111.7 600.5L129.3 591.4 97.8 566.3A20.3 20.3 0 0 1 122.9 534.8L168.5 571.2 278.8 514.3 184.4 442.5A20.3 20.3 0 0 1 208.8 410.4L239.3 433.5 241.9 410.2A20.3 20.3 0 0 1 281.9 414.6L276.5 461.8 318.5 493.7 374.5 464.8A20.3 20.3 0 1 1 393 500.5ZM942.9 566.3L911.4 591.4 929 600.5A20.3 20.3 0 1 1 910.5 636.3L831.4 595.3V658.2L873.7 705A20.3 20.3 0 0 1 843.8 732.1L810.3 695.1 780.8 723.6A20.3 20.3 0 0 1 752.7 694.7L780.1 668.1 791.1 634.7V574.5L647.7 500.4A20.3 20.3 0 1 1 666.2 464.6L722.2 493.6 764.2 461.7 759 414.5A20.3 20.3 0 1 1 799 410L801.6 433.4 832.1 410.2A20.3 20.3 0 0 1 856.5 442.3L761.9 514 872.2 570.9 917.9 534.5A20.3 20.3 0 0 1 943 566Z", + "width": 1041 + }, + "search": [ + "respiration-rate" + ] + }, + { + "uid": "230620f957b8bbd4c6ea89c460c5c676", + "css": "patient-sick-leave", + "code": 59460, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M664.4 0H92.6A92.7 92.7 0 0 0 0 92.6V907.4A92.7 92.7 0 0 0 92.6 1000H664.3A92.7 92.7 0 0 0 756.9 907.4V92.6A92.7 92.7 0 0 0 664.4 0ZM118.7 167.8L176.4 68.5A20.8 20.8 0 1 1 212.4 89.3L173 157.2H587.9L556.4 87.4A20.8 20.8 0 1 1 594.4 70.1L639.1 169.5A20.8 20.8 0 0 1 620.1 198.9H136.8A20.8 20.8 0 0 1 118.7 167.8ZM644.6 608.6H492.4A20.8 20.8 0 0 1 472.7 594.7L458.3 554.1 423.7 813.6A20.8 20.8 0 0 1 403.7 831.6H403.1A20.8 20.8 0 0 1 382.7 814.7L312.5 452.1 266.5 606.1A20.8 20.8 0 0 1 246.6 621H112.3A20.8 20.8 0 1 1 112.3 579.5H231.1L296.8 358.9A20.8 20.8 0 0 1 337.2 360.9L399.1 681.8 428.4 463.2A20.8 20.8 0 0 1 446.8 445.3 21.3 21.3 0 0 1 468.7 459.1L507 567.1H644.5A20.8 20.8 0 1 1 644.5 608.6Z", + "width": 757 + }, + "search": [ + "patient-sick-leave" + ] + }, + { + "uid": "9990a08bacced53295a9059a091f3dca", + "css": "progress-notes-1", + "code": 59461, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M400 266.7V33.4A33.4 33.4 0 0 1 466.6 33.4V266.7ZM300 933.3A99.3 99.3 0 0 1 229.3 904.1 1011.6 1011.6 0 0 1 0 550.5V966.6A33.4 33.4 0 0 0 33.4 1000H833.3A33.4 33.4 0 0 0 866.7 966.6V933.3ZM1128 809.7A885.7 885.7 0 0 1 866.6 189.5V166.6A33.4 33.4 0 0 0 833.3 133.3H533.3V300A33.4 33.4 0 0 1 500 333.3H366.6A33.4 33.4 0 0 1 333.3 300V133.3H33.4A33.4 33.4 0 0 0 0 166.7V189.6A943.4 943.4 0 0 0 276.4 856.9 33.4 33.4 0 0 0 300 866.7H1104.5A33.4 33.4 0 0 0 1128.1 809.8ZM433.3 400H700A33.4 33.4 0 0 1 700 466.6H433.3A33.4 33.4 0 0 1 433.3 400ZM700 733.3H366.7A33.4 33.4 0 0 1 366.7 666.6H700A33.4 33.4 0 0 1 700 733.3ZM766.7 600H300A33.4 33.4 0 1 1 300 533.3H766.7A33.4 33.4 0 1 1 766.7 600Z", + "width": 1138 + }, + "search": [ + "progress-notes" + ] + }, + { + "uid": "626836408cae9059f8c1866b3a23b23f", + "css": "temperature", + "code": 59462, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M394.7 0A131.7 131.7 0 0 1 526.3 131.8V686.9A187 187 0 0 1 579 815.8 184.2 184.2 0 1 1 263.2 686.9V131.6A131.4 131.4 0 0 1 394.7 0ZM394.7 315.8A26.5 26.5 0 0 0 368.4 342.1V741.3A79 79 0 1 0 473.7 815.8 79.9 79.9 0 0 0 421.1 741.3V342.1A26.7 26.7 0 0 0 394.7 315.8ZM184.2 631.6A26.3 26.3 0 1 1 184.2 684.3H52.6A26.3 26.3 0 1 1 52.6 631.6ZM710.6 289.6A105.3 105.3 0 0 1 815.7 394.7 25.8 25.8 0 0 1 789.5 422.3 26.5 26.5 0 0 1 763.1 394.9 52.6 52.6 0 0 0 657.9 394.9V553A52.6 52.6 0 1 0 763.2 553 26.3 26.3 0 0 1 815.8 553 105.3 105.3 0 0 1 605.3 553V394.7A105.3 105.3 0 0 1 710.6 289.6ZM184.2 552.6A26.3 26.3 0 1 1 184.2 605.3H157.9A26.3 26.3 0 0 1 157.9 552.6ZM184.2 447.4A26.3 26.3 0 0 1 210.6 473.7 26.7 26.7 0 0 1 184.2 500H105.3A26.3 26.3 0 0 1 78.9 473.7 26 26 0 0 1 105.3 447.4ZM921.1 289.5A52.6 52.6 0 1 1 868.5 342.1 52.6 52.6 0 0 1 921.1 289.6ZM184.2 342.1A26.3 26.3 0 1 1 184.2 394.8H78.9A26.3 26.3 0 0 1 78.9 342.1ZM184.2 236.9A26.3 26.3 0 0 1 184.2 289.5H131.6A26.3 26.3 0 0 1 131.6 236.9ZM184.2 131.6A26.3 26.3 0 1 1 184.2 184.3H26.3A26.3 26.3 0 1 1 26.3 131.6Z", + "width": 974 + }, + "search": [ + "temperature" + ] + }, + { + "uid": "66b89e853c3e2b07f694e387fd756780", + "css": "underweight-bmi", + "code": 59463, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M182.4 571.7C181.1 589.1 191.1 680.9 196.2 716.9 198.7 734 205.4 761.8 203 776.5A255.5 255.5 0 0 0 200.4 839.2C201.6 848.6 205.4 892 200 907.9 197.2 916.3 192 958.9 192 958.9 178.6 999.1 186.1 997.1 186.1 997.1 190.3 1003.2 197.5 997.6 197.5 997.6A6.3 6.3 0 0 0 206.7 996.6C211.4 1001.2 216.8 996.1 216.8 996.1 222.7 999.7 228.1 993 228.1 993 231.5 995 232.3 992.5 232.3 992.5 242.4 991.7 226.7 953.5 226.7 953.5A122.1 122.1 0 0 1 230.4 900C255 813.7 256.3 790.8 246.5 758.3 243.7 748.9 243 745.2 244.3 741.1 247.2 731.7 245.1 693.9 248.7 678.8 255.6 649.9 262.4 576.4 266 542.1 270.7 495.9 249 434 249 434 244.2 408.8 251.2 319 251.2 319A126.2 126.2 0 0 1 260.6 368.6C259 401.9 283.2 452.7 283.2 452.7A149.5 149.5 0 0 1 299.3 495.1C299.3 501.1 298.2 515.8 298.2 515.8L298.6 528.5C298.8 531.8 300.4 543 300.1 548.4 298.3 581.6 302.8 575.4 302.8 575.4 306.5 575.4 310.7 548.6 310.7 548.6A135.2 135.2 0 0 0 312.4 583.9C316.2 593.2 318.9 582.3 319 580.1 320 537.8 322.1 548.9 322.1 548.9 324.2 583.2 326.8 591 331.4 588.3 334.9 586.3 331.7 547.1 331.7 547.1 337.7 570.4 342.2 574.1 342.2 574.1 352.1 582.3 346 559.7 344.6 555.2A148.3 148.3 0 0 1 337.1 523C346.2 544.5 353.1 543.7 353.1 543.7 362 540.3 345.3 510 335.6 495.4A121.6 121.6 0 0 1 322.3 472.2 328.7 328.7 0 0 1 317 430.2 145.7 145.7 0 0 0 308.1 375.9C294.6 350.3 292.1 302.5 292.1 302.5L291.5 221.9C286.7 166.9 252.5 166.5 252.5 166.5 217.8 160.4 213 147.2 213 147.2 205.7 134.7 209.9 110.8 209.9 110.8A47.8 47.8 0 0 0 218.3 89.4C228.4 80.2 227.9 66.8 223.3 66.9 219.5 67.1 220.4 63.4 220.4 63.4 226.6 3.1 181.3 0 181.3 0H174.4S129 3.1 135.4 63.4C135.4 63.4 136.2 67.1 132.5 67 127.8 66.8 127.4 80.3 137.4 89.4A47.7 47.7 0 0 0 145.9 110.8S150.1 134.8 142.8 147.2C142.8 147.2 138 160.5 103.3 166.6 103.3 166.6 69 167 64.3 222L63.7 302.6S61.1 350.3 47.5 375.9A146.2 146.2 0 0 0 38.8 430.2 330.8 330.8 0 0 1 33.4 472.3 120.2 120.2 0 0 1 20.1 495.5C10.2 510-6.3 540.2 2.5 543.7 2.5 543.7 9.4 544.5 18.5 523.1A146.9 146.9 0 0 1 11.1 555.2C9.6 559.6 3.5 582.3 13.4 574.2 13.4 574.2 18 570.4 23.9 547.1 23.9 547.1 20.7 586.4 24.3 588.4 28.9 591 31.5 583.3 33.6 548.9 33.6 548.9 35.7 537.8 36.7 580.2 36.7 582.4 39.4 593.3 43.2 584A133.3 133.3 0 0 0 45 548.6S49.1 575.4 52.9 575.4C52.9 575.4 57.4 581.7 55.6 548.4A197.2 197.2 0 0 1 57.1 528.6L57.5 515.8S56.4 501.2 56.4 495.1A149.3 149.3 0 0 1 72.5 452.7S96.7 401.8 95.2 368.6A126.5 126.5 0 0 1 104.6 319S111.5 408.8 106.8 434C106.8 434 85 495.9 89.8 542.1 93.4 576.5 100.2 649.9 107.2 678.8 110.8 693.8 108.6 731.7 111.5 741.1 112.9 745.2 112.2 749 109.4 758.3 99.6 790.8 100.8 813.7 125.4 900A121 121 0 0 1 129.2 953.5S113.5 991.8 123.5 992.5C123.5 992.5 124.3 995.1 127.7 993.1 127.7 993.1 133.2 999.7 139.1 996.1 139.1 996.1 144.5 1001.3 149.2 996.7A6.2 6.2 0 0 0 158.3 997.6S165.5 1003.3 169.7 997.2C169.7 997.2 177.2 999.2 163.8 959 163.8 959 158.6 916.3 155.8 908 150.4 892.1 154.2 848.6 155.4 839.3A260 260 0 0 0 152.8 776.6C150.4 761.8 157.1 734 159.6 717 164.7 681 174.7 589.1 173.4 571.8L177.5 573.5A7.6 7.6 0 0 0 182.4 571.7Z", + "width": 356 + }, + "search": [ + "underweight-bmi" + ] + }, + { + "uid": "cbeed016e1b47a377550d4184cfaf42b", + "css": "radiology-1", + "code": 59464, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1218.7 937.5H906.2V812.6C1109.3 812.6 1107.4 817.2 1119.6 798.6L1174 718.9A93.7 93.7 0 0 0 1185.6 537.8 187.5 187.5 0 0 0 1000 375H870.2A437.5 437.5 0 0 0 437.4 0C10.4 0-162.9 552.5 187.4 795.9V937.5H93.7A31.4 31.4 0 1 0 93.7 1000H1218.7A31.4 31.4 0 1 0 1218.7 937.5ZM159 476.2A281.3 281.3 0 0 1 679.3 294.1 273.1 273.1 0 0 1 710.7 375C637.5 375 655.7 403.1 648.2 376.9 653.8 393.8 651.3 384.7 635.4 398.7A125 125 0 0 0 423.9 531.3 93.8 93.8 0 0 0 428.5 718.8 281.3 281.3 0 0 1 159.2 476.3ZM1156.2 593.7A31.4 31.4 0 0 1 1177.7 647.1C1164.9 660.6 1218.7 656.2 437.4 656.2A31.4 31.4 0 0 1 415.9 602.8C428.4 589.4 377.4 593.8 1156.2 593.8ZM579.3 750L558.4 718.6H724A99.1 99.1 0 0 0 718.7 750ZM468.7 468.7A62.5 62.5 0 1 1 531.2 531.2 62.5 62.5 0 0 1 468.7 468.7ZM687.4 812.6H718.8V937.5H687.4ZM1076.8 750.1H906.2A93.7 93.7 0 0 0 900.9 718.7H1097.8ZM1120.8 531.3C667.7 531.3 693.7 534.4 677.7 523.8A46.6 46.6 0 0 1 669.9 451.3C687.4 431.6 689 437.6 999.9 437.6A125 125 0 0 1 1120.9 531.3ZM406.2 843.7H468.7V937.5H406.2Z", + "width": 1250 + }, + "search": [ + "radiology" + ] + }, + { + "uid": "0ad7e861726e4de71ae412435ca73f8a", + "css": "refer-patient", + "code": 59471, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M264.4 666.7L351.6 775.7 267.1 860.3 228.5 667.7C235.7 667.1 242.9 666.7 250.1 666.7ZM442.2 666.7L388.9 733.3 335.6 666.6ZM513.4 666.7H527.7C534.9 666.7 542.1 667.1 549.3 667.7L510.8 860.3 426.2 775.7ZM638.9 444.4H637.2A248 248 0 0 0 638.9 416.7V333.3A55.6 55.6 0 0 1 638.9 444.4ZM138.9 166.7A166.8 166.8 0 0 1 305.5 0H472.2A166.8 166.8 0 0 1 638.9 166.7V277.8H527.8A55.6 55.6 0 0 1 472.2 222.2V111.1H416.7V138.9A139 139 0 0 1 277.8 277.8H138.9ZM138.9 444.4A55.6 55.6 0 1 1 138.9 333.3V416.7A248 248 0 0 0 140.5 444.4ZM194.5 416.7V333.3H277.8A194.1 194.1 0 0 0 425.3 265.1 111.4 111.4 0 0 0 527.8 333.3H583.3V416.7A194.5 194.5 0 0 1 194.5 416.7ZM777.8 1000H0V916.6A250.4 250.4 0 0 1 174 678.5L222.9 922.1A27.8 27.8 0 0 0 242 943.2 28.4 28.4 0 0 0 250.1 944.4 27.8 27.8 0 0 0 269.7 936.3L389 817 508.2 936.3A27.8 27.8 0 0 0 554.9 922.1L603.9 678.5A250.5 250.5 0 0 1 777.8 916.6ZM943.7 123A22 22 0 0 1 965.7 101H1000.6L899.6 0 798.6 101H833.5A22 22 0 0 1 855.6 123 264.2 264.2 0 0 1 738 342.7 220.4 220.4 0 0 0 943.7 123Z", + "width": 1001 + }, + "search": [ + "refer-patient" + ] + }, + { + "uid": "ca99a2d770f0d7e6ba7a90eb792ebd4d", + "css": "underweight-bmi-r", + "code": 59472, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M182.4 571.7C181.1 589.1 191.1 680.9 196.2 716.9 198.7 734 205.4 761.8 203 776.5A255.5 255.5 0 0 0 200.4 839.2C201.6 848.6 205.4 892 200 907.9 197.2 916.3 192 958.9 192 958.9 178.6 999.1 186.1 997.1 186.1 997.1 190.3 1003.2 197.5 997.6 197.5 997.6A6.3 6.3 0 0 0 206.7 996.6C211.4 1001.2 216.8 996.1 216.8 996.1 222.7 999.7 228.1 993 228.1 993 231.5 995 232.3 992.5 232.3 992.5 242.4 991.7 226.7 953.5 226.7 953.5A122.1 122.1 0 0 1 230.4 900C255 813.7 256.3 790.8 246.5 758.3 243.7 748.9 243 745.2 244.3 741.1 247.2 731.7 245.1 693.9 248.7 678.8 255.6 649.9 262.4 576.4 266 542.1 270.7 495.9 249 434 249 434 244.2 408.8 251.2 319 251.2 319A126.2 126.2 0 0 1 260.6 368.6C259 401.9 283.2 452.7 283.2 452.7A149.5 149.5 0 0 1 299.3 495.1C299.3 501.1 298.2 515.8 298.2 515.8L298.6 528.5C298.8 531.8 300.4 543 300.1 548.4 298.3 581.6 302.8 575.4 302.8 575.4 306.5 575.4 310.7 548.6 310.7 548.6A135.2 135.2 0 0 0 312.4 583.9C316.2 593.2 318.9 582.3 319 580.1 320 537.8 322.1 548.9 322.1 548.9 324.2 583.2 326.8 591 331.4 588.3 334.9 586.3 331.7 547.1 331.7 547.1 337.7 570.4 342.2 574.1 342.2 574.1 352.1 582.3 346 559.7 344.6 555.2A148.3 148.3 0 0 1 337.1 523C346.2 544.5 353.1 543.7 353.1 543.7 362 540.3 345.3 510 335.6 495.4A121.6 121.6 0 0 1 322.3 472.2 328.7 328.7 0 0 1 317 430.2 145.7 145.7 0 0 0 308.1 375.9C294.6 350.3 292.1 302.5 292.1 302.5L291.5 221.9C286.7 166.9 252.5 166.5 252.5 166.5 217.8 160.4 213 147.2 213 147.2 205.7 134.7 209.9 110.8 209.9 110.8A47.8 47.8 0 0 0 218.3 89.4C228.4 80.2 227.9 66.8 223.3 66.9 219.5 67.1 220.4 63.4 220.4 63.4 226.6 3.1 181.3 0 181.3 0H174.4S129 3.1 135.4 63.4C135.4 63.4 136.2 67.1 132.5 67 127.8 66.8 127.4 80.3 137.4 89.4A47.7 47.7 0 0 0 145.9 110.8S150.1 134.8 142.8 147.2C142.8 147.2 138 160.5 103.3 166.6 103.3 166.6 69 167 64.3 222L63.7 302.6S61.1 350.3 47.5 375.9A146.2 146.2 0 0 0 38.8 430.2 330.8 330.8 0 0 1 33.4 472.3 120.2 120.2 0 0 1 20.1 495.5C10.2 510-6.3 540.2 2.5 543.7 2.5 543.7 9.4 544.5 18.5 523.1A146.9 146.9 0 0 1 11.1 555.2C9.6 559.6 3.5 582.3 13.4 574.2 13.4 574.2 18 570.4 23.9 547.1 23.9 547.1 20.7 586.4 24.3 588.4 28.9 591 31.5 583.3 33.6 548.9 33.6 548.9 35.7 537.8 36.7 580.2 36.7 582.4 39.4 593.3 43.2 584A133.3 133.3 0 0 0 45 548.6S49.1 575.4 52.9 575.4C52.9 575.4 57.4 581.7 55.6 548.4A197.2 197.2 0 0 1 57.1 528.6L57.5 515.8S56.4 501.2 56.4 495.1A149.3 149.3 0 0 1 72.5 452.7S96.7 401.8 95.2 368.6A126.5 126.5 0 0 1 104.6 319S111.5 408.8 106.8 434C106.8 434 85 495.9 89.8 542.1 93.4 576.5 100.2 649.9 107.2 678.8 110.8 693.8 108.6 731.7 111.5 741.1 112.9 745.2 112.2 749 109.4 758.3 99.6 790.8 100.8 813.7 125.4 900A121 121 0 0 1 129.2 953.5S113.5 991.8 123.5 992.5C123.5 992.5 124.3 995.1 127.7 993.1 127.7 993.1 133.2 999.7 139.1 996.1 139.1 996.1 144.5 1001.3 149.2 996.7A6.2 6.2 0 0 0 158.3 997.6S165.5 1003.3 169.7 997.2C169.7 997.2 177.2 999.2 163.8 959 163.8 959 158.6 916.3 155.8 908 150.4 892.1 154.2 848.6 155.4 839.3A260 260 0 0 0 152.8 776.6C150.4 761.8 157.1 734 159.6 717 164.7 681 174.7 589.1 173.4 571.8L177.5 573.5A7.6 7.6 0 0 0 182.4 571.7Z", + "width": 356 + }, + "search": [ + "underweight-bmi-r" + ] + }, + { + "uid": "0fd731d3861d150403acb49569e7c904", + "css": "weight", + "code": 59473, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M909.1 0H90.9A91 91 0 0 0 0 90.9V909.1A91 91 0 0 0 90.9 1000H909.1A91 91 0 0 0 1000 909.1V90.9A91 91 0 0 0 909.1 0ZM789.3 288.3L660.8 416.9A22.7 22.7 0 0 1 628.6 416.9 184.8 184.8 0 0 0 455.8 371.1L407 263.5A22.7 22.7 0 1 0 365.7 282.3L413.4 387.2A169.3 169.3 0 0 0 371.6 416.9 22.7 22.7 0 0 1 339.5 416.9L210.7 288.3A22.7 22.7 0 0 1 210.7 256.2 409 409 0 0 1 789.3 256.2 22.7 22.7 0 0 1 789.3 288.3Z", + "width": 1000 + }, + "search": [ + "weight" + ] + }, + { + "uid": "ac386cc9c3278233c6dacad80c722da5", + "css": "blood-pressure", + "code": 59474, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M672.7 709.1A145.5 145.5 0 1 0 818.2 854.6 145.5 145.5 0 0 0 672.7 709.1ZM724.2 828.9L685.6 867.5A18.2 18.2 0 1 1 659.8 841.7L698.4 803.1A18.2 18.2 0 0 1 724.2 828.9ZM872.7 236.4C770.7 236.4 690.9 292.4 690.9 363.7S770.7 491 872.7 491 1054.5 435 1054.5 363.7 974.7 236.4 872.7 236.4ZM972.7 381.8A18.2 18.2 0 0 1 954.6 363.7C954.6 350 914.9 327.3 872.7 327.3A18.2 18.2 0 1 1 872.7 291C921.1 291 990.9 316.8 990.9 363.7A18.2 18.2 0 0 1 972.7 381.8ZM655.8 345.5H563.7V18.2A18.2 18.2 0 0 0 545.4 0H218.2A18.2 18.2 0 0 0 200 18.2V109.1H18.2A18.2 18.2 0 0 0 0 127.3V781.8A18.2 18.2 0 0 0 18.2 800H200V854.5A18.2 18.2 0 0 0 218.2 872.7H491.8C491.8 866.7 490.9 860.7 490.9 854.5A120.6 120.6 0 0 1 491.8 836.4H236.4V800H418.2A18.2 18.2 0 0 0 436.4 781.8V127.3A18.2 18.2 0 0 0 418.2 109.1H236.4V36.4H527.3V363.6A18.2 18.2 0 0 0 545.5 381.8H655.9A130.5 130.5 0 0 1 655.8 345.5ZM272.7 272.7H345.5A18.2 18.2 0 1 1 345.5 309.1H272.7A18.2 18.2 0 1 1 272.7 272.7ZM272.7 600H345.5A18.2 18.2 0 1 1 345.5 636.4H272.7A18.2 18.2 0 1 1 272.7 600Z", + "width": 1055 + }, + "search": [ + "blood-pressure" + ] + }, + { + "uid": "3c9cc9a4258d3d419d7ad9e579cd42c3", + "css": "vital-signs", + "code": 59475, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M0 532.1V608.1H205.7A689.9 689.9 0 0 1 145.8 532.1ZM1151 532.1A690.1 690.1 0 0 1 1091 608.1H1296.7V532.1ZM420.4 222L545.9 598.4 590 532.1H699L802.2 284.8 913.5 532.3H1151A366.1 366.1 0 0 0 1218.2 324.2 318.2 318.2 0 0 0 971.8 5C843.9-20.1 726.9 46.1 648.4 183.9 570 46.6 453.5-19.1 325.8 5.6A322.2 322.2 0 0 0 78.5 324.2 366.1 366.1 0 0 0 145.8 532H317.1ZM804.8 475.7L749.7 608.1H630.7L522.9 769.6 420.5 462.3 371.9 608.1H205.7A2720.4 2720.4 0 0 0 486.1 863C529.5 899.1 648.4 1000 648.4 1000S767.4 899.1 810.6 863A2720.7 2720.7 0 0 0 1091 608.1H864.5Z", + "width": 1297 + }, + "search": [ + "vital-signs" + ] + }, + { + "uid": "a0eacf70f79e61160a5bdf698b3358bc", + "css": "ucaf", + "code": 59476, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M529.3 60V0H470.7V60C201.6 73.3 0 271.4 0 529.3V576.7L42.3 555.7A289.7 289.7 0 0 1 148.4 529.5 171.9 171.9 0 0 1 245.1 579.5L265.8 600 286.4 579.5A171.9 171.9 0 0 1 383.1 529.5 159.1 159.1 0 0 1 471 571.7V912.1A87.9 87.9 0 0 0 646.8 912.1V853.5H587.9V912.1A29.3 29.3 0 0 1 529.3 912.1V571.5A159.1 159.1 0 0 1 617.2 529.3 171.9 171.9 0 0 1 713.9 579.3L734.6 599.8 755.2 579.3A178.1 178.1 0 0 1 853.7 529.3 274.1 274.1 0 0 1 957.8 555.5L1000 576.7V529.3C1000 271.4 798.4 73.3 529.3 60Z", + "width": 1000 + }, + "search": [ + "ucaf" + ] + }, + { + "uid": "daaef425e99170daae1e6c67b843e599", + "css": "filter", + "code": 59477, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M376.3 472.5A61.7 61.7 0 0 1 392.5 514.3V969.1A30.9 30.9 0 0 0 445.1 991.1L572 845.7C589 825.4 598.4 815.2 598.4 795.1V514.4A62.2 62.2 0 0 1 614.6 472.6L978.6 77.6A46.4 46.4 0 0 0 944.5 0H46.5A46.3 46.3 0 0 0 12.4 77.6Z", + "width": 991 + }, + "search": [ + "filter" + ] + }, + { + "uid": "3c0db424e9aa58cd0ee5c3424b718630", + "css": "male-1", + "code": 59478, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M975.4 0H569.5A24.6 24.6 0 0 0 544.9 24.6V133.4A24.6 24.6 0 0 0 569.5 158H725.6L545 338.6A357.4 357.4 0 1 0 661.6 455.3L842.1 274.7V430.5A24.6 24.6 0 0 0 866.7 455.1H975.3A24.6 24.6 0 0 0 999.8 430.5V24.6A24.6 24.6 0 0 0 975.3 0ZM357.6 878.2A235.5 235.5 0 1 1 593.1 642.7 235.5 235.5 0 0 1 357.6 878.2Z", + "width": 1000 + }, + "search": [ + "male" + ] + }, + { + "uid": "d23d330639c6d971f3c52dafedcfc6c8", + "css": "female", + "code": 59479, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M864.9 747.5C966.6 645.7 999.8 626 975.5 601.7L892.8 518.9A24.6 24.6 0 0 0 857.8 518.9L746.8 629.8 666.7 549.7A359.2 359.2 0 1 0 549.9 667.8L629.7 747.5C528 849.3 494.8 869 519.1 893.3L601.4 975.9A24.6 24.6 0 0 0 636.4 975.9L746.8 865.3C866.3 984.8 884.6 1016.8 909 992.5 988.6 912.9 999.3 908.8 999.3 892.2S994.5 877.2 864.9 747.5ZM360.5 598.5A237.9 237.9 0 1 1 598.5 360.5 237.9 237.9 0 0 1 360.5 598.5Z", + "width": 999 + }, + "search": [ + "female" + ] + }, + { + "uid": "9909d0074e2de36b9ceca4513d5a81a2", + "css": "external-link", + "code": 59480, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M945 55A180.6 180.6 0 0 0 812.5 0H187.5A180.6 180.6 0 0 0 55 55 180.6 180.6 0 0 0-0.2 187.5V812.5A180.7 180.7 0 0 0 54.9 945 180.6 180.6 0 0 0 187.4 1000.1H812.5A187.9 187.9 0 0 0 1000 812.5V187.5A180.7 180.7 0 0 0 945 55ZM833.4 520.8A39 39 0 0 1 808 559.2 45.3 45.3 0 0 1 791.7 562.5 38.7 38.7 0 0 1 762.6 550.3L668.6 456.4 321 804A40.9 40.9 0 0 1 262.4 804L196 737.6A40.9 40.9 0 0 1 196 679.1L543.6 331.4 449.9 237.6A37.6 37.6 0 0 1 440.8 192.1 39 39 0 0 1 479.3 166.7H791.8A42.2 42.2 0 0 1 833.5 208.3V520.8Z", + "width": 1000 + }, + "search": [ + "external-link" + ] + }, + { + "uid": "f0593bb8f5b8b0b186421ee68844bdf4", + "css": "verify-face-2", + "code": 59481, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M724.2 694.2L587.6 666.9A31.2 31.2 0 0 1 562.5 636.3V604.9A369.6 369.6 0 0 0 588.7 558.3 267.2 267.2 0 0 1 609.9 520.3 201.7 201.7 0 0 0 673.3 420.4 93.1 93.1 0 0 0 664.2 347 551.6 551.6 0 0 0 653.6 220.2 137.4 137.4 0 0 0 621.1 119.6 96.5 96.5 0 0 0 563.1 95.2 96.8 96.8 0 0 1 541.9 90.3 218.8 218.8 0 0 0 436.3 62.5 245.8 245.8 0 0 0 218.7 212 367.2 367.2 0 0 0 210.1 325.2L209.3 347.1A99.4 99.4 0 0 0 201.4 420.4 201.2 201.2 0 0 0 264.7 520.4 275.4 275.4 0 0 1 286.2 558.3 379.2 379.2 0 0 0 312.6 604.9V636.2A31.4 31.4 0 0 1 287.5 666.9L150.8 694.2A188.1 188.1 0 0 0 0 878.1V937.5A62.6 62.6 0 0 0 62.5 1000.2H812.5A62.5 62.5 0 0 0 875 937.7V878.1A188.2 188.2 0 0 0 724.2 694.2ZM156.3 0H31.3A31.3 31.3 0 0 0 0 31.3V218.8A31.3 31.3 0 0 0 62.5 218.8V62.5H156.3A31.3 31.3 0 0 0 156.3 0ZM156.3 562.5H62.5V406.2A31.3 31.3 0 0 0 0 406.2V593.7A31.3 31.3 0 0 0 31.3 625H156.3A31.3 31.3 0 1 0 156.3 562.5ZM843.8 0H718.8A31.3 31.3 0 0 0 718.8 62.5H812.5V218.8A31.3 31.3 0 0 0 875 218.8V31.3A31.3 31.3 0 0 0 843.8 0ZM843.8 375A31.3 31.3 0 0 0 812.5 406.2V562.5H718.7A31.3 31.3 0 0 0 718.7 625H843.7A31.3 31.3 0 0 0 875 593.7V406.2A31.3 31.3 0 0 0 843.8 375Z", + "width": 875 + }, + "search": [ + "verify-face" + ] + }, + { + "uid": "e69ad471bed67e4f9115dc1e2980e44f", + "css": "verify-sms-2", + "code": 59482, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M900 0H100A100.3 100.3 0 0 0 0 100V1000L200 800H900A100.3 100.3 0 0 0 1000 700V100A100.3 100.3 0 0 0 900 0ZM350 450H250V350H350ZM550 450H450V350H550ZM750 450H650V350H750Z", + "width": 1000 + }, + "search": [ + "verify-sms" + ] + }, + { + "uid": "0736a51e3060fb655273b1c12012240d", + "css": "home", + "code": 59483, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1066.3 519.6A79.1 79.1 0 0 1 991.7 571.5H964.4V964.3A35.7 35.7 0 0 1 928.7 1000H714.4V750A178.6 178.6 0 0 0 357.2 750V1000H142.9A35.7 35.7 0 0 1 107.2 964.3V571.5H79.9A80 80 0 0 1 27.4 431.5L444.5 36.3A132.8 132.8 0 0 1 627.1 36.3L1045.2 432.3A78.7 78.7 0 0 1 1066.3 519.6Z", + "width": 1072 + }, + "search": [ + "home" + ] + }, + { + "uid": "3f56029b468ab7c3e63c354d71d9928a", + "css": "verify-finger-2", + "code": 59484, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M891.9 0H108.1A108.2 108.2 0 0 0 0 108.1V891.9A108.2 108.2 0 0 0 108.1 1000H891.9A108.2 108.2 0 0 0 1000 891.9V108.1A108.2 108.2 0 0 0 891.9 0ZM185.9 192.6C393.8 41.7 612.9 43.3 817.7 195.2A29.3 29.3 0 0 1 800.1 248.1C766.9 248.1 540.5 7.4 220.2 240A29.3 29.3 0 0 1 185.7 192.6ZM459 946A29.3 29.3 0 0 1 418.2 938.6C377.1 878.9 283.2 812.1 283.2 687.5A225.3 225.3 0 0 1 500 454.9 225.3 225.3 0 0 1 716.8 687.5V718.9A29.3 29.3 0 0 1 658.2 718.9V687.6A166.8 166.8 0 0 0 500 513.8 166.8 166.8 0 0 0 341.8 687.5C341.8 828.8 521.5 902.7 459 946ZM823.1 794.4A153.5 153.5 0 0 1 533.2 718.9C533.2 592.6 446.8 635.1 465.9 711.8A29.3 29.3 0 0 1 409.1 725.9C369.2 566.3 591.8 501.6 591.8 718.9A94.5 94.5 0 0 0 665.2 816.5C800.8 848.5 841 624.8 705.8 480.7 518.8 281.3 216.8 435 216.8 671.9A237 237 0 0 0 258.2 826.8 29.3 29.3 0 0 1 210.6 860.8 298.5 298.5 0 0 1 158.2 671.9 347.5 347.5 0 0 1 500.1 330.1C752.9 330.1 913.6 613.5 823.1 794.3ZM842.7 431.8A29.3 29.3 0 0 1 802.7 420.9C744.4 318.7 603.2 263.8 500 263.8A419.4 419.4 0 0 0 196.2 422.6 29.3 29.3 0 0 1 147.5 390.1 474.9 474.9 0 0 1 499.9 205.2C716.9 205.2 910.7 392.8 842.5 431.8Z", + "width": 1000 + }, + "search": [ + "verify-finger" + ] + }, + { + "uid": "0227a760fc30f34a1e45269b42063066", + "css": "dr-reply-active", + "code": 59485, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1023.2 547.7H1029.4A86.7 86.7 0 0 1 1162.4 438.2L1200.4 476.2V101.1A101.2 101.2 0 0 0 1099.2 0H101.2A101.2 101.2 0 0 0 0 101.1V799A101.2 101.2 0 0 0 101.2 900.2H798.6A247.7 247.7 0 0 1 1023.1 547.8ZM251.2 136.3H949.2L600.1 392.2ZM1266.6 603.7L1131.7 468.8A43.4 43.4 0 1 0 1070.5 529.9L1131.5 590.9H1023.1A204.5 204.5 0 0 0 1023.1 999.9 43.4 43.4 0 1 0 1023.1 913.2 117.9 117.9 0 0 1 1023.1 677.1H1131.5L1070.5 738A43.4 43.4 0 0 0 1131.7 799.2L1266.6 664.3A43.4 43.4 0 0 0 1266.6 603.1Z", + "width": 1279 + }, + "search": [ + "dr-reply-active" + ] + }, + { + "uid": "127b8293712c90eb2fb4157aa01060d7", + "css": "dr-reply", + "code": 59486, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1023.2 547.7H1029.4A86.7 86.7 0 0 1 1162.4 438.2L1200.4 476.2V101.1A101.2 101.2 0 0 0 1099.2 0H101.2A101.2 101.2 0 0 0 0 101.1V799A101.2 101.2 0 0 0 101.2 900.2H798.6A247.7 247.7 0 0 1 1023.1 547.8ZM251.2 136.3H949.2L600.1 392.2ZM1266.6 603.7L1131.7 468.8A43.4 43.4 0 1 0 1070.5 529.9L1131.5 590.9H1023.1A204.5 204.5 0 0 0 1023.1 999.9 43.4 43.4 0 1 0 1023.1 913.2 117.9 117.9 0 0 1 1023.1 677.1H1131.5L1070.5 738A43.4 43.4 0 0 0 1131.7 799.2L1266.6 664.3A43.4 43.4 0 0 0 1266.6 603.1Z", + "width": 1279 + }, + "search": [ + "dr-reply" + ] + }, + { + "uid": "5a9d08cf650294b80c159706c83a5dd9", + "css": "schedule-active", + "code": 59487, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M900 0H99.9A100.3 100.3 0 0 0 0 99.9V900A100.3 100.3 0 0 0 99.9 999.8H900A100.3 100.3 0 0 0 999.8 900V99.9A100.3 100.3 0 0 0 900 0ZM269.9 880H116.7V743.8H269.9V880ZM269.9 698.1H116.7V561.9H269.9V698.1ZM258.3 151.6A42.5 42.5 0 1 1 300.8 109.1 42.4 42.4 0 0 1 258.3 151.6ZM474.3 880H321.1V743.8H474.3ZM474.3 698.1H321.1V561.9H474.3ZM474.3 516.3H321.1V380H474.3ZM457.6 109.1A42.4 42.4 0 1 1 500 151.5 42.4 42.4 0 0 1 457.6 109.1ZM678.9 698.1H525.6V561.9H679.1V698.1ZM678.9 516.3H525.6V380H679.1V516.3ZM699 109.1A42.4 42.4 0 1 1 741.5 151.5 42.4 42.4 0 0 1 699 109.1ZM883.2 698.1H730.1V561.9H883.3ZM883.2 516.3H730.1V380H883.3Z", + "width": 1000 + }, + "search": [ + "schedule-active" + ] + }, + { + "uid": "819759b0d0d7626d8231f54569a21da4", + "css": "schedule", + "code": 59488, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M900 0H99.9A100.3 100.3 0 0 0 0 99.9V900A100.3 100.3 0 0 0 99.9 999.8H900A100.3 100.3 0 0 0 999.8 900V99.9A100.3 100.3 0 0 0 900 0ZM269.9 880H116.7V743.8H269.9V880ZM269.9 698.1H116.7V561.9H269.9V698.1ZM258.3 151.6A42.5 42.5 0 1 1 300.8 109.1 42.4 42.4 0 0 1 258.3 151.6ZM474.3 880H321.1V743.8H474.3ZM474.3 698.1H321.1V561.9H474.3ZM474.3 516.3H321.1V380H474.3ZM457.6 109.1A42.4 42.4 0 1 1 500 151.5 42.4 42.4 0 0 1 457.6 109.1ZM678.9 698.1H525.6V561.9H679.1V698.1ZM678.9 516.3H525.6V380H679.1V516.3ZM699 109.1A42.4 42.4 0 1 1 741.5 151.5 42.4 42.4 0 0 1 699 109.1ZM883.2 698.1H730.1V561.9H883.3ZM883.2 516.3H730.1V380H883.3Z", + "width": 1000 + }, + "search": [ + "schedule" + ] + }, + { + "uid": "0de3ebd2d27563050dd71e75e23835d6", + "css": "qr-reader-active", + "code": 59489, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M50 400A50 50 0 0 0 100 350V150A50 50 0 0 1 150 100H350A50 50 0 1 0 350 0H150A150 150 0 0 0 0 150V350A50 50 0 0 0 50 400ZM850 0H650A50 50 0 0 0 650 100H850A50 50 0 0 1 900 150V350A50 50 0 1 0 1000 350V150A150 150 0 0 0 850 0ZM950 600A50 50 0 0 0 900 650V850A50 50 0 0 1 850 900H650A50 50 0 0 0 650 1000H850A150 150 0 0 0 1000 850V650A50 50 0 0 0 950 600ZM350 900H150A50 50 0 0 1 100 850V650A50 50 0 0 0 0 650V850A150 150 0 0 0 150 1000H350A50 50 0 1 0 350 900Z", + "width": 1000 + }, + "search": [ + "qr-reader-active" + ] + }, + { + "uid": "0ea0e7f32832e2d0fbafc766c3c26d93", + "css": "qr-reader", + "code": 59490, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M50 400A50 50 0 0 0 100 350V150A50 50 0 0 1 150 100H350A50 50 0 1 0 350 0H150A150 150 0 0 0 0 150V350A50 50 0 0 0 50 400ZM850 0H650A50 50 0 0 0 650 100H850A50 50 0 0 1 900 150V350A50 50 0 1 0 1000 350V150A150 150 0 0 0 850 0ZM950 600A50 50 0 0 0 900 650V850A50 50 0 0 1 850 900H650A50 50 0 0 0 650 1000H850A150 150 0 0 0 1000 850V650A50 50 0 0 0 950 600ZM350 900H150A50 50 0 0 1 100 850V650A50 50 0 0 0 0 650V850A150 150 0 0 0 150 1000H350A50 50 0 1 0 350 900Z", + "width": 1000 + }, + "search": [ + "qr-reader" + ] + }, + { + "uid": "8f9c01cc9212f68e9b591223b5e08f55", + "css": "home-active", + "code": 59491, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1066.3 519.6A79.1 79.1 0 0 1 991.7 571.5H964.4V964.3A35.7 35.7 0 0 1 928.7 1000H714.4V750A178.6 178.6 0 0 0 357.2 750V1000H142.9A35.7 35.7 0 0 1 107.2 964.3V571.5H79.9A80 80 0 0 1 27.4 431.5L444.5 36.3A132.8 132.8 0 0 1 627.1 36.3L1045.2 432.3A78.7 78.7 0 0 1 1066.3 519.6Z", + "width": 1072 + }, + "search": [ + "home-active" + ] + }, + { + "uid": "70489544a83221e1141db519826351b5", + "css": "arrow-forward", + "code": 59492, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1357 455.8L919.2 18.3A62.5 62.5 0 1 0 830.8 106.7L1161.6 437.6H62.5A62.5 62.5 0 1 0 62.5 562.6H1161.7L830.9 893.4A62.5 62.5 0 1 0 919.3 981.8L1357 544.2A62.5 62.5 0 0 0 1357 455.8Z", + "width": 1375 + }, + "search": [ + "arrow-forward" + ] + }, + { + "uid": "d8e875c19306114380e834be3d91f71e", + "css": "heart-rate", + "code": 59493, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M0 532.1V608.1H205.7A689.9 689.9 0 0 1 145.8 532.1ZM1151 532.1A690.1 690.1 0 0 1 1091 608.1H1296.7V532.1ZM420.4 222L545.9 598.4 590 532.1H699L802.2 284.8 913.5 532.3H1151A366.1 366.1 0 0 0 1218.2 324.2 318.2 318.2 0 0 0 971.8 5C843.9-20.1 726.9 46.1 648.4 183.9 570 46.6 453.5-19.1 325.8 5.6A322.2 322.2 0 0 0 78.5 324.2 366.1 366.1 0 0 0 145.8 532H317.1ZM804.8 475.7L749.7 608.1H630.7L522.9 769.6 420.5 462.3 371.9 608.1H205.7A2720.4 2720.4 0 0 0 486.1 863C529.5 899.1 648.4 1000 648.4 1000S767.4 899.1 810.6 863A2720.7 2720.7 0 0 0 1091 608.1H864.5Z", + "width": 1297 + }, + "search": [ + "heart-rate" + ] + }, + { + "uid": "e2f6f0a56d4570c777c8bd5c50e38ea7", + "css": "menu_icon_active-1", + "code": 59494, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M406.7 0H83.2A83.3 83.3 0 0 0 0 83.2V406.7A83.3 83.3 0 0 0 83.2 489.9H406.7A83.3 83.3 0 0 0 489.9 406.7V83.2A83.3 83.3 0 0 0 406.7 0ZM406.7 449.1H83.2A42.4 42.4 0 0 1 40.8 406.7V83.2A42.4 42.4 0 0 1 83.2 40.8H406.7A42.4 42.4 0 0 1 449 83.2V406.7H449A42.4 42.4 0 0 1 406.7 449.1ZM916.8 0H593.3A83.3 83.3 0 0 0 510.1 83.2V406.7A83.3 83.3 0 0 0 593.3 489.9H916.8A83.3 83.3 0 0 0 1000 406.7V83.2A83.3 83.3 0 0 0 916.8 0ZM959.1 406.7A42.4 42.4 0 0 1 916.8 449.1H593.3A42.4 42.4 0 0 1 550.9 406.7V83.2A42.4 42.4 0 0 1 593.3 40.8H916.8A42.4 42.4 0 0 1 959.1 83.2ZM406.7 510.1H83.2A83.3 83.3 0 0 0 0 593.3V916.8A83.3 83.3 0 0 0 83.2 1000H406.7A83.3 83.3 0 0 0 489.9 916.8V593.3A83.3 83.3 0 0 0 406.7 510.1ZM406.7 959.2H83.2A42.4 42.4 0 0 1 40.8 916.8V593.3A42.4 42.4 0 0 1 83.2 550.9H406.7A42.4 42.4 0 0 1 449 593.3V916.8H449A42.4 42.4 0 0 1 406.7 959.1ZM916.8 510.1H593.3A83.3 83.3 0 0 0 510.1 593.3V916.8A83.3 83.3 0 0 0 593.3 1000H916.8A83.3 83.3 0 0 0 1000 916.8V593.3A83.3 83.3 0 0 0 916.8 510.1ZM959.1 916.8A42.4 42.4 0 0 1 916.8 959.2H593.3A42.4 42.4 0 0 1 550.9 916.8V593.3A42.4 42.4 0 0 1 593.3 550.9H916.8A42.4 42.4 0 0 1 959.1 593.3Z", + "width": 1000 + }, + "search": [ + "menu_icon_active" + ] + }, + { + "uid": "f7eb1344b3a40f36bb4d32cdd0d76496", + "css": "message_icon-1", + "code": 59495, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1182.9 44.3A100 100 0 0 0 1099.9 0.1H100A100 100 0 0 0 0 100V900A100 100 0 0 0 100 1000H1110.4A100 100 0 0 0 1200 900V100A100 100 0 0 0 1182.9 44.3ZM99.9 40H1100A60 60 0 0 1 1138.8 54.2L1061.2 128.2 734 440 612.8 555.7A20 20 0 0 1 589 555.7L466 440 60 54.3A60 60 0 0 1 100 40ZM39.9 90.4L423.2 454 40 820V100A59.7 59.7 0 0 1 40 90.4ZM1160 900A60 60 0 0 1 1107.6 960H100A60 60 0 0 1 40 900V874.6L452.2 481.6 562.4 586.4A60 60 0 0 0 571 592.2 58.4 58.4 0 0 0 600 600 63 63 0 0 0 640 586L748.8 482.4 1160 874.2ZM1160 100V819L776.8 454.7 1160 90.1A61.4 61.4 0 0 1 1160 100Z", + "width": 1200 + }, + "search": [ + "message_icon" + ] + }, + { + "uid": "ed4536ee2a51bde352570554ae089661", + "css": "message_icon_active-1", + "code": 59496, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1182.9 44.3A100 100 0 0 0 1099.9 0.1H100A100 100 0 0 0 0 100V900A100 100 0 0 0 100 1000H1110.4A100 100 0 0 0 1200 900V100A100 100 0 0 0 1182.9 44.3ZM99.9 40H1100A60 60 0 0 1 1138.8 54.2L1061.2 128.2 734 440 612.8 555.7A20 20 0 0 1 589 555.7L466 440 60 54.3A60 60 0 0 1 100 40ZM39.9 90.4L423.2 454 40 820V100A59.7 59.7 0 0 1 40 90.4ZM1160 900A60 60 0 0 1 1107.6 960H100A60 60 0 0 1 40 900V874.6L452.2 481.6 562.4 586.4A60 60 0 0 0 571 592.2 58.4 58.4 0 0 0 600 600 63 63 0 0 0 640 586L748.8 482.4 1160 874.2ZM1160 100V819L776.8 454.7 1160 90.1A61.4 61.4 0 0 1 1160 100Z", + "width": 1200 + }, + "search": [ + "message_icon_active" + ] + }, + { + "uid": "f585c0032b4aa288a0dfb78f502d4d1c", + "css": "scdedule_icon_active-1", + "code": 59497, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M445.8 693.2A28.8 28.8 0 0 0 486.5 693.2L589.2 590.5A28.8 28.8 0 1 0 548.5 549.8L466.1 632.1 428.6 594.6A28.8 28.8 0 1 0 387.9 635.2ZM445.8 693.2M488.5 849.9A228.4 228.4 0 1 0 260.1 621.5 228.7 228.7 0 0 0 488.5 849.9ZM488.5 450.6A170.8 170.8 0 1 1 317.6 621.5 171 171 0 0 1 488.5 450.6ZM488.5 450.6M881.5 62.9H827.7V29.5A29.5 29.5 0 0 0 768.6 29.5V62.9H710.6V29.5A29.5 29.5 0 0 0 651.5 29.5V62.9H325.5V29.5A29.5 29.5 0 0 0 266.4 29.5V62.9H208.4V29.5A29.5 29.5 0 0 0 149.4 29.5V62.9H95.5A95.6 95.6 0 0 0 0 158.4V904.5A95.6 95.6 0 0 0 95.5 1000H881.5A95.6 95.6 0 0 0 976.9 904.5V158.4A95.6 95.6 0 0 0 881.5 62.9ZM918 904.5A36.5 36.5 0 0 1 881.5 940.9H95.5A36.5 36.5 0 0 1 59 904.5V308.4H917.9ZM59.1 158.4A36.5 36.5 0 0 1 95.5 121.9H149.4V155.3A29.5 29.5 0 0 0 208.4 155.3V121.9H266.4V155.3A29.5 29.5 0 0 0 325.5 155.3V121.9H651.5V155.3A29.5 29.5 0 0 0 710.6 155.3V121.9H768.6V155.3A29.5 29.5 0 0 0 827.7 155.3V121.9H881.5A36.5 36.5 0 0 1 918 158.4V249.3H59.1ZM59.1 158.4", + "width": 977 + }, + "search": [ + "scdedule_icon_active" + ] + }, + { + "uid": "cc3ade5c55f86a777648c695856d7bb6", + "css": "ovrweight-bmi-r-1", + "code": 59498, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M240.4 571.7C238.7 589.1 251.9 680.9 258.6 716.9 261.9 734 270.7 761.8 267.5 776.5A194.7 194.7 0 0 0 264.2 839.2C265.7 848.6 270.7 892 263.6 907.9A454.8 454.8 0 0 0 253.1 958.9C235.3 999.1 245.3 997.1 245.3 997.1 250.8 1003.2 260.3 997.6 260.3 997.6A9.9 9.9 0 0 0 272.4 996.6 12 12 0 0 0 285.7 996.1 14.6 14.6 0 0 0 300.6 993C305.1 995 306.1 992.5 306.1 992.5 319.5 991.7 298.7 953.5 298.7 953.5A94.6 94.6 0 0 1 303.6 900C336.1 813.7 337.7 790.8 324.7 758.3 321.1 748.9 320.2 745.2 321.8 741.1 325.7 731.7 322.9 693.9 327.6 678.8 336.8 649.9 345.8 576.4 350.5 542.1 356.8 495.9 328.1 434 328.1 434 321.9 408.8 331.1 319 331.1 319 343.9 336.9 343.4 368.6 343.4 368.6 341.4 401.9 373.3 452.7 373.3 452.7A128.3 128.3 0 0 1 394.5 495.1C394.5 501.1 393 515.8 393 515.8L393.6 528.5A163.7 163.7 0 0 1 395.6 548.4C393.2 581.6 399.1 575.4 399.1 575.4 404.1 575.4 409.5 548.6 409.5 548.6 409.5 555.5 407.6 576.1 411.8 583.9 416.8 593.2 420.4 582.3 420.5 580.1 421.8 537.8 424.6 548.9 424.6 548.9 427.4 583.2 430.8 591 436.8 588.3 441.4 586.3 437.2 547.1 437.2 547.1 445.1 570.4 451.1 574.1 451.1 574.1 464.1 582.3 456.1 559.7 454.3 555.2A118.2 118.2 0 0 1 444.3 523C456.4 544.5 465.4 543.7 465.4 543.7 477.2 540.3 455.1 510 442.3 495.4A118.3 118.3 0 0 1 424.7 472.2 253.7 253.7 0 0 1 417.7 430.2C416.5 392.3 406.1 375.9 406.1 375.9 388.2 350.3 384.9 302.5 384.9 302.5L384.1 221.9C377.8 166.9 332.7 166.5 332.7 166.5 287.1 160.5 280.7 147.3 280.7 147.3 271 134.8 276.6 110.8 276.6 110.8A41.5 41.5 0 0 0 287.7 89.4C301 80.3 300.4 66.9 294.2 67 289.3 67.1 290.4 63.4 290.4 63.4 298.7 3.1 239 0 239 0H229.9S170.1 3.1 178.4 63.4C178.4 63.4 179.6 67.1 174.6 67 168.4 66.8 167.9 80.3 181.1 89.4A41.4 41.4 0 0 0 192.3 110.8S197.8 134.8 188.1 147.2C188.1 147.2 181.8 160.5 136.1 166.6 136.1 166.6 90.9 167 84.7 222L83.8 302.6S80.5 350.3 62.6 375.9C62.6 375.9 52.3 392.4 51.1 430.2A255.3 255.3 0 0 1 44 472.3 117.1 117.1 0 0 1 26.5 495.5C13.5 510-8.4 540.2 3.3 543.7 3.3 543.7 12.5 544.5 24.4 523.1A117 117 0 0 1 14.6 555.2C12.7 559.6 4.6 582.3 17.7 574.2 17.7 574.2 23.7 570.4 31.5 547.1 31.5 547.1 27.3 586.4 32 588.4 38.1 591 41.5 583.3 44.2 548.9 44.2 548.9 47.1 537.8 48.4 580.2 48.4 582.4 52 593.3 57 584 61.2 576.2 59.3 555.5 59.3 548.6 59.3 548.6 64.7 575.4 69.7 575.4 69.7 575.4 75.7 581.7 73.2 548.4A150.7 150.7 0 0 1 75.2 528.6L75.8 515.8S74.3 501.2 74.3 495.1A128.1 128.1 0 0 1 95.5 452.7S127.5 401.9 125.4 368.7C125.4 368.7 125 337 137.8 319 137.8 319 146.9 408.8 140.7 434 140.7 434 112 496 118.3 542.2 123 576.5 132 649.9 141.2 678.9 145.9 693.9 143.1 731.7 146.9 741.2 148.7 745.3 147.8 749.1 144 758.4 131.2 790.8 132.9 813.7 165.3 900A93.8 93.8 0 0 1 170.2 953.5S149.5 991.7 162.7 992.5C162.7 992.5 163.8 995 168.3 993A14.6 14.6 0 0 0 183.2 996.1 12 12 0 0 0 196.5 996.6 9.9 9.9 0 0 0 208.6 997.6S218 1003.3 223.6 997.1C223.6 997.1 233.5 999.1 215.8 958.9A452.6 452.6 0 0 0 205.3 907.9C198.2 892 203.2 848.5 204.7 839.2A198.1 198.1 0 0 0 201.4 776.5C198.1 761.8 207 734 210.2 716.9 217 680.9 230.2 589.1 228.5 571.7L233.9 573.4A11.9 11.9 0 0 0 240.4 571.7Z", + "width": 469 + }, + "search": [ + "ovrweight-bmi-r" + ] + }, + { + "uid": "0032e9701d42cc0d1967b6a1256c2bbe", + "css": "temperature-1", + "code": 59500, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M394.7 0A131.7 131.7 0 0 1 526.3 131.8V686.9A187 187 0 0 1 579 815.8 184.2 184.2 0 1 1 263.2 686.9V131.6A131.4 131.4 0 0 1 394.7 0ZM394.7 315.8A26.5 26.5 0 0 0 368.4 342.1V741.3A79 79 0 1 0 473.7 815.8 79.9 79.9 0 0 0 421.1 741.3V342.1A26.7 26.7 0 0 0 394.7 315.8ZM184.2 631.6A26.3 26.3 0 1 1 184.2 684.3H52.6A26.3 26.3 0 1 1 52.6 631.6ZM710.6 289.6A105.3 105.3 0 0 1 815.7 394.7 25.8 25.8 0 0 1 789.5 422.3 26.5 26.5 0 0 1 763.1 394.9 52.6 52.6 0 0 0 657.9 394.9V553A52.6 52.6 0 1 0 763.2 553 26.3 26.3 0 0 1 815.8 553 105.3 105.3 0 0 1 605.3 553V394.7A105.3 105.3 0 0 1 710.6 289.6ZM184.2 552.6A26.3 26.3 0 1 1 184.2 605.3H157.9A26.3 26.3 0 0 1 157.9 552.6ZM184.2 447.4A26.3 26.3 0 0 1 210.6 473.7 26.7 26.7 0 0 1 184.2 500H105.3A26.3 26.3 0 0 1 78.9 473.7 26 26 0 0 1 105.3 447.4ZM921.1 289.5A52.6 52.6 0 1 1 868.5 342.1 52.6 52.6 0 0 1 921.1 289.6ZM184.2 342.1A26.3 26.3 0 1 1 184.2 394.8H78.9A26.3 26.3 0 0 1 78.9 342.1ZM184.2 236.9A26.3 26.3 0 0 1 184.2 289.5H131.6A26.3 26.3 0 0 1 131.6 236.9ZM184.2 131.6A26.3 26.3 0 1 1 184.2 184.3H26.3A26.3 26.3 0 1 1 26.3 131.6Z", + "width": 974 + }, + "search": [ + "temperature" + ] + }, + { + "uid": "208bf58358a06153619709f72e19051d", + "css": "underweight-bmi-1", + "code": 59499, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M182.4 571.7C181.1 589.1 191.1 680.9 196.2 716.9 198.7 734 205.4 761.8 203 776.5A255.5 255.5 0 0 0 200.4 839.2C201.6 848.6 205.4 892 200 907.9 197.2 916.3 192 958.9 192 958.9 178.6 999.1 186.1 997.1 186.1 997.1 190.3 1003.2 197.5 997.6 197.5 997.6A6.3 6.3 0 0 0 206.7 996.6C211.4 1001.2 216.8 996.1 216.8 996.1 222.7 999.7 228.1 993 228.1 993 231.5 995 232.3 992.5 232.3 992.5 242.4 991.7 226.7 953.5 226.7 953.5A122.1 122.1 0 0 1 230.4 900C255 813.7 256.3 790.8 246.5 758.3 243.7 748.9 243 745.2 244.3 741.1 247.2 731.7 245.1 693.9 248.7 678.8 255.6 649.9 262.4 576.4 266 542.1 270.7 495.9 249 434 249 434 244.2 408.8 251.2 319 251.2 319A126.2 126.2 0 0 1 260.6 368.6C259 401.9 283.2 452.7 283.2 452.7A149.5 149.5 0 0 1 299.3 495.1C299.3 501.1 298.2 515.8 298.2 515.8L298.6 528.5C298.8 531.8 300.4 543 300.1 548.4 298.3 581.6 302.8 575.4 302.8 575.4 306.5 575.4 310.7 548.6 310.7 548.6A135.2 135.2 0 0 0 312.4 583.9C316.2 593.2 318.9 582.3 319 580.1 320 537.8 322.1 548.9 322.1 548.9 324.2 583.2 326.8 591 331.4 588.3 334.9 586.3 331.7 547.1 331.7 547.1 337.7 570.4 342.2 574.1 342.2 574.1 352.1 582.3 346 559.7 344.6 555.2A148.3 148.3 0 0 1 337.1 523C346.2 544.5 353.1 543.7 353.1 543.7 362 540.3 345.3 510 335.6 495.4A121.6 121.6 0 0 1 322.3 472.2 328.7 328.7 0 0 1 317 430.2 145.7 145.7 0 0 0 308.1 375.9C294.6 350.3 292.1 302.5 292.1 302.5L291.5 221.9C286.7 166.9 252.5 166.5 252.5 166.5 217.8 160.4 213 147.2 213 147.2 205.7 134.7 209.9 110.8 209.9 110.8A47.8 47.8 0 0 0 218.3 89.4C228.4 80.2 227.9 66.8 223.3 66.9 219.5 67.1 220.4 63.4 220.4 63.4 226.6 3.1 181.3 0 181.3 0H174.4S129 3.1 135.4 63.4C135.4 63.4 136.2 67.1 132.5 67 127.8 66.8 127.4 80.3 137.4 89.4A47.7 47.7 0 0 0 145.9 110.8S150.1 134.8 142.8 147.2C142.8 147.2 138 160.5 103.3 166.6 103.3 166.6 69 167 64.3 222L63.7 302.6S61.1 350.3 47.5 375.9A146.2 146.2 0 0 0 38.8 430.2 330.8 330.8 0 0 1 33.4 472.3 120.2 120.2 0 0 1 20.1 495.5C10.2 510-6.3 540.2 2.5 543.7 2.5 543.7 9.4 544.5 18.5 523.1A146.9 146.9 0 0 1 11.1 555.2C9.6 559.6 3.5 582.3 13.4 574.2 13.4 574.2 18 570.4 23.9 547.1 23.9 547.1 20.7 586.4 24.3 588.4 28.9 591 31.5 583.3 33.6 548.9 33.6 548.9 35.7 537.8 36.7 580.2 36.7 582.4 39.4 593.3 43.2 584A133.3 133.3 0 0 0 45 548.6S49.1 575.4 52.9 575.4C52.9 575.4 57.4 581.7 55.6 548.4A197.2 197.2 0 0 1 57.1 528.6L57.5 515.8S56.4 501.2 56.4 495.1A149.3 149.3 0 0 1 72.5 452.7S96.7 401.8 95.2 368.6A126.5 126.5 0 0 1 104.6 319S111.5 408.8 106.8 434C106.8 434 85 495.9 89.8 542.1 93.4 576.5 100.2 649.9 107.2 678.8 110.8 693.8 108.6 731.7 111.5 741.1 112.9 745.2 112.2 749 109.4 758.3 99.6 790.8 100.8 813.7 125.4 900A121 121 0 0 1 129.2 953.5S113.5 991.8 123.5 992.5C123.5 992.5 124.3 995.1 127.7 993.1 127.7 993.1 133.2 999.7 139.1 996.1 139.1 996.1 144.5 1001.3 149.2 996.7A6.2 6.2 0 0 0 158.3 997.6S165.5 1003.3 169.7 997.2C169.7 997.2 177.2 999.2 163.8 959 163.8 959 158.6 916.3 155.8 908 150.4 892.1 154.2 848.6 155.4 839.3A260 260 0 0 0 152.8 776.6C150.4 761.8 157.1 734 159.6 717 164.7 681 174.7 589.1 173.4 571.8L177.5 573.5A7.6 7.6 0 0 0 182.4 571.7Z", + "width": 356 + }, + "search": [ + "underweight-bmi" + ] + }, + { + "uid": "0790b855889a2e90bc58c10bf62b18b7", + "css": "underweight-bmi-r-1", + "code": 59501, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M182.4 571.7C181.1 589.1 191.1 680.9 196.2 716.9 198.7 734 205.4 761.8 203 776.5A255.5 255.5 0 0 0 200.4 839.2C201.6 848.6 205.4 892 200 907.9 197.2 916.3 192 958.9 192 958.9 178.6 999.1 186.1 997.1 186.1 997.1 190.3 1003.2 197.5 997.6 197.5 997.6A6.3 6.3 0 0 0 206.7 996.6C211.4 1001.2 216.8 996.1 216.8 996.1 222.7 999.7 228.1 993 228.1 993 231.5 995 232.3 992.5 232.3 992.5 242.4 991.7 226.7 953.5 226.7 953.5A122.1 122.1 0 0 1 230.4 900C255 813.7 256.3 790.8 246.5 758.3 243.7 748.9 243 745.2 244.3 741.1 247.2 731.7 245.1 693.9 248.7 678.8 255.6 649.9 262.4 576.4 266 542.1 270.7 495.9 249 434 249 434 244.2 408.8 251.2 319 251.2 319A126.2 126.2 0 0 1 260.6 368.6C259 401.9 283.2 452.7 283.2 452.7A149.5 149.5 0 0 1 299.3 495.1C299.3 501.1 298.2 515.8 298.2 515.8L298.6 528.5C298.8 531.8 300.4 543 300.1 548.4 298.3 581.6 302.8 575.4 302.8 575.4 306.5 575.4 310.7 548.6 310.7 548.6A135.2 135.2 0 0 0 312.4 583.9C316.2 593.2 318.9 582.3 319 580.1 320 537.8 322.1 548.9 322.1 548.9 324.2 583.2 326.8 591 331.4 588.3 334.9 586.3 331.7 547.1 331.7 547.1 337.7 570.4 342.2 574.1 342.2 574.1 352.1 582.3 346 559.7 344.6 555.2A148.3 148.3 0 0 1 337.1 523C346.2 544.5 353.1 543.7 353.1 543.7 362 540.3 345.3 510 335.6 495.4A121.6 121.6 0 0 1 322.3 472.2 328.7 328.7 0 0 1 317 430.2 145.7 145.7 0 0 0 308.1 375.9C294.6 350.3 292.1 302.5 292.1 302.5L291.5 221.9C286.7 166.9 252.5 166.5 252.5 166.5 217.8 160.4 213 147.2 213 147.2 205.7 134.7 209.9 110.8 209.9 110.8A47.8 47.8 0 0 0 218.3 89.4C228.4 80.2 227.9 66.8 223.3 66.9 219.5 67.1 220.4 63.4 220.4 63.4 226.6 3.1 181.3 0 181.3 0H174.4S129 3.1 135.4 63.4C135.4 63.4 136.2 67.1 132.5 67 127.8 66.8 127.4 80.3 137.4 89.4A47.7 47.7 0 0 0 145.9 110.8S150.1 134.8 142.8 147.2C142.8 147.2 138 160.5 103.3 166.6 103.3 166.6 69 167 64.3 222L63.7 302.6S61.1 350.3 47.5 375.9A146.2 146.2 0 0 0 38.8 430.2 330.8 330.8 0 0 1 33.4 472.3 120.2 120.2 0 0 1 20.1 495.5C10.2 510-6.3 540.2 2.5 543.7 2.5 543.7 9.4 544.5 18.5 523.1A146.9 146.9 0 0 1 11.1 555.2C9.6 559.6 3.5 582.3 13.4 574.2 13.4 574.2 18 570.4 23.9 547.1 23.9 547.1 20.7 586.4 24.3 588.4 28.9 591 31.5 583.3 33.6 548.9 33.6 548.9 35.7 537.8 36.7 580.2 36.7 582.4 39.4 593.3 43.2 584A133.3 133.3 0 0 0 45 548.6S49.1 575.4 52.9 575.4C52.9 575.4 57.4 581.7 55.6 548.4A197.2 197.2 0 0 1 57.1 528.6L57.5 515.8S56.4 501.2 56.4 495.1A149.3 149.3 0 0 1 72.5 452.7S96.7 401.8 95.2 368.6A126.5 126.5 0 0 1 104.6 319S111.5 408.8 106.8 434C106.8 434 85 495.9 89.8 542.1 93.4 576.5 100.2 649.9 107.2 678.8 110.8 693.8 108.6 731.7 111.5 741.1 112.9 745.2 112.2 749 109.4 758.3 99.6 790.8 100.8 813.7 125.4 900A121 121 0 0 1 129.2 953.5S113.5 991.8 123.5 992.5C123.5 992.5 124.3 995.1 127.7 993.1 127.7 993.1 133.2 999.7 139.1 996.1 139.1 996.1 144.5 1001.3 149.2 996.7A6.2 6.2 0 0 0 158.3 997.6S165.5 1003.3 169.7 997.2C169.7 997.2 177.2 999.2 163.8 959 163.8 959 158.6 916.3 155.8 908 150.4 892.1 154.2 848.6 155.4 839.3A260 260 0 0 0 152.8 776.6C150.4 761.8 157.1 734 159.6 717 164.7 681 174.7 589.1 173.4 571.8L177.5 573.5A7.6 7.6 0 0 0 182.4 571.7Z", + "width": 356 + }, + "search": [ + "underweight-bmi-r" + ] + }, + { + "uid": "28c921a73f854e0b9d7882278180cb1c", + "css": "weight-1", + "code": 59502, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M909.1 0H90.9A91 91 0 0 0 0 90.9V909.1A91 91 0 0 0 90.9 1000H909.1A91 91 0 0 0 1000 909.1V90.9A91 91 0 0 0 909.1 0ZM789.3 288.3L660.8 416.9A22.7 22.7 0 0 1 628.6 416.9 184.8 184.8 0 0 0 455.8 371.1L407 263.5A22.7 22.7 0 1 0 365.7 282.3L413.4 387.2A169.3 169.3 0 0 0 371.6 416.9 22.7 22.7 0 0 1 339.5 416.9L210.7 288.3A22.7 22.7 0 0 1 210.7 256.2 409 409 0 0 1 789.3 256.2 22.7 22.7 0 0 1 789.3 288.3Z", + "width": 1000 + }, + "search": [ + "weight" + ] + }, + { + "uid": "b2fce7f0f65f22d51853206d59bbe9f5", + "css": "blood-pressure-1", + "code": 59503, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M672.7 709.1A145.5 145.5 0 1 0 818.2 854.6 145.5 145.5 0 0 0 672.7 709.1ZM724.2 828.9L685.6 867.5A18.2 18.2 0 1 1 659.8 841.7L698.4 803.1A18.2 18.2 0 0 1 724.2 828.9ZM872.7 236.4C770.7 236.4 690.9 292.4 690.9 363.7S770.7 491 872.7 491 1054.5 435 1054.5 363.7 974.7 236.4 872.7 236.4ZM972.7 381.8A18.2 18.2 0 0 1 954.6 363.7C954.6 350 914.9 327.3 872.7 327.3A18.2 18.2 0 1 1 872.7 291C921.1 291 990.9 316.8 990.9 363.7A18.2 18.2 0 0 1 972.7 381.8ZM655.8 345.5H563.7V18.2A18.2 18.2 0 0 0 545.4 0H218.2A18.2 18.2 0 0 0 200 18.2V109.1H18.2A18.2 18.2 0 0 0 0 127.3V781.8A18.2 18.2 0 0 0 18.2 800H200V854.5A18.2 18.2 0 0 0 218.2 872.7H491.8C491.8 866.7 490.9 860.7 490.9 854.5A120.6 120.6 0 0 1 491.8 836.4H236.4V800H418.2A18.2 18.2 0 0 0 436.4 781.8V127.3A18.2 18.2 0 0 0 418.2 109.1H236.4V36.4H527.3V363.6A18.2 18.2 0 0 0 545.5 381.8H655.9A130.5 130.5 0 0 1 655.8 345.5ZM272.7 272.7H345.5A18.2 18.2 0 1 1 345.5 309.1H272.7A18.2 18.2 0 1 1 272.7 272.7ZM272.7 600H345.5A18.2 18.2 0 1 1 345.5 636.4H272.7A18.2 18.2 0 1 1 272.7 600Z", + "width": 1055 + }, + "search": [ + "blood-pressure" + ] + }, + { + "uid": "2c5321439f574f1b3d74a71ae040512c", + "css": "filter-1", + "code": 59532, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M376.3 472.5A61.7 61.7 0 0 1 392.5 514.3V969.1A30.9 30.9 0 0 0 445.1 991.1L572 845.7C589 825.4 598.4 815.2 598.4 795.1V514.4A62.2 62.2 0 0 1 614.6 472.6L978.6 77.6A46.4 46.4 0 0 0 944.5 0H46.5A46.3 46.3 0 0 0 12.4 77.6Z", + "width": 991 + }, + "search": [ + "filter" + ] + }, + { + "uid": "d4c35e5489591eb085e2936014910df8", + "css": "male-3", + "code": 59533, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M975.4 0H569.5A24.6 24.6 0 0 0 544.9 24.6V133.4A24.6 24.6 0 0 0 569.5 158H725.6L545 338.6A357.4 357.4 0 1 0 661.6 455.3L842.1 274.7V430.5A24.6 24.6 0 0 0 866.7 455.1H975.3A24.6 24.6 0 0 0 999.8 430.5V24.6A24.6 24.6 0 0 0 975.3 0ZM357.6 878.2A235.5 235.5 0 1 1 593.1 642.7 235.5 235.5 0 0 1 357.6 878.2Z", + "width": 1000 + }, + "search": [ + "male" + ] + }, + { + "uid": "cb1acb9603d7bf118642dcc8374a07c8", + "css": "search-2", + "code": 59534, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M402.7 804.7A401.8 401.8 0 0 0 649.6 719.9L915.7 986A50 50 0 0 0 986.5 915.3L720.3 649.2A402.6 402.6 0 1 0 402.7 804.7ZM188.8 188.6A302.4 302.4 0 1 1 188.8 616.2H188.8A301.2 301.2 0 0 1 187.1 190.2L188.6 188.6Z", + "width": 1001 + }, + "search": [ + "search" + ] + }, + { + "uid": "cfca37b29e6fa5d9ef1531bfae25b687", + "css": "send-1", + "code": 59535, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1000.1 0L0 562.5 319.4 680.9 812.5 218.8 437.6 724.5 437.9 724.5 437.5 724.5V1000.1L616.7 790.9 843.7 875Z", + "width": 1000 + }, + "search": [ + "send" + ] + }, + { + "uid": "20326e34220e9e1dac3393ba9b386734", + "css": "female-2", + "code": 59531, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M864.9 747.5C966.6 645.7 999.8 626 975.5 601.7L892.8 518.9A24.6 24.6 0 0 0 857.8 518.9L746.8 629.8 666.7 549.7A359.2 359.2 0 1 0 549.9 667.8L629.7 747.5C528 849.3 494.8 869 519.1 893.3L601.4 975.9A24.6 24.6 0 0 0 636.4 975.9L746.8 865.3C866.3 984.8 884.6 1016.8 909 992.5 988.6 912.9 999.3 908.8 999.3 892.2S994.5 877.2 864.9 747.5ZM360.5 598.5A237.9 237.9 0 1 1 598.5 360.5 237.9 237.9 0 0 1 360.5 598.5Z", + "width": 999 + }, + "search": [ + "female" + ] + }, + { + "uid": "342382cdcec431ecf1c796b8fe0426c2", + "css": "create-episode-1", + "code": 59527, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M825.8 83.3A125 125 0 0 0 708.4 0H125A125.4 125.4 0 0 0 0 125V708.4A125 125 0 0 0 83.3 825.9V291.7A208.3 208.3 0 0 1 291.7 83.3ZM875 166.7H291.6A125.4 125.4 0 0 0 166.7 291.6V875A125.4 125.4 0 0 0 291.6 1000H875A125.4 125.4 0 0 0 1000 875V291.6A125.4 125.4 0 0 0 875 166.7ZM750 625H625V750A41.7 41.7 0 0 1 541.7 750V625H416.7A41.7 41.7 0 1 1 416.7 541.7H541.7V416.7A41.7 41.7 0 1 1 625 416.7V541.7H750A41.7 41.7 0 0 1 750 625Z", + "width": 1000 + }, + "search": [ + "create-episode" + ] + }, + { + "uid": "59afe1ac64e42bf7f65ca1f02f61239b", + "css": "health-bmi-r-1", + "code": 59504, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M215.7 571.7C214.2 589.1 226 680.9 232 716.9 234.9 734 242.9 761.8 240 776.5A216.6 216.6 0 0 0 237 839.2C238.4 848.6 242.9 892 236.5 907.9A500.9 500.9 0 0 0 227.1 958.9C211.1 999.1 220.1 997.1 220.1 997.1 225 1003.2 233.5 997.6 233.5 997.6A8.2 8.2 0 0 0 244.4 996.6 9.9 9.9 0 0 0 256.4 996.1 12.2 12.2 0 0 0 269.8 993C273.7 995 274.7 992.5 274.7 992.5 286.7 991.7 268 953.5 268 953.5A104.5 104.5 0 0 1 272.5 900C301.6 813.7 303 790.8 291.4 758.3 288.1 748.9 287.3 745.2 288.8 741.1 292.3 731.7 289.8 693.9 294 678.8 302.2 649.9 310.3 576.4 314.5 542.1 320.1 495.9 294.4 434 294.4 434 288.8 408.8 297 319 297 319 308.6 336.9 308.1 368.6 308.1 368.6 306.3 401.9 335 452.7 335 452.7A135.3 135.3 0 0 1 354 495.1C354 501.1 352.7 515.8 352.7 515.8L353.2 528.5A181.9 181.9 0 0 1 354.9 548.4C352.8 581.7 358 575.4 358 575.4 362.5 575.4 367.4 548.6 367.4 548.6A114.7 114.7 0 0 0 369.5 584C373.9 593.2 377.2 582.4 377.2 580.2 378.4 537.8 381 548.9 381 548.9 383.4 583.3 386.5 591 391.9 588.3 396.1 586.4 392.3 547.1 392.3 547.1 399.4 570.4 404.7 574.1 404.7 574.1 416.4 582.4 409.2 559.7 407.6 555.2A128.9 128.9 0 0 1 398.7 523.1C409.5 544.5 417.6 543.7 417.6 543.7 428.1 540.3 408.4 510 396.8 495.5A118.2 118.2 0 0 1 381.1 472.2 280.5 280.5 0 0 1 374.8 430.2 126.3 126.3 0 0 0 364.3 375.9C348.3 350.3 345.3 302.6 345.3 302.6L344.6 222C339 167 298.5 166.6 298.5 166.6 257.5 160.5 251.8 147.3 251.8 147.3 243.2 134.8 248.1 110.8 248.1 110.8A43.5 43.5 0 0 0 258.1 89.4C270 80.3 269.4 66.9 263.9 67 259.5 67.1 260.5 63.4 260.5 63.4 268 3.1 214.4 0 214.4 0H206.2S152.6 3.1 160.1 63.4C160.1 63.4 161.1 67.1 156.6 67 151.1 66.8 150.6 80.3 162.5 89.4A43.5 43.5 0 0 0 172.5 110.8S177.4 134.8 168.8 147.2C168.8 147.2 163.1 160.5 122.1 166.6 122.1 166.6 81.5 167 76 222L75.2 302.6S72.3 350.3 56.2 375.9A126.8 126.8 0 0 0 45.8 430.2 282.3 282.3 0 0 1 39.5 472.3 116.9 116.9 0 0 1 23.8 495.5C12.1 510-7.5 540.2 3 543.7 3 543.7 11.2 544.5 21.9 523.1A127.6 127.6 0 0 1 13.1 555.2C11.4 559.6 4.1 582.3 15.8 574.2 15.8 574.2 21.2 570.4 28.3 547.1 28.3 547.1 24.5 586.4 28.7 588.4 34.2 591 37.2 583.3 39.7 548.9 39.7 548.9 42.2 537.8 43.4 580.2 43.5 582.4 46.7 593.3 51.1 584A113.1 113.1 0 0 0 53.2 548.6S58 575.4 62.6 575.4C62.6 575.4 67.9 581.7 65.7 548.4A167.4 167.4 0 0 1 67.4 528.6L68 515.8S66.6 501.2 66.6 495.1A135.1 135.1 0 0 1 85.6 452.7S114.3 401.9 112.4 368.7C112.4 368.7 112 337 123.6 319 123.6 319 131.8 408.8 126.2 434 126.2 434 100.4 496 106.1 542.2 110.3 576.5 118.4 649.9 126.6 678.9 130.9 693.9 128.4 731.7 131.8 741.2 133.3 745.3 132.5 749.1 129.2 758.4 117.6 790.9 119.1 813.8 148.2 900.1A103.5 103.5 0 0 1 152.6 953.6S134 991.8 145.9 992.6C145.9 992.6 146.9 995.1 150.9 993.1A12.3 12.3 0 0 0 164.3 996.1 9.9 9.9 0 0 0 176.2 996.7 8.2 8.2 0 0 0 187.1 997.7S195.5 1003.4 200.5 997.2C200.5 997.2 209.4 999.2 193.6 959A498.5 498.5 0 0 0 184.1 908C177.8 892.1 182.3 848.6 183.6 839.3A220.4 220.4 0 0 0 180.7 776.5C177.8 761.8 185.7 734 188.7 716.9 194.7 680.9 206.5 589.1 205.1 571.7L209.9 573.4A9.9 9.9 0 0 0 215.7 571.7Z", + "width": 421 + }, + "search": [ + "health-bmi-r" + ] + }, + { + "uid": "e5c5250bddfcb33a1d4f8c2948b754e4", + "css": "health-bmi-1", + "code": 59505, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M215.7 571.7C214.2 589.1 226 680.9 232 716.9 234.9 734 242.9 761.8 240 776.5A216.6 216.6 0 0 0 237 839.2C238.4 848.6 242.9 892 236.5 907.9A500.9 500.9 0 0 0 227.1 958.9C211.1 999.1 220.1 997.1 220.1 997.1 225 1003.2 233.5 997.6 233.5 997.6A8.2 8.2 0 0 0 244.4 996.6 9.9 9.9 0 0 0 256.4 996.1 12.2 12.2 0 0 0 269.8 993C273.7 995 274.7 992.5 274.7 992.5 286.7 991.7 268 953.5 268 953.5A104.5 104.5 0 0 1 272.5 900C301.6 813.7 303 790.8 291.4 758.3 288.1 748.9 287.3 745.2 288.8 741.1 292.3 731.7 289.8 693.9 294 678.8 302.2 649.9 310.3 576.4 314.5 542.1 320.1 495.9 294.4 434 294.4 434 288.8 408.8 297 319 297 319 308.6 336.9 308.1 368.6 308.1 368.6 306.3 401.9 335 452.7 335 452.7A135.3 135.3 0 0 1 354 495.1C354 501.1 352.7 515.8 352.7 515.8L353.2 528.5A181.9 181.9 0 0 1 354.9 548.4C352.8 581.7 358 575.4 358 575.4 362.5 575.4 367.4 548.6 367.4 548.6A114.7 114.7 0 0 0 369.5 584C373.9 593.2 377.2 582.4 377.2 580.2 378.4 537.8 381 548.9 381 548.9 383.4 583.3 386.5 591 391.9 588.3 396.1 586.4 392.3 547.1 392.3 547.1 399.4 570.4 404.7 574.1 404.7 574.1 416.4 582.4 409.2 559.7 407.6 555.2A128.9 128.9 0 0 1 398.7 523.1C409.5 544.5 417.6 543.7 417.6 543.7 428.1 540.3 408.4 510 396.8 495.5A118.2 118.2 0 0 1 381.1 472.2 280.5 280.5 0 0 1 374.8 430.2 126.3 126.3 0 0 0 364.3 375.9C348.3 350.3 345.3 302.6 345.3 302.6L344.6 222C339 167 298.5 166.6 298.5 166.6 257.5 160.5 251.8 147.3 251.8 147.3 243.2 134.8 248.1 110.8 248.1 110.8A43.5 43.5 0 0 0 258.1 89.4C270 80.3 269.4 66.9 263.9 67 259.5 67.1 260.5 63.4 260.5 63.4 268 3.1 214.4 0 214.4 0H206.2S152.6 3.1 160.1 63.4C160.1 63.4 161.1 67.1 156.6 67 151.1 66.8 150.6 80.3 162.5 89.4A43.5 43.5 0 0 0 172.5 110.8S177.4 134.8 168.8 147.2C168.8 147.2 163.1 160.5 122.1 166.6 122.1 166.6 81.5 167 76 222L75.2 302.6S72.3 350.3 56.2 375.9A126.8 126.8 0 0 0 45.8 430.2 282.3 282.3 0 0 1 39.5 472.3 116.9 116.9 0 0 1 23.8 495.5C12.1 510-7.5 540.2 3 543.7 3 543.7 11.2 544.5 21.9 523.1A127.6 127.6 0 0 1 13.1 555.2C11.4 559.6 4.1 582.3 15.8 574.2 15.8 574.2 21.2 570.4 28.3 547.1 28.3 547.1 24.5 586.4 28.7 588.4 34.2 591 37.2 583.3 39.7 548.9 39.7 548.9 42.2 537.8 43.4 580.2 43.5 582.4 46.7 593.3 51.1 584A113.1 113.1 0 0 0 53.2 548.6S58 575.4 62.6 575.4C62.6 575.4 67.9 581.7 65.7 548.4A167.4 167.4 0 0 1 67.4 528.6L68 515.8S66.6 501.2 66.6 495.1A135.1 135.1 0 0 1 85.6 452.7S114.3 401.9 112.4 368.7C112.4 368.7 112 337 123.6 319 123.6 319 131.8 408.8 126.2 434 126.2 434 100.4 496 106.1 542.2 110.3 576.5 118.4 649.9 126.6 678.9 130.9 693.9 128.4 731.7 131.8 741.2 133.3 745.3 132.5 749.1 129.2 758.4 117.6 790.9 119.1 813.8 148.2 900.1A103.5 103.5 0 0 1 152.6 953.6S134 991.8 145.9 992.6C145.9 992.6 146.9 995.1 150.9 993.1A12.3 12.3 0 0 0 164.3 996.1 9.9 9.9 0 0 0 176.2 996.7 8.2 8.2 0 0 0 187.1 997.7S195.5 1003.4 200.5 997.2C200.5 997.2 209.4 999.2 193.6 959A498.5 498.5 0 0 0 184.1 908C177.8 892.1 182.3 848.6 183.6 839.3A220.4 220.4 0 0 0 180.7 776.5C177.8 761.8 185.7 734 188.7 716.9 194.7 680.9 206.5 589.1 205.1 571.7L209.9 573.4A9.9 9.9 0 0 0 215.7 571.7Z", + "width": 421 + }, + "search": [ + "health-bmi" + ] + }, + { + "uid": "e72be05611e51608304a7c6f3b837607", + "css": "heart-rate-1", + "code": 59506, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M0 532.1V608.1H205.7A689.9 689.9 0 0 1 145.8 532.1ZM1151 532.1A690.1 690.1 0 0 1 1091 608.1H1296.7V532.1ZM420.4 222L545.9 598.4 590 532.1H699L802.2 284.8 913.5 532.3H1151A366.1 366.1 0 0 0 1218.2 324.2 318.2 318.2 0 0 0 971.8 5C843.9-20.1 726.9 46.1 648.4 183.9 570 46.6 453.5-19.1 325.8 5.6A322.2 322.2 0 0 0 78.5 324.2 366.1 366.1 0 0 0 145.8 532H317.1ZM804.8 475.7L749.7 608.1H630.7L522.9 769.6 420.5 462.3 371.9 608.1H205.7A2720.4 2720.4 0 0 0 486.1 863C529.5 899.1 648.4 1000 648.4 1000S767.4 899.1 810.6 863A2720.7 2720.7 0 0 0 1091 608.1H864.5Z", + "width": 1297 + }, + "search": [ + "heart-rate" + ] + }, + { + "uid": "344d3323e746d922961f90699be37942", + "css": "height-1", + "code": 59507, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M400 50V150H600V250H400V350H500V450H400V550H600V650H400V750H500V850H400V950A50 50 0 0 0 450 1000H750A50 50 0 0 0 800 950V50A50 50 0 0 0 750 0H450A50 50 0 0 0 400 50ZM0 200L150 29.3 300 200H200V1000H100V200Z", + "width": 800 + }, + "search": [ + "height" + ] + }, + { + "uid": "ec7c3d4c3a1a3a5c781fafdfc80d80b2", + "css": "obese-bmi-1", + "code": 59508, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M307.3 571.7C305.2 589.1 322 680.9 330.6 716.9 334.8 734 346.1 761.8 342 776.5A153.3 153.3 0 0 0 337.7 839.2C339.7 848.6 346 892 337 907.9A369.5 369.5 0 0 0 323.5 958.9C300.8 999.1 313.6 997.1 313.6 997.1 320.6 1003.2 332.7 997.6 332.7 997.6A15.3 15.3 0 0 0 348.1 996.6 18.9 18.9 0 0 0 365.2 996.1 22.4 22.4 0 0 0 384.2 993C389.9 995 391.3 992.5 391.3 992.5 408.3 991.7 381.8 953.5 381.8 953.5A76.3 76.3 0 0 1 388.1 900C429.5 813.7 431.7 790.8 415.1 758.3 410.4 748.9 409.2 745.2 411.4 741.1 416.3 731.7 412.7 693.9 418.8 678.8 430.5 649.9 442 576.4 448 542.1 456.1 495.9 419.4 434 419.4 434 411.4 408.8 423.1 319 423.1 319 439.6 336.9 439 368.6 439 368.6 436.4 401.9 477.2 452.7 477.2 452.7A118.4 118.4 0 0 1 504.3 495.1C504.3 501.1 502.4 515.8 502.4 515.8L503.2 528.5A129.3 129.3 0 0 1 505.7 548.3C502.6 581.6 510.2 575.3 510.2 575.3 516.5 575.3 523.5 548.5 523.5 548.5 523.5 555.4 521.1 576.1 526.4 583.9 532.7 593.2 537.4 582.3 537.5 580.1 539.2 537.8 542.8 548.9 542.8 548.9 546.3 583.2 550.7 591 558.4 588.3 564.3 586.3 558.9 547.1 558.9 547.1 569 570.4 576.7 574.1 576.7 574.1 593.3 582.3 583 559.6 580.7 555.1A99.2 99.2 0 0 1 568 523C583.4 544.5 595 543.6 595 543.6 610 540.3 581.9 509.9 565.4 495.4A126 126 0 0 1 543 472.2 203.5 203.5 0 0 1 534 430.1C532.4 392.3 519.1 375.9 519.1 375.9 496.3 350.3 492 302.5 492 302.5L491 221.9C483 166.9 425.3 166.5 425.3 166.5 366.9 160.4 358.8 147.2 358.8 147.2 346.4 134.7 353.5 110.8 353.5 110.8A38.7 38.7 0 0 0 367.7 89.4C384.7 80.2 383.9 66.8 376 66.9 369.7 67 371.2 63.4 371.2 63.4 381.9 3.1 305.5 0 305.5 0H293.9S217.5 3.1 228.1 63.4C228.1 63.4 229.6 67.1 223.2 67 215.4 66.8 214.6 80.3 231.6 89.4A38.7 38.7 0 0 0 245.8 110.8S252.9 134.8 240.5 147.2C240.5 147.2 232.4 160.5 174 166.6 174 166.6 116.2 167 108.3 222L107.2 302.6S103 350.3 80.2 375.9C80.2 375.9 66.9 392.4 65.4 430.2A204.8 204.8 0 0 1 56.4 472.3 124.6 124.6 0 0 1 33.9 495.5C17.3 510-10.7 540.2 4.3 543.7 4.3 543.7 16 544.5 31.3 523.1A98.1 98.1 0 0 1 18.7 555.2C16.3 559.6 6 582.3 22.6 574.2 22.6 574.2 30.3 570.4 40.4 547.1 40.4 547.1 35 586.4 41 588.4 48.8 591 53.1 583.3 56.6 548.9 56.6 548.9 60.2 537.8 61.9 580.2 62 582.4 66.5 593.3 72.9 584 78.3 576.2 75.9 555.5 75.9 548.6 75.9 548.6 82.8 575.4 89.2 575.4 89.2 575.4 96.8 581.7 93.7 548.4A119.1 119.1 0 0 1 96.2 528.5L96.9 515.8S95 501.1 95 495.1A118.3 118.3 0 0 1 122.1 452.7S162.9 401.8 160.3 368.6C160.3 368.6 159.7 336.9 176.2 319 176.2 319 187.9 408.8 180 434 180 434 143.2 495.9 151.3 542.1 157.3 576.5 168.8 649.9 180.5 678.8 186.6 693.8 183 731.7 187.9 741.1 190.1 745.2 188.9 749 184.2 758.3 167.7 790.8 169.8 813.7 211.3 900A75.6 75.6 0 0 1 217.6 953.5S191.1 991.7 208.1 992.5C208.1 992.5 209.4 995 215.1 993A22.4 22.4 0 0 0 234.2 996.1 18.8 18.8 0 0 0 251.2 996.6 15.2 15.2 0 0 0 266.7 997.6S278.7 1003.3 285.8 997.1C285.8 997.1 298.5 999.1 275.9 958.9A367.7 367.7 0 0 0 262.5 907.9C253.4 892.1 259.9 848.6 261.8 839.2A155.9 155.9 0 0 0 257.5 776.5C253.3 761.8 264.7 734 268.9 716.9 277.5 680.9 294.3 589.1 292.2 571.7L299.2 573.4A18.3 18.3 0 0 0 307.3 571.7Z", + "width": 599 + }, + "search": [ + "obese-bmi" + ] + }, + { + "uid": "4f949a0351be7f1870efaf1172e1e0a8", + "css": "ovrweight-bmi-1", + "code": 59509, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M240.4 571.7C238.7 589.1 251.9 680.9 258.6 716.9 261.9 734 270.7 761.8 267.5 776.5A194.7 194.7 0 0 0 264.2 839.2C265.7 848.6 270.7 892 263.6 907.9A454.8 454.8 0 0 0 253.1 958.9C235.3 999.1 245.3 997.1 245.3 997.1 250.8 1003.2 260.3 997.6 260.3 997.6A9.9 9.9 0 0 0 272.4 996.6 12 12 0 0 0 285.7 996.1 14.6 14.6 0 0 0 300.6 993C305.1 995 306.1 992.5 306.1 992.5 319.5 991.7 298.7 953.5 298.7 953.5A94.6 94.6 0 0 1 303.6 900C336.1 813.7 337.7 790.8 324.7 758.3 321.1 748.9 320.2 745.2 321.8 741.1 325.7 731.7 322.9 693.9 327.6 678.8 336.8 649.9 345.8 576.4 350.5 542.1 356.8 495.9 328.1 434 328.1 434 321.9 408.8 331.1 319 331.1 319 343.9 336.9 343.4 368.6 343.4 368.6 341.4 401.9 373.3 452.7 373.3 452.7A128.3 128.3 0 0 1 394.5 495.1C394.5 501.1 393 515.8 393 515.8L393.6 528.5A163.7 163.7 0 0 1 395.6 548.4C393.2 581.6 399.1 575.4 399.1 575.4 404.1 575.4 409.5 548.6 409.5 548.6 409.5 555.5 407.6 576.1 411.8 583.9 416.8 593.2 420.4 582.3 420.5 580.1 421.8 537.8 424.6 548.9 424.6 548.9 427.4 583.2 430.8 591 436.8 588.3 441.4 586.3 437.2 547.1 437.2 547.1 445.1 570.4 451.1 574.1 451.1 574.1 464.1 582.3 456.1 559.7 454.3 555.2A118.2 118.2 0 0 1 444.3 523C456.4 544.5 465.4 543.7 465.4 543.7 477.2 540.3 455.1 510 442.3 495.4A118.3 118.3 0 0 1 424.7 472.2 253.7 253.7 0 0 1 417.7 430.2C416.5 392.3 406.1 375.9 406.1 375.9 388.2 350.3 384.9 302.5 384.9 302.5L384.1 221.9C377.8 166.9 332.7 166.5 332.7 166.5 287.1 160.5 280.7 147.3 280.7 147.3 271 134.8 276.6 110.8 276.6 110.8A41.5 41.5 0 0 0 287.7 89.4C301 80.3 300.4 66.9 294.2 67 289.3 67.1 290.4 63.4 290.4 63.4 298.7 3.1 239 0 239 0H229.9S170.1 3.1 178.4 63.4C178.4 63.4 179.6 67.1 174.6 67 168.4 66.8 167.9 80.3 181.1 89.4A41.4 41.4 0 0 0 192.3 110.8S197.8 134.8 188.1 147.2C188.1 147.2 181.8 160.5 136.1 166.6 136.1 166.6 90.9 167 84.7 222L83.8 302.6S80.5 350.3 62.6 375.9C62.6 375.9 52.3 392.4 51.1 430.2A255.3 255.3 0 0 1 44 472.3 117.1 117.1 0 0 1 26.5 495.5C13.5 510-8.4 540.2 3.3 543.7 3.3 543.7 12.5 544.5 24.4 523.1A117 117 0 0 1 14.6 555.2C12.7 559.6 4.6 582.3 17.7 574.2 17.7 574.2 23.7 570.4 31.5 547.1 31.5 547.1 27.3 586.4 32 588.4 38.1 591 41.5 583.3 44.2 548.9 44.2 548.9 47.1 537.8 48.4 580.2 48.4 582.4 52 593.3 57 584 61.2 576.2 59.3 555.5 59.3 548.6 59.3 548.6 64.7 575.4 69.7 575.4 69.7 575.4 75.7 581.7 73.2 548.4A150.7 150.7 0 0 1 75.2 528.6L75.8 515.8S74.3 501.2 74.3 495.1A128.1 128.1 0 0 1 95.5 452.7S127.5 401.9 125.4 368.7C125.4 368.7 125 337 137.8 319 137.8 319 146.9 408.8 140.7 434 140.7 434 112 496 118.3 542.2 123 576.5 132 649.9 141.2 678.9 145.9 693.9 143.1 731.7 146.9 741.2 148.7 745.3 147.8 749.1 144 758.4 131.2 790.8 132.9 813.7 165.3 900A93.8 93.8 0 0 1 170.2 953.5S149.5 991.7 162.7 992.5C162.7 992.5 163.8 995 168.3 993A14.6 14.6 0 0 0 183.2 996.1 12 12 0 0 0 196.5 996.6 9.9 9.9 0 0 0 208.6 997.6S218 1003.3 223.6 997.1C223.6 997.1 233.5 999.1 215.8 958.9A452.6 452.6 0 0 0 205.3 907.9C198.2 892 203.2 848.5 204.7 839.2A198.1 198.1 0 0 0 201.4 776.5C198.1 761.8 207 734 210.2 716.9 217 680.9 230.2 589.1 228.5 571.7L233.9 573.4A11.9 11.9 0 0 0 240.4 571.7Z", + "width": 469 + }, + "search": [ + "ovrweight-bmi" + ] + }, + { + "uid": "05061dddffce90689cd95cb5ae8590b3", + "css": "qr-code-3", + "code": 59511, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M650 0V350H1000V0ZM900 250H750V100H900ZM350 200V0H0V350H450V200H350ZM250 250H100V100H250ZM700 550H800V700H900V450H550V550H600V650.1H700.1ZM700 800H600V900H500V1000H700V900H800V1000H950V900H900V800H700ZM350 800V650H0V1000H350V900H500V800ZM250 900H100V750H250Z", + "width": 1000 + }, + "search": [ + "qr-code" + ] + }, + { + "uid": "638a9ad84d757d58f60e640ad7a8a992", + "css": "lab-results-1", + "code": 59530, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M633.4 0L547 23.2 523.8 109.6 587 172.8 673.4 149.6C681.4 120.9 688.9 92.1 696.6 63.3ZM206.2 20.1V53.8H239.8C240.2 143.1 239.8 232.1 239.8 321.2 237.7 325.8 72 689.9 4.2 893.4A102.8 102.8 0 0 0 6.2 957.1 75.5 75.5 0 0 0 22.3 985.5 44.5 44.5 0 0 0 54.1 1000H628.1A44.5 44.5 0 0 0 659.9 985.5 75.5 75.5 0 0 0 676.1 957.1 102.8 102.8 0 0 0 678 893.4C610.2 689.9 444.4 325.9 442.5 321.2 442.8 232.1 442.7 143 442.7 53.8H476.5V20.1ZM815 52.1L728.6 75.2 705.6 161.6 768.8 224.9 855.2 201.7C862.7 172.9 870.6 144.1 878.4 115.3ZM408.8 53.8V222.8L273.6 223.2 273.6 54.3ZM684.3 177L597.9 200.2 574.7 286.6 638 349.8 724.4 326.6Q735.9 283.4 747.4 240.2ZM712.8 391.5V425.3H746.6V847.5A357 357 0 0 0 753 948 70.1 70.1 0 0 0 779.3 985.8 89.1 89.1 0 0 0 831 999.4 89 89 0 0 0 882.7 985.8 69.7 69.7 0 0 0 908.9 948 356.8 356.8 0 0 0 915.4 847.5V425.3H949.1V391.6ZM780.2 425.3H881.7V560.4H780.3ZM464.5 611.6A46.1 46.1 0 0 1 433.7 669.3 45.5 45.5 0 0 1 416.8 671L398.3 713.8A65.5 65.5 0 0 1 419 780.9L461.3 804.7A45.3 45.3 0 0 1 476.3 796.7 46.3 46.3 0 1 1 445.4 854.4 45.3 45.3 0 0 1 444.2 833.8L402.6 810.4A66.5 66.5 0 0 1 373.6 828.7 67.5 67.5 0 0 1 289.6 783.9 66.7 66.7 0 0 1 289.3 746.5L260.3 730.2A45.3 45.3 0 0 1 242.9 740.3 46.2 46.2 0 1 1 273.6 682.6 45.3 45.3 0 0 1 275.3 700L306.3 717.5A64.3 64.3 0 0 1 368 698.9L386.4 656.5A45.3 45.3 0 0 1 375.9 638.7 48.8 48.8 0 0 1 418.7 579.7 43.1 43.1 0 0 1 464.5 611.8Z", + "width": 949 + }, + "search": [ + "lab-results" + ] + }, + { + "uid": "42b7a4fc84d097a747fb78e47ffc89b8", + "css": "health-summary-1", + "code": 59529, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M714.1 956.9H146.5A97 97 0 0 1 47.4 862.1V79.8A63 63 0 0 0 0 137.9V939.7A62.5 62.5 0 0 0 64.7 1000H652A63.3 63.3 0 0 0 714.1 956.9ZM714.1 956.9M799.6 862.1V435.3H312.3L312 462C312 462.3 312 461.2 312 463.4H519.4A17.2 17.2 0 1 1 519.4 497.9H310.1A32.1 32.1 0 0 1 287.8 487.8 38 38 0 0 1 277.5 461.2L277.7 435.4H241.3A16.9 16.9 0 0 1 224.1 418.5V416H172.3A17.2 17.2 0 0 1 155.1 398.9L154.5 324A17.8 17.8 0 0 1 171.8 306.2H171.8L224 307.2V304.9A18 18 0 0 1 241.2 286.6H799.6V209.1H653.6A56.2 56.2 0 0 1 597 152.5V0H146.4A63.1 63.1 0 0 0 81.4 58.1 16.8 16.8 0 0 1 81.9 60.3C81.9 61.2 81.9 62.1 81.9 63V862.1A62.6 62.6 0 0 0 146.4 922.4H733.8A63.6 63.6 0 0 0 799.6 862.1ZM172.5 543.1H456A17.2 17.2 0 1 1 456 577.6H172.5A17.2 17.2 0 0 1 172.5 543.1ZM665.8 829.7H172.5A17.2 17.2 0 0 1 172.5 795.2H665.8A17.2 17.2 0 0 1 665.8 829.7ZM665.8 745.6H172.5A17.2 17.2 0 0 1 172.5 711.2H665.8A17.2 17.2 0 1 1 665.8 745.6ZM665.8 661.6H172.5A17.2 17.2 0 0 1 172.5 627.1H665.8A17.2 17.2 0 1 1 665.8 661.6ZM665.8 661.6M773.5 174.6L631.5 27.6V152.5A21.8 21.8 0 0 0 653.6 174.5ZM773.5 174.6M898.7 336.6V386.6L937.2 361.6ZM898.7 336.6M258.6 321.1H864.2V400.9H258.6ZM258.6 321.1M224.1 381.5V341.5L189.2 341.1 189.4 381.5ZM224.1 381.5", + "width": 937 + }, + "search": [ + "health-summary" + ] + }, + { + "uid": "cbf3ee4dea491660e9f9dd8d3db58b7d", + "css": "ecg-1", + "code": 59528, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M34.6 0H965.4A34.6 34.6 0 0 1 1000 34.6V464.3L698.3 464.3A35.7 35.7 0 0 0 665 487.3L598.8 660.6 433.1 226.5A35.5 35.5 0 0 0 399.8 203.5H399.8A35.5 35.5 0 0 0 366.4 226.4L275.4 464.5 0 464.3V34.6A34.6 34.6 0 0 1 34.6 0ZM965.4 1000A34.6 34.6 0 0 0 1000 965.4V535.7L722.9 535.7 632.2 773.5A35.7 35.7 0 0 1 565.4 773.5L399.7 339.3 333.4 512.8A35.7 35.7 0 0 1 300 535.8H300L0.2 535.8V965.4A34.6 34.6 0 0 0 34.8 1000H965.4Z", + "width": 1000 + }, + "search": [ + "ecg" + ] + }, + { + "uid": "72c30fde2a53eed52ca204cb3f2f3da5", + "css": "admission-req-1", + "code": 59525, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M0 1000H1101.9V598.3H0ZM518.7 689.9H583.2V762.6H655.9V827.1H583.2V899.8H518.7V827.1H445.9V762.6H518.6ZM64.5 458.4H1037.3V533.7H64.5ZM422.6 178C422.6 176.1 422.6 174.2 422.4 172.3H219.5C219.5 174.2 219.3 176.1 219.3 178A101.7 101.7 0 0 0 309.7 278.9H332.1A101.7 101.7 0 0 0 422.6 178ZM288.7 279H258.4A129.4 129.4 0 0 0 129.9 393.8H288.7V279ZM383.6 279H353.3V393.8H512.1A129.4 129.4 0 0 0 383.6 279ZM425.1 107.8L444.1 22.7A344.4 344.4 0 0 0 198.1 22.7L217 107.8ZM639.1 241.7H972.7V393.9H639.1Z", + "width": 1102 + }, + "search": [ + "admission-req" + ] + }, + { + "uid": "e323582b66d81cd517a4e1eb7bf1f399", + "css": "booked-1", + "code": 59526, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M907.9 1000H162.7A163.1 163.1 0 0 1 0 837.9V321.9H1070.7V837.9A163.1 163.1 0 0 1 907.9 1000.3ZM71.4 393.3V837.9A91.7 91.7 0 0 0 162.7 928.8H907.9A91.7 91.7 0 0 0 999.2 837.9V393.3ZM1070.7 393H0V235.7A163.1 163.1 0 0 1 162.7 72.1H907.9A163.1 163.1 0 0 1 1070.6 235.7ZM71.4 321.9H999.2V235.7A91.7 91.7 0 0 0 907.9 143.6H162.7A91.7 91.7 0 0 0 71.4 235.7ZM46.8 357.6V937.5H1017.1V357.6ZM356.9 717.3A35.7 35.7 0 1 1 392.6 681.6 35.7 35.7 0 0 1 356.9 717.3ZM535.3 717.3A35.7 35.7 0 1 1 571 681.6 35.7 35.7 0 0 1 535.3 717.3ZM713.8 717.3A35.7 35.7 0 1 1 749.4 681.6 35.7 35.7 0 0 1 713.8 717.3Z", + "width": 1071 + }, + "search": [ + "booked" + ] + }, + { + "uid": "17d952ce25a93720aba9a7695bd1d3eb", + "css": "walkin-1", + "code": 59524, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M271.2 118.6H305.1A50.4 50.4 0 0 0 334.2 164.4 101.6 101.6 0 1 0 254.2 203.4 100 100 0 0 0 307.5 188.3 85.2 85.2 0 0 1 271.2 118.6ZM168 639.4L135.6 779.7 33.9 932.2 118.6 1000 254.2 813.6 274.5 746.2 171.1 642.8C170 641.7 169.1 640.5 168 639.4ZM108.3 529.8A238 238 0 0 1 101.7 475.1V385L0 508.4 67.8 576.4ZM383.6 583.9L227.8 498.8 155.6 335.8 186.6 322 254.4 474.6 372.9 539.4 440.7 576.4 491.6 491.4 373 420.2V271.2A67.8 67.8 0 0 0 305.1 203.4H203.4A67.8 67.8 0 0 0 135.6 271.2V475.2A203.2 203.2 0 0 0 195.1 618.9L339.1 762.9 389.9 983.2H491.6L440.8 712Z", + "width": 492 + }, + "search": [ + "walkin" + ] + }, + { + "uid": "7a3477a769ec5811e772756dc57b7622", + "css": "vital-signs-1", + "code": 59523, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M0 532.1V608.1H205.7A689.9 689.9 0 0 1 145.8 532.1ZM1151 532.1A690.1 690.1 0 0 1 1091 608.1H1296.7V532.1ZM420.4 222L545.9 598.4 590 532.1H699L802.2 284.8 913.5 532.3H1151A366.1 366.1 0 0 0 1218.2 324.2 318.2 318.2 0 0 0 971.8 5C843.9-20.1 726.9 46.1 648.4 183.9 570 46.6 453.5-19.1 325.8 5.6A322.2 322.2 0 0 0 78.5 324.2 366.1 366.1 0 0 0 145.8 532H317.1ZM804.8 475.7L749.7 608.1H630.7L522.9 769.6 420.5 462.3 371.9 608.1H205.7A2720.4 2720.4 0 0 0 486.1 863C529.5 899.1 648.4 1000 648.4 1000S767.4 899.1 810.6 863A2720.7 2720.7 0 0 0 1091 608.1H864.5Z", + "width": 1297 + }, + "search": [ + "vital-signs" + ] + }, + { + "uid": "d3660bff417230e14b3ddaa868eee919", + "css": "ucaf-1", + "code": 59522, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M529.3 60V0H470.7V60C201.6 73.3 0 271.4 0 529.3V576.7L42.3 555.7A289.7 289.7 0 0 1 148.4 529.5 171.9 171.9 0 0 1 245.1 579.5L265.8 600 286.4 579.5A171.9 171.9 0 0 1 383.1 529.5 159.1 159.1 0 0 1 471 571.7V912.1A87.9 87.9 0 0 0 646.8 912.1V853.5H587.9V912.1A29.3 29.3 0 0 1 529.3 912.1V571.5A159.1 159.1 0 0 1 617.2 529.3 171.9 171.9 0 0 1 713.9 579.3L734.6 599.8 755.2 579.3A178.1 178.1 0 0 1 853.7 529.3 274.1 274.1 0 0 1 957.8 555.5L1000 576.7V529.3C1000 271.4 798.4 73.3 529.3 60Z", + "width": 1000 + }, + "search": [ + "ucaf" + ] + }, + { + "uid": "6a176d9d936657bf21eb9de1201f5a1c", + "css": "radiology-2", + "code": 59520, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1218.7 937.5H906.2V812.6C1109.3 812.6 1107.4 817.2 1119.6 798.6L1174 718.9A93.7 93.7 0 0 0 1185.6 537.8 187.5 187.5 0 0 0 1000 375H870.2A437.5 437.5 0 0 0 437.4 0C10.4 0-162.9 552.5 187.4 795.9V937.5H93.7A31.4 31.4 0 1 0 93.7 1000H1218.7A31.4 31.4 0 1 0 1218.7 937.5ZM159 476.2A281.3 281.3 0 0 1 679.3 294.1 273.1 273.1 0 0 1 710.7 375C637.5 375 655.7 403.1 648.2 376.9 653.8 393.8 651.3 384.7 635.4 398.7A125 125 0 0 0 423.9 531.3 93.8 93.8 0 0 0 428.5 718.8 281.3 281.3 0 0 1 159.2 476.3ZM1156.2 593.7A31.4 31.4 0 0 1 1177.7 647.1C1164.9 660.6 1218.7 656.2 437.4 656.2A31.4 31.4 0 0 1 415.9 602.8C428.4 589.4 377.4 593.8 1156.2 593.8ZM579.3 750L558.4 718.6H724A99.1 99.1 0 0 0 718.7 750ZM468.7 468.7A62.5 62.5 0 1 1 531.2 531.2 62.5 62.5 0 0 1 468.7 468.7ZM687.4 812.6H718.8V937.5H687.4ZM1076.8 750.1H906.2A93.7 93.7 0 0 0 900.9 718.7H1097.8ZM1120.8 531.3C667.7 531.3 693.7 534.4 677.7 523.8A46.6 46.6 0 0 1 669.9 451.3C687.4 431.6 689 437.6 999.9 437.6A125 125 0 0 1 1120.9 531.3ZM406.2 843.7H468.7V937.5H406.2Z", + "width": 1250 + }, + "search": [ + "radiology" + ] + }, + { + "uid": "0347a4fbc965dd15778a1025d6ec56a0", + "css": "progress-notes-2", + "code": 59519, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M400 266.7V33.4A33.4 33.4 0 0 1 466.6 33.4V266.7ZM300 933.3A99.3 99.3 0 0 1 229.3 904.1 1011.6 1011.6 0 0 1 0 550.5V966.6A33.4 33.4 0 0 0 33.4 1000H833.3A33.4 33.4 0 0 0 866.7 966.6V933.3ZM1128 809.7A885.7 885.7 0 0 1 866.6 189.5V166.6A33.4 33.4 0 0 0 833.3 133.3H533.3V300A33.4 33.4 0 0 1 500 333.3H366.6A33.4 33.4 0 0 1 333.3 300V133.3H33.4A33.4 33.4 0 0 0 0 166.7V189.6A943.4 943.4 0 0 0 276.4 856.9 33.4 33.4 0 0 0 300 866.7H1104.5A33.4 33.4 0 0 0 1128.1 809.8ZM433.3 400H700A33.4 33.4 0 0 1 700 466.6H433.3A33.4 33.4 0 0 1 433.3 400ZM700 733.3H366.7A33.4 33.4 0 0 1 366.7 666.6H700A33.4 33.4 0 0 1 700 733.3ZM766.7 600H300A33.4 33.4 0 1 1 300 533.3H766.7A33.4 33.4 0 1 1 766.7 600Z", + "width": 1138 + }, + "search": [ + "progress-notes" + ] + }, + { + "uid": "9ef83ec11b2967f90944d218ac5b94af", + "css": "patient-sick-leave-1", + "code": 59518, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M664.4 0H92.6A92.7 92.7 0 0 0 0 92.6V907.4A92.7 92.7 0 0 0 92.6 1000H664.3A92.7 92.7 0 0 0 756.9 907.4V92.6A92.7 92.7 0 0 0 664.4 0ZM118.7 167.8L176.4 68.5A20.8 20.8 0 1 1 212.4 89.3L173 157.2H587.9L556.4 87.4A20.8 20.8 0 1 1 594.4 70.1L639.1 169.5A20.8 20.8 0 0 1 620.1 198.9H136.8A20.8 20.8 0 0 1 118.7 167.8ZM644.6 608.6H492.4A20.8 20.8 0 0 1 472.7 594.7L458.3 554.1 423.7 813.6A20.8 20.8 0 0 1 403.7 831.6H403.1A20.8 20.8 0 0 1 382.7 814.7L312.5 452.1 266.5 606.1A20.8 20.8 0 0 1 246.6 621H112.3A20.8 20.8 0 1 1 112.3 579.5H231.1L296.8 358.9A20.8 20.8 0 0 1 337.2 360.9L399.1 681.8 428.4 463.2A20.8 20.8 0 0 1 446.8 445.3 21.3 21.3 0 0 1 468.7 459.1L507 567.1H644.5A20.8 20.8 0 1 1 644.5 608.6Z", + "width": 757 + }, + "search": [ + "patient-sick-leave" + ] + }, + { + "uid": "f7865ba708db3b174c76175ee117fc7c", + "css": "refer-patient-1", + "code": 59521, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M264.4 666.7L351.6 775.7 267.1 860.3 228.5 667.7C235.7 667.1 242.9 666.7 250.1 666.7ZM442.2 666.7L388.9 733.3 335.6 666.6ZM513.4 666.7H527.7C534.9 666.7 542.1 667.1 549.3 667.7L510.8 860.3 426.2 775.7ZM638.9 444.4H637.2A248 248 0 0 0 638.9 416.7V333.3A55.6 55.6 0 0 1 638.9 444.4ZM138.9 166.7A166.8 166.8 0 0 1 305.5 0H472.2A166.8 166.8 0 0 1 638.9 166.7V277.8H527.8A55.6 55.6 0 0 1 472.2 222.2V111.1H416.7V138.9A139 139 0 0 1 277.8 277.8H138.9ZM138.9 444.4A55.6 55.6 0 1 1 138.9 333.3V416.7A248 248 0 0 0 140.5 444.4ZM194.5 416.7V333.3H277.8A194.1 194.1 0 0 0 425.3 265.1 111.4 111.4 0 0 0 527.8 333.3H583.3V416.7A194.5 194.5 0 0 1 194.5 416.7ZM777.8 1000H0V916.6A250.4 250.4 0 0 1 174 678.5L222.9 922.1A27.8 27.8 0 0 0 242 943.2 28.4 28.4 0 0 0 250.1 944.4 27.8 27.8 0 0 0 269.7 936.3L389 817 508.2 936.3A27.8 27.8 0 0 0 554.9 922.1L603.9 678.5A250.5 250.5 0 0 1 777.8 916.6ZM943.7 123A22 22 0 0 1 965.7 101H1000.6L899.6 0 798.6 101H833.5A22 22 0 0 1 855.6 123 264.2 264.2 0 0 1 738 342.7 220.4 220.4 0 0 0 943.7 123Z", + "width": 1001 + }, + "search": [ + "refer-patient" + ] + }, + { + "uid": "7c6d81832f8802ae84362cefea6d9585", + "css": "order-procedures-1", + "code": 59517, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1040.4 721.4L997.6 778.4 1054.8 821.3H926A142.7 142.7 0 0 0 788.2 714.3H430.9A142.7 142.7 0 0 0 293.1 821.3H214.3A142.8 142.8 0 0 1 214.3 535.6H293.1A142.7 142.7 0 0 0 430.9 642.6H788.1A142.7 142.7 0 0 0 925.9 535.6H1004.8A214.3 214.3 0 1 0 1004.8 107H926A142.7 142.7 0 0 0 788.1 0H430.9A142.7 142.7 0 0 0 293.1 107H261.9L128.6 7.2 85.7 64.3 142.8 107H0V178.6H142.8L85.7 221.4 128.6 278.6 261.9 178.6H293.2A142.7 142.7 0 0 0 431 285.5H788.1A142.7 142.7 0 0 0 926 178.6H1004.9A142.8 142.8 0 1 1 1004.9 464.3H926A142.7 142.7 0 0 0 788.2 357.3H430.9A142.7 142.7 0 0 0 293.1 464.3H214.3A214.3 214.3 0 1 0 214.3 892.8H293.1A142.7 142.7 0 0 0 430.9 999.8H788.1A142.7 142.7 0 0 0 926 892.8H1054.9L997.7 935.7 1040.4 992.8 1218.9 857.2ZM1040.4 721.4", + "width": 1219 + }, + "search": [ + "order-procedures" + ] + }, + { + "uid": "fc33e99d336b9a8766b950e84d6bd2d0", + "css": "order-prescription-1", + "code": 59516, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M596.3 192.4A28.8 28.8 0 0 0 588.5 172.7L434.6 9.1A28.9 28.9 0 0 0 413.6 0H404V202H596.3ZM596.3 192.4M567.2 567.5A164.8 164.8 0 0 1 596.3 570.1V259.7H375.1A28.9 28.9 0 0 1 346.3 230.8V0H28.9A28.9 28.9 0 0 0 0 28.9V769.5A28.9 28.9 0 0 0 28.9 798.3H271.5A163.6 163.6 0 0 1 288.4 778.6L451.6 615.5A162.4 162.4 0 0 1 567.2 567.5ZM240.4 336.6H269.3V307.8A28.9 28.9 0 1 1 327 307.8V336.6H355.9A28.9 28.9 0 1 1 355.9 394.3H327V423.2A28.9 28.9 0 0 1 269.3 423.2V394.3H240.4A28.9 28.9 0 0 1 240.4 336.6ZM144.3 509.8H452A28.9 28.9 0 1 1 452 567.5H144.3A28.9 28.9 0 0 1 144.3 509.8ZM336.6 682.9H144.3A28.9 28.9 0 1 1 144.3 625.2H336.6A28.9 28.9 0 1 1 336.6 682.9ZM336.6 682.9M329.1 819.4A105.8 105.8 0 1 0 478.8 969L540 907.8 390.4 758.1ZM329.1 819.4M642 656.2A105.8 105.8 0 0 0 492.4 656.2L431.2 717.4 580.8 867 642 805.8A105.9 105.9 0 0 0 642 656.2ZM642 656.2", + "width": 673 + }, + "search": [ + "order-prescription" + ] + }, + { + "uid": "3c62b35ba91d956be23daa4542e78fd1", + "css": "modify-episode-1", + "code": 59515, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M825.8 83.3A125 125 0 0 0 708.3 0H125A125.4 125.4 0 0 0 0 125V708.3A125 125 0 0 0 83.3 825.8V291.7A208.3 208.3 0 0 1 291.7 83.3ZM875 1000H291.7A125.8 125.8 0 0 1 166.7 875V291.6A125.7 125.7 0 0 1 291.7 166.6H875A125.7 125.7 0 0 1 1000 291.6V875A125.7 125.7 0 0 1 875 1000ZM650.9 428.6H650.9L370.5 709A21.9 21.9 0 0 0 365.1 717.8L333.1 813A22.3 22.3 0 0 0 338.6 836 22.6 22.6 0 0 0 354.6 842.5 21.4 21.4 0 0 0 361.7 841.4L456.9 809.7A22.5 22.5 0 0 0 465.6 804.3L746 523.8 650.8 428.6ZM746.2 349A37.4 37.4 0 0 0 719.7 359.9L682.7 397 777.9 492.1 814.9 455.1A37.1 37.1 0 0 0 825.9 428.6 36.8 36.8 0 0 0 814.9 402.2L772.6 359.8A37.4 37.4 0 0 0 746.1 349.1Z", + "width": 1000 + }, + "search": [ + "modify-episode" + ] + }, + { + "uid": "d905b0ec32bad6997ccde356f970af67", + "css": "livecare-1", + "code": 59514, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M359.7 999.9H201.4A198.3 198.3 0 0 1 123.3 984 203.2 203.2 0 0 1 16.1 877 197.1 197.1 0 0 1 0.2 799.1V200.7A197.7 197.7 0 0 1 16.1 122.7 203 203 0 0 1 123.2 15.8 197.7 197.7 0 0 1 201 0H943.2A197.7 197.7 0 0 1 1021.2 15.9 202.9 202.9 0 0 1 1128.1 123 197.7 197.7 0 0 1 1143.3 200.8V348.4A165.5 165.5 0 0 0 1143.3 658.1V798.8A198.3 198.3 0 0 1 1127.7 876.9 202.3 202.3 0 0 1 1020.9 984.1 197.7 197.7 0 0 1 943 1000H769.8A523.4 523.4 0 0 0 826.4 943.9 52.2 52.2 0 0 0 837.9 902.6 762.6 762.6 0 0 0 945.5 700.1 735.6 735.6 0 0 0 974.8 593.4 534.2 534.2 0 0 0 985 493.3 353.7 353.7 0 0 0 969.2 377.4 151.4 151.4 0 0 0 923.5 309.3 216.9 216.9 0 0 0 851 271.4C822.4 261.7 789.4 254.2 754.4 246.2H754.4L754.4 246.2A54 54 0 0 0 706.1 215.5 54.9 54.9 0 1 0 706.1 325.4 52.7 52.7 0 0 0 738.4 313.3L739.7 313.7H739.7L740.6 313.7C775.5 321.8 803.1 328.4 826 335.7A149.3 149.3 0 0 1 880.4 363.5 93 93 0 0 1 908.6 411.4 320 320 0 0 1 916.7 493.8 460.9 460.9 0 0 1 907.2 582.5 666.4 666.4 0 0 1 880.5 677.7 743.1 743.1 0 0 1 838.7 772.4 656 656 0 0 1 784.3 859 52.4 52.4 0 0 0 748.2 876.5 370.9 370.9 0 0 1 670.2 946.2 179.5 179.5 0 0 1 459.8 946.2 368 368 0 0 1 381.8 876.9 52.4 52.4 0 0 0 345.7 859.4 659.1 659.1 0 0 1 291.2 772.5 747 747 0 0 1 249.4 677.3 664.2 664.2 0 0 1 222.6 582.1 463.2 463.2 0 0 1 213.1 493.3 323.7 323.7 0 0 1 221.1 410.8 92.7 92.7 0 0 1 249.2 362.9 148.8 148.8 0 0 1 303.6 335.1C326.8 327.8 355.9 321 389.6 313.1L390.3 313.1H390.3L390.8 312.7A54.1 54.1 0 0 0 423.8 324.9 54.8 54.8 0 1 0 423.8 215 53.1 53.1 0 0 0 394.5 223.7 59.5 59.5 0 0 0 374.6 245.6H374.6L373.9 245.6C230.3 278.8 143.6 298.8 143.6 492.9A534.1 534.1 0 0 0 153.9 593.2 737.8 737.8 0 0 0 183.2 700 757.5 757.5 0 0 0 291.6 902.9 52 52 0 0 0 303.2 944.1 529.8 529.8 0 0 0 359.1 999.6H359.1ZM1787.8 895.3H1706.6A70 70 0 0 1 1669.9 884.8L1332 671.5A33.4 33.4 0 0 1 1316.4 643.4V622.6A165.3 165.3 0 0 0 1316.4 384.5V347A33.4 33.4 0 0 1 1332 318.9L1669.9 105.6A66.9 66.9 0 0 1 1706.6 95.1H1787.8A33.5 33.5 0 0 1 1821.5 128.2V862.6A32.9 32.9 0 0 1 1811.7 886 33.5 33.5 0 0 1 1787.9 895.7ZM467.9 673.5H485.2L539.5 673.5C546 673.5 551.4 666.6 551.7 656.7V611.6C551.7 601.9 556 594.4 562.7 593.9L579.3 593.9C586.1 594.4 590.7 602 590.7 611.6V656.8C590.7 666.8 595.5 673.2 602.1 673.2L675.3 673.2 675.3 617.1C675.3 607.5 670.7 600 663.9 599.6L634.6 599.6C628.1 599.6 623.1 592.7 622.8 582.7L622.8 567.6C622.8 557.6 628.2 550.8 634.7 550.8H664C670.7 550.3 675.1 542.4 675.1 532.8V463.3A29.8 29.8 0 0 1 652.4 477.4H602.8C596.3 477.4 590.9 484.7 590.6 494.4V539.7C590.6 549.6 585.3 556.6 578.8 556.6L564.1 556.6C557.6 556.6 552.4 549.8 552.1 539.9V494C552.1 484.1 546.7 477.4 540.2 477.4H468.1V533.3C468.1 543 472.6 550.6 479.4 551.2L508.7 551.2C515.3 551.6 520.1 559.6 520.1 569.2V582.1C520.1 591.8 515.6 599.5 508.8 599.9H479.5C472.8 600.4 468.3 608.1 468.3 617.6ZM716 459.1V693.1A29.7 29.7 0 0 1 686 721.3H455.4A29.3 29.3 0 0 1 425.6 693.1V459.1A29.7 29.7 0 0 1 455.4 430.5H685.9A30.2 30.2 0 0 1 716 459.1ZM468.1 673.5H485.5L539.7 673.5C546.2 673.5 551.6 666.6 551.9 656.7V611.6C551.9 601.9 556.2 594.4 562.9 593.9L579.6 593.9C586.2 594.4 590.8 602 590.8 611.6V657.2C590.8 667.2 595.7 673.6 602.2 673.6L675.4 673.6 675.4 617.5C675.4 607.8 670.8 600.4 664.1 599.9L634.8 599.9C628.3 599.9 623.2 593 622.9 583.1L622.9 567.9C622.9 558 628.3 551.2 634.9 551.2H664.2C670.9 550.7 675.2 542.8 675.2 533.2V463.3A29.8 29.8 0 0 1 652.6 477.4H602.9C596.5 477.4 591.1 484.7 590.8 494.4V539.4C590.8 549.3 585.4 556.3 578.9 556.3L563.9 556.3C557.4 556.3 552.2 549.5 551.9 539.6V494.2C551.9 484.2 546.5 477.6 539.9 477.6H468.1V533.4C468.1 543.1 472.6 550.8 479.4 551.3L508.7 551.3C515.3 551.7 520.1 559.7 520.1 569.3V582.3C520.1 591.9 515.6 599.6 508.8 600.1H479.5C472.8 600.5 468.3 608.2 468.3 617.8ZM1202.1 400.4A96.2 96.2 0 1 1 1106 496.6H1106A96.2 96.2 0 0 1 1202.1 400.4Z", + "width": 1821 + }, + "search": [ + "livecare" + ] + }, + { + "uid": "18574a405555b8e83d46a43a1e755ea7", + "css": "logout-1", + "code": 59513, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M500 0A500 500 0 1 0 1000 500 500.5 500.5 0 0 0 500 0ZM470.7 167.9A29.3 29.3 0 1 1 529.3 167.9V402.3A29.3 29.3 0 0 1 470.7 402.3ZM500 822.3A322.2 322.2 0 0 1 371.2 204.7 29.3 29.3 0 0 1 394.7 258.4 263.7 263.7 0 1 0 605.6 258.4 29.3 29.3 0 0 1 629.1 204.8 322.2 322.2 0 0 1 500 822.3Z", + "width": 1000 + }, + "search": [ + "logout" + ] + }, + { + "uid": "540c904ee995ff64cca5493caae9c2db", + "css": "reschedule--1", + "code": 59512, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M484.5 67.2L7.6 3.6A17.9 17.9 0 0 0 0 17.9V920.2A17.9 17.9 0 0 0 15.5 937.9L479.8 999.8A17.9 17.9 0 0 0 493.8 995.7 17.5 17.5 0 0 0 500 982.3V84.9A17.9 17.9 0 0 0 484.5 67.2ZM423.3 512.6L369.7 566.3A17.9 17.9 0 0 1 344.4 541L367.5 518H89.3A17.9 17.9 0 1 1 89.3 482.3H367.6L344.5 459.2A17.9 17.9 0 0 1 369.8 433.9L423.5 487.6A17.9 17.9 0 0 1 423.5 512.8ZM535.7 201.4A336 336 0 0 1 643 165V17.9A17.9 17.9 0 0 0 625.2 0H251.5L489.4 31.7A53.7 53.7 0 0 1 535.9 84.9V201.4ZM535.7 928.5H625A17.9 17.9 0 0 0 642.9 910.6V834.8A336 336 0 0 1 535.5 798.4ZM696.4 196.4A301.3 301.3 0 0 0 535.7 242.9V286.2A267.5 267.5 0 1 1 831.7 730.9C831.2 731.2 830.9 731.7 830.4 732A13.8 13.8 0 0 1 828.6 732.7 266.1 266.1 0 0 1 535.7 713.9V757.2A303.5 303.5 0 1 0 696.4 196.4ZM598.2 329.9A17.9 17.9 0 0 1 573.8 323.3L565.3 308.5A234.4 234.4 0 0 0 535.7 332.9V667.1A234.5 234.5 0 0 0 565.3 691.5L573.8 676.7A17.9 17.9 0 1 1 604.8 694.5L596.3 709.2A229.9 229.9 0 0 0 678.6 731.3V714.3A17.9 17.9 0 1 1 714.3 714.3V731.2A229.9 229.9 0 0 0 796.6 709.1L788.3 694.5A17.9 17.9 0 1 1 819.2 676.6L827.7 691.4A233.9 233.9 0 0 0 888 631.1L873.3 622.6A17.9 17.9 0 1 1 891.2 591.7L905.8 599.9A229.7 229.7 0 0 0 927.9 517.7H910.9A17.9 17.9 0 0 1 910.9 482H927.8A229.7 229.7 0 0 0 905.7 399.7L891.1 408A17.9 17.9 0 1 1 873.2 377.1L887.9 368.6A233.9 233.9 0 0 0 827.7 308.3L819.2 323A17.9 17.9 0 1 1 788.2 305.1L796.5 290.5A229.8 229.8 0 0 0 714.2 268.4V285.4A17.9 17.9 0 1 1 678.5 285.4V268.4A229.9 229.9 0 0 0 596.2 290.4L604.7 305.1A17.9 17.9 0 0 1 598.2 329.9ZM678.6 449.6V374.9A17.9 17.9 0 0 1 714.3 374.9V449.6A53.7 53.7 0 0 1 746.8 482H785.8A17.9 17.9 0 1 1 785.8 517.7H746.8A53.5 53.5 0 1 1 678.7 449.6Z", + "width": 1000 + }, + "search": [ + "reschedule-" + ] + }, + { + "uid": "973fdf63aeccbd095872d42af142b109", + "css": "dr-reply-active-1", + "code": 59552, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1023.2 547.7H1029.4A86.7 86.7 0 0 1 1162.4 438.2L1200.4 476.2V101.1A101.2 101.2 0 0 0 1099.2 0H101.2A101.2 101.2 0 0 0 0 101.1V799A101.2 101.2 0 0 0 101.2 900.2H798.6A247.7 247.7 0 0 1 1023.1 547.8ZM251.2 136.3H949.2L600.1 392.2ZM1266.6 603.7L1131.7 468.8A43.4 43.4 0 1 0 1070.5 529.9L1131.5 590.9H1023.1A204.5 204.5 0 0 0 1023.1 999.9 43.4 43.4 0 1 0 1023.1 913.2 117.9 117.9 0 0 1 1023.1 677.1H1131.5L1070.5 738A43.4 43.4 0 0 0 1131.7 799.2L1266.6 664.3A43.4 43.4 0 0 0 1266.6 603.1Z", + "width": 1279 + }, + "search": [ + "dr-reply-active" + ] + }, + { + "uid": "796f61b873eb713c3cb184c49e70853f", + "css": "home-1", + "code": 59553, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1066.3 519.6A79.1 79.1 0 0 1 991.7 571.5H964.4V964.3A35.7 35.7 0 0 1 928.7 1000H714.4V750A178.6 178.6 0 0 0 357.2 750V1000H142.9A35.7 35.7 0 0 1 107.2 964.3V571.5H79.9A80 80 0 0 1 27.4 431.5L444.5 36.3A132.8 132.8 0 0 1 627.1 36.3L1045.2 432.3A78.7 78.7 0 0 1 1066.3 519.6Z", + "width": 1072 + }, + "search": [ + "home" + ] + }, + { + "uid": "897422687ecd85c646013dbd38e16548", + "css": "home-active-1", + "code": 59554, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1066.3 519.6A79.1 79.1 0 0 1 991.7 571.5H964.4V964.3A35.7 35.7 0 0 1 928.7 1000H714.4V750A178.6 178.6 0 0 0 357.2 750V1000H142.9A35.7 35.7 0 0 1 107.2 964.3V571.5H79.9A80 80 0 0 1 27.4 431.5L444.5 36.3A132.8 132.8 0 0 1 627.1 36.3L1045.2 432.3A78.7 78.7 0 0 1 1066.3 519.6Z", + "width": 1072 + }, + "search": [ + "home-active" + ] + }, + { + "uid": "5ca2a97037189bebb49149bf4e66c560", + "css": "view-1", + "code": 59536, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M776.8 250A250 250 0 1 0 1026.8 500 250.2 250.2 0 0 0 776.8 250ZM757.8 425.9A57.4 57.4 0 0 0 700.9 482.8H618.1A141.3 141.3 0 0 1 757.8 343.1ZM1535.4 448.3C1450.9 343.1 1149.2-0.1 776.8-0.1S102.6 342.9 18.1 448.3A82.9 82.9 0 0 0 18.1 551.8C102.6 657 404.3 1000.1 776.8 1000.1S1450.9 657 1535.4 551.8A82.9 82.9 0 0 0 1535.4 448.3ZM776.8 862.1A362 362 0 1 1 1138.8 500 362 362 0 0 1 776.8 862.1Z", + "width": 1553 + }, + "search": [ + "view" + ] + }, + { + "uid": "e7141300a3db6362879b519165a6692a", + "css": "warning-1", + "code": 59537, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1165.9 890.7L649.9 34.8A72.1 72.1 0 0 0 526.5 34.8L10.4 890.7A72.1 72.1 0 0 0 72.1 1000H1104.2A72.1 72.1 0 0 0 1165.9 890.7ZM588.5 296.1A48.8 48.8 0 0 1 643.3 342.4C643.3 432.8 632.7 562.8 632.7 653.2 632.7 676.8 606.8 686.9 588.6 686.9 564.3 686.9 543.7 677 543.7 653.2 543.7 562.8 533.1 432.8 533.1 342.4 533.1 312.8 557.3 296.1 588.5 296.1ZM589.3 856.1A58.5 58.5 0 1 1 647.1 797.6 59.4 59.4 0 0 1 589.3 856.1Z", + "width": 1176 + }, + "search": [ + "warning" + ] + }, + { + "uid": "57ebf92cfa756dbc36d62f99da7427c8", + "css": "add-1", + "code": 59538, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M769.7 0H230.3A230.9 230.9 0 0 0 0 230.3V769.7A230.9 230.9 0 0 0 230.3 1000H769.7A230.9 230.9 0 0 0 1000 769.7V230.3A230.9 230.9 0 0 0 769.7 0ZM705.2 543.1H553.6A8.8 8.8 0 0 0 544.8 551.9V704A44.7 44.7 0 0 1 455.4 704V552A8.8 8.8 0 0 0 446.6 543.2H294.7A44.7 44.7 0 0 1 294.7 453.8H446.4A8.8 8.8 0 0 0 455.2 445V293.1A44.7 44.7 0 1 1 544.6 293.1V444.9A8.8 8.8 0 0 0 553.4 453.9H705.2A44.7 44.7 0 1 1 705.2 543.3Z", + "width": 1000 + }, + "search": [ + "add" + ] + }, + { + "uid": "701ccc7879b5b7e2395223f67ee3fed6", + "css": "arrow-forward-1", + "code": 59539, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1357 455.8L919.2 18.3A62.5 62.5 0 1 0 830.8 106.7L1161.6 437.6H62.5A62.5 62.5 0 1 0 62.5 562.6H1161.7L830.9 893.4A62.5 62.5 0 1 0 919.3 981.8L1357 544.2A62.5 62.5 0 0 0 1357 455.8Z", + "width": 1375 + }, + "search": [ + "arrow-forward" + ] + }, + { + "uid": "fd40af0f29902301b193447a13ab5659", + "css": "back-1", + "code": 59540, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M14.6 535.8L464.3 985.3A50.5 50.5 0 1 0 535.8 914L121.8 500.1 535.8 86.2A50.5 50.5 0 0 0 464.3 14.7L14.6 464.3A51 51 0 0 0 14.6 535.8Z", + "width": 551 + }, + "search": [ + "back" + ] + }, + { + "uid": "baed05d36f0b6e141e441451248ebbe4", + "css": "close-1", + "code": 59541, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M591.6 500L981.2 110.4A64.8 64.8 0 1 0 889.4 19L499.8 408.6 110.2 19A64.8 64.8 0 0 0 19 110.6L408.6 500.2 19 889.8A64.8 64.8 0 1 0 110.6 981.4L500.2 591.8 889.8 981.4A64.8 64.8 0 1 0 981.4 889.8ZM591.6 500", + "width": 1000 + }, + "search": [ + "close" + ] + }, + { + "uid": "b5a7f641f7cea4777506552ec8be6ad6", + "css": "edit-1", + "code": 59542, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M571.4 635.7A88.7 88.7 0 0 1 537 657L412.7 698.4A87.7 87.7 0 0 1 384.9 702.9H384.9A87.9 87.9 0 0 1 301.5 587.2L342.9 462.9A88.3 88.3 0 0 1 364.1 428.6L632.7 160.1H107.4A107.5 107.5 0 0 0 0 267.6V892.6A107.5 107.5 0 0 0 107.4 999.8H732.4A107.5 107.5 0 0 0 839.9 892.4V367.3ZM405.7 469.9A29.3 29.3 0 0 0 398.6 481.4L357.2 605.7A29.3 29.3 0 0 0 394.2 642.7L518.5 601.3A29.3 29.3 0 0 0 530 594.2L895.9 228.2 771.7 103.9ZM930.5 14.3A48.8 48.8 0 0 0 861.4 14.3L813.1 62.6 937.4 186.9 985.7 138.6A48.8 48.8 0 0 0 985.7 69.5Z", + "width": 1000 + }, + "search": [ + "edit" + ] + }, + { + "uid": "c70dff422511b1412c9cb64f63d8c659", + "css": "external-link-1", + "code": 59543, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M945 55A180.6 180.6 0 0 0 812.5 0H187.5A180.6 180.6 0 0 0 55 55 180.6 180.6 0 0 0-0.2 187.5V812.5A180.7 180.7 0 0 0 54.9 945 180.6 180.6 0 0 0 187.4 1000.1H812.5A187.9 187.9 0 0 0 1000 812.5V187.5A180.7 180.7 0 0 0 945 55ZM833.4 520.8A39 39 0 0 1 808 559.2 45.3 45.3 0 0 1 791.7 562.5 38.7 38.7 0 0 1 762.6 550.3L668.6 456.4 321 804A40.9 40.9 0 0 1 262.4 804L196 737.6A40.9 40.9 0 0 1 196 679.1L543.6 331.4 449.9 237.6A37.6 37.6 0 0 1 440.8 192.1 39 39 0 0 1 479.3 166.7H791.8A42.2 42.2 0 0 1 833.5 208.3V520.8Z", + "width": 1000 + }, + "search": [ + "external-link" + ] + }, + { + "uid": "4d39d4d5f8ce4a22a6541b02dd4c63df", + "css": "verify-finger-1", + "code": 59544, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M891.9 0H108.1A108.2 108.2 0 0 0 0 108.1V891.9A108.2 108.2 0 0 0 108.1 1000H891.9A108.2 108.2 0 0 0 1000 891.9V108.1A108.2 108.2 0 0 0 891.9 0ZM185.9 192.6C393.8 41.7 612.9 43.3 817.7 195.2A29.3 29.3 0 0 1 800.1 248.1C766.9 248.1 540.5 7.4 220.2 240A29.3 29.3 0 0 1 185.7 192.6ZM459 946A29.3 29.3 0 0 1 418.2 938.6C377.1 878.9 283.2 812.1 283.2 687.5A225.3 225.3 0 0 1 500 454.9 225.3 225.3 0 0 1 716.8 687.5V718.9A29.3 29.3 0 0 1 658.2 718.9V687.6A166.8 166.8 0 0 0 500 513.8 166.8 166.8 0 0 0 341.8 687.5C341.8 828.8 521.5 902.7 459 946ZM823.1 794.4A153.5 153.5 0 0 1 533.2 718.9C533.2 592.6 446.8 635.1 465.9 711.8A29.3 29.3 0 0 1 409.1 725.9C369.2 566.3 591.8 501.6 591.8 718.9A94.5 94.5 0 0 0 665.2 816.5C800.8 848.5 841 624.8 705.8 480.7 518.8 281.3 216.8 435 216.8 671.9A237 237 0 0 0 258.2 826.8 29.3 29.3 0 0 1 210.6 860.8 298.5 298.5 0 0 1 158.2 671.9 347.5 347.5 0 0 1 500.1 330.1C752.9 330.1 913.6 613.5 823.1 794.3ZM842.7 431.8A29.3 29.3 0 0 1 802.7 420.9C744.4 318.7 603.2 263.8 500 263.8A419.4 419.4 0 0 0 196.2 422.6 29.3 29.3 0 0 1 147.5 390.1 474.9 474.9 0 0 1 499.9 205.2C716.9 205.2 910.7 392.8 842.5 431.8Z", + "width": 1000 + }, + "search": [ + "verify-finger" + ] + }, + { + "uid": "74c58b33ed0f729dac0b04e0f633144b", + "css": "verify-sms-1", + "code": 59545, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M900 0H100A100.3 100.3 0 0 0 0 100V1000L200 800H900A100.3 100.3 0 0 0 1000 700V100A100.3 100.3 0 0 0 900 0ZM350 450H250V350H350ZM550 450H450V350H550ZM750 450H650V350H750Z", + "width": 1000 + }, + "search": [ + "verify-sms" + ] + }, + { + "uid": "0e20d240c0f8396c7076464e122f8e1b", + "css": "verify-face-1", + "code": 59546, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M724.2 694.2L587.6 666.9A31.2 31.2 0 0 1 562.5 636.3V604.9A369.6 369.6 0 0 0 588.7 558.3 267.2 267.2 0 0 1 609.9 520.3 201.7 201.7 0 0 0 673.3 420.4 93.1 93.1 0 0 0 664.2 347 551.6 551.6 0 0 0 653.6 220.2 137.4 137.4 0 0 0 621.1 119.6 96.5 96.5 0 0 0 563.1 95.2 96.8 96.8 0 0 1 541.9 90.3 218.8 218.8 0 0 0 436.3 62.5 245.8 245.8 0 0 0 218.7 212 367.2 367.2 0 0 0 210.1 325.2L209.3 347.1A99.4 99.4 0 0 0 201.4 420.4 201.2 201.2 0 0 0 264.7 520.4 275.4 275.4 0 0 1 286.2 558.3 379.2 379.2 0 0 0 312.6 604.9V636.2A31.4 31.4 0 0 1 287.5 666.9L150.8 694.2A188.1 188.1 0 0 0 0 878.1V937.5A62.6 62.6 0 0 0 62.5 1000.2H812.5A62.5 62.5 0 0 0 875 937.7V878.1A188.2 188.2 0 0 0 724.2 694.2ZM156.3 0H31.3A31.3 31.3 0 0 0 0 31.3V218.8A31.3 31.3 0 0 0 62.5 218.8V62.5H156.3A31.3 31.3 0 0 0 156.3 0ZM156.3 562.5H62.5V406.2A31.3 31.3 0 0 0 0 406.2V593.7A31.3 31.3 0 0 0 31.3 625H156.3A31.3 31.3 0 1 0 156.3 562.5ZM843.8 0H718.8A31.3 31.3 0 0 0 718.8 62.5H812.5V218.8A31.3 31.3 0 0 0 875 218.8V31.3A31.3 31.3 0 0 0 843.8 0ZM843.8 375A31.3 31.3 0 0 0 812.5 406.2V562.5H718.7A31.3 31.3 0 0 0 718.7 625H843.7A31.3 31.3 0 0 0 875 593.7V406.2A31.3 31.3 0 0 0 843.8 375Z", + "width": 875 + }, + "search": [ + "verify-face" + ] + }, + { + "uid": "6087d36029eda9021846e21ed70401ad", + "css": "qr-reader-active-1", + "code": 59548, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M50 400A50 50 0 0 0 100 350V150A50 50 0 0 1 150 100H350A50 50 0 1 0 350 0H150A150 150 0 0 0 0 150V350A50 50 0 0 0 50 400ZM850 0H650A50 50 0 0 0 650 100H850A50 50 0 0 1 900 150V350A50 50 0 1 0 1000 350V150A150 150 0 0 0 850 0ZM950 600A50 50 0 0 0 900 650V850A50 50 0 0 1 850 900H650A50 50 0 0 0 650 1000H850A150 150 0 0 0 1000 850V650A50 50 0 0 0 950 600ZM350 900H150A50 50 0 0 1 100 850V650A50 50 0 0 0 0 650V850A150 150 0 0 0 150 1000H350A50 50 0 1 0 350 900Z", + "width": 1000 + }, + "search": [ + "qr-reader-active" + ] + }, + { + "uid": "5131f993095debb39e88eddafbe54f5a", + "css": "qr-reader-1", + "code": 59547, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M50 400A50 50 0 0 0 100 350V150A50 50 0 0 1 150 100H350A50 50 0 1 0 350 0H150A150 150 0 0 0 0 150V350A50 50 0 0 0 50 400ZM850 0H650A50 50 0 0 0 650 100H850A50 50 0 0 1 900 150V350A50 50 0 1 0 1000 350V150A150 150 0 0 0 850 0ZM950 600A50 50 0 0 0 900 650V850A50 50 0 0 1 850 900H650A50 50 0 0 0 650 1000H850A150 150 0 0 0 1000 850V650A50 50 0 0 0 950 600ZM350 900H150A50 50 0 0 1 100 850V650A50 50 0 0 0 0 650V850A150 150 0 0 0 150 1000H350A50 50 0 1 0 350 900Z", + "width": 1000 + }, + "search": [ + "qr-reader" + ] + }, + { + "uid": "90a143d3da24d4bddb6eefb8cb5036dc", + "css": "schedule-1", + "code": 59549, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M900 0H99.9A100.3 100.3 0 0 0 0 99.9V900A100.3 100.3 0 0 0 99.9 999.8H900A100.3 100.3 0 0 0 999.8 900V99.9A100.3 100.3 0 0 0 900 0ZM269.9 880H116.7V743.8H269.9V880ZM269.9 698.1H116.7V561.9H269.9V698.1ZM258.3 151.6A42.5 42.5 0 1 1 300.8 109.1 42.4 42.4 0 0 1 258.3 151.6ZM474.3 880H321.1V743.8H474.3ZM474.3 698.1H321.1V561.9H474.3ZM474.3 516.3H321.1V380H474.3ZM457.6 109.1A42.4 42.4 0 1 1 500 151.5 42.4 42.4 0 0 1 457.6 109.1ZM678.9 698.1H525.6V561.9H679.1V698.1ZM678.9 516.3H525.6V380H679.1V516.3ZM699 109.1A42.4 42.4 0 1 1 741.5 151.5 42.4 42.4 0 0 1 699 109.1ZM883.2 698.1H730.1V561.9H883.3ZM883.2 516.3H730.1V380H883.3Z", + "width": 1000 + }, + "search": [ + "schedule" + ] + }, + { + "uid": "9cd17bfbecffdbb2c87645848f62a267", + "css": "dr-reply-1", + "code": 59551, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1023.2 547.7H1029.4A86.7 86.7 0 0 1 1162.4 438.2L1200.4 476.2V101.1A101.2 101.2 0 0 0 1099.2 0H101.2A101.2 101.2 0 0 0 0 101.1V799A101.2 101.2 0 0 0 101.2 900.2H798.6A247.7 247.7 0 0 1 1023.1 547.8ZM251.2 136.3H949.2L600.1 392.2ZM1266.6 603.7L1131.7 468.8A43.4 43.4 0 1 0 1070.5 529.9L1131.5 590.9H1023.1A204.5 204.5 0 0 0 1023.1 999.9 43.4 43.4 0 1 0 1023.1 913.2 117.9 117.9 0 0 1 1023.1 677.1H1131.5L1070.5 738A43.4 43.4 0 0 0 1131.7 799.2L1266.6 664.3A43.4 43.4 0 0 0 1266.6 603.1Z", + "width": 1279 + }, + "search": [ + "dr-reply" + ] + }, + { + "uid": "3841d430a51b3781fd60835bb120fd57", + "css": "schedule-active-1", + "code": 59550, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M900 0H99.9A100.3 100.3 0 0 0 0 99.9V900A100.3 100.3 0 0 0 99.9 999.8H900A100.3 100.3 0 0 0 999.8 900V99.9A100.3 100.3 0 0 0 900 0ZM269.9 880H116.7V743.8H269.9V880ZM269.9 698.1H116.7V561.9H269.9V698.1ZM258.3 151.6A42.5 42.5 0 1 1 300.8 109.1 42.4 42.4 0 0 1 258.3 151.6ZM474.3 880H321.1V743.8H474.3ZM474.3 698.1H321.1V561.9H474.3ZM474.3 516.3H321.1V380H474.3ZM457.6 109.1A42.4 42.4 0 1 1 500 151.5 42.4 42.4 0 0 1 457.6 109.1ZM678.9 698.1H525.6V561.9H679.1V698.1ZM678.9 516.3H525.6V380H679.1V516.3ZM699 109.1A42.4 42.4 0 1 1 741.5 151.5 42.4 42.4 0 0 1 699 109.1ZM883.2 698.1H730.1V561.9H883.3ZM883.2 516.3H730.1V380H883.3Z", + "width": 1000 + }, + "search": [ + "schedule-active" + ] + }, + { + "uid": "3375043683ed20c80d3307cef405e3ff", + "css": "verify-face", + "code": 59555, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.2A36.2 36.2 0 1 0 0 746.2V963.7A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.2V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710ZM507.5 144.9A350.9 350.9 0 1 0 858.4 495.8 350.9 350.9 0 0 0 507.5 144.9ZM637 378.9A50.3 50.3 0 1 1 586.7 429.2 50.3 50.3 0 0 1 637 378.9ZM378 378.9A50.3 50.3 0 1 1 327.7 429.2 50.3 50.3 0 0 1 378 378.9ZM696.8 617.8A229.7 229.7 0 0 1 318.1 617.8 30.7 30.7 0 1 1 368.8 582.9 168.3 168.3 0 0 0 646.3 582.9 30.7 30.7 0 1 1 696.8 617.8Z", + "width": 1015 + }, + "search": [ + "verify-face" + ] + }, + { + "uid": "49b31d628bdc0d2127dc489c84c7101b", + "css": "verify-finger", + "code": 59556, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M792.5 147.2H237.8A76.6 76.6 0 0 0 161.3 223.7V778.4A76.6 76.6 0 0 0 237.8 854.9H792.5A76.6 76.6 0 0 0 869.1 778.4V223.7A76.6 76.6 0 0 0 792.5 147.2ZM292.8 283.5C439.9 176.7 595 177.8 739.9 285.4A20.8 20.8 0 0 1 727.6 322.8C704.1 322.8 543.8 152.4 317.1 317.1A20.7 20.7 0 0 1 292.8 283.5ZM486.1 816.8A20.7 20.7 0 0 1 457.2 811.5C428 769.3 361.6 722.1 361.6 633.8A159.5 159.5 0 0 1 515.1 469.3 159.5 159.5 0 0 1 668.7 633.8V655.9A20.7 20.7 0 0 1 627.2 655.9V633.8A118 118 0 0 0 515.2 510.7 118 118 0 0 0 403.3 633.8C403.3 733.7 530.5 786.1 486.2 816.8ZM743.8 709.5A108.7 108.7 0 0 1 538.7 656C538.7 566.5 477.5 596.6 491.1 650.9A20.7 20.7 0 0 1 450.8 661C422.6 548 580.2 502.2 580.2 656A66.9 66.9 0 0 0 632.1 725C728.1 747.7 756.6 589.3 660.8 487.4 528.5 346.3 314.7 455.1 314.7 622.8A167.7 167.7 0 0 0 344.1 732.4 20.7 20.7 0 0 1 310.4 756.5 211.3 211.3 0 0 1 273.3 622.8 245.9 245.9 0 0 1 515.3 380.8C694.1 380.8 807.9 581.4 744.1 709.6ZM757.7 452.8A20.7 20.7 0 0 1 729.4 445.1C688.2 372.8 588.3 333.9 515.3 333.9A296.7 296.7 0 0 0 300.3 446.4 20.7 20.7 0 0 1 265.8 423.4 336.1 336.1 0 0 1 515.3 292.5C668.9 292.5 806 425.3 757.8 452.9ZM181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.2A36.2 36.2 0 1 0 0 746.2V963.7A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.2V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710Z", + "width": 1015 + }, + "search": [ + "verify-finger" + ] + }, + { + "uid": "f57a7cc9bc5e75095215adfc141a8b17", + "css": "verify-whtsapp", + "code": 59557, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M132.6 857.5L196.3 666.3A364.2 364.2 0 1 1 340.1 802.9ZM742 601.7C725.1 569.9 663.1 533.6 663.1 533.6 649 525.7 632.1 524.7 624.1 538.8A321.2 321.2 0 0 1 598.8 566.5 47.1 47.1 0 0 1 531.8 559.8L481 508.9 430.1 458A47.1 47.1 0 0 1 423.5 391.3 321.3 321.3 0 0 1 451.1 366C465.4 358.1 464.5 341.1 456.4 327.1 456.4 327.1 420 265 388.2 248.2A34.8 34.8 0 0 0 347.3 254.3L324.8 276.8C253.6 348 288.6 428.5 359.9 499.8L425.3 564.9 490.5 630C561.7 701.3 642.2 736.4 713.5 665.1L735.9 642.6A34.9 34.9 0 0 0 742 601.7ZM181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.3A36.2 36.2 0 1 0 0 746.3V963.8A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.3V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710Z", + "width": 1015 + }, + "search": [ + "verify-whtsapp" + ] + }, + { + "uid": "89f9e9928bf0aa0ec55c15055f8ce27a", + "css": "verify-sms", + "code": 59558, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M766.3 175.1H252.2A64.5 64.5 0 0 0 187.9 239.4V817.7L316.4 689.2H766.1A64.5 64.5 0 0 0 830.5 624.8V239.4A64.5 64.5 0 0 0 766.3 175.1ZM412.8 464.4H348.5V400H412.8ZM541.3 464.4H477.2V400H541.3ZM669.8 464.4H605.6V400H669.9ZM181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.2A36.2 36.2 0 1 0 0 746.2V963.7A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.2V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710Z", + "width": 1015 + }, + "search": [ + "verify-sms" + ] + }, + { + "uid": "efc8c6ed2dab146bc55ca80fdd9bc511", + "css": "124", + "code": 59559, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M315.2 3.2L315.2 3.2A45.2 45.2 0 0 1 322.4 3.2S326 3.2 328.4 3.2H328.4A42.4 42.4 0 0 1 336 3.2H336A26.4 26.4 0 0 1 342 3.2H342A37.6 37.6 0 0 1 346.8 6.8 40 40 0 0 1 353.6 11.6L353.6 11.6 600.8 278.8A40 40 0 0 1 604.4 335.2 40 40 0 0 1 547.6 335.2L370 142.8V920H1250A40 40 0 0 1 1250 1000H330A40 40 0 0 1 290 960V129.2L66.4 329.2A40 40 0 0 1 10 325.6 40 40 0 0 1 0 299.2 40 40 0 0 1 13.2 269.2L304.8 10.4A36.4 36.4 0 0 1 310 7.2 40 40 0 0 1 315.2 3.2Z", + "width": 1290 + }, + "search": [ + "124" + ] + }, + { + "uid": "2251120e332d8914aca7fb2d3fbe00f2", + "css": "123", + "code": 59560, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M773 755.3S773 755.3 773 755.3A38.8 38.8 0 0 0 773 749.5 21.7 21.7 0 0 0 773 745.1V745.1A55.8 55.8 0 0 0 773 739.2H773A25.7 25.7 0 0 0 773 734.6V734.6S770.9 732.1 769.9 730.5A31 31 0 0 0 766.2 725.3H766.2L558.1 529.6A31 31 0 0 0 514.1 531.5 31 31 0 0 0 516 575.2L665.1 713.2H62V31A31 31 0 0 0 0 31V744.2A31 31 0 0 0 31 775.2H675.3L520.3 948.5A31 31 0 1 0 566.8 989.5L766.2 764.7S766.2 762.2 768.4 760.9A33.5 33.5 0 0 0 773 755.3Z", + "width": 775 + }, + "search": [ + "123" + ] + }, + { + "uid": "bffd96d1421ef42e3a097855b3820d42", + "css": "obese-bmi-r-1", + "code": 59561, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M307.3 571.7C305.2 589.1 322 680.9 330.6 716.9 334.8 734 346.1 761.8 342 776.5A153.3 153.3 0 0 0 337.7 839.2C339.7 848.6 346 892 337 907.9A369.5 369.5 0 0 0 323.5 958.9C300.8 999.1 313.6 997.1 313.6 997.1 320.6 1003.2 332.7 997.6 332.7 997.6A15.3 15.3 0 0 0 348.1 996.6 18.9 18.9 0 0 0 365.2 996.1 22.4 22.4 0 0 0 384.2 993C389.9 995 391.3 992.5 391.3 992.5 408.3 991.7 381.8 953.5 381.8 953.5A76.3 76.3 0 0 1 388.1 900C429.5 813.7 431.7 790.8 415.1 758.3 410.4 748.9 409.2 745.2 411.4 741.1 416.3 731.7 412.7 693.9 418.8 678.8 430.5 649.9 442 576.4 448 542.1 456.1 495.9 419.4 434 419.4 434 411.4 408.8 423.1 319 423.1 319 439.6 336.9 439 368.6 439 368.6 436.4 401.9 477.2 452.7 477.2 452.7A118.4 118.4 0 0 1 504.3 495.1C504.3 501.1 502.4 515.8 502.4 515.8L503.2 528.5A129.3 129.3 0 0 1 505.7 548.3C502.6 581.6 510.2 575.3 510.2 575.3 516.5 575.3 523.5 548.5 523.5 548.5 523.5 555.4 521.1 576.1 526.4 583.9 532.7 593.2 537.4 582.3 537.5 580.1 539.2 537.8 542.8 548.9 542.8 548.9 546.3 583.2 550.7 591 558.4 588.3 564.3 586.3 558.9 547.1 558.9 547.1 569 570.4 576.7 574.1 576.7 574.1 593.3 582.3 583 559.6 580.7 555.1A99.2 99.2 0 0 1 568 523C583.4 544.5 595 543.6 595 543.6 610 540.3 581.9 509.9 565.4 495.4A126 126 0 0 1 543 472.2 203.5 203.5 0 0 1 534 430.1C532.4 392.3 519.1 375.9 519.1 375.9 496.3 350.3 492 302.5 492 302.5L491 221.9C483 166.9 425.3 166.5 425.3 166.5 366.9 160.4 358.8 147.2 358.8 147.2 346.4 134.7 353.5 110.8 353.5 110.8A38.7 38.7 0 0 0 367.7 89.4C384.7 80.2 383.9 66.8 376 66.9 369.7 67 371.2 63.4 371.2 63.4 381.9 3.1 305.5 0 305.5 0H293.9S217.5 3.1 228.1 63.4C228.1 63.4 229.6 67.1 223.2 67 215.4 66.8 214.6 80.3 231.6 89.4A38.7 38.7 0 0 0 245.8 110.8S252.9 134.8 240.5 147.2C240.5 147.2 232.4 160.5 174 166.6 174 166.6 116.2 167 108.3 222L107.2 302.6S103 350.3 80.2 375.9C80.2 375.9 66.9 392.4 65.4 430.2A204.8 204.8 0 0 1 56.4 472.3 124.6 124.6 0 0 1 33.9 495.5C17.3 510-10.7 540.2 4.3 543.7 4.3 543.7 16 544.5 31.3 523.1A98.1 98.1 0 0 1 18.7 555.2C16.3 559.6 6 582.3 22.6 574.2 22.6 574.2 30.3 570.4 40.4 547.1 40.4 547.1 35 586.4 41 588.4 48.8 591 53.1 583.3 56.6 548.9 56.6 548.9 60.2 537.8 61.9 580.2 62 582.4 66.5 593.3 72.9 584 78.3 576.2 75.9 555.5 75.9 548.6 75.9 548.6 82.8 575.4 89.2 575.4 89.2 575.4 96.8 581.7 93.7 548.4A119.1 119.1 0 0 1 96.2 528.5L96.9 515.8S95 501.1 95 495.1A118.3 118.3 0 0 1 122.1 452.7S162.9 401.8 160.3 368.6C160.3 368.6 159.7 336.9 176.2 319 176.2 319 187.9 408.8 180 434 180 434 143.2 495.9 151.3 542.1 157.3 576.5 168.8 649.9 180.5 678.8 186.6 693.8 183 731.7 187.9 741.1 190.1 745.2 188.9 749 184.2 758.3 167.7 790.8 169.8 813.7 211.3 900A75.6 75.6 0 0 1 217.6 953.5S191.1 991.7 208.1 992.5C208.1 992.5 209.4 995 215.1 993A22.4 22.4 0 0 0 234.2 996.1 18.8 18.8 0 0 0 251.2 996.6 15.2 15.2 0 0 0 266.7 997.6S278.7 1003.3 285.8 997.1C285.8 997.1 298.5 999.1 275.9 958.9A367.7 367.7 0 0 0 262.5 907.9C253.4 892.1 259.9 848.6 261.8 839.2A155.9 155.9 0 0 0 257.5 776.5C253.3 761.8 264.7 734 268.9 716.9 277.5 680.9 294.3 589.1 292.2 571.7L299.2 573.4A18.3 18.3 0 0 0 307.3 571.7Z", + "width": 599 + }, + "search": [ + "obese-bmi-r" + ] + }, + { + "uid": "e3578bfad1396ea9b38bd70c249fa1e5", + "css": "inpatient", + "code": 59737, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M970.7 470.7A29.3 29.3 0 0 0 941.5 500V646.3H878A145.5 145.5 0 0 0 735.6 529.2H421.9V557.4L361.6 556.4A149.2 149.2 0 0 0 235.9 525.1 87.8 87.8 0 1 0 64.6 493.3L58.6 489.5V380.8A29.3 29.3 0 0 0 0 380.8V970.7A29.3 29.3 0 0 0 58.6 970.7V824.3H941.5V970.7A29.3 29.3 0 0 0 1000 970.7V500A29.3 29.3 0 0 0 970.7 470.7ZM58.5 646.3V558.5L197.7 646.3ZM294.9 89.9H353.4V148.4H324.1A29.3 29.3 0 0 0 294.9 177.7V236.2A87.8 87.8 0 0 0 470.5 236.2V177.7A29.3 29.3 0 0 0 441.2 148.4H412V89.9H529V470.7H587.6V29.3A29.3 29.3 0 1 0 529 31.2H294.9A29.3 29.3 0 0 0 294.9 89.8Z", + "width": 1000 + }, + "search": [ + "inpatient" + ] + }, + { + "uid": "1ca5ef3569be282fb05f15395a81d2a0", + "css": "discharge", + "code": 59738, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M985.1 464.6H985.1L535.1 14.6A49.8 49.8 0 0 0 464.8 14.6L14.6 464.6A50.1 50.1 0 0 0 14.6 535.4L464.6 985.1V985.4A50.1 50.1 0 0 0 535.4 985.4L985.3 535.4A49.9 49.9 0 0 0 985.1 464.6ZM599.7 624.9V500H399.7V650H299.7V450A49.8 49.8 0 0 1 349.7 400H599.7V274.9L774.7 449.9Z", + "width": 1000 + }, + "search": [ + "discharge" + ] + }, + { + "uid": "1738fd6466298efa6012247ca0941077", + "css": "order-sheets", + "code": 59739, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M736 84.4A87.2 87.2 0 0 0 673.9 58.6H635V97.6A78.2 78.2 0 0 1 556.9 175.8H205.8A78.2 78.2 0 0 1 127.7 97.6V58.6H88.6A87.9 87.9 0 0 0 0.9 146.4L0 912A87.9 87.9 0 0 0 87.8 1000.1H673A87.9 87.9 0 0 0 760.7 912.3L761.6 146.7A87.4 87.4 0 0 0 736 84.4ZM390.7 351.6H598.7A29.3 29.3 0 0 1 598.7 410.1H390.8A29.3 29.3 0 0 1 390.8 351.6ZM390.7 546.9H598.7A29.3 29.3 0 0 1 598.7 605.5H390.8A29.3 29.3 0 0 1 390.8 546.9ZM390.7 742.2H599.6A29.3 29.3 0 0 1 599.6 800.8H390.7A29.3 29.3 0 0 1 390.7 742.2ZM141.5 352.7A29.2 29.2 0 0 1 182.8 352.7L198.7 368.6 266.2 301.1A29.3 29.3 0 1 1 307.6 342.5L219.4 430.8A29.2 29.2 0 0 1 178.1 430.8L141.6 394.2A29.3 29.3 0 0 1 141.5 352.7ZM141.5 562.9A29.2 29.2 0 0 1 182.8 562.9L198.7 578.8 266.2 511.3A29.3 29.3 0 0 1 307.6 552.7L219.4 641A29.2 29.2 0 0 1 178.1 641L141.6 604.4A29.3 29.3 0 0 1 141.5 562.9ZM141.5 758.2A29.2 29.2 0 0 1 182.8 758.2L198.7 774.2 266.2 706.6A29.3 29.3 0 0 1 307.6 748.1L219.5 836.3A29.2 29.2 0 0 1 178.1 836.3L141.6 799.7A29.3 29.3 0 0 1 141.5 758.2ZM186.2 97.7A19.5 19.5 0 0 0 205.8 117.2H556.9A19.5 19.5 0 0 0 576.4 97.7V19.5A19.5 19.5 0 0 0 556.9 0H205.7A19.5 19.5 0 0 0 186.2 19.5Z", + "width": 762 + }, + "search": [ + "order-sheets" + ] + }, + { + "uid": "37fe23c97ab802ea172b84fc8a0ee196", + "css": "call", + "code": 59740, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M763.9 671.3L986.8 745.6A19.2 19.2 0 0 1 1000 763.8V846.1A153.8 153.8 0 0 1 846.2 1000 846.1 846.1 0 0 1 0 153.6 153.6 153.6 0 0 1 153.6 0H236A19.2 19.2 0 0 1 254.2 13.2L328.7 236A19.2 19.2 0 0 1 321.1 258.1L221.2 324.5A19.7 19.7 0 0 0 213.7 347.6 800 800 0 0 0 652.2 786 19.7 19.7 0 0 0 675.3 778.5L741.8 678.6A19.2 19.2 0 0 1 763.9 671Z", + "width": 1000 + }, + "search": [ + "call" + ] + }, + { + "uid": "ebce1ce36215365ca8c3dd958beaac65", + "css": "medical-report", + "code": 59741, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M764.6 1000H58.8A58.9 58.9 0 0 1 0 941.1V59A58.9 58.9 0 0 1 58.8 0.1H764.6A58.9 58.9 0 0 1 823.5 59V941.3A58.9 58.9 0 0 1 764.6 1000ZM617.4 690.9A112.6 112.6 0 0 0 504.9 803.4 112.6 112.6 0 0 0 617.4 915.9 112.6 112.6 0 0 0 729.9 803.4V795.9H624.8V690.9ZM640.9 659.9V779.9H760.9V772.4A112.6 112.6 0 0 0 648.4 659.9ZM176.6 417.3A29.5 29.5 0 0 0 147.1 446.7 29.5 29.5 0 0 0 176.6 476.2H647.2A29.4 29.4 0 0 0 676.6 446.7 29.4 29.4 0 0 0 647.2 417.3ZM176.6 276.2A29.4 29.4 0 0 0 147.1 305.6 29.5 29.5 0 0 0 176.6 335.1H647.2A29.4 29.4 0 0 0 676.6 305.6 29.4 29.4 0 0 0 647.2 276.2ZM176.6 147.1A29.4 29.4 0 0 0 147.1 176.5 29.5 29.5 0 0 0 176.6 205.9H382.3A29.5 29.5 0 0 0 411.7 176.5 29.4 29.4 0 0 0 382.3 147.1Z", + "width": 823 + }, + "search": [ + "medical-report" + ] + }, + { + "uid": "c8478a11a2d4271b16c1e1f0464ea1ff", + "css": "painscale", + "code": 59742, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M77 120.3L120.2 77 271.7 228.5 228.4 271.8ZM243.6 24.1L299.8 0 364.8 151.4 308.5 175.6ZM0 299.9L24.1 243.6 175.6 308.6 151.4 364.8ZM726 769.4L769.3 726.2 920.7 877.6 877.4 920.9ZM633.1 846.2L689.3 822.1 754.2 973.6 698 997.7ZM822.2 689.5L846.4 633.3 997.8 698.2 973.7 754.5ZM242.5 415.6A122.4 122.4 0 0 1 415.6 588.7 122.4 122.4 0 1 1 415.6 761.8L177.4 1000 4.3 827.1 242.5 588.9A122.4 122.4 0 0 1 242.5 415.8ZM588.7 415.6A122.4 122.4 0 1 1 588.7 242.5L827 4.3 1000.1 177.4 761.7 415.6A122.4 122.4 0 1 1 588.6 415.6Z", + "width": 1000 + }, + "search": [ + "painscale" + ] + }, + { + "uid": "5a0bdc9deb49171daf7251717ac6d715", + "css": "oxygenation", + "code": 59743, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M498.2 186.2A406.9 406.9 0 1 0 905.1 593.1 407.3 407.3 0 0 0 498.2 186.2ZM498.2 926.9A333.9 333.9 0 1 1 832.1 593 334.3 334.3 0 0 1 498.2 927.1ZM380.8 421A161 161 0 0 0 261.9 463.9 161.5 161.5 0 0 0 219.1 583.5 177.3 177.3 0 0 0 240.7 675 131.7 131.7 0 0 0 297 728.4 201.4 201.4 0 0 0 384.8 745.2 176.5 176.5 0 0 0 472 725.7 133 133 0 0 0 525.5 671 193.7 193.7 0 0 0 544 580.8 158.4 158.4 0 0 0 501.6 463 164 164 0 0 0 380.8 421ZM429.8 652.4A59.8 59.8 0 0 1 381.5 672.7 59.6 59.6 0 0 1 333.5 652 105 105 0 0 1 315.8 583.7 105.3 105.3 0 0 1 333.8 514.9 58.9 58.9 0 0 1 380.8 494.1 61.3 61.3 0 0 1 429.3 514.6 97 97 0 0 1 447.2 579.3 116.6 116.6 0 0 1 430 652.4ZM650.7 682.9C654.7 679.8 662.4 672.9 674.1 664.7A154.2 154.2 0 0 0 714.3 626.2 67.5 67.5 0 0 0 725.3 589.8 57.1 57.1 0 0 0 689 536.1 128.1 128.1 0 0 0 641.6 529 115.3 115.3 0 0 0 595.9 536.3 56.8 56.8 0 0 0 570.4 557.2 91.8 91.8 0 0 0 558 595.2L615.8 600A42.6 42.6 0 0 1 625.2 575.4 26.8 26.8 0 0 1 660.9 575.2 21.6 21.6 0 0 1 667.9 591.4 32.1 32.1 0 0 1 660.8 609.9 169.6 169.6 0 0 1 628.3 638.5 247.6 247.6 0 0 0 571.8 689.1 384.4 384.4 0 0 0 553.6 734.7H711.6V698.3H637.1C642.2 698.3 646.8 686.1 650.7 682.9Z", + "width": 1041 + }, + "search": [ + "oxygenation" + ] + }, + { + "uid": "169c700bad100df58cf4c5f69c96a27e", + "css": "speechtotext", + "code": 59744, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M499.8 132A97.3 97.3 0 0 1 597 229.1V248.1A102.7 102.7 0 0 1 708.8 292.8 98.7 98.7 0 0 1 714 388.3L775.6 461.6A281 281 0 0 0 859.7 261.2V261.2A261 261 0 0 0 598.7 0H317.4V60.6A142.4 142.4 0 0 0 336.6 132ZM816.3 680.9L506.4 787.5 439 1000H1001.6A365.8 365.8 0 0 0 816.3 680.9ZM514.7 722.7L769.6 635 749 552.7A92.8 92.8 0 0 1 747.1 518.5L639.5 390.9 655.3 372A41.8 41.8 0 0 0 614 304.4L538.4 321.9V229.1A38.6 38.6 0 0 0 499.9 190.6H359.1V272.6L275.7 411.6 317.4 453.3V488.2L400.4 522.6 325.7 579.1 332 613.1A41.6 41.6 0 0 0 380 646.6L505.6 625ZM231.1 479.7A81.3 81.3 0 0 0 231.1 594.4L272.5 553A22.6 22.6 0 0 1 272.5 521.1ZM157.7 406.3A185 185 0 0 0 157.7 667.7L199.1 626.2A126.4 126.4 0 0 1 199.1 447.7ZM125.8 374.5L84.4 333.1A288.8 288.8 0 0 0 84.4 741.1L125.8 699.7A230.2 230.2 0 0 1 125.8 374.5Z", + "width": 1002 + }, + "search": [ + "speechtotext" + ] + }, + { + "uid": "4c794fd235deed1e405c7a0d77262155", + "css": "search-medicines", + "code": 59748, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M299 341.8L384.4 427.2 341.6 470A60.5 60.5 0 1 1 256.1 384.6ZM384.6 256.1A60.5 60.5 0 1 1 470 341.6L427.3 384.7 341.8 299.2ZM363.2 0A362.9 362.9 0 0 1 640.3 597.5L747.7 704.9 704.9 747.7 597.5 640.3A363.1 363.1 0 1 1 363.2 0ZM213.3 512.9A121.2 121.2 0 0 0 384.6 512.9L513 384.5A121.1 121.1 0 1 0 341.8 213.3L213.4 341.9A121.2 121.2 0 0 0 213.4 513.1ZM998.2 914.4L811 727.3 725.4 812.9 912.6 1000Z", + "width": 998 + }, + "search": [ + "search-medicines" + ] + }, + { + "uid": "deaae97b03da57c5c739ce04877b4d6e", + "css": "discharge-patients", + "code": 59749, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M44.4 4.2A29.3 29.3 0 0 0 0 29.3V794.9A29.3 29.3 0 0 0 14.2 820.1L248.6 995.9A29.3 29.3 0 0 0 293 970.8V205.1A29.3 29.3 0 0 0 278.8 180ZM205 587.9A29.3 29.3 0 1 1 234.3 558.6 29.3 29.3 0 0 1 205 587.9ZM205 587.9M807.3 329.1A29.3 29.3 0 0 0 761.7 353.5V382.8H498A29.3 29.3 0 0 0 468.8 412.1V470.7A29.3 29.3 0 0 0 498 500H761.7V529.3A29.3 29.3 0 0 0 807.3 553.7L924.4 465.8A29.3 29.3 0 0 0 924.4 417.1ZM807.3 329.1M410.2 470.7V412.1A88 88 0 0 1 498 324.2H644.5V29.3A29.3 29.3 0 0 0 615.3 0H136.4L312.2 131.8A88.4 88.4 0 0 1 351.6 205.1V824.2H615.3A29.3 29.3 0 0 0 644.5 794.9V558.6H498A88 88 0 0 1 410.2 470.7ZM410.2 470.7", + "width": 938 + }, + "search": [ + "discharge-patients" + ] + }, + { + "uid": "1c6f710dc04109a0329ee1f833784815", + "css": "referral-discharge", + "code": 59750, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M681.4 793.1L735.5 860.8 683 913.3 659.1 793.7C663.5 793.4 667.9 793.1 672.4 793.1ZM791.7 793.1L758.6 834.3 725.6 793.1ZM835.9 793.1H844.8C849.3 793.1 853.7 793.4 858.1 793.7L834.2 913.3 781.7 860.8ZM913.8 655.1H912.8A154.1 154.1 0 0 0 913.8 637.9V586.2A34.5 34.5 0 0 1 913.8 655.1ZM603.4 482.7A103.6 103.6 0 0 1 706.9 379.3H810.3A103.6 103.6 0 0 1 913.8 482.8V551.7H844.8A34.5 34.5 0 0 1 810.3 517.2V448.3H775.9V465.5A86.3 86.3 0 0 1 689.7 551.7H603.5ZM603.4 655.1A34.5 34.5 0 1 1 603.4 586.2V637.9A154.1 154.1 0 0 0 604.4 655.1ZM637.9 637.9V586.2H689.6A120.4 120.4 0 0 0 781.2 543.9 69 69 0 0 0 844.7 586.2H879.2V637.9A120.6 120.6 0 0 1 637.9 637.9ZM1000 1000H517.2V948.3A155.6 155.6 0 0 1 625.2 800.5L655.4 951.7A17.3 17.3 0 0 0 667.3 964.8 17.6 17.6 0 0 0 672.3 965.5 17.3 17.3 0 0 0 684.5 960.4L758.5 886.4 832.5 960.5A17.2 17.2 0 0 0 861.7 951.7L891.9 800.5A155.6 155.6 0 0 1 999.8 948.3ZM164.1 413.8L218.3 481.5 165.7 534 141.8 414.5C146.3 414.1 150.7 413.8 155.2 413.8ZM274.5 413.8L241.4 455 208.3 413.8ZM318.6 413.8H327.6C332.1 413.8 336.5 414.1 340.9 414.4L317 534 264.5 481.5ZM396.5 275.8H395.5A154 154 0 0 0 396.5 258.6V206.9A34.5 34.5 0 0 1 396.5 275.8ZM86.2 103.5A103.6 103.6 0 0 1 189.7 0H293.1A103.6 103.6 0 0 1 396.6 103.5V172.4H327.6A34.5 34.5 0 0 1 293.1 137.9V69H258.6V86.2A86.3 86.3 0 0 1 172.4 172.4H86.2ZM86.2 275.9A34.5 34.5 0 1 1 86.2 206.9V258.6A154 154 0 0 0 87.2 275.9ZM120.6 258.6V206.9H172.4A120.4 120.4 0 0 0 264 164.6 69 69 0 0 0 327.5 206.9H362V258.6A120.6 120.6 0 1 1 120.7 258.6ZM482.8 620.7H0V569A155.6 155.6 0 0 1 107.9 421.2L138.2 572.3A17.3 17.3 0 0 0 150.1 585.5 17.6 17.6 0 0 0 155.1 586.2 17.3 17.3 0 0 0 167.3 581.1L241.3 507.1 315.3 581.2A17.2 17.2 0 0 0 344.4 572.3L374.7 421.2A155.6 155.6 0 0 1 482.6 569ZM172.4 827.6A17.2 17.2 0 0 0 155.2 810.3H127.8L206.8 731.3 286.1 810.2H258.8A17.2 17.2 0 0 0 241.6 827.4 206.9 206.9 0 0 0 333.6 999.5 172.6 172.6 0 0 1 172.4 827.6ZM816 71.1A20.5 20.5 0 0 0 784.2 88.1V108.6H599.9A20.5 20.5 0 0 0 579.5 129.1V170A20.5 20.5 0 0 0 599.9 190.5H784.2V211A20.5 20.5 0 0 0 816 228L897.9 166.6A20.5 20.5 0 0 0 897.9 132.5ZM816 71.1", + "width": 1000 + }, + "search": [ + "referral-discharge" + ] + }, + { + "uid": "fbbe1c278b442a4840b03064fe4a2ea4", + "css": "respiration-rate-1", + "code": 59510, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M989.3 410.2C907.2 230.7 805.1 123.6 716.1 123.6A91.6 91.6 0 0 0 667.3 137C595.3 181.3 592 319.6 591.9 334.9 591.9 339.7 590.8 377.9 590 431.1L560.9 420.4V20.1A20.3 20.3 0 0 0 540.6-0.2H499.9A20.3 20.3 0 0 0 479.6 20.1V420.4L450.5 431.1C449.7 378 448.7 339.9 448.6 335.3 448.6 319.6 445.2 181.3 373.2 137A91.6 91.6 0 0 0 324.4 123.6C235.5 123.6 133.3 230.8 51.2 410.3-57.1 647.8 39 972 43.2 985.6A20.1 20.1 0 0 0 67.1 999.3 1776.9 1776.9 0 0 0 243.4 946.2C369.2 900.2 434.5 855.1 442.6 808.2A2836.5 2836.5 0 0 0 451.6 473.7L506.5 453.4H534.7L589.6 473.7A2835.8 2835.8 0 0 0 598.6 808.2C606.7 855.1 671.8 900.2 797.8 946.2A1778.4 1778.4 0 0 0 974.1 999.5 20.1 20.1 0 0 0 998 985.7C1001.8 972 1097.9 647.8 989.3 410.2ZM393.1 500.5L249.7 574.6V634.8L260.7 668.2 288.1 694.8A20.3 20.3 0 0 1 260.1 723.7L230.5 695.2 197 732.2A20.3 20.3 0 0 1 167.2 705.1L209.4 658.4V595.3L130.2 636.3A20.3 20.3 0 1 1 111.7 600.5L129.3 591.4 97.8 566.3A20.3 20.3 0 0 1 122.9 534.8L168.5 571.2 278.8 514.3 184.4 442.5A20.3 20.3 0 0 1 208.8 410.4L239.3 433.5 241.9 410.2A20.3 20.3 0 0 1 281.9 414.6L276.5 461.8 318.5 493.7 374.5 464.8A20.3 20.3 0 1 1 393 500.5ZM942.9 566.3L911.4 591.4 929 600.5A20.3 20.3 0 1 1 910.5 636.3L831.4 595.3V658.2L873.7 705A20.3 20.3 0 0 1 843.8 732.1L810.3 695.1 780.8 723.6A20.3 20.3 0 0 1 752.7 694.7L780.1 668.1 791.1 634.7V574.5L647.7 500.4A20.3 20.3 0 1 1 666.2 464.6L722.2 493.6 764.2 461.7 759 414.5A20.3 20.3 0 1 1 799 410L801.6 433.4 832.1 410.2A20.3 20.3 0 0 1 856.5 442.3L761.9 514 872.2 570.9 917.9 534.5A20.3 20.3 0 0 1 943 566Z", + "width": 1041 + }, + "search": [ + "respiration-rate" + ] + }, + { + "uid": "002f9ea7269e8e2ca9a28d0e87f09a2c", + "css": "end-call", + "code": 59604, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M282.4 546.3L133.8 620.6A13.6 13.6 0 0 1 118.2 618L77 576.8A108.8 108.8 0 0 1 77 423 598.3 598.3 0 0 1 923.2 423.2 108.6 108.6 0 0 1 923.2 576.8L882 618A13.6 13.6 0 0 1 866.4 620.6L717.6 546.3A13.6 13.6 0 0 1 710.4 531.5L727.1 448.2A13.8 13.8 0 0 0 719.3 432.9 565.7 565.7 0 0 0 280.8 432.9 13.8 13.8 0 0 0 273 448.3L289.6 531.4A13.6 13.6 0 0 1 282.3 546.2Z", + "width": 1000 + }, + "search": [ + "end-call" + ] + }, + { + "uid": "ace119a586c0a290d5da68f59038e160", + "css": "end-consultaion", + "code": 59605, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M664.4 0H92.6A92.7 92.7 0 0 0 0 92.6V907.4A92.7 92.7 0 0 0 92.6 1000H664.3A92.7 92.7 0 0 0 756.9 907.4V92.6A92.7 92.7 0 0 0 664.4 0ZM118.7 167.8L176.4 68.5A20.8 20.8 0 1 1 212.4 89.3L173 157.2H587.9L556.4 87.4A20.8 20.8 0 1 1 594.4 70.1L639.1 169.5A20.8 20.8 0 0 1 620.1 198.9H136.8A20.8 20.8 0 0 1 118.7 167.8ZM644.6 608.6H492.4A20.8 20.8 0 0 1 472.7 594.7L458.3 554.1 423.7 813.6A20.8 20.8 0 0 1 403.7 831.6H403.1A20.8 20.8 0 0 1 382.7 814.7L312.5 452.1 266.5 606.1A20.8 20.8 0 0 1 246.6 621H112.3A20.8 20.8 0 1 1 112.3 579.5H231.1L296.8 358.9A20.8 20.8 0 0 1 337.2 360.9L399.1 681.8 428.4 463.2A20.8 20.8 0 0 1 446.8 445.3 21.3 21.3 0 0 1 468.7 459.1L507 567.1H644.5A20.8 20.8 0 1 1 644.5 608.6Z", + "width": 757 + }, + "search": [ + "end-consultaion" + ] + }, + { + "uid": "62a5ade64a871b2006d088b4e107506f", + "css": "folder-open", + "code": 59606, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1130.2 347.1A103.3 103.3 0 0 0 1027.1 244.8H565.1L102.7 246.1A103.3 103.3 0 0 0 0 349.8 17.1 17.1 0 0 0 0 352.4L89.8 898.2A103.3 103.3 0 0 0 192.8 999.9H1117.6A103.3 103.3 0 0 0 1220.7 896.8 17.1 17.1 0 0 0 1220.7 894.2ZM1269.1 113.6H814.5L724.6 6.1A16.8 16.8 0 0 0 711.3 0H344.3A103.3 103.3 0 0 0 241.2 101.7L225.3 197.9H259.5L1027.4 197.9A151.5 151.5 0 0 1 1178.1 342.7L1239.5 715.6 1254.8 807.5A102.5 102.5 0 0 0 1263.6 767.2L1371.6 220.2A16.8 16.8 0 0 0 1371.6 216.9 103.3 103.3 0 0 0 1269.1 113.6Z", + "width": 1372 + }, + "search": [ + "folder-open" + ] + }, + { + "uid": "f696b8dc00777a69a4e1e52df2955ec4", + "css": "folder", + "code": 59607, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1029 245.6H572.9L482 137.6A15.5 15.5 0 0 0 469.6 132H101.5A102.3 102.3 0 0 0 0 234.4V897.8A102.3 102.3 0 0 0 102.2 1000H1029A102.3 102.3 0 0 0 1131.2 897.8V347.7A102.3 102.3 0 0 0 1029 245.6ZM1163 113.4H706.6L615.9 5.6A15.5 15.5 0 0 0 603.5 0H235.5A102.2 102.2 0 0 0 134.5 88H470.1A59.4 59.4 0 0 1 515.7 109.2L593.2 201.2H1029A146.5 146.5 0 0 1 1175.1 347.8V867A102.2 102.2 0 0 0 1264.6 765.7V215.4A102.3 102.3 0 0 0 1163 113.4Z", + "width": 1265 + }, + "search": [ + "folder" + ] + }, + { + "uid": "e794f7865351585b57f62ec43bba8aff", + "css": "link-in", + "code": 59608, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M333.3 750L916.6 750A83.6 83.6 0 0 0 999.9 666.6V83.3A83.6 83.6 0 0 0 916.6 0L333.3 0A83.6 83.6 0 0 0 250 83.3V666.6A83.6 83.6 0 0 0 333.3 750ZM479.1 375V476.6L789.1 166.6 833.2 210.9 523.8 520.7 625.3 520.7V583.3H458.1A41.6 41.6 0 0 1 416.5 541.6V374.9ZM416.7 833.4V916.7H83.3V583.4H166.6V500H41.7A41.8 41.8 0 0 0 0 541.7V958.4A41.9 41.9 0 0 0 41.7 1000.1H458.3A41.9 41.9 0 0 0 500 958.4V833.4Z", + "width": 1000 + }, + "search": [ + "link-in" + ] + }, + { + "uid": "8cbd9cb0e30a60dbfcd1425cb5dbc06d", + "css": "link-out", + "code": 59609, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M916.7 0H333.5A83.4 83.4 0 0 0 250 83.4V666.8A83.4 83.4 0 0 0 333.5 750.2H916.8A83.4 83.4 0 0 0 1000.2 666.8V83.4A83.4 83.4 0 0 0 916.7 0ZM770.8 375V273.3L460.8 583.3 416.7 539 726.7 229.1 625.1 229.1V166.7H791.7A41.6 41.6 0 0 1 833.4 208.3L833.4 375.2ZM416.7 833.3V916.8H83.4V583.4H166.9V500H41.6A41.8 41.8 0 0 0 0 541.6V958.3A41.8 41.8 0 0 0 41.6 1000H458.4A41.8 41.8 0 0 0 500 958.3V833.3Z", + "width": 1000 + }, + "search": [ + "link-out" + ] + }, + { + "uid": "ed96dd3085af227cc96170408b84c816", + "css": "mute-microphone", + "code": 59610, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M584.7 579.6V448.4L305.8 727.3A178.5 178.5 0 0 0 584.7 579.6ZM693 472.9H657.5A20.7 20.7 0 0 0 636.8 493.6V566.3A230.7 230.7 0 0 1 276.1 756.9L221.8 811.2A302.3 302.3 0 0 0 367.6 871.6V923.1H208.8A20.7 20.7 0 0 0 188.1 943.8V979.4A20.7 20.7 0 0 0 208.8 1000H603.3A20.7 20.7 0 0 0 624 979.4V943.8A20.7 20.7 0 0 0 603.3 923.1H444.5V871.6A312.1 312.1 0 0 0 713.8 566.4V493.7A20.7 20.7 0 0 0 693 472.9ZM795.4 79.6A56.9 56.9 0 0 0 715 79.6L584.7 209.9V178.6A178.6 178.6 0 0 0 227.4 178.6V567.1L180.4 614.2A230 230 0 0 1 175.2 566.3V493.6A20.7 20.7 0 0 0 154.5 472.9H119A20.7 20.7 0 0 0 98.3 493.6V566.3A298.4 298.4 0 0 0 119.3 675.3L16.7 777.9A56.9 56.9 0 0 0 97.1 858.4L795.4 160.1A56.9 56.9 0 0 0 795.4 79.6Z", + "width": 812 + }, + "search": [ + "mute-microphone" + ] + }, + { + "uid": "7c8fce018306529b3c40386a8e946374", + "css": "no-video", + "code": 59611, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M69.3 676.7L620.8 125.2H204A135.1 135.1 0 0 0 69.3 260.4ZM1179.1 184.9A135.9 135.9 0 0 0 1052.4 172.5L926.1 225.1A129.2 129.2 0 0 0 904.5 180.5L982.5 102.6A59.9 59.9 0 1 0 897.7 17.9L17.4 898.1A59.5 59.5 0 0 0 17.6 982.4 59.8 59.8 0 0 0 102.3 982.4L210 874.9H796.2A134.6 134.6 0 0 0 926.1 775L1052.4 827.4A134.4 134.4 0 0 0 1179.1 815 134.9 134.9 0 0 0 1239.1 702.7V297.4A134.9 134.9 0 0 0 1179.1 184.9ZM1119.1 702.7A13.7 13.7 0 0 1 1112.3 715 14.6 14.6 0 0 1 1098.4 716.6L930.9 647.5V352.6L1098.2 283.5A14.6 14.6 0 0 1 1112.1 285 13.7 13.7 0 0 1 1119 297.4Z", + "width": 1239 + }, + "search": [ + "no-video" + ] + }, + { + "uid": "7be786f4ac20cbacd06a26d712accfff", + "css": "send-instruction", + "code": 59612, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M436.7 0A436.7 436.7 0 0 0 226.4 819.5L221.3 1000 427.3 873C430.4 873 433.5 873.5 436.7 873.5A436.7 436.7 0 0 0 436.7 0ZM492.4 691.3H380.4V331H492.4ZM435.7 286.9A54.7 54.7 0 0 1 377.5 231 54.7 54.7 0 0 1 436.4 174.2 56.5 56.5 0 1 1 435.6 287Z", + "width": 873 + }, + "search": [ + "send-instruction" + ] + }, + { + "uid": "926041acc7150e19895e12f7bba3d07a", + "css": "transfer-to-admin", + "code": 59613, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M202.7 517.8L148.9 463.9A52.2 52.2 0 0 1 148.9 390.3L414.1 125 342.5 53.3A31.2 31.2 0 0 1 364.6 0H635.4A31.3 31.3 0 0 1 666.7 31.2V302.1A31.2 31.2 0 0 1 613.3 324.2L541.7 252.5 276.4 517.7A52.2 52.2 0 0 1 202.8 517.7ZM302.1 1000H31.2A31.3 31.3 0 0 1 0 968.8V697.9A31.2 31.2 0 0 1 53.3 675.8L125 747.5 390.3 482.2A52.2 52.2 0 0 1 463.9 482.2L517.8 536.1A52.2 52.2 0 0 1 517.8 609.7L252.5 875 324.1 946.7A31.2 31.2 0 0 1 302 1000Z", + "width": 667 + }, + "search": [ + "transfer-to-admin" + ] + } + ] +} \ No newline at end of file diff --git a/lib/widgets/icons_app/doctor_app_icons.dart b/lib/widgets/icons_app/doctor_app_icons.dart new file mode 100644 index 0000000..113fcba --- /dev/null +++ b/lib/widgets/icons_app/doctor_app_icons.dart @@ -0,0 +1,407 @@ +/// Flutter icons DoctorApp +/// Copyright (C) 2021 by original authors @ fluttericon.com, fontello.com +/// This font was generated by FlutterIcon.com, which is derived from Fontello. +/// +/// To use this font, place it in your fonts/ directory and include the +/// following in your pubspec.yaml +/// +/// flutter: +/// fonts: +/// - family: DoctorApp +/// fonts: +/// - asset: fonts/DoctorApp.ttf +/// +/// +/// * MFG Labs, Copyright (C) 2012 by Daniel Bruce +/// Author: MFG Labs +/// License: SIL (http://scripts.sil.org/OFL) +/// Homepage: http://www.mfglabs.com/ +/// +import 'package:flutter/widgets.dart'; + +class DoctorApp { + DoctorApp._(); + + static const _kFontFam = 'DoctorApp'; + static const String _kFontPkg = ""; + + static const IconData female_icon = + IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData male = + IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData reject_icon = + IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_icon_active = + IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData menu_icon = + IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData menu_icon_active = + IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData message_icon = + IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData message_icon_active = + IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData scdedule_icon_active = + IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData schedule_icon = + IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData discharge_patient = + IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData approved_icon = + IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData pending_icon = + IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData in_patient_white = + IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData lab_results = + IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_icon = + IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData referral_1 = + IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData progress_notes = + IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_icon_1 = + IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData operations = + IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData out_patient = + IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData patient = + IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_code = + IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData radiology = + IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData referral = + IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData male_2 = + IconData(0xe819, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search_patient = + IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData female_1 = + IconData(0xe81b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_icon_active_1 = + IconData(0xe81c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData menu_icon_1 = + IconData(0xe81d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData mail = + IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData medicine_search = + IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_code_1 = + IconData(0xe820, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search_1 = + IconData(0xe821, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData referred = + IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData send = + IconData(0xe823, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData sync_icon = + IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData drawer_icon = + IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData view = + IconData(0xe826, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData warning = + IconData(0xe827, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData add = + IconData(0xe828, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData close = + IconData(0xe829, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData back = + IconData(0xe82a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData health_summary = + IconData(0xe82b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData powered_by_cs = + IconData(0xe82c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_code_2 = + IconData(0xe82d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ecg = + IconData(0xe82e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData create_episode = + IconData(0xe82f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData booked = + IconData(0xe830, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData admission_req = + IconData(0xe831, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData walkin = + IconData(0xe832, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData reschedule_ = + IconData(0xe833, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData edit = + IconData(0xe834, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData leaves = + IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData logout = + IconData(0xe837, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData obese_bmi = + IconData(0xe838, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData livecare = + IconData(0xe839, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData health_bmi = + IconData(0xe83a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData health_bmi_r = + IconData(0xe83b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData modify_episode = + IconData(0xe83c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData height = + IconData(0xe83d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData obese_bmi_r = + IconData(0xe83e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ovrweight_bmi = + IconData(0xe83f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData order_prescription = + IconData(0xe840, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData order_procedures = + IconData(0xe841, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ovrweight_bmi_r = + IconData(0xe842, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData respiration_rate = + IconData(0xe843, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData patient_sick_leave = + IconData(0xe844, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData progress_notes_1 = + IconData(0xe845, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData temperature = + IconData(0xe846, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData underweight_bmi = + IconData(0xe847, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData radiology_1 = + IconData(0xe848, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search_patient_1 = + IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData referral_bg = + IconData(0xe84a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search = + IconData(0xe84b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search_bg = + IconData(0xe84c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData arrival_patients = + IconData(0xe84d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData arrival_patients_bg = + IconData(0xe84e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData refer_patient = + IconData(0xe84f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData underweight_bmi_r = + IconData(0xe850, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData weight = + IconData(0xe851, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData blood_pressure = + IconData(0xe852, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData vital_signs = + IconData(0xe853, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ucaf = + IconData(0xe854, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData filter = + IconData(0xe855, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData male_1 = + IconData(0xe856, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData female = + IconData(0xe857, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData external_link = + IconData(0xe858, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_face_2 = + IconData(0xe859, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_sms_2 = + IconData(0xe85a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home = + IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_finger_2 = + IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData dr_reply_active = + IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData dr_reply = + IconData(0xe85e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData schedule_active = + IconData(0xe85f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData schedule = + IconData(0xe860, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_reader_active = + IconData(0xe861, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_reader = + IconData(0xe862, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_active = + IconData(0xe863, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData arrow_forward = + IconData(0xe864, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData heart_rate = + IconData(0xe865, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData menu_icon_active_1 = + IconData(0xe866, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData message_icon_1 = + IconData(0xe867, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData message_icon_active_1 = + IconData(0xe868, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData scdedule_icon_active_1 = + IconData(0xe869, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ovrweight_bmi_r_1 = + IconData(0xe86a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData underweight_bmi_1 = + IconData(0xe86b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData temperature_1 = + IconData(0xe86c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData underweight_bmi_r_1 = + IconData(0xe86d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData weight_1 = + IconData(0xe86e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData blood_pressure_1 = + IconData(0xe86f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData health_bmi_r_1 = + IconData(0xe870, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData health_bmi_1 = + IconData(0xe871, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData heart_rate_1 = + IconData(0xe872, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData height_1 = + IconData(0xe873, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData obese_bmi_1 = + IconData(0xe874, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ovrweight_bmi_1 = + IconData(0xe875, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData respiration_rate_1 = + IconData(0xe876, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_code_3 = + IconData(0xe877, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData reschedule__1 = + IconData(0xe878, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData logout_1 = + IconData(0xe879, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData livecare_1 = + IconData(0xe87a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData modify_episode_1 = + IconData(0xe87b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData order_prescription_1 = + IconData(0xe87c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData order_procedures_1 = + IconData(0xe87d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData patient_sick_leave_1 = + IconData(0xe87e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData progress_notes_2 = + IconData(0xe87f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData radiology_2 = + IconData(0xe880, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData refer_patient_1 = + IconData(0xe881, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ucaf_1 = + IconData(0xe882, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData vital_signs_1 = + IconData(0xe883, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData walkin_1 = + IconData(0xe884, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData admission_req_1 = + IconData(0xe885, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData booked_1 = + IconData(0xe886, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData create_episode_1 = + IconData(0xe887, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData ecg_1 = + IconData(0xe888, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData health_summary_1 = + IconData(0xe889, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData lab_results_1 = + IconData(0xe88a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData female_2 = + IconData(0xe88b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData filter_1 = + IconData(0xe88c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData male_3 = + IconData(0xe88d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search_2 = + IconData(0xe88e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData send_1 = + IconData(0xe88f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData view_1 = + IconData(0xe890, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData warning_1 = + IconData(0xe891, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData add_1 = + IconData(0xe892, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData arrow_forward_1 = + IconData(0xe893, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData back_1 = + IconData(0xe894, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData close_1 = + IconData(0xe895, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData edit_1 = + IconData(0xe896, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData external_link_1 = + IconData(0xe897, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_finger_1 = + IconData(0xe898, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_sms_1 = + IconData(0xe899, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_face_1 = + IconData(0xe89a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_reader_1 = + IconData(0xe89b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData qr_reader_active_1 = + IconData(0xe89c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData schedule_1 = + IconData(0xe89d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData schedule_active_1 = + IconData(0xe89e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData dr_reply_1 = + IconData(0xe89f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData dr_reply_active_1 = + IconData(0xe8a0, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_1 = + IconData(0xe8a1, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData home_active_1 = + IconData(0xe8a2, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_face = + IconData(0xe8a3, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_finger = + IconData(0xe8a4, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_whtsapp = + IconData(0xe8a5, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData verify_sms = + IconData(0xe8a6, fontFamily: _kFontFam, fontPackage: _kFontPkg); + + /// static const IconData 124 = IconData(0xe8a7, fontFamily: _kFontFam, fontPackage: _kFontPkg); + ///static const IconData 123 = IconData(0xe8a8, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData obese_bmi_r_1 = + IconData(0xe8a9, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData end_call = + IconData(0xe8d4, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData end_consultaion = + IconData(0xe8d5, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData folder_open = + IconData(0xe8d6, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData folder = + IconData(0xe8d7, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData link_in = + IconData(0xe8d8, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData link_out = + IconData(0xe8d9, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData mute_microphone = + IconData(0xe8da, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData no_video = + IconData(0xe8db, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData send_instruction = + IconData(0xe8dc, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData transfer_to_admin = + IconData(0xe8dd, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData inpatient = + IconData(0xe959, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData discharge = + IconData(0xe95a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData order_sheets = + IconData(0xe95b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData call = + IconData(0xe95c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData medical_report = + IconData(0xe95d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData painscale = + IconData(0xe95e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData oxygenation = + IconData(0xe95f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData speechtotext = + IconData(0xe960, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData search_medicines = + IconData(0xe964, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData discharge_patients = + IconData(0xe965, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData referral_discharge = + IconData(0xe966, fontFamily: _kFontFam, fontPackage: _kFontPkg); +} diff --git a/lib/widgets/input_widget.dart b/lib/widgets/input_widget.dart index 1a38198..d3fb4d4 100644 --- a/lib/widgets/input_widget.dart +++ b/lib/widgets/input_widget.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:hmg_nurses/classes/colors.dart'; import 'package:hmg_nurses/extensions/int_extensions.dart'; import 'package:hmg_nurses/extensions/widget_extensions.dart'; @@ -9,6 +10,7 @@ class CustomTextField extends StatefulWidget { final String? hintText; final TextEditingController controller; final VoidCallback? suffixTap; + final IconData? suffixIcon; final bool isEnable; final bool hasSelection; final int? lines; @@ -19,27 +21,34 @@ class CustomTextField extends StatefulWidget { final double verticalPadding; final double horizontalPadding; final Function(String)? onChange; + final Function()? onEditComplete; + final Function(String)? onSubmit; final Function? onClick; final FocusNode? focusNode; + List? inputFormatters; - const CustomTextField( + CustomTextField( this.labelText, this.controller, { Key? key, this.isTextIsPassword = false, this.suffixTap, + this.suffixIcon, this.hintText, this.isEnable = true, this.hasSelection = false, this.isEnableBorder = true, this.lines = 1, this.onChange, + this.onEditComplete, + this.onSubmit, this.onClick, this.isInputTypeNum = false, this.isBackgroundEnable = false, this.focusNode, this.verticalPadding = 15, this.horizontalPadding = 16, + this.inputFormatters, }) : super(key: key); @override @@ -48,10 +57,12 @@ class CustomTextField extends StatefulWidget { class CustomTextFieldState extends State { late bool isObscureText; + late FocusNode focusNode; @override void initState() { super.initState(); + focusNode = FocusNode(); isObscureText = widget.isTextIsPassword; } @@ -62,24 +73,19 @@ class CustomTextFieldState extends State { @override Widget build(BuildContext context) { - return Container( - padding: EdgeInsets.only(left: widget.horizontalPadding, right: widget.horizontalPadding, bottom: widget.verticalPadding, top: widget.verticalPadding), - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(15), - color: widget.isBackgroundEnable ? const Color(0xffF7F7F7) : Colors.white, - border: Border.all(color: widget.isEnableBorder ? Colors.grey.shade300 : Colors.transparent, width: 1), - ), - child: InkWell( - onTap: widget.hasSelection - ? () { - widget.onClick!(); - } - : () { - if (widget.focusNode != null) { - widget.focusNode?.requestFocus(); - } - }, + return InkWell( + onTap: () { + focusNode.requestFocus(); + if (widget.hasSelection) widget.onClick!(); + }, + child: Container( + padding: EdgeInsets.only(left: widget.horizontalPadding, right: widget.horizontalPadding, bottom: widget.verticalPadding, top: widget.verticalPadding), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15), + color: widget.isBackgroundEnable ? const Color(0xffF7F7F7) : Colors.white, + border: Border.all(color: widget.isEnableBorder ? Colors.grey.shade300 : Colors.transparent, width: 1), + ), child: Row( children: [ Expanded( @@ -98,7 +104,7 @@ class CustomTextFieldState extends State { ), ), TextField( - focusNode: widget.focusNode, + focusNode: focusNode, autofocus: false, enabled: widget.isEnable, scrollPadding: EdgeInsets.zero, @@ -108,6 +114,9 @@ class CustomTextFieldState extends State { obscuringCharacter: "*", obscureText: isObscureText, onChanged: widget.onChange, + onEditingComplete: widget.onEditComplete, + onSubmitted: widget.onSubmit, + inputFormatters: widget.inputFormatters, style: const TextStyle( fontSize: 14, height: 21 / 14, @@ -126,7 +135,7 @@ class CustomTextFieldState extends State { letterSpacing: -0.56, ), suffixIconConstraints: const BoxConstraints(minWidth: 50), - suffixIcon: widget.suffixTap == null ? null : IconButton(icon: const Icon(Icons.mic, color: MyColors.darkTextColor), onPressed: widget.suffixTap), + suffixIcon: widget.suffixTap == null ? null : IconButton(icon: Icon(Icons.mic, color: MyColors.darkTextColor), onPressed: widget.suffixTap), contentPadding: EdgeInsets.zero, border: InputBorder.none, focusedBorder: InputBorder.none, @@ -145,6 +154,7 @@ class CustomTextFieldState extends State { }) ], if (widget.hasSelection) const Icon(Icons.keyboard_arrow_down_outlined), + if (widget.suffixIcon != null && widget.suffixTap == null) Icon(widget.suffixIcon!), ], ), ), diff --git a/lib/widgets/loading_dialog.dart b/lib/widgets/loading_dialog.dart index 9c88a39..540c094 100644 --- a/lib/widgets/loading_dialog.dart +++ b/lib/widgets/loading_dialog.dart @@ -36,7 +36,7 @@ class _LoadingDialogState extends State { textDirection: TextDirection.rtl, child: Center( child: Image.asset( - "assets/images/logos/loading_mohemm_logo.gif", + "assets/images/loading_mohemm_logo.gif", height: 96.0, width: 96.0, ), diff --git a/pubspec.lock b/pubspec.lock index 1ab34e8..833e78a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,13 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.8" args: dependency: transitive description: @@ -29,6 +36,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.3" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" characters: dependency: transitive description: @@ -43,6 +71,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "5.8.5" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.5" collection: dependency: transitive description: @@ -99,11 +141,67 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "6.1.4" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "4.5.2" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + url: "https://pub.dartlang.org" + source: hosted + version: "14.1.0" + firebase_messaging_platform_interface: + dependency: transitive + description: + name: firebase_messaging_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.6" + firebase_messaging_web: + dependency: transitive + description: + name: firebase_messaging_web + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.6" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_blurhash: + dependency: transitive + description: + name: flutter_blurhash + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + url: "https://pub.dartlang.org" + source: hosted + version: "3.3.0" flutter_lints: dependency: "direct dev" description: @@ -147,13 +245,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "8.1.1" - get_it: - dependency: "direct main" - description: - name: get_it - url: "https://pub.dartlang.org" - source: hosted - version: "7.2.0" hexcolor: dependency: "direct main" description: @@ -209,35 +300,7 @@ packages: name: local_auth url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" - local_auth_android: - dependency: transitive - description: - name: local_auth_android - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.15" - local_auth_ios: - dependency: transitive - description: - name: local_auth_ios - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.10" - local_auth_platform_interface: - dependency: transitive - description: - name: local_auth_platform_interface - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.5" - local_auth_windows: - dependency: transitive - description: - name: local_auth_windows - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.4" + version: "1.1.11" logger: dependency: "direct main" description: @@ -273,6 +336,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.0" + octo_image: + dependency: transitive + description: + name: octo_image + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" path: dependency: transitive description: @@ -343,6 +413,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.3" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" permission_handler: dependency: "direct main" description: @@ -413,6 +490,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "6.0.4" + rxdart: + dependency: transitive + description: + name: rxdart + url: "https://pub.dartlang.org" + source: hosted + version: "0.27.7" shared_preferences: dependency: "direct main" description: @@ -495,6 +579,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.9.0" + sqflite: + dependency: transitive + description: + name: sqflite + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0+3" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.0+2" stack_trace: dependency: transitive description: @@ -516,6 +614,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" + synchronized: + dependency: transitive + description: + name: synchronized + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0+3" term_glyph: dependency: transitive description: @@ -544,6 +649,69 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.4" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.7" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.22" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.17" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.13" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + uuid: + dependency: transitive + description: + name: uuid + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.7" vector_math: dependency: transitive description: @@ -574,4 +742,4 @@ packages: version: "6.1.0" sdks: dart: ">=2.18.2 <3.0.0" - flutter: ">=3.0.0" + flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index 24ec73e..9516e2c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,9 +49,17 @@ dependencies: auto_size_text: ^3.0.0 shimmer: ^2.0.0 sizer: ^2.0.15 - local_auth: ^2.1.2 - get_it: ^7.2.0 + local_auth: ^1.1.9 +# get_it: ^7.2.0 hexcolor: ^2.0.4 + cached_network_image: ^3.2.3 + url_launcher: ^6.1.7 + + + + # Firebase + firebase_messaging: ^14.1.0 + firebase_core: ^2.2.0 dev_dependencies: @@ -79,8 +87,13 @@ flutter: assets: - assets/ - assets/langs/ + - assets/images/svgs/ + - assets/images/svgs/profile_screen/ + - assets/images/svgs/bottom_nav/ + - assets/images/svgs/verification/ - assets/images/login/ - assets/images/patient/ + - assets/images/ diff --git a/test/widget_test.dart b/test/widget_test.dart index 04e9ac2..d9e33cb 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -13,7 +13,7 @@ import 'package:hmg_nurses/main.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget(MyApp()); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget);