Ver Fonte

新增 URM 测量项

gavin.chen há 10 meses atrás
pai
commit
009907e8c1

+ 28 - 23
lib/interfaces/date_types/rect_region.dart

@@ -5,12 +5,20 @@ import 'package:fis_measure/interfaces/date_types/size.dart';
 import 'point.dart';
 
 class RectRegion {
-  double _left = 0;
-  double _top = 0;
-  double _right = 0;
-  double _bottom = 0;
+  final double _left;
+  final double _top;
+  final double _right;
+  final double _bottom;
 
-  RectRegion();
+  const RectRegion({
+    double left = 0,
+    double top = 0,
+    double right = 0,
+    double bottom = 0,
+  })  : _left = left,
+        _top = top,
+        _right = right,
+        _bottom = bottom;
 
   factory RectRegion.fill(
     double x,
@@ -22,11 +30,8 @@ class RectRegion {
       logger.e("Size_WidthAndHeightCannotBeNegative($x,$y,$width,$height)");
       width = height = 0;
     }
-    final rect = RectRegion()
-      .._left = x
-      .._top = y;
-    rect._right = rect.left + width;
-    rect._bottom = rect.top + height;
+    final rect =
+        RectRegion(left: x, top: y, right: x + width, bottom: y + height);
     return rect;
   }
 
@@ -34,26 +39,26 @@ class RectRegion {
     DPoint topLeft,
     DPoint bottomRight,
   ) {
-    final rect = RectRegion()
-      .._left = topLeft.x
-      .._top = topLeft.y
-      .._right = bottomRight.x
-      .._bottom = bottomRight.y;
+    final rect = RectRegion(
+      left: topLeft.x,
+      top: topLeft.y,
+      right: bottomRight.x,
+      bottom: bottomRight.y,
+    );
     return rect;
   }
 
   factory RectRegion.rect(DRect rect) {
-    return RectRegion()
-      .._top = rect.top
-      .._left = rect.left
-      .._bottom = rect.bottom
-      .._right = rect.right;
+    return RectRegion(
+      left: rect.left,
+      top: rect.top,
+      right: rect.right,
+      bottom: rect.bottom,
+    );
   }
 
   factory RectRegion.size(DSize size) {
-    return RectRegion()
-      .._right = size.width
-      .._bottom = size.height;
+    return RectRegion.fill(0, 0, size.width, size.height);
   }
 
   double get left => _left;

+ 95 - 0
lib/view/measure/urm/urm_measure_config.dart

@@ -0,0 +1,95 @@
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
+import 'package:fis_measure/interfaces/process/items/terms.dart';
+import 'package:fis_measure/interfaces/process/items/types.dart';
+import 'package:vid/us/vid_us_unit.dart';
+
+class URMMeasureConfig {
+  /// 写死的URM测量项
+  static List<ItemMeta> urmMeasureApplicationList = [
+    ItemMeta(
+      MeasureTypes.Distance,
+      measureType: MeasureTypes.Distance,
+      description: MeasureTypes.Distance,
+      briefAnnotation: "D",
+      outputs: [
+        ItemOutputMeta(MeasureTypes.Distance, "Distance", VidUsUnit.cm),
+      ],
+    ),
+    ItemMeta(
+      MeasureTerms.Area,
+      measureType: MeasureTypes.AreaPerimeterTrace,
+      description: MeasureTerms.Area,
+      briefAnnotation: MeasureTerms.Area,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.Area, "Area", VidUsUnit.cm2),
+      ],
+    ),
+    ItemMeta(
+      MeasureTerms.Stenosis,
+      measureType: MeasureTypes.StenosisTwoDistance,
+      description: MeasureTerms.Stenosis,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.Stenosis, "%Stenosis", VidUsUnit.percent),
+      ],
+      childItems: [
+        ItemMeta(
+          "D1",
+          description: "D1",
+          measureType: MeasureTypes.Distance,
+          outputs: [
+            ItemOutputMeta("Distance", "Distance", VidUsUnit.cm),
+          ],
+        ),
+        ItemMeta(
+          "D2",
+          description: "D2",
+          measureType: MeasureTypes.Distance,
+          outputs: [
+            ItemOutputMeta("Distance", "Distance", VidUsUnit.cm),
+          ],
+        ),
+      ],
+    ),
+    // '%Stenosis',
+    ItemMeta(
+      MeasureTerms.AntCCA_IMT,
+      description: MeasureTerms.AntCCA_IMT,
+      measureType: MeasureTypes.AntCCA_IMT,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.AntCCA_IMT, "", VidUsUnit.cm),
+      ],
+    ),
+    ItemMeta(
+      MeasureTerms.PostCCA_IMT,
+      description: MeasureTerms.PostCCA_IMT,
+      measureType: MeasureTypes.PostCCA_IMT,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.PostCCA_IMT, "", VidUsUnit.cm),
+      ],
+    ),
+    ItemMeta(
+      MeasureTerms.BothCCA_IMT,
+      description: MeasureTerms.BothCCA_IMT,
+      measureType: MeasureTypes.BothCCA_IMT,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.BothCCA_IMT, "", VidUsUnit.cm),
+      ],
+    ),
+    ItemMeta(
+      MeasureTerms.PlaqueDetection,
+      description: MeasureTerms.PlaqueDetection,
+      measureType: MeasureTypes.PlaqueDetection,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.PlaqueDetection, "", VidUsUnit.cm2),
+      ],
+    ),
+    ItemMeta(
+      MeasureTerms.IntimaDetection,
+      description: MeasureTerms.IntimaDetection,
+      measureType: MeasureTypes.IntimaDetection,
+      outputs: [
+        ItemOutputMeta(MeasureTerms.IntimaDetection, "", VidUsUnit.cm2),
+      ],
+    ),
+  ];
+}