diff --git a/README.md b/README.md
index 7301bf6..33e4576 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# onemd
-Create web/md_mitra_lab.html
+>Create web/md_mitra_lab.html
+>(* will be build and ulded to one-ui-flutter/md-mitra/)
+
```html
@@ -62,10 +64,12 @@ ul_flutter_ui devone.aplikasi.web.id
# one-ui from existing vuejs
+( one-ui/flutter/one-md-mitralab/ )
>used file :
> index.php
> store.js
-update store.js
+
+>update store.js
```js
import system from "../../apps/modules/system/system.js";
export const store = new Vuex.Store({
@@ -75,7 +79,7 @@ export const store = new Vuex.Store({
});
```
-update index.php
+>update index.php
```php
diff --git a/lib/js/initial_route.dart b/lib/js/initial_route.dart
index df01629..066e1fc 100644
--- a/lib/js/initial_route.dart
+++ b/lib/js/initial_route.dart
@@ -5,6 +5,9 @@ import 'dart:html' as html;
@JS('fx_initial_route')
external String fxInitialRoute();
+@JS('parent_home')
+external String parentHome();
+
String? getToken() {
return html.window.localStorage['token'];
}
diff --git a/lib/model/ac_doctor_model.dart b/lib/model/ac_doctor_model.dart
new file mode 100644
index 0000000..7d83a26
--- /dev/null
+++ b/lib/model/ac_doctor_model.dart
@@ -0,0 +1,48 @@
+class AcDoctorResponseModel {
+ late String fullName;
+ late String mDoctorID;
+ AcDoctorResponseModel({
+ required this.fullName,
+ required this.mDoctorID,
+ });
+
+ AcDoctorResponseModel.fromJson(Map json) {
+ fullName = json['FullName'];
+ mDoctorID = json['M_DoctorID'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['FullName'] = fullName;
+ data['M_DoctorID'] = mDoctorID;
+ return data;
+ }
+}
+
+class AcDoctorAddressResponseModel {
+ late String mDoctorAddressDescription;
+ late String mDoctorAddressID;
+ late bool isCheck;
+
+ AcDoctorAddressResponseModel({
+ required this.mDoctorAddressDescription,
+ required this.mDoctorAddressID,
+ });
+
+ void setIsCheck(bool val) {
+ isCheck = val;
+ }
+
+ AcDoctorAddressResponseModel.fromJson(Map json) {
+ mDoctorAddressDescription = json['M_DoctorAddressDescription'];
+ mDoctorAddressID = json['M_DoctorAddressID'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['M_DoctorAddressDescription'] = mDoctorAddressDescription;
+ data['M_DoctorAddressID'] = mDoctorAddressID;
+ data['isCheck'] = isCheck;
+ return data;
+ }
+}
diff --git a/lib/model/ac_mou_response_model.dart b/lib/model/ac_mou_response_model.dart
index 4a71976..89a1b90 100644
--- a/lib/model/ac_mou_response_model.dart
+++ b/lib/model/ac_mou_response_model.dart
@@ -7,7 +7,7 @@ class AcMouResponseModel {
late String mMouNote;
late String mMouNumber;
late String mMouStartDate;
-
+ late bool isCheck;
AcMouResponseModel({
required this.mMouEndDate,
required this.mMouID,
@@ -17,6 +17,7 @@ class AcMouResponseModel {
required this.mMouNote,
required this.mMouNumber,
required this.mMouStartDate,
+ this.isCheck = false,
});
AcMouResponseModel.fromJson(Map json) {
@@ -28,6 +29,10 @@ class AcMouResponseModel {
mMouNote = json['M_MouNote'] ?? "";
mMouNumber = json['M_MouNumber'] ?? "";
mMouStartDate = json['M_MouStartDate'] ?? "";
+ isCheck = false;
+ }
+ void setCheck(bool val) {
+ isCheck = val;
}
Map toJson() {
diff --git a/lib/provider/local_auth_provider.dart b/lib/provider/local_auth_provider.dart
index e821155..9d50e27 100644
--- a/lib/provider/local_auth_provider.dart
+++ b/lib/provider/local_auth_provider.dart
@@ -4,11 +4,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../js/initial_route.dart';
import '../model/one_user_model.dart';
-// ignore: avoid_web_libraries_in_flutter
-import 'dart:html' as html;
void redirectToHome() {
- html.window.location.href = "/one-ui/";
+ parentHome();
}
final localAuthProvider = Provider((ref) {
diff --git a/lib/repository/mitra_repository.dart b/lib/repository/mitra_repository.dart
index d996d2c..04d30c7 100644
--- a/lib/repository/mitra_repository.dart
+++ b/lib/repository/mitra_repository.dart
@@ -2,6 +2,7 @@ import 'package:dio/dio.dart';
import '../app/constants.dart';
import '../model/ac_company_response_model.dart';
+import '../model/ac_doctor_model.dart';
import '../model/ac_mou_response_model.dart';
import '../model/mitra_response_model.dart';
import 'base_repository.dart';
@@ -24,6 +25,37 @@ class MitraRepository extends BaseRepository {
return result;
}
+ Future> lookupDoctor({
+ required String query,
+ CancelToken? cancelToken,
+ }) async {
+ final param = {"query": query};
+ final service = "${Constants.baseUrl}md/lookup_doctor";
+ final resp = await post(
+ service: service, jsonParam: param, cancelToken: cancelToken);
+ final List result = List.empty(growable: true);
+ for (final el in resp["data"]) {
+ final model = AcDoctorResponseModel.fromJson(el);
+ result.add(model);
+ }
+ return result;
+ }
+
+ Future> lookupDoctorAddress({
+ required String doctorID,
+ CancelToken? cancelToken,
+ }) async {
+ final service = "${Constants.baseUrl}md/lookup_doctoraddress/$doctorID";
+ final resp = await get(service: service, cancelToken: cancelToken);
+ final List result =
+ List.empty(growable: true);
+ for (final el in resp["data"]) {
+ final model = AcDoctorAddressResponseModel.fromJson(el);
+ result.add(model);
+ }
+ return result;
+ }
+
Future> lookupCompany({
required String query,
CancelToken? cancelToken,
@@ -49,6 +81,7 @@ class MitraRepository extends BaseRepository {
final List result = List.empty(growable: true);
for (final el in resp["data"]) {
final model = AcMouResponseModel.fromJson(el);
+ model.isCheck = false;
result.add(model);
}
return result;
diff --git a/lib/screen/home/new_screen.dart b/lib/screen/home/new_screen.dart
new file mode 100644
index 0000000..e69de29
diff --git a/lib/screen/md_lab_mitra/md_lab_mitra_screen.dart b/lib/screen/md_lab_mitra/md_lab_mitra_screen.dart
index 9737863..81c8cd3 100644
--- a/lib/screen/md_lab_mitra/md_lab_mitra_screen.dart
+++ b/lib/screen/md_lab_mitra/md_lab_mitra_screen.dart
@@ -32,7 +32,7 @@ class MdLabMitraScreen extends HookConsumerWidget {
color: Colors.white,
child: const Padding(
padding: EdgeInsets.all(20.0),
- child: Expanded(child: FxDataMitra()),
+ child: FxDataMitra(),
),
),
);
diff --git a/lib/screen/md_lab_mitra/mitra_lookup_mou_provider.dart b/lib/screen/md_lab_mitra/mitra_lookup_mou_provider.dart
index b23ab41..b8d6b9e 100644
--- a/lib/screen/md_lab_mitra/mitra_lookup_mou_provider.dart
+++ b/lib/screen/md_lab_mitra/mitra_lookup_mou_provider.dart
@@ -18,6 +18,9 @@ class MitraLookupMouNotifier extends StateNotifier {
MitraLookupMouNotifier({
required this.ref,
}) : super(MitraLookupMouStateInit());
+ void reset() {
+ state = MitraLookupMouStateInit();
+ }
void lookup({required String companyID}) async {
if (cancelToken == null) {
@@ -36,7 +39,7 @@ class MitraLookupMouNotifier extends StateNotifier {
if (e is BaseRepositoryException) {
state = MitraLookupMouStateError(message: e.message);
} else {
- state = MitraLookupMouStateError(message: e.toString());
+ state = MitraLookupMouStateError(message: "Error lookupMou");
}
}
}
diff --git a/lib/screen/md_lab_mitra/mitra_search_provider.dart b/lib/screen/md_lab_mitra/mitra_search_provider.dart
index b45d256..549639c 100644
--- a/lib/screen/md_lab_mitra/mitra_search_provider.dart
+++ b/lib/screen/md_lab_mitra/mitra_search_provider.dart
@@ -36,7 +36,7 @@ class MitraSearchNotifier extends StateNotifier {
if (e is BaseRepositoryException) {
state = MitraSearchStateError(message: e.message);
} else {
- state = MitraSearchStateError(message: e.toString());
+ state = MitraSearchStateError(message: "Error Mitra Search");
}
}
}
diff --git a/lib/screen/md_lab_mitra/timer_provider.dart b/lib/screen/md_lab_mitra/timer_provider.dart
new file mode 100644
index 0000000..a08f3f5
--- /dev/null
+++ b/lib/screen/md_lab_mitra/timer_provider.dart
@@ -0,0 +1,32 @@
+// ignore_for_file: must_be_immutable
+
+import 'dart:async';
+
+import 'package:equatable/equatable.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+
+final timerProvider =
+ StateNotifierProvider.autoDispose(
+ (ref) => TimerNotifier());
+
+class TimerNotifier extends StateNotifier {
+ TimerNotifier() : super(TimerStateInit()) {
+ Timer.periodic(const Duration(seconds: 5), (tmr) {
+ state = TimerStateTick();
+ });
+ }
+}
+
+class TimerState extends Equatable {
+ late DateTime dateTime;
+
+ TimerState() {
+ dateTime = DateTime.now();
+ }
+ @override
+ List