Merge branch 'development' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into development

# Conflicts:
#	lib/screens/dashboard_screen.dart
#	lib/screens/patients/patients_screen.dart
merge-requests/348/head
mosazaid 4 years ago
commit 6c46e21031

Binary file not shown.

@ -740,4 +740,10 @@ const Map<String, Map<String, String>> localizedValues = {
},
'no-clinic': {'en': "No Clinic", 'ar': "لا عيادة"},
'otherStatistic': {'en': "Other Statistics", 'ar': "دیگر شماریات"},
'ptientsreferral': {'en': "Patient's Referrals", 'ar': "مریض کا حوالہ"},
'arrivalpatient': {'en': "Arrival Patients", 'ar': "مریضوں کی آمد"},
'searchmedicinepatient': {
'en': "Search patient or Medicines",
'ar': "مریض یا دوائیں تلاش کریں"
},
};

@ -426,6 +426,48 @@
"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": "740f78c2b53c8cc100a8b0d283bbd34f",
"css": "home_icon-1",
@ -471,7 +513,7 @@
{
"uid": "e2f6f0a56d4570c777c8bd5c50e38ea7",
"css": "menu_icon_active-1",
"code": 59408,
"code": 59409,
"src": "custom_icons",
"selected": false,
"svg": {
@ -485,7 +527,7 @@
{
"uid": "f7eb1344b3a40f36bb4d32cdd0d76496",
"css": "message_icon-1",
"code": 59409,
"code": 59410,
"src": "custom_icons",
"selected": false,
"svg": {
@ -523,6 +565,48 @@
"search": [
"scdedule_icon_active"
]
},
{
"uid": "2661cb62f53ed61755aa809d5280808e",
"css": "referral-bg",
"code": 59466,
"src": "custom_icons",
"selected": false,
"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": "961571413453d8de8d1d6325705ef204",
"css": "search-bg",
"code": 59468,
"src": "custom_icons",
"selected": false,
"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": "6ec3034cfbe5c91e478ef9b9437647ed",
"css": "arrival-patients-bg",
"code": 59470,
"src": "custom_icons",
"selected": false,
"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"
]
}
]
}

@ -11,7 +11,7 @@
/// fonts:
/// - asset: fonts/DoctorApp.ttf
///
///
///
///
import 'package:flutter/widgets.dart';
@ -19,36 +19,72 @@ class DoctorApp {
DoctorApp._();
static const _kFontFam = 'DoctorApp';
static const _kFontPkg = null;
static const String _kFontPkg = null;
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 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 search_patient = IconData(0xe81a, 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 referred = IconData(0xe822, 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 leaves = IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_patient_1 = IconData(0xe849, fontFamily: _kFontFam, fontPackage: _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 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 search_patient =
IconData(0xe81a, 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 referred =
IconData(0xe822, 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 leaves =
IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_patient_1 =
IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search =
IconData(0xe84b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrival_patients =
IconData(0xe84d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}

@ -42,15 +42,17 @@ class _LandingPageState extends State<LandingPage> {
return Scaffold(
appBar: AppBar(
elevation: 0,
backgroundColor: HexColor('#515B5D'),
textTheme: TextTheme(headline6: TextStyle(color: Colors.white)),
title: Text(getText(currentTab).toUpperCase()),
backgroundColor: Colors.grey[100],
//textTheme: TextTheme(headline6: TextStyle(color: Colors.white)),
title: currentTab != 0
? Text(getText(currentTab).toUpperCase())
: Text(''),
leading: Builder(
builder: (BuildContext context) {
return IconButton(
icon: Icon(DoctorApp.drawer_icon),
iconSize: 15,
color: Colors.white,
color: Colors.black,
onPressed: () => Scaffold.of(context).openDrawer(),
);
},
@ -66,9 +68,9 @@ class _LandingPageState extends State<LandingPage> {
ShowCaseWidget(
builder: Builder(builder: (context) => DashboardScreen()),
),
DoctorReplyScreen(),
MyScheduleScreen(),
QrReaderScreen()
QrReaderScreen(),
DoctorReplyScreen(),
],
),
bottomNavigationBar: BottomNavBar(changeIndex: _changeCurrentTab),
@ -80,11 +82,11 @@ class _LandingPageState extends State<LandingPage> {
case 0:
return TranslationBase.of(context).home;
case 1:
return TranslationBase.of(context).replay;
case 2:
return TranslationBase.of(context).mySchedule;
case 3:
case 2:
return TranslationBase.of(context).qr;
case 3:
return TranslationBase.of(context).replay;
}
}
}

@ -14,7 +14,7 @@ import './routes.dart';
import 'config/config.dart';
import 'locator.dart';
void main()async {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
setupLocator();

File diff suppressed because it is too large Load Diff

@ -8,41 +8,39 @@ import 'package:flutter/material.dart';
import '../../widgets/shared/app_scaffold_widget.dart';
class MyReferredPatient extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BaseView<ReferredPatientViewModel>(
onModelReady: (model) => model.getMyReferredPatient(),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
appBarTitle: TranslationBase.of(context).myReferredPatient,
body: model.listMyReferredPatientModel.length == 0
? Center(
child: AppText(
TranslationBase.of(context).errorNoSchedule,
color: Theme.of(context).errorColor,
),
)
: Container(
padding: EdgeInsetsDirectional.fromSTEB(20, 0, 20, 0),
child: ListView(
children: <Widget>[
Column(
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).myReferredPatient,
body: model.listMyReferredPatientModel.length == 0
? Center(
child: AppText(
TranslationBase.of(context).errorNoSchedule,
color: Theme.of(context).errorColor,
),
)
: Container(
padding: EdgeInsetsDirectional.fromSTEB(20, 0, 20, 0),
child: ListView(
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 10,
height: 100,
),
Container(
child: Column(
//children: referredPatientProvider.listMyReferralPatientModel.map((item) {
children: model
.listMyReferredPatientModel
children: model.listMyReferredPatientModel
.map((item) {
return MyReferredPatientWidget(
myReferredPatientModel: item,
model:model
);
myReferredPatientModel: item,
model: model);
}).toList(),
),
),
@ -51,6 +49,6 @@ class MyReferredPatient extends StatelessWidget {
],
),
),
));
));
}
}

@ -88,8 +88,8 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
});
}
InputDecoration textFieldSelectorDecoration(String hintText,
String selectedText, bool isDropDown,
InputDecoration textFieldSelectorDecoration(
String hintText, String selectedText, bool isDropDown,
{IconData icon}) {
return InputDecoration(
focusedBorder: OutlineInputBorder(
@ -117,159 +117,154 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
Widget build(BuildContext context) {
return BaseView<MedicineViewModel>(
onModelReady: (model) async {
if(model.allMedicationList.length == 0)
await model.getMedicationList();
if (model.allMedicationList.length == 0)
await model.getMedicationList();
},
builder: (_, model, w) =>
AppScaffold(
baseViewModel: model,
appBarTitle: TranslationBase
.of(context)
.searchMedicine,
body: SingleChildScrollView(
child: FractionallySizedBox(
widthFactor: 0.97,
child: SingleChildScrollView(
child: Column(
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).searchMedicine,
body: SingleChildScrollView(
child: FractionallySizedBox(
widthFactor: 0.97,
child: SingleChildScrollView(
child: Column(
children: <Widget>[
SizedBox(
height: 50,
),
Column(
children: <Widget>[
Column(
children: <Widget>[
Container(
child: Icon(
DoctorApp.medicine_search,
size: 100,
color: Colors.black,
),
margin: EdgeInsets.only(top: 50),
),
Padding(
padding: const EdgeInsets.only(top: 12.0),
child: AppText(
TranslationBase.of(context).type.toUpperCase(),
fontWeight: FontWeight.bold,
fontSize: SizeConfig.heightMultiplier * 2.5,
),
),
Padding(
padding: const EdgeInsets.only(top: 5.0),
child: AppText(
TranslationBase.of(context).searchMedicineImageCaption,
fontSize: SizeConfig.heightMultiplier * 2,
),
)
],
Container(
child: Icon(
DoctorApp.medicine_search,
size: 100,
color: Colors.black,
),
margin: EdgeInsets.only(top: 50),
),
SizedBox(
height: 15,
Padding(
padding: const EdgeInsets.only(top: 12.0),
child: AppText(
TranslationBase.of(context).type.toUpperCase(),
fontWeight: FontWeight.bold,
fontSize: SizeConfig.heightMultiplier * 2.5,
),
),
FractionallySizedBox(
widthFactor: 0.9,
child: Column(
children: <Widget>[
Container(
height: MediaQuery
.of(context)
.size
.height * 0.070,
child: InkWell(
onTap: model.allMedicationList != null
? () {
setState(() {
_selectedMedication = null;
});
}
: null,
child: _selectedMedication == null
? AutoCompleteTextField<
Padding(
padding: const EdgeInsets.only(top: 5.0),
child: AppText(
TranslationBase.of(context)
.searchMedicineImageCaption,
fontSize: SizeConfig.heightMultiplier * 2,
),
)
],
),
SizedBox(
height: 15,
),
FractionallySizedBox(
widthFactor: 0.9,
child: Column(
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height * 0.070,
child: InkWell(
onTap: model.allMedicationList != null
? () {
setState(() {
_selectedMedication = null;
});
}
: null,
child: _selectedMedication == null
? AutoCompleteTextField<
GetMedicationResponseModel>(
decoration: textFieldSelectorDecoration(
TranslationBase
.of(context)
.searchMedicineNameHere,
_selectedMedication != null
? _selectedMedication.genericName
: null,
true,
icon: EvaIcons.search),
itemSubmitted: (item) =>
setState(
() => _selectedMedication = item),
key: key,
suggestions: model.allMedicationList,
itemBuilder: (context, suggestion) =>
new Padding(
child: Texts(suggestion.description + '/' +
suggestion.genericName),
padding: EdgeInsets.all(8.0)),
itemSorter: (a, b) => 1,
itemFilter: (suggestion, input) =>
suggestion.genericName
.toLowerCase()
.startsWith(input.toLowerCase()) ||
suggestion.description
.toLowerCase()
.startsWith(input.toLowerCase()) ||
suggestion.keywords
.toLowerCase()
.startsWith(input.toLowerCase()),
)
: TextField(
minLines: 2,
maxLines: 2,
decoration: textFieldSelectorDecoration(
TranslationBase
.of(context)
.searchMedicineNameHere,
_selectedMedication != null
? _selectedMedication.description +
(' (${_selectedMedication.genericName} )')
: null,
true,
icon: EvaIcons.search),
enabled: false,
),
),
),
SizedBox(
height: 15,
),
Container(
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
// TODO change it secondary button and add loading
AppButton(
title: TranslationBase.of(context).search,
onPressed: () async {
await searchMedicine(context, model);
},
decoration: textFieldSelectorDecoration(
TranslationBase.of(context)
.searchMedicineNameHere,
_selectedMedication != null
? _selectedMedication.genericName
: null,
true,
icon: EvaIcons.search),
itemSubmitted: (item) => setState(
() => _selectedMedication = item),
key: key,
suggestions: model.allMedicationList,
itemBuilder: (context, suggestion) =>
new Padding(
child: Texts(
suggestion.description +
'/' +
suggestion.genericName),
padding: EdgeInsets.all(8.0)),
itemSorter: (a, b) => 1,
itemFilter: (suggestion, input) =>
suggestion.genericName
.toLowerCase()
.startsWith(input.toLowerCase()) ||
suggestion.description
.toLowerCase()
.startsWith(input.toLowerCase()) ||
suggestion.keywords
.toLowerCase()
.startsWith(input.toLowerCase()),
)
: TextField(
minLines: 2,
maxLines: 2,
decoration: textFieldSelectorDecoration(
TranslationBase.of(context)
.searchMedicineNameHere,
_selectedMedication != null
? _selectedMedication.description +
(' (${_selectedMedication.genericName} )')
: null,
true,
icon: EvaIcons.search),
enabled: false,
),
],
),
),
SizedBox(
height: 15,
),
Container(
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
// TODO change it secondary button and add loading
AppButton(
title: TranslationBase.of(context).search,
onPressed: () async {
await searchMedicine(context, model);
},
),
),
],
],
),
),
),
],
],
),
),
),
],
),
),),);
),
),
),
),
);
}
searchMedicine(context, MedicineViewModel model) async {
FocusScope.of(context).unfocus();
if (_selectedMedication.isNullOrEmpty()) {
helpers.showErrorToast(TranslationBase
.of(context)
.typeMedicineName);
helpers.showErrorToast(TranslationBase.of(context).typeMedicineName);
//"Type Medicine Name")
return;
} else
if (_selectedMedication.description.length < 3) {
helpers.showErrorToast(TranslationBase
.of(context)
.moreThan3Letter);
} else if (_selectedMedication.description.length < 3) {
helpers.showErrorToast(TranslationBase.of(context).moreThan3Letter);
return;
}
@ -277,16 +272,14 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PharmaciesListScreen(
itemID:_selectedMedication.itemId,
selectedMedication: _selectedMedication,
),
builder: (context) => PharmaciesListScreen(
itemID: _selectedMedication.itemId,
selectedMedication: _selectedMedication,
),
),
);
// await model.getMedicineItem(_selectedMedication.description);
// GifLoaderDialogUtils.hideDialog(context);
}
startVoiceSearch() {

@ -44,7 +44,7 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
bool _autoValidate = false;
bool onlyArrived = true;
bool isFormSubmitted = false;
bool isFormSubmitted = false;
FocusNode _nodeText1 = FocusNode();
FocusNode _nodeText2 = FocusNode();
@ -70,23 +70,24 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
PatientOutSA: false);
void _validateInputs() async {
setState(() {
isFormSubmitted = true;
});
setState(() {
isFormSubmitted = true;
});
try {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
if ((_patientSearchFormValues.From == "0" ||
_patientSearchFormValues.To == "0") &&
_selectedType == "7" || ((_patientSearchFormValues.From == "0" ||
_patientSearchFormValues.To == "0") &&
_selectedType == "6") ) {
_patientSearchFormValues.To == "0") &&
_selectedType == "7" ||
((_patientSearchFormValues.From == "0" ||
_patientSearchFormValues.To == "0") &&
_selectedType == "6")) {
// helpers.showErrorToast("Please Choose The Dates");
} else {
setState(() {
isFormSubmitted = false;
isFormSubmitted = false;
});
Navigator.of(context).pushNamed(PATIENTS, arguments: {
"patientSearchForm": _patientSearchFormValues,
@ -116,11 +117,12 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
Widget build(BuildContext context) {
projectsProvider = Provider.of(context);
return GestureDetector(
onTap: (){
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: AppScaffold(
appBarTitle: TranslationBase.of(context).searchPatient,
isShowAppBar: false,
body: ListView(
children: <Widget>[
RoundedContainer(
@ -262,14 +264,15 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
borderColor: Colors.white,
onSaved: (value) {
value == null || value == ''
? _patientSearchFormValues.setFirstName =
"0"
: _patientSearchFormValues.setFirstName =
value;
? _patientSearchFormValues
.setFirstName = "0"
: _patientSearchFormValues
.setFirstName = value;
if (value != null &&
value.toString().trim().isEmpty) {
_patientSearchFormValues.setFirstName = "0";
_patientSearchFormValues.setFirstName =
"0";
}
},
// validator: (value) {
@ -293,16 +296,14 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
borderColor: Colors.white,
onSaved: (value) {
value == null || value == ''
? _patientSearchFormValues.setMiddleName =
"0"
: _patientSearchFormValues.setMiddleName =
value;
if (value != null && value
.toString()
.trim()
.isEmpty) {
? _patientSearchFormValues
.setMiddleName = "0"
: _patientSearchFormValues
.setMiddleName = value;
if (value != null &&
value.toString().trim().isEmpty) {
_patientSearchFormValues.setMiddleName =
"0";
"0";
}
},
// validator: (value) {
@ -321,7 +322,8 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
width: 1.0, color: HexColor("#CCCCCC"))),
padding: EdgeInsets.only(top: 5),
child: AppTextFormField(
labelText: TranslationBase.of(context).lastName,
labelText:
TranslationBase.of(context).lastName,
borderColor: Colors.white,
onSaved: (value) {
value == null || value == ''
@ -329,11 +331,10 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
"0"
: _patientSearchFormValues.setLastName =
value;
if (value != null && value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues.setLastName = "0";
if (value != null &&
value.toString().trim().isEmpty) {
_patientSearchFormValues.setLastName =
"0";
}
},
inputFormatter: ONLY_LETTERS),
@ -341,39 +342,38 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
SizedBox(
height: 10,
),
if(_selectedType!='7')
Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
width: 1.0, color: HexColor("#CCCCCC"))),
padding: EdgeInsets.only(top: 5),
child: AppTextFormField(
labelText:
TranslationBase.of(context).phoneNumber,
borderColor: Colors.white,
textInputType: TextInputType.number,
textInputAction: TextInputAction.done,
inputFormatter: ONLY_NUMBERS,
focusNode: _nodeText1,
onSaved: (value) {
value == null || value == ''
? _patientSearchFormValues
.setPatientMobileNumber = "0"
: _patientSearchFormValues
.setPatientMobileNumber = value;
if (_selectedType != '7')
Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
width: 1.0,
color: HexColor("#CCCCCC"))),
padding: EdgeInsets.only(top: 5),
child: AppTextFormField(
labelText:
TranslationBase.of(context).phoneNumber,
borderColor: Colors.white,
textInputType: TextInputType.number,
textInputAction: TextInputAction.done,
inputFormatter: ONLY_NUMBERS,
focusNode: _nodeText1,
onSaved: (value) {
value == null || value == ''
? _patientSearchFormValues
.setPatientMobileNumber = "0"
: _patientSearchFormValues
.setPatientMobileNumber = value;
if (value != null && value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues
.setPatientMobileNumber = "0";
}
},
if (value != null &&
value.toString().trim().isEmpty) {
_patientSearchFormValues
.setPatientMobileNumber = "0";
}
},
),
),
),
SizedBox(
height: 10,
),
@ -392,15 +392,13 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
inputFormatter: ONLY_NUMBERS,
focusNode: _nodeText2,
onSaved: (value) {
value == null || value==''
? _patientSearchFormValues.setPatientID =
0
: _patientSearchFormValues.setPatientID =
int.parse(value);
if (value != null && value
.trim()
.toString()
.isEmpty) {
value == null || value == ''
? _patientSearchFormValues
.setPatientID = 0
: _patientSearchFormValues
.setPatientID = int.parse(value);
if (value != null &&
value.trim().toString().isEmpty) {
_patientSearchFormValues.setPatientID = 0;
}
}),
@ -426,7 +424,8 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
),
),
(!(_selectedType == '2' || _selectedType == '4'))
? DynamicElements(_patientSearchFormValues, isFormSubmitted)
? DynamicElements(
_patientSearchFormValues, isFormSubmitted)
: SizedBox(
height: 0,
),

@ -22,6 +22,11 @@ import '../../config/size_config.dart';
import '../../widgets/shared/app_scaffold_widget.dart';
class PatientsScreen extends StatefulWidget {
final patientSearchForm;
final selectedType;
final isAppbar;
PatientsScreen(
{this.patientSearchForm, this.selectedType, this.isAppbar = true});
@override
_PatientsScreenState createState() => _PatientsScreenState();
}
@ -60,7 +65,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
PatientModel patient;
searchData(String str) {
this.responseModelList = this.responseModelList2;
var strExist = str.length > 0 ? true : false;
@ -133,7 +137,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
return newDate.toString();
}
filterBooking(String str) {
this.responseModelList = this.responseModelList2;
@ -198,11 +201,15 @@ class _PatientsScreenState extends State<PatientsScreen> {
projectsProvider = Provider.of(context);
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
patient = routeArgs['patientSearchForm'];
patient = widget.patientSearchForm != null
? widget.patientSearchForm
: routeArgs['patientSearchForm'];
patientType = routeArgs['selectedType'];
patientType = widget.selectedType != null
? widget.selectedType
: routeArgs['selectedType'];
if(routeArgs.containsKey("isSearch")){
if(routeArgs != null && routeArgs.containsKey("isSearch")){
isSearch = routeArgs['isSearch'];
}
@ -218,7 +225,11 @@ class _PatientsScreenState extends State<PatientsScreen> {
GetPatientArrivalListRequestModel getPatientArrivalListRequestModel;
if (val2 == 7) {
getPatientArrivalListRequestModel = GetPatientArrivalListRequestModel(
from: patient.From, to: patient.To, pageIndex: 0, pageSize: 0,patientMRN: patient.getPatientID);
from: patient.From,
to: patient.To,
pageIndex: 0,
pageSize: 0,
patientMRN: patient.getPatientID);
}
model
@ -229,8 +240,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
patientType)
.then((res) {
setState(() {
if (res != null && res['MessageStatus'] == 1) {
if (val2 == 7) {
if (res[SERVICES_PATIANT2[val2]] == null) {
@ -239,7 +248,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
this.error = error.toString();
} else {
var localList = [];
if(res["patientArrivalList"]["entityList"] == null){
if (res["patientArrivalList"]["entityList"] == null) {
res["patientArrivalList"]["entityList"] = [];
}
res["patientArrivalList"]["entityList"].forEach((v) {
@ -258,10 +267,11 @@ class _PatientsScreenState extends State<PatientsScreen> {
responseModelList = new ModelResponse.fromJson(parsed).list;
responseModelList2 = responseModelList;
_isError = false;
} else {
_isError = true;
error = model.error??res['ErrorEndUserMessage'] ?? res['ErrorMessage'];
error = model.error ??
res['ErrorEndUserMessage'] ??
res['ErrorMessage'];
}
_isLoading = false;
@ -276,6 +286,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
},
builder: (_, model, w) => AppScaffold(
appBarTitle: patientTypeTitle,
isShowAppBar: widget.isAppbar,
isLoading: _isLoading,
body: _isLoading
? Container()
@ -356,7 +367,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
children: responseModelList
.map((PatiantInformtion
item) {
return PatientCard(patientInfo: item,
return PatientCard(
patientInfo: item,
patientType: patientType,
onTap: () {
Navigator.of(context)
@ -435,8 +447,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
topRight: Radius.circular(12.5),
topLeft: Radius.circular(9.5),
bottomLeft: Radius.circular(9.5)),
color:
_isActive ? HexColor("#B8382B") : Colors.white,
color: _isActive ? HexColor("#B8382B") : Colors.white,
),
child: Center(
child: Text(
@ -476,9 +487,4 @@ class _PatientsScreenState extends State<PatientsScreen> {
),
);
}
}

@ -22,6 +22,7 @@ class MyReferralPatientScreen extends StatelessWidget {
onModelReady: (model) => model.getPendingReferralPatients(),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).referPatient,
body: model.pendingReferral == null || model.pendingReferral.length == 0
? Center(
@ -35,6 +36,7 @@ class MyReferralPatientScreen extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(height: 100),
ProfileWelcomeWidget(
AppText(
authProvider.selectedClinicName != null

@ -28,11 +28,13 @@ class AddRescheduleLeavScreen extends StatelessWidget {
{model.getRescheduleLeave(), model.getCoveringDoctors()},
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).rescheduleLeaves,
body: model.getReschduleLeave.length > 0
? SingleChildScrollView(
child: Column(
children: [
SizedBox(height: 50),
Container(
margin:
EdgeInsets.only(left: 15, right: 15, top: 20),

@ -1126,6 +1126,13 @@ class TranslationBase {
String get otherStatistic =>
localizedValues['otherStatistic'][locale.languageCode];
String get patientsreferral =>
localizedValues['ptientsreferral'][locale.languageCode];
String get arrivalpatient =>
localizedValues['arrivalpatient'][locale.languageCode];
String get searchmedicinepatient =>
localizedValues['searchmedicinepatient'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -18,65 +18,70 @@ class ProfileWelcomeWidget extends StatelessWidget {
return Container(
height: height,
color: HexColor('#515B5D'),
// color: HexColor('#515B5D'),
width: double.infinity,
child: FractionallySizedBox(
widthFactor: 0.9,
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
AppText(
TranslationBase.of(context).welcome,
fontSize: SizeConfig.textMultiplier * 1.7,
color: Colors.white,
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).dr +
' ${authProvider.doctorProfile.doctorName}',
fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 2.5,
color: Colors.white,
)
],
),
SizedBox(
height: 4,
),
clinicWidget,
],
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.start,
// children: <Widget>[
// Row(
// children: <Widget>[
// AppText(
// TranslationBase.of(context).welcome,
// fontSize: SizeConfig.textMultiplier * 1.7,
// color: Colors.black,
// )
// ],
// ),
// Row(
// mainAxisAlignment: MainAxisAlignment.end,
// children: <Widget>[
AppText(
// TranslationBase.of(context).dr +
' ${authProvider.doctorProfile.doctorName}',
fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 2.5,
color: Colors.black,
),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
CircleAvatar(
// radius: (52)
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.network(
authProvider.doctorProfile.doctorImageURL,
fit: BoxFit.fill,
width: 70,
height: 60,
),
),
backgroundColor: Colors.transparent,
)
],
),
SizedBox(
width: 20,
),
CircleAvatar(
// radius: (52)
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.network(
authProvider.doctorProfile.doctorImageURL,
fit: BoxFit.fill,
width: 75,
height: 75,
),
),
backgroundColor: Colors.transparent,
)
// ],
// ),
// SizedBox(
// height: 4,
// ),
// clinicWidget,
/// ],
// ),
// Expanded(
// child: Column(
// mainAxisAlignment: MainAxisAlignment.start,
// crossAxisAlignment: CrossAxisAlignment.end,
// children: <Widget>[
// ],
// ),
// ),
],
),
),

@ -14,7 +14,7 @@ import 'network_base_view.dart';
class AppScaffold extends StatelessWidget {
final String appBarTitle;
final Widget body;
final bool isLoading;
final bool isLoading;
final bool isShowAppBar;
final BaseViewModel baseViewModel;
@ -30,45 +30,45 @@ class AppScaffold extends StatelessWidget {
AppGlobal.CONTEX = context;
ProjectViewModel projectProvider = Provider.of(context);
return GestureDetector(
onTap: (){
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: Scaffold(
backgroundColor: Colors.white,
appBar: isShowAppBar
? AppBar(
elevation: 0,
backgroundColor: HexColor('#515B5D'),
textTheme: TextTheme(headline6: TextStyle(color: Colors.white)),
title: Text(appBarTitle.toUpperCase()),
leading: Builder(builder: (BuildContext context) {
return IconButton(
icon: Icon(Icons.arrow_back_ios),
color: Colors.white, //Colors.black,
onPressed: () => Navigator.pop(context),
);
}),
centerTitle: true,
actions: <Widget>[
IconButton(
icon: Icon(DoctorApp.home_icon_active),
color: Colors.white, //Colors.black,
onPressed: () => Navigator.pushNamedAndRemoveUntil(
context, HOME, (r) => false),
),
],
)
: null,
body: projectProvider.isInternetConnection
? baseViewModel != null
? NetworkBaseView(
baseViewModel: baseViewModel,
child: body,
)
: Stack(
children: <Widget>[body, buildAppLoaderWidget(isLoading)])
: Center(
child: Column(
backgroundColor: Colors.white,
appBar: isShowAppBar
? AppBar(
elevation: 0,
backgroundColor: HexColor('#515B5D'),
textTheme: TextTheme(headline6: TextStyle(color: Colors.white)),
title: Text(appBarTitle.toUpperCase()),
leading: Builder(builder: (BuildContext context) {
return IconButton(
icon: Icon(Icons.arrow_back_ios),
color: Colors.white, //Colors.black,
onPressed: () => Navigator.pop(context),
);
}),
centerTitle: true,
actions: <Widget>[
IconButton(
icon: Icon(DoctorApp.home_icon_active),
color: Colors.white, //Colors.black,
onPressed: () => Navigator.pushNamedAndRemoveUntil(
context, HOME, (r) => false),
),
],
)
: null,
body: projectProvider.isInternetConnection
? baseViewModel != null
? NetworkBaseView(
baseViewModel: baseViewModel,
child: body,
)
: Stack(
children: <Widget>[body, buildAppLoaderWidget(isLoading)])
: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[

@ -45,29 +45,29 @@ class _BottomNavBarState extends State<BottomNavBar> {
name: TranslationBase.of(context).home,
),
BottomNavigationItem(
icon: DoctorApp.message_icon,
activeIcon: DoctorApp.message_icon_active,
icon: DoctorApp.schedule_icon,
activeIcon: DoctorApp.scdedule_icon_active,
changeIndex: _changeIndex,
index: _index,
currentIndex: 1,
name: TranslationBase.of(context).replay2,
name: TranslationBase.of(context).mySchedule,
),
BottomNavigationItem(
icon: DoctorApp.schedule_icon,
activeIcon: DoctorApp.scdedule_icon_active,
icon: DoctorApp.qr_code,
activeIcon: DoctorApp.qr_code,
changeIndex: _changeIndex,
index: _index,
currentIndex: 2,
name: TranslationBase.of(context).mySchedule,
name: TranslationBase.of(context).qr,
),
BottomNavigationItem(
icon: DoctorApp.qr_code,
activeIcon: DoctorApp.qr_code,
icon: DoctorApp.message_icon,
activeIcon: DoctorApp.message_icon_active,
changeIndex: _changeIndex,
index: _index,
currentIndex: 3,
name: TranslationBase.of(context).qr,
)
name: TranslationBase.of(context).replay2,
),
],
),
),

@ -15,6 +15,7 @@ class NetworkBaseView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.grey[100],
child: buildBaseViewWidget(),
);
}

Loading…
Cancel
Save