Browse Source

1、12导心电图支持上传30秒和5秒的图

guanxinyi 1 year ago
parent
commit
eec4f87579

+ 1 - 1
lib/components/dialog_table.dart

@@ -113,7 +113,7 @@ class VDialogTable extends StatelessWidget {
             (cellData) {
               if (label == '心电测量') {
                 return _buildImageDataCell(cellData);
-              } else if (label == '十二导心电图') {
+              } else if (label == '十二导心电图(30秒)') {
                 return _buildImageDataCell(cellData);
               } else if (label == '十二导分析结果') {
                 return _buildEcg12DataCell(cellData);

+ 1 - 0
lib/consts/diagnosis.dart

@@ -731,6 +731,7 @@ abstract class DiagnosisTranslator {
     "HEART12": "十二导心率",
     "ASSESS12": "十二导心率评估",
     "ECG12": "十二导心电图",
+    "ECG12_30s": "十二导心电图(30秒)",
     "HEART12_Unit": "bpm",
     "Analyse12": "十二导分析结果",
     "Breathe_Unit": "rr",

+ 1 - 1
lib/managers/diagnosis.dart

@@ -200,7 +200,7 @@ class DiagnosisManager implements IDiagnosisManager {
         }
 
         for (var key in keys) {
-          if (key == "ECG_POINT" || key == "ECG_POINT12") {
+          if (key == "ECG_POINT" || key == "ECG_POINT12" || key == "ECG12") {
             continue;
           }
           var dto = dtos.firstWhereOrNull((item) => item.key == key);

+ 6 - 0
lib/managers/record_data_cache_manager.dart

@@ -220,6 +220,12 @@ class RecordDataCacheManager implements IRecordDataCacheManager {
       String? imageUrl = await rpc.storage.upload(imageFile!);
       data['ECG12'] = imageUrl ?? '';
     }
+    if (data['ECG12_30s'] != null && !isUploaded(data['ECG12_30s'])) {
+      // ... 上传图片
+      final imageFile = UploadUtils.convertBase64ToXFile(data['ECG12_30s']);
+      String? imageUrl = await rpc.storage.upload(imageFile!, fileType: "jpg");
+      data['ECG12_30s'] = imageUrl ?? '';
+    }
     return data;
   }
 }

+ 13 - 0
lib/pages/medical/controller.dart

@@ -419,6 +419,7 @@ class MedicalController extends FControllerBase {
     return url.startsWith('https://') || url.startsWith('http://');
   }
 
+// TODO Baka 体检暂时写法 需要封装
   Future<Map> uploadData(Map data) async {
     if (data['ECG_POINT'] != null && !isUploaded(data['ECG_POINT'])) {
       File ecgPointFile =
@@ -447,6 +448,12 @@ class MedicalController extends FControllerBase {
       String? imageUrl = await rpc.storage.upload(imageFile!, fileType: "jpg");
       data['ECG12'] = imageUrl ?? '';
     }
+    if (data['ECG12_30s'] != null && !isUploaded(data['ECG12_30s'])) {
+      // ... 上传图片
+      final imageFile = UploadUtils.convertBase64ToXFile(data['ECG12_30s']);
+      String? imageUrl = await rpc.storage.upload(imageFile!, fileType: "jpg");
+      data['ECG12_30s'] = imageUrl ?? '';
+    }
     return data;
   }
 
@@ -472,6 +479,12 @@ class MedicalController extends FControllerBase {
       Get.back();
     }
     onSelectExam.emit(this, true);
+    saveCachedRecord();
+    // await recordDataCacheManager.saveRecordData(
+    //   appDataId,
+    //   patientCode,
+    //   output,
+    // );
     print(result);
   }
 

+ 4 - 1
lib/pages/medical/widgets/twelve_ecg.dart

@@ -358,9 +358,12 @@ class _HeartRateState extends State<TwelveHeartRate> {
         Get.find<TwelveEcgViewController>();
     ecgViewController.isPaused = true;
 
-    /// 【TODO】 这边原来是30秒的图,现在改成5秒图(不知道后面需不需要改)
+    /// 【TODO】 这边原来是30秒的图,现在改成5秒图
+    /// 后面又将30秒和5秒的图都存了,所以这里需要改动
     medicalController.diagnosisDataValue['TwelveHeart']?['ECG12'] =
         await ecgViewController.getFiveImageBase64();
+    medicalController.diagnosisDataValue['TwelveHeart']?['ECG12_30s'] =
+        await ecgViewController.getFullDataImageBase64();
     medicalController.diagnosisDataValue['TwelveHeart']?['ECG_POINT12'] =
         jsonEncode(ecgViewController.allPoints);
     ecgViewController.updateTwelveEcgView();

+ 1 - 1
lib/pages/patient/detail/widgets/last_record.dart

@@ -102,7 +102,7 @@ class LastRecordTable extends StatelessWidget {
               }
               if (label == '心电测量') {
                 return _buildImageDataCell(cellData);
-              } else if (label == '十二导心电') {
+              } else if (label == '十二导心电(30秒)') {
                 return _buildImageDataCell(cellData);
               } else if (label == '十二导分析结果') {
                 return _buildEcg12DataCell(cellData);