diff --git a/.gitignore b/.gitignore index c8e6bcd9..6b5418ff 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,5 @@ lib/generated_plugin_registrant.dart !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages .vscode/settings.json .vscode/settings.json +.vscode/settings.json +.vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json index a1b95030..501a6f1f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { "commentBox.styles": { "defaultStyle": { - "commentStartToken": "/* \n *@author: Elham Rababah \n *@Date:13/4/2020 \n *@param: \n *@return:\n *@desc: ", + "commentStartToken": "/* \n *@author: ibrahim albitar \n *@Date:27/4/2020 \n *@param: \n *@return:\n *@desc: ", "commentEndToken": "\n */", "leftEdgeToken": " * ", "rightEdgeToken": "", diff --git a/lib/config/config.dart b/lib/config/config.dart index de0a7b6a..5b187a1b 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -4,7 +4,13 @@ const ONLY_LETTERS = "[a-zA-Z]"; const ONLY_DATE = "[0-9/]"; -//Ibrahim Albitar - +/* + *@author: ibrahim albitar + *@Date:27/4/2020 + *@param: + *@return: + *@desc: + */ const BASE_URL = 'https://hmgwebservices.com/Services/'; -const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems"; \ No newline at end of file +const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems"; +const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList"; \ No newline at end of file diff --git a/lib/models/pharmacies_List_request_model.dart b/lib/models/pharmacies_List_request_model.dart new file mode 100644 index 00000000..fea73f92 --- /dev/null +++ b/lib/models/pharmacies_List_request_model.dart @@ -0,0 +1,46 @@ +/* + *@author: Ibrahim Albitar + *@Date:27/4/2020 + *@param: + *@return: + *@desc: + */ +class PharmaciesListRequestModel { + +// {"ItemID":90417, +// "LanguageID":2, +// "stamp":"2020-03-08T07:49:14.067Z", +// "IPAdress":"11.11.11.11", +// "VersionID":1.2, +// "Channel":9, +// "TokenID":"PpIU/OWJ40yxMHQtCXL0DA==", +// "SessionID":"dz1hqVj1Fk", +// "IsLoginForDoctorApp":true, +// "PatientOutSA":false, +// "PatientTypeID":1} + + int ItemID; + int LanguageID; + String stamp; + String IPAdress; + double VersionID; + String TokenID; + String SessionID; + bool IsLoginForDoctorApp; + bool PatientOutSA; + int PatientTypeID; + int Channel; + + PharmaciesListRequestModel( + {this.ItemID, + this.PatientTypeID, + this.LanguageID, + this.stamp, + this.IPAdress, + this.VersionID, + this.TokenID, + this.SessionID, + this.IsLoginForDoctorApp, + this.Channel, + this.PatientOutSA}); +} diff --git a/lib/models/pharmacies_request_model.dart b/lib/models/pharmacies_items_request_model.dart similarity index 74% rename from lib/models/pharmacies_request_model.dart rename to lib/models/pharmacies_items_request_model.dart index e44c9be5..0e1dcaec 100644 --- a/lib/models/pharmacies_request_model.dart +++ b/lib/models/pharmacies_items_request_model.dart @@ -1,6 +1,11 @@ -//Ibrahim Albitar - -class PharmaciesRequestModel { +/* + *@author: Ibrahim Albitar + *@Date:27/4/2020 + *@param: + *@return: + *@desc: + */ +class PharmaciesItemsRequestModel { String PHR_itemName; int LanguageID; String stamp; @@ -12,7 +17,7 @@ class PharmaciesRequestModel { bool PatientOutSA; int PatientTypeID; - PharmaciesRequestModel( + PharmaciesItemsRequestModel( {this.PHR_itemName, this.PatientTypeID, this.LanguageID, diff --git a/lib/providers/medicine_provider.dart b/lib/providers/medicine_provider.dart index 759f6749..1c5e582a 100644 --- a/lib/providers/medicine_provider.dart +++ b/lib/providers/medicine_provider.dart @@ -2,16 +2,39 @@ import 'dart:convert'; import 'package:doctor_app_flutter/client/app_client.dart'; import 'package:doctor_app_flutter/config/config.dart'; -import 'package:doctor_app_flutter/models/pharmacies_request_model.dart'; +import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart'; +import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart'; import 'package:flutter/cupertino.dart'; class MedicineProvider with ChangeNotifier { - Future getPharmacyList(PharmaciesRequestModel pharmacy) async { + Future getMedicineItem(PharmaciesItemsRequestModel medicine) async { try { final response = await AppClient.post(PHARMACY_ITEMS_URL, body: json.encode({ - "PHR_itemName": pharmacy.PHR_itemName, + "PHR_itemName": medicine.PHR_itemName, + "LanguageID": medicine.LanguageID, + "stamp": medicine.stamp, + "IPAdress": medicine.IPAdress, + "VersionID": medicine.VersionID, + "TokenID": medicine.TokenID, + "SessionID": medicine.SessionID, + "IsLoginForDoctorApp": medicine.IsLoginForDoctorApp, + "PatientOutSA": medicine.PatientOutSA, + "PatientTypeID": medicine.PatientTypeID + })); + return Future.value(json.decode(response.body)); + } catch (error) { + throw error; + } + } + + + Future getPharmaciesList(PharmaciesListRequestModel pharmacy) async { + try { + final response = await AppClient.post(PHARMACY_LIST_URL, + body: json.encode({ + "ItemID": pharmacy.ItemID, "LanguageID": pharmacy.LanguageID, "stamp": pharmacy.stamp, "IPAdress": pharmacy.IPAdress, @@ -20,6 +43,7 @@ class MedicineProvider with ChangeNotifier { "SessionID": pharmacy.SessionID, "IsLoginForDoctorApp": pharmacy.IsLoginForDoctorApp, "PatientOutSA": pharmacy.PatientOutSA, + "Channel": pharmacy.Channel, "PatientTypeID": pharmacy.PatientTypeID })); return Future.value(json.decode(response.body)); diff --git a/lib/routes.dart b/lib/routes.dart index 5148f1e6..75211a7c 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -1,4 +1,6 @@ +import 'package:doctor_app_flutter/screens/medicine/pharmacies_list_screen.dart'; + import './screens/QR_reader_screen.dart'; import './screens/auth/change_password_screen.dart'; import './screens/auth/login_screen.dart'; @@ -31,6 +33,7 @@ const String PATIENTS_PROFILE = 'patients/patients-profile'; const String BLOOD_BANK = 'blood-bank'; const String DOCTOR_REPLY = 'doctor-reply'; const String MEDICINE_SEARCH = 'medicine/medicine-search'; +const String PHARMACIES_LIST = 'medicine/pharmacies-list'; const String SETTINGS = 'settings'; var routes = { @@ -48,5 +51,6 @@ var routes = { CHANGE_PASSWORD: (_) => ChangePasswordScreen(), VERIFY_ACCOUNT: (_) => VerifyAccountScreen(), VERIFICATION_METHODS:(_)=> VerificationMethodsScreen(), - PATIENTS_PROFILE:(_)=> PatientProfileScreen() + PATIENTS_PROFILE:(_)=> PatientProfileScreen(), + PHARMACIES_LIST: (_) => PharmaciesListScreen() }; diff --git a/lib/screens/medicine/medicine_search_screen.dart b/lib/screens/medicine/medicine_search_screen.dart index 79ae48ff..a8c15377 100644 --- a/lib/screens/medicine/medicine_search_screen.dart +++ b/lib/screens/medicine/medicine_search_screen.dart @@ -1,4 +1,4 @@ -import 'package:doctor_app_flutter/models/pharmacies_request_model.dart'; +import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart'; import 'package:doctor_app_flutter/providers/medicine_provider.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; @@ -6,6 +6,8 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../../routes.dart'; + DrAppSharedPreferances sharedPref = DrAppSharedPreferances(); class MedicineSearchScreen extends StatefulWidget with DrAppToastMsg { @@ -17,7 +19,7 @@ class MedicineSearchScreen extends StatefulWidget with DrAppToastMsg { } class _MedicineSearchState extends State { - var _medicineModel = PharmaciesRequestModel( + var _medicineModel = PharmaciesItemsRequestModel( IsLoginForDoctorApp: true, PHR_itemName: "Panadol", PatientOutSA: false, @@ -40,6 +42,7 @@ class _MedicineSearchState extends State { MedicineProvider medicineProvider = Provider.of(context); searchMedicine(context, medicineProvider); + Navigator.of(context).pushNamed(PHARMACIES_LIST); }, )))); } @@ -47,10 +50,10 @@ class _MedicineSearchState extends State { searchMedicine( context, MedicineProvider medicineProvider) { - medicineProvider.getPharmacyList(_medicineModel).then((res) { + medicineProvider.getMedicineItem(_medicineModel).then((res) { if (res['MessageStatus'] == 1) { - print("ListPharmcy " + res['ListPharmcy'].toString()); + print("ListMedicine " + res['ListPharmcy'].toString()); //Navigator.of(context).pushNamed(); } else { diff --git a/lib/screens/medicine/pharmacies_list_screen.dart b/lib/screens/medicine/pharmacies_list_screen.dart new file mode 100644 index 00000000..7a889d98 --- /dev/null +++ b/lib/screens/medicine/pharmacies_list_screen.dart @@ -0,0 +1,64 @@ +import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart'; +import 'package:doctor_app_flutter/providers/medicine_provider.dart'; +import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +DrAppSharedPreferances sharedPref = DrAppSharedPreferances(); + +class PharmaciesListScreen extends StatefulWidget { + @override + _PharmaciesListState createState() => _PharmaciesListState(); +} + +class _PharmaciesListState extends State { + var _pharmaciesModel = PharmaciesListRequestModel( + ItemID: 90417, + IsLoginForDoctorApp: true, + PatientOutSA: false, + PatientTypeID: 1, + LanguageID: 2, + IPAdress: "11.11.11.11", + VersionID: 1.2, + TokenID: "2Fi7HoIHB0eDyekVa6tCJg==", + stamp: "2020-04-23T21:01:21.492Z", + Channel: 9, + SessionID: "e29zoooEJ4"); + + @override + Widget build(BuildContext context) { + return ChangeNotifierProvider( + create: (context) => MedicineProvider(), //change builder to create + child: Consumer( + builder: (context, provider, child) => AppScaffold( + appBarTitle: "Pharmacies List", + body: RaisedButton( + onPressed: () { + MedicineProvider medicineProvider = + Provider.of(context); + pharmaciesList(context, medicineProvider); + }, + )))); + } + + pharmaciesList(context, MedicineProvider medicineProvider) { + medicineProvider.getPharmaciesList(_pharmaciesModel).then((res) { + print(res.toString()); + if (res['MessageStatus'] == 1) { + print("ListPharmcy " + res['PharmList'].toString()); + + //Navigator.of(context).pushNamed(); + } else { + // handel error + // widget.showCenterShortLoadingToast("watting"); + //helpers.showErrorToast(res['ErrorEndUserMessage']); + print(res['MessageStatus'].toString()); + } + // Navigator.of(context).pushNamed(HOME); + }).catchError((err) { + print('$err'); + //helpers.showErrorToast(); + }); + } +}