Răsfoiți Sursa

Merge branch 'master' of http://git.ius.plus/Project-Vital/VitalApp

finlay 11 luni în urmă
părinte
comite
130e782735

+ 1 - 1
assets/app_params.json

@@ -1,6 +1,6 @@
 {
     "server_gateway": "https://platform.xinglinghui.com:9400",
-    "local_station": false,
+    "local_station": true,
     "pure_software_mode": false,
     "excel_import_url": "https://platform.xinglinghui.com:9314",
     "server_local_gateway": "http://192.168.3.2:8400"

+ 47 - 0
lib/managers/data_convert.dart

@@ -1,4 +1,10 @@
+import 'dart:convert';
+
+import 'package:fis_jsonrpc/rpc.dart';
+import 'package:get/get.dart';
+
 import 'interfaces/data_convert.dart';
+import 'interfaces/dictionary.dart';
 
 class DataConvertManager implements IDataConvertManager {
   @override
@@ -11,4 +17,45 @@ class DataConvertManager implements IDataConvertManager {
 
     return "心率值未见异常";
   }
+
+
+  @override
+  Future<List<List<String>>> getTableData(String data) async {
+    var currentDiagnosis = <List<String>>[];
+    if (data.isEmpty) {
+      return currentDiagnosis;
+    }
+    var jsonData = json.decode(data);
+    List<String> keys = jsonData.keys.toList();
+
+    List<DictionaryWithUnitDTO>? dtos = [];
+
+    dtos = await Get.find<IDictionaryManager>()
+            .getDictionaryNameAndUnitByKeysAsync(keys) ??
+        [];
+
+    for (var key in keys) {
+      if (key == "ECG_POINT" ||
+          key == "ECG_POINT12" ||
+          key == "HealthGuidance") {
+        continue;
+      }
+      var dto = dtos.firstWhereOrNull((item) => item.key == key);
+      if (dto == null) {
+        continue;
+      }
+      final value = jsonData[key].toString();
+      if (value.isEmpty) {
+        // 不展示空值
+        continue;
+      }
+      currentDiagnosis.add([
+        dto.name ?? '',
+        value,
+        dto.unit ?? '',
+      ]);
+    }
+
+    return currentDiagnosis;
+  }
 }

+ 3 - 0
lib/managers/interfaces/data_convert.dart

@@ -3,4 +3,7 @@ import 'base.dart';
 abstract class IDataConvertManager implements IManager {
   ///心率值转换
   String heartRateConversion(int heartRate);
+
+  ///血常规和生化数据转换
+  Future<List<List<String>>> getTableData(String data);
 }

+ 11 - 6
lib/pages/medical/views/blood_check.dart

@@ -2,6 +2,7 @@ import 'dart:convert';
 
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
+import 'package:vitalapp/managers/interfaces/data_convert.dart';
 import 'package:vitalapp/pages/medical/views/table_input_dialog/controller.dart';
 import 'package:vitalapp/pages/medical/views/table_input_dialog/mock_data.dart';
 import 'package:vitalapp/pages/medical/views/table_input_dialog/view.dart';
@@ -29,15 +30,19 @@ class BloodCheck extends StatelessWidget {
           ),
           isBiochemOrBlood: true,
           checkKey: "HEIBloodRoutine",
-          editBiochemOrBlood: (value) {
+          editBiochemOrBlood: (value) async {
+            List<List<String>> tableData =
+                await Get.find<IDataConvertManager>().getTableData(
+              value.examData,
+            );
             List<TableElementConfig> tableDataConfig = [];
-            MockData.mockBloodRoutineTestData.forEach((element) {
+            tableData.forEach((element) {
               tableDataConfig.add(
                 TableElementConfig(
-                  id: element.id,
-                  unit: element.unit,
-                  name: element.name,
-                  initValue: jsonDecode(value.examData)[element.id],
+                  id: "",
+                  name: element[0],
+                  initValue: element[1],
+                  unit: element[2],
                 ),
               );
             });

+ 2 - 40
lib/pages/medical/widgets/health_check/view.dart

@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 import 'package:vitalapp/architecture/types/index.dart';
 import 'package:vitalapp/components/no_data_view.dart';
+import 'package:vitalapp/managers/interfaces/data_convert.dart';
 import 'package:vitalapp/managers/interfaces/dictionary.dart';
 import 'package:vitalapp/managers/interfaces/models/exce_keys.dart';
 import 'package:vitalapp/pages/medical/controller.dart';
@@ -133,7 +134,7 @@ class _HealthCheckState extends State<HealthCheck> {
         arguments: value.name,
       );
     }
-    controller.tableData = await getTableData(
+    controller.tableData = await Get.find<IDataConvertManager>().getTableData(
       currentExam?.examData ?? '',
     );
 
@@ -242,43 +243,4 @@ class _HealthCheckState extends State<HealthCheck> {
       },
     );
   }
-
-  Future<List<List<String>>> getTableData(String data) async {
-    var currentDiagnosis = <List<String>>[];
-    if (data.isEmpty) {
-      return currentDiagnosis;
-    }
-    var jsonData = json.decode(data);
-    List<String> keys = jsonData.keys.toList();
-
-    List<DictionaryWithUnitDTO>? dtos = [];
-
-    dtos = await Get.find<IDictionaryManager>()
-            .getDictionaryNameAndUnitByKeysAsync(keys) ??
-        [];
-
-    for (var key in keys) {
-      if (key == "ECG_POINT" ||
-          key == "ECG_POINT12" ||
-          key == "HealthGuidance") {
-        continue;
-      }
-      var dto = dtos.firstWhereOrNull((item) => item.key == key);
-      if (dto == null) {
-        continue;
-      }
-      final value = jsonData[key].toString();
-      if (value.isEmpty) {
-        // 不展示空值
-        continue;
-      }
-      currentDiagnosis.add([
-        dto.name ?? '',
-        value,
-        dto.unit ?? '',
-      ]);
-    }
-
-    return currentDiagnosis;
-  }
 }

+ 0 - 18
lib/pages/patient/detail/widgets/last_record.dart

@@ -38,7 +38,6 @@ class LastRecordTable extends StatelessWidget {
         const SizedBox(
           height: 10,
         ),
-
         Table(
           columnWidths: columnWidths,
           children: [
@@ -68,21 +67,6 @@ class LastRecordTable extends StatelessWidget {
         const SizedBox(
           height: 10,
         ),
-        // Container(
-        //     alignment: Alignment.centerLeft,
-        //     child: Text(
-        //       "检测时间:${diagnosisTime ?? ''}",
-        //       style: const TextStyle(fontSize: 18),
-        //     )),
-        // const SizedBox(
-        //   height: 10,
-        // ),
-        // Container(
-        //     alignment: Alignment.centerLeft,
-        //     child: const Text(
-        //       '注:本结果仅对该检验样本负责!',
-        //       style: TextStyle(fontSize: 18),
-        //     ))
       ],
     );
   }
@@ -250,8 +234,6 @@ class LastRecordTable extends StatelessWidget {
       child: Container(
         padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 2),
         alignment: Alignment.centerLeft,
-        // height: 37,
-        // child: contentWidget,
         constraints: BoxConstraints(maxHeight: 48),
         child: Row(children: [Expanded(child: contentWidget)]),
       ),