Browse Source

修正编译报错

gavin.chen 10 months ago
parent
commit
e521d1fb4b

+ 52 - 39
lib/process/calcuators/urm.dart

@@ -302,33 +302,30 @@ class URMLocationCal extends Calculator<Location, double> {
           urmApplication.resultHeight.toDouble());
       // urmResultWidth = urmApplication.resultWidth;
       // urmResultHeight = urmApplication.resultHeight;
+      final point = ref.feature!.point.clone();
+      final startPoint = point.scale2Size(urmResultSize);
+      print("URM Measure startPoint: $startPoint");
+      getSRLoactionVelResult(urmApplication, startPoint);
     } catch (e) {
       logger.e('URM Measure error: $e');
       return;
     }
-
-    final point = ref.feature!.point.clone();
-    final startPoint = point.scale2Size(urmResultSize);
-    print("URM Measure startPoint: $startPoint");
-    getSRLoactionVelResult(startPoint);
   }
 
   // URM 测量项 6
-  void getSRLoactionVelResult(
-    DPoint point,
-  ) async {
-    bool success = false;
+  void getSRLoactionVelResult(URMApplication app, DPoint startPoint) async {
     String description = "URM\n Measuring";
     try {
-      // TODO 换成真实接口
-      // var result = await RPCBridge.ins.rpc.lab.getFileListByFolderAsync(     );
-      print("调接口获取测量值");
+      GetSRLoactionVelResult? result =
+          await app.getSRLoactionVelResult(startPoint);
+      if (result != null) {
+        print("URM Measure output: ${result.output}");
+        description = "${(result.output).toStringAsFixed(2)}mm/s";
+      }
     } catch (e) {
-      success = false;
       description = " ";
       return;
     }
-    description = "${(12.34567).toStringAsFixed(2)}mm/s";
     updateStringValue(description);
     ref.application.updateRenderReady.emit(this, null);
   }
@@ -340,51 +337,67 @@ class URMStraightLineCal extends Calculator<StraightLine, double> {
   @override
   void calculate() {
     if (ref.feature == null) return;
-    Size urmResultSize = const Size(0, 0);
     try {
       if (ref.application is! URMApplication) {
         return;
       }
+      Size urmResultSize = const Size(0, 0);
       final URMApplication urmApplication = ref.application as URMApplication;
       urmResultSize = Size(urmApplication.resultWidth.toDouble(),
           urmApplication.resultHeight.toDouble());
-      // urmResultWidth = urmApplication.resultWidth;
-      // urmResultHeight = urmApplication.resultHeight;
+      final p1 = ref.feature!.startPoint;
+      final p2 = ref.feature!.endPoint;
+      final leftTopPercent =
+          DPoint(p1.x < p2.x ? p1.x : p2.x, p1.y < p2.y ? p1.y : p2.y);
+      final rightBottomPercent =
+          DPoint(p1.x > p2.x ? p1.x : p2.x, p1.y > p2.y ? p1.y : p2.y);
+
+      final startPoint = leftTopPercent.scale2Size(urmResultSize);
+      final endPoint = rightBottomPercent.scale2Size(urmResultSize);
+
+      getSRCurvatureResult(urmApplication, startPoint, endPoint);
     } catch (e) {
       logger.e('URM Measure error: $e');
       return;
     }
-    final p1 = ref.feature!.startPoint;
-    final p2 = ref.feature!.endPoint;
-    //左上顶点
-    final leftTopPercent =
-        DPoint(p1.x < p2.x ? p1.x : p2.x, p1.y < p2.y ? p1.y : p2.y);
-    //右下顶点
-    final rightBottomPercent =
-        DPoint(p1.x > p2.x ? p1.x : p2.x, p1.y > p2.y ? p1.y : p2.y);
-    //画布尺寸
-    final canavsSize = ref.application.displaySize;
-
-    final startPoint = leftTopPercent.scale2Size(urmResultSize);
-    final endPoint = rightBottomPercent.scale2Size(urmResultSize);
-
-    getSRCurvatureResult(startPoint, endPoint);
   }
 
   // URM 测量项 1
-  void getSRCurvatureResult(DPoint startPoint, DPoint endPoint) async {
-    bool success = false;
+  void getSRCurvatureResult(
+      URMApplication app, DPoint startPoint, DPoint endPoint) async {
     String description = "URM\n Measuring";
     try {
-      // TODO 换成真实接口
-      // var result = await RPCBridge.ins.rpc.lab.getFileListByFolderAsync(     );
-      print("调接口获取测量值");
+      GetSRCurvatureResult? result =
+          await app.getSRCurvatureResult(startPoint, endPoint);
+      if (result != null) {
+        print(
+            "URM Measure curvature: ${result.curvature} nums: ${result.outPointsNum}");
+        description = "${(result.curvature).toStringAsFixed(2)}mm/s";
+      }
+    } catch (e) {
+      description = " ";
+      return;
+    }
+    updateStringValue(description);
+    ref.application.updateRenderReady.emit(this, null);
+  }
+
+  // URM 测量项 8
+  void getURMDenMeasureResult(
+      URMApplication app, DPoint startPoint, DPoint endPoint) async {
+    String description = "URM\n Measuring";
+    try {
+      GetURMDenMeasureResult? result =
+          await app.getURMDenMeasureResult(startPoint, endPoint);
+      if (result != null) {
+        print(
+            "URM Measure inMaxDensity: ${result.inMaxDensity} inMeanDensity: ${result.inMeanDensity}");
+        description = "${(result.inMaxDensity).toStringAsFixed(2)}mm/s ...";
+      }
     } catch (e) {
-      success = false;
       description = " ";
       return;
     }
-    description = "${(12.34567).toStringAsFixed(2)}mm/s";
     updateStringValue(description);
     ref.application.updateRenderReady.emit(this, null);
   }

+ 29 - 4
lib/process/items/factory.dart

@@ -236,9 +236,34 @@ class MeasureItemFactory {
 
     // URM
     _singleton._register(
-        MeasureTypes.SRCurvature, URMStraightLine.createURMStraightline);
-    _singleton._register(MeasureTypes.SRRoiDensity, URMRect.createMeasureRect);
-    _singleton._register(
-        MeasureTypes.SRLoactionVel, URMLoaction.createURMLocation);
+      MeasureTypes.SRCurvature,
+      URMStraightLine.createURMStraightline,
+    );
+    _singleton._register(
+      MeasureTypes.SRRoiDensity,
+      URMRect.createMeasureRect,
+    );
+    _singleton._register(
+      MeasureTypes.SRRoiFractalDim,
+      URMRect.createMeasureRect,
+    );
+    // TODO SRTraceDensity
+    // TODO SRTraceFD
+    _singleton._register(
+      MeasureTypes.SRLoactionVel,
+      URMLoaction.createURMLocation,
+    );
+    _singleton._register(
+      MeasureTypes.SRRoiVel,
+      URMRect.createMeasureRect,
+    );
+    _singleton._register(
+      MeasureTypes.URMDensityMeasure,
+      URMStraightLine.createURMStraightline,
+    );
+    _singleton._register(
+      MeasureTypes.URMVelMeasure,
+      URMRect.createMeasureRect,
+    );
   }
 }

+ 0 - 2
lib/process/primitives/location.dart

@@ -1,7 +1,5 @@
-import 'dart:html';
 import 'dart:ui';
 import 'dart:math' as math;
-
 import 'package:fis_measure/interfaces/date_types/point.dart';
 import 'package:fis_measure/interfaces/date_types/rect_region.dart';
 import 'package:fis_measure/interfaces/date_types/vector.dart';

+ 1 - 1
lib/process/primitives/urm_straightline.dart

@@ -46,7 +46,7 @@ class URMStraightLine extends StraightLine {
         doCalculate();
         doFeatureFinish();
 
-        ///重置十字样式
+        /// 重置十字样式
         // changeCrossIndicatorStyle(CrossIndicatorStyle.nomal);
       }
     }

+ 222 - 0
lib/process/workspace/urm/application.dart

@@ -1,8 +1,11 @@
 import 'dart:ui';
 // import 'package:fis_measure/interfaces/date_types/rect_region.dart';
 // import 'package:fis_measure/interfaces/date_types/size.dart';
+import 'package:fis_jsonrpc/services/aIDiagnosis.m.dart';
+import 'package:fis_measure/interfaces/date_types/point.dart';
 import 'package:fis_measure/interfaces/process/visuals/visual.dart';
 import 'package:fis_measure/process/visual/v2d_visual.dart';
+import 'package:fis_measure/process/workspace/rpc_bridge.dart';
 import 'package:vid/us/vid_us_probe.dart';
 import '../application.dart';
 import 'package:fis_measure/interfaces/date_types/rect_region.dart';
@@ -22,6 +25,7 @@ class URMApplication extends Application {
     required this.roiRect,
     required this.resultWidth,
     required this.resultHeight,
+    required this.remedicalCode,
     required this.originVisuals,
   }) : super(probe);
 
@@ -40,6 +44,8 @@ class URMApplication extends Application {
 
   int resultHeight; // 分析结果图像高度
 
+  String remedicalCode; // 图像 Code
+
   bool syncDisplay = false; // 是否开启同步显示
 
   @override
@@ -107,4 +113,220 @@ class URMApplication extends Application {
   void loadURMVisuals() {
     loadVisuals();
   }
+
+  Future<GetSRCurvatureResult?> getSRCurvatureResult(
+      DPoint startPoint, DPoint endPoint) async {
+    try {
+      print("调接口获取测量值 getSRCurvatureAsync");
+      GetSRCurvatureResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRCurvatureAsync(
+        GetSRCurvatureRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 5, // 5-URM测量Den,6-URM测量Vel
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetSRRoiVelResult?> getSRRoiVelResult(
+      DPoint startPoint, DPoint endPoint) async {
+    try {
+      print("调接口获取测量值 getSRRoiVelAsync");
+      GetSRRoiVelResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRRoiVelAsync(
+        GetSRRoiVelRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 5,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetSRRoiFractalDimResult?> getSRRoiFractalDimResult(
+      DPoint startPoint, DPoint endPoint) async {
+    try {
+      print("调接口获取测量值 getSRRoiFractalDimAsync");
+      GetSRRoiFractalDimResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRRoiFractalDimAsync(
+        GetSRRoiFractalDimRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 5,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetSRTraceVelResult?> getSRTraceVelResult(
+      DPoint startPoint, DPoint endPoint) async {
+    try {
+      print("调接口获取测量值 getSRTraceVelAsync");
+      GetSRTraceVelResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRTraceVelAsync(
+        GetSRTraceVelRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 5,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          // /FIXME 入参应该为点集
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetSRTraceFractalDimResult?> getSRTraceFractalDimResult(
+    List<UrmPoint> points,
+  ) async {
+    try {
+      print("调接口获取测量值 getSRTraceFractalDimAsync");
+      GetSRTraceFractalDimResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRTraceFractalDimAsync(
+        GetSRTraceFractalDimRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 5,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          inputPoints: points,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetSRLoactionVelResult?> getSRLoactionVelResult(
+    DPoint point,
+  ) async {
+    try {
+      print("调接口获取测量值 getSRLoactionVelAsync");
+      GetSRLoactionVelResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRLoactionVelAsync(
+        GetSRLoactionVelRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 6,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: point.x,
+          startPointY: point.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetSRRoiSpeedResult?> getSRRoiSpeedResult(
+    DPoint startPoint,
+    DPoint endPoint,
+  ) async {
+    try {
+      print("调接口获取测量值 getSRRoiSpeedAsync");
+      GetSRRoiSpeedResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getSRRoiSpeedAsync(
+        GetSRRoiSpeedRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 6,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetURMDenMeasureResult?> getURMDenMeasureResult(
+      DPoint startPoint, DPoint endPoint) async {
+    try {
+      print("调接口获取测量值 getURMDenMeasureAsync");
+      GetURMDenMeasureResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getURMDenMeasureAsync(
+        GetURMDenMeasureRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 5,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
+
+  Future<GetURMVelMeasureResult?> getURMVelMeasureResult(
+      DPoint startPoint, DPoint endPoint) async {
+    try {
+      print("调接口获取测量值 getURMVelMeasureAsync");
+      GetURMVelMeasureResult result =
+          await RPCBridge.ins.rpc.aIDiagnosis.getURMVelMeasureAsync(
+        GetURMVelMeasureRequest(
+          remedicalCode: remedicalCode,
+          measureMode: 6,
+          dataWidth: resultWidth,
+          dataHeight: resultHeight,
+          startPointX: startPoint.x,
+          startPointY: startPoint.y,
+          endPointX: endPoint.x,
+          endPointY: endPoint.y,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
 }

+ 2 - 2
pubspec.lock

@@ -191,8 +191,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: "691ba3f"
-      resolved-ref: "691ba3f0f8c6c3aeb2097ad0285957081d4ca3b2"
+      ref: a129518
+      resolved-ref: a12951844f9e66664786fa69dfaeae699143bab6
       url: "http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git"
     source: git
     version: "0.0.1"

+ 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: 691ba3f
+      ref: a129518
   fis_lib_business_components:
     git:
       url: http://git.ius.plus/Project-Wing/fis_lib_business_components.git