Browse Source

1、优化蓝牙读卡器

guanxinyi 1 year ago
parent
commit
2460171417

+ 1 - 1
android/app/src/main/res/values/strings.xml

@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <string name="app_name">家医健康系统</string>
+    <string name="app_name">杏聆荟健康平台</string>
 </resources>

+ 1 - 1
lib/main.dart

@@ -33,7 +33,7 @@ class _App extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return GetMaterialApp(
-      title: "家医健康系统",
+      title: "杏聆荟健康平台",
       theme: ThemeData(
         // primaryColor: const Color.fromRGBO(0, 178, 237, 1),
         // TODO:

+ 1 - 1
lib/pages/home/view.dart

@@ -267,7 +267,7 @@ class HomePage extends GetView<HomeController> {
           children: const [
             // SizedBox(height: 8),
             Text(
-              "家医健康系统",
+              "杏聆荟健康平台",
               style: TextStyle(
                 color: Colors.white,
                 fontSize: 24,

+ 1 - 1
lib/pages/login/view.dart

@@ -74,7 +74,7 @@ class LoginPage extends GetView<LoginController> {
                         mainAxisAlignment: MainAxisAlignment.center,
                         children: [
                           const Text(
-                            '家医健康系统',
+                            '杏聆荟健康平台',
                             style: TextStyle(
                               fontSize: 25,
                               color: Colors.black,

+ 46 - 20
lib/pages/medical/controller.dart

@@ -1,9 +1,11 @@
 import 'dart:convert';
 
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 import 'package:uuid/uuid.dart';
 import 'package:vitalapp/architecture/utils/prompt_box.dart';
+import 'package:vitalapp/components/alert_dialog.dart';
 import 'package:vnote_device_plugin/consts/types.dart';
 import 'package:vitalapp/architecture/defines.dart';
 import 'package:vitalapp/architecture/storage/text_storage.dart';
@@ -131,6 +133,30 @@ class MedicalController extends FControllerBase {
     return cachedRecord.deleteDirectory();
   }
 
+  Future<void> submitDiagnosis(List<DiagnosisItem> diagnosisItems) async {
+    state.currentTab = '-1';
+    SubmitDiagnosisRequest submitDiagnosisRequest = SubmitDiagnosisRequest(
+      appDataId: appDataId,
+      patientCode: patientCode,
+      diagnosisItems: diagnosisItems,
+      diagnosisTime: DateTime.now().toUtc(),
+    );
+    print(submitDiagnosisRequest.toJson());
+
+    final result =
+        await _diagnosisManager.submitDiagnosisAsync(submitDiagnosisRequest);
+    if (result) {
+      PromptBox.toast('提交成功');
+      await saveCachedAppDataId();
+
+      await deleteDirectory();
+      await readCachedRecord();
+      Future.delayed(const Duration(milliseconds: 10), () {
+        state.currentTab = state.medicalMenuList[0].key;
+      });
+    }
+  }
+
   Future<void> createDiagnosis() async {
     if (Store.user.teamName.isEmpty) {
       PromptBox.toast('未设置团队无法提交检测数据');
@@ -155,26 +181,26 @@ class MedicalController extends FControllerBase {
       PromptBox.toast('不能提交空数据');
       return;
     }
-    state.currentTab = '-1';
-    SubmitDiagnosisRequest submitDiagnosisRequest = SubmitDiagnosisRequest(
-      appDataId: appDataId,
-      patientCode: patientCode,
-      diagnosisItems: diagnosisItems,
-      diagnosisTime: DateTime.now().toUtc(),
-    );
-    print(submitDiagnosisRequest.toJson());
-
-    final result =
-        await _diagnosisManager.submitDiagnosisAsync(submitDiagnosisRequest);
-    if (result) {
-      PromptBox.toast('提交成功');
-      await saveCachedAppDataId();
-
-      await deleteDirectory();
-      await readCachedRecord();
-      Future.delayed(const Duration(milliseconds: 10), () {
-        state.currentTab = state.medicalMenuList[0].key;
-      });
+    if (state.medicalMenuList.length > diagnosisDataValue.length) {
+      Get.dialog(
+        VAlertDialog(
+          title: '提示',
+          content: Container(
+            margin: const EdgeInsets.only(bottom: 20),
+            child: const Text(
+              '当前检测项目未完成,请确定是否提交本次检测',
+              style: TextStyle(fontSize: 20),
+              textAlign: TextAlign.center,
+            ),
+          ),
+          showCancel: true,
+          onConfirm: () {
+            submitDiagnosis(diagnosisItems);
+          },
+          onCanceled: () {},
+        ),
+      );
+      return;
     }
   }
 }

+ 0 - 1
lib/pages/medical/widgets/blood_sugar.dart

@@ -112,7 +112,6 @@ class _ExamBloodSugarState extends State<BloodSugar> {
   void _onDisconnected(sender, e) {
     print('设备连接中断');
     isConnectFail = true;
-    worker?.connect();
     _connectStatus = WorkerStatus.disconnected;
     setState(() {});
   }

+ 6 - 21
lib/pages/patient/bluetooth_card_reader/controller.dart

@@ -40,7 +40,7 @@ class BluetoothCardReaderController extends GetxController {
     return devices.firstWhereOrNull((element) => element.type == type);
   }
 
-  Future<void> icReaderDevice() async {
+  connectDevice() async {
     DeviceModel? device = await getDevice(DeviceTypes.IC_READER);
     if (device.isNull) {
       connectStatus = WorkerStatus.unboundDevice;
@@ -50,8 +50,11 @@ class BluetoothCardReaderController extends GetxController {
     icReader = IcReaderDeviceController(device?.model ?? '', device?.mac ?? '');
     worker = icReader?.worker;
     connectStatus = icReader!.connectStatus;
-    isCardReaderConnected = true;
     update(["bluetooth_card_reader"]);
+  }
+
+  Future<void> icReaderDevice() async {
+    connectDevice();
     loadListeners();
   }
 
@@ -80,24 +83,6 @@ class BluetoothCardReaderController extends GetxController {
     super.dispose();
   }
 
-  void checkReader() async {
-    // bool result = await Idread.init();
-    // if (result) {
-    //   bool start = await Idread.startRead();
-    //   if (start) {
-    //     Idread.dataStreamListen((data) {
-    //       if (data is IdCardInfoModel) {
-    //         onReadInfo(data);
-    //       }
-    //     });
-    //   }
-    // } else {
-    //   PromptBox.toast("未检测到读卡器,请检查连接后重试");
-    // }
-    // isCardReaderConnected = result;
-    // update(["bluetooth_card_reader"]);
-  }
-
   /// 读取到数据的回调
   void onReadInfo(ICReaderExamData data) {
     final result = CardReaderResult(
@@ -126,7 +111,7 @@ class BluetoothCardReaderController extends GetxController {
 
   void _onConnectSuccess(sender, e) {
     connectStatus = WorkerStatus.connected;
-    isCardReaderConnected = e;
+    isCardReaderConnected = true;
     update(["bluetooth_card_reader"]);
   }
 

+ 1 - 1
lib/pages/patient/bluetooth_card_reader/widgets/no_card_reader_view.dart

@@ -34,7 +34,7 @@ class BluetoothNoCardReaderView extends GetView<BluetoothCardReaderController> {
         const SizedBox(height: 20),
         ElevatedButton(
           onPressed: () {
-            controller.checkReader();
+            controller.connectDevice();
           },
           child: const Text(
             '重试',