Selaa lähdekoodia

测量库支持健康体检系统的远程超声测量图像

loki.wu 1 vuosi sitten
vanhempi
commit
f333543748

+ 41 - 55
lib/process/workspace/measure_data_helper.dart

@@ -77,9 +77,33 @@ class MeasureDataHelper {
         remedicalItems.add(RemedicalItemList(
           remedicalList: remedicalInfoList,
         ));
+      } else if (source == VidImageSource.RemoteUS) {
+        // 获取患者的病历记录
+        PageResult<RemedicalListResult> result =
+            PageResult<RemedicalListResult>();
+        result.pageData = [];
+        try {
+          result = await RPCBridge.ins.rpc.remoteUltrasound
+              .vitalGetRemedicalListPagesAsync(
+            GetRecordsPageRequest(
+              token: RPCBridge.ins.userToken,
+              pageIndex: 1,
+              pageSize: 100,
+              patientCode: patientCode,
+            ),
+          );
+        } catch (e) {
+          logger.e('MeasureDataHelper vitalGetRemedicalListPagesAsync ex:$e');
+        }
+        // 遍历病历记录列表,当某条记录的 recordCode 与传入的 recordCode 相同时,将其 remedicalItemList 添加到 remedicalItems 中
+        if (result.pageData!.isNotEmpty) {
+          var recordInfo = result.pageData!.firstWhere(
+              (element) => element.recordCode == recordCode,
+              orElse: () => RemedicalListResult());
+          remedicalItems = recordInfo.remedicalItemList ?? [];
+        }
       }
       // 当数据来源为其他情况时
-
       else {
         // 获取患者的病历记录
         PageResult<RemedicalListResult> result =
@@ -104,31 +128,6 @@ class MeasureDataHelper {
               orElse: () => RemedicalListResult());
           remedicalItems = recordInfo.remedicalItemList ?? [];
         }
-        if (kDebugMode && result.pageData!.isEmpty) {
-          remedicalItems.add(RemedicalItemList(
-              application: "乳腺",
-              applicationCategory: "SMP",
-              patientScanTypeDesc: "SMP-乳腺1",
-              remedicalList: [
-                RemedicalInfoDTO(
-                  application: "乳腺",
-                  applicationCategory: "SMP",
-                  businessType: BusinessTypeEnum.RemoteDiagnosis,
-                  deviceCode: '0',
-                  diagnosisConclusion: DiagnosisConclusionEnum.Malignant,
-                  terminalImages: TerminalImageDTO(
-                    previewUrl:
-                        "http://cdn-bj.fis.plus/9B96E97B621A4E5C93E1706EB4205136.Jpg",
-                    originImageUrl:
-                        "http://flyinsono-bj-1300984704.cos.ap-beijing.myqcloud.com/20240201_12_BC967DAEF023A2A0ECE9A7A80C3725E2.dat",
-                    imageUrl:
-                        'http://cdn-bj.fis.plus/20240201_12_BC967DAEF023A2A0ECE9A7A80C3725E2.dat',
-                    imageSize: 56141,
-                    recommendedDownloadMode: RecommendedDownloadModeEnum.CDN,
-                  ),
-                ),
-              ]));
-        }
       }
       // 返回最终的 remedicalItems 列表
       return remedicalItems;
@@ -201,36 +200,23 @@ class MeasureDataHelper {
           ),
           diagnosisConclusion: DiagnosisConclusionEnum.Benign,
         );
+      } else if (source == VidImageSource.RemoteUS) {
+        result = await RPCBridge.ins.rpc.remoteUltrasound
+            .vitalFindRemedicalByCodeAsync(
+          FindRemedicalByCodeRequest(
+            token: RPCBridge.ins.userToken,
+            remedicalCode: remedicalCode,
+            existDiagnosisResult: true,
+          ),
+        );
       } else {
-        try {
-          result = await RPCBridge.ins.rpc.remedical.findRemedicalByCodeAsync(
-            FindRemedicalByCodeRequest(
-              token: RPCBridge.ins.userToken,
-              remedicalCode: remedicalCode,
-              existDiagnosisResult: true,
-            ),
-          );
-        } catch (e) {
-          logger.e('MeasureDataHelper getImageInfo ex:$e');
-          result = RemedicalInfoDTO(
-            application: "乳腺",
-            applicationCategory: "SMP",
-            businessType: BusinessTypeEnum.RemoteDiagnosis,
-            deviceCode: '0',
-            remedicalCode: '',
-            diagnosisConclusion: DiagnosisConclusionEnum.Malignant,
-            terminalImages: TerminalImageDTO(
-              previewUrl:
-                  "http://cdn-bj.fis.plus/9B96E97B621A4E5C93E1706EB4205136.Jpg",
-              originImageUrl:
-                  "http://flyinsono-bj-1300984704.cos.ap-beijing.myqcloud.com/20240201_12_BC967DAEF023A2A0ECE9A7A80C3725E2.dat",
-              imageUrl:
-                  'http://cdn-bj.fis.plus/20240201_12_BC967DAEF023A2A0ECE9A7A80C3725E2.dat',
-              imageSize: 56141,
-              recommendedDownloadMode: RecommendedDownloadModeEnum.CDN,
-            ),
-          );
-        }
+        result = await RPCBridge.ins.rpc.remedical.findRemedicalByCodeAsync(
+          FindRemedicalByCodeRequest(
+            token: RPCBridge.ins.userToken,
+            remedicalCode: remedicalCode,
+            existDiagnosisResult: true,
+          ),
+        );
       }
 
       return result;

+ 1 - 0
lib/process/workspace/rpc_bridge.dart

@@ -28,4 +28,5 @@ enum VidImageSource {
   Consultation,
   Laboratory,
   AiResultModifier,
+  RemoteUS,
 }

+ 28 - 4
pubspec.lock

@@ -113,6 +113,22 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.2"
+  dart_des:
+    dependency: transitive
+    description:
+      name: dart_des
+      sha256: "0a66afb8883368c824497fd2a1fd67bdb1a785965a3956728382c03d40747c33"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.0.2"
+  dart_sm:
+    dependency: transitive
+    description:
+      name: dart_sm
+      sha256: b7e76b956a87fca4a23478b6557c584e1ae643eddd5407ff18762dea7949de22
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.1.4"
   dio:
     dependency: "direct main"
     description:
@@ -175,8 +191,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: f74744a
-      resolved-ref: f74744ac193a11997d0ed6ec5976a72e7d64e81f
+      ref: fd63f3b
+      resolved-ref: fd63f3b90607f4e771fdef37a26f92f14823944c
       url: "http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git"
     source: git
     version: "0.0.1"
@@ -353,6 +369,14 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.4"
+  hex:
+    dependency: transitive
+    description:
+      name: hex
+      sha256: "4e7cd54e4b59ba026432a6be2dd9d96e4c5205725194997193bf871703b82c4a"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.2.0"
   html:
     dependency: transitive
     description:
@@ -731,10 +755,10 @@ packages:
     dependency: transitive
     description:
       name: web_socket_channel
-      sha256: "3a969ddcc204a3e34e863d204b29c0752716f78b6f9cc8235083208d268a4ccd"
+      sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.2.0"
+    version: "2.3.0"
   webview_flutter:
     dependency: transitive
     description:

+ 1 - 1
pubspec.yaml

@@ -100,7 +100,7 @@ dependency_overrides:
   fis_jsonrpc:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: f74744a
+      ref: fd63f3b
   fis_lib_business_components:
     git:
       url: http://git.ius.plus/Project-Wing/fis_lib_business_components.git