Эх сурвалжийг харах

已实现测量项直接根据配置创建

melon.yin 2 жил өмнө
parent
commit
80fc73af4b

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
assets/items.json


+ 2 - 1
lib/process/items/factory.dart

@@ -83,7 +83,8 @@ class MeasureItemFactory {
     _singleton._register(MeasureTypes.ResidualUrine, TwoStraightLine.createRUV);
 
     // Angle
-    _singleton._register(MeasureTypes.Angle, PolylineAngle.createPolyAngle);
+    _singleton._register(
+        MeasureTypes.PolyLineAngle, PolylineAngle.createPolyAngle);
 
     // Area Perimeter
     _singleton._register(

+ 16 - 4
lib/process/items/item_meta_convert.dart

@@ -1,5 +1,6 @@
 import 'package:fis_jsonrpc/services/remedical.m.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
+import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:vid/us/vid_us_unit.dart';
 
 class ItemMetaConverter {
@@ -61,21 +62,32 @@ class ItemMetaConverter {
   }
 
   static ItemMeta _convertChildItem(ChildItemMetaDTO c) {
+    ChildItemMetaDTO dto = c;
+    if (c.childItems != null && c.childItems!.isNotEmpty) {
+      final child = c.childItems!.firstWhere((e) => e.isWorking);
+      dto = child;
+    }
     return ItemMeta(
       c.name!,
-      measureType: c.measureTypeName!,
-      description: c.description ?? '',
-      outputs: _convetOutputsFromCalc(c.calculator!),
+      measureType: dto.measureTypeName!,
+      description: c.description ?? c.name!,
+      outputs: _convetOutputsFromCalc(dto.calculator!),
       childItems: [],
     );
   }
 
   static List<ItemOutputMeta> _convetOutputsFromCalc(
       CalculatorMetaDTO calcDto) {
-    return calcDto.availableOutputs!
+    final outputs = calcDto.availableOutputs!
         .where((e) => e.isWorking == true)
         .map((e) => _convetOutputFromDto(e))
         .toList();
+
+    if (outputs.isEmpty) {
+      //TODO: wait remove
+      return [_convetOutputFromDto(calcDto.availableOutputs!.first)];
+    }
+    return outputs;
   }
 
   static ItemOutputMeta _convetOutputFromDto(OutputItemMetaDTO o) {

+ 0 - 188
lib/process/workspace/application.dart

@@ -306,80 +306,6 @@ class Application implements IApplication {
     _updateOperateType(MeasureOperateType.measure);
     activeMeasureItem?.finishOnce();
     // TODO: create from map
-    if (name == MeasureTypes.Distance) {
-      activeMeasureItem = StraightLine.createDistance(
-        ItemMeta(
-          MeasureTypes.Distance,
-          measureType: MeasureTypes.Distance,
-          description: MeasureTypes.Distance,
-          briefAnnotation: "D",
-          outputs: [
-            ItemOutputMeta(MeasureTypes.Distance, "Distance", VidUsUnit.cm),
-          ],
-        ),
-      );
-      return;
-    }
-
-    if (name == MeasureTerms.Perimeter) {
-      activeMeasureItem = Trace.createAreaPerimeter(
-        ItemMeta(
-          MeasureTerms.Perimeter,
-          measureType: MeasureTypes.AreaPerimeterTrace,
-          description: MeasureTerms.Perimeter,
-          briefAnnotation: MeasureTerms.Perimeter,
-          outputs: [
-            ItemOutputMeta(MeasureTerms.Perimeter, "Perimeter", VidUsUnit.cm),
-          ],
-        ),
-        null,
-      );
-      return;
-    }
-    if (name == MeasureTerms.Area) {
-      activeMeasureItem = Trace.createAreaPerimeter(
-        ItemMeta(
-          MeasureTerms.Area,
-          measureType: MeasureTypes.AreaPerimeterTrace,
-          description: MeasureTerms.Area,
-          briefAnnotation: MeasureTerms.Area,
-          outputs: [
-            ItemOutputMeta(MeasureTerms.Area, "Area", VidUsUnit.cm2),
-          ],
-        ),
-        null,
-      );
-      return;
-    }
-    if (name == MeasureTypes.Angle) {
-      activeMeasureItem = PolylineAngle.createPolyAngle(
-        ItemMeta(
-          MeasureTypes.Angle,
-          measureType: MeasureTypes.Angle,
-          description: MeasureTypes.Angle,
-          briefAnnotation: MeasureTypes.Angle,
-          outputs: [
-            ItemOutputMeta(MeasureTypes.Angle, "Angle", VidUsUnit.degree),
-          ],
-        ),
-        null,
-      );
-      return;
-    }
-    if (name == MeasureTypes.Depth) {
-      activeMeasureItem = Location.createTissueDepth(
-          ItemMeta(
-            MeasureTypes.Depth,
-            measureType: MeasureTypes.Depth,
-            description: MeasureTypes.Depth,
-            briefAnnotation: MeasureTypes.Depth,
-            outputs: [
-              ItemOutputMeta(MeasureTypes.Depth, "Depth", VidUsUnit.cm),
-            ],
-          ),
-          null);
-      return;
-    }
     if (name == MeasureTerms.AntCCA_IMT) {
       activeMeasureItem = CarotidIMT.createMeasureRect(
           ItemMeta(
@@ -448,120 +374,6 @@ class Application implements IApplication {
       return;
     }
 
-    if (name == MeasureTypes.Volume) {
-      childBuild(String name) {
-        return ItemMeta(
-          name,
-          measureType: MeasureTypes.Distance,
-          description: name,
-          outputs: [
-            ItemOutputMeta("Distance", "Distance", VidUsUnit.cm),
-          ],
-        );
-      }
-
-      activeMeasureItem = MeasureItemFactory.createItem(
-        ItemMeta(
-          MeasureTypes.VolumeThreeDistance,
-          measureType: MeasureTypes.Volume,
-          description: MeasureTypes.Volume,
-          outputs: [
-            ItemOutputMeta("Volume", "Volume", VidUsUnit.cm3),
-          ],
-          childItems: [
-            childBuild("L"),
-            childBuild("W"),
-            childBuild("H"),
-          ],
-        ),
-      );
-      return;
-    }
-    if (name == MeasureTerms.Stenosis) {
-      childBuild(String name) {
-        return ItemMeta(
-          name,
-          description: name,
-          measureType: MeasureTypes.StenosisTwoArea,
-          outputs: [
-            ItemOutputMeta("Area", "Area", VidUsUnit.cm2),
-          ],
-        );
-      }
-
-      activeMeasureItem = MeasureItemFactory.createItem(
-        ItemMeta(
-          MeasureTerms.Stenosis,
-          measureType: MeasureTypes.StenosisTwoArea,
-          description: MeasureTerms.Stenosis,
-          outputs: [
-            ItemOutputMeta("%Stenosis", "%Stenosis", VidUsUnit.percent),
-          ],
-          childItems: [
-            childBuild("A1"),
-            childBuild("A2"),
-          ],
-        ),
-      );
-      return;
-    }
-    if (name == MeasureTerms.AbRatio) {
-      childBuild(String name) {
-        return ItemMeta(
-          name,
-          description: name,
-          measureType: MeasureTypes.AbRatioTwoArea,
-          outputs: [
-            ItemOutputMeta("Area", "Area", VidUsUnit.cm2),
-          ],
-        );
-      }
-
-      activeMeasureItem = MeasureItemFactory.createItem(
-        ItemMeta(
-          MeasureTerms.AbRatio,
-          measureType: MeasureTypes.AbRatioTwoArea,
-          description: MeasureTerms.AbRatio,
-          outputs: [
-            ItemOutputMeta("A/B Ratio", "A/B Ratio", VidUsUnit.None),
-          ],
-          childItems: [
-            childBuild("A1"),
-            childBuild("A2"),
-          ],
-        ),
-      );
-      return;
-    }
-    if (name == MeasureTerms.RUV) {
-      childBuild(String name) {
-        return ItemMeta(
-          name,
-          description: name,
-          measureType: MeasureTypes.Distance,
-          outputs: [
-            ItemOutputMeta("Distance", "Distance", VidUsUnit.cm),
-          ],
-        );
-      }
-
-      activeMeasureItem = MeasureItemFactory.createItem(
-        ItemMeta(
-          MeasureTerms.RUV,
-          measureType: MeasureTypes.ResidualUrine,
-          description: MeasureTerms.RUV,
-          outputs: [
-            ItemOutputMeta("RUV", "RUV", VidUsUnit.ml),
-          ],
-          childItems: [
-            childBuild("X"),
-            childBuild("Y"),
-          ],
-        ),
-      );
-      return;
-    }
-
     if (name == MeasureTypes.AreaPerimeterEllipse) {
       activeMeasureItem = MeasureItemFactory.createItem(
         ItemMeta(

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно