Browse Source

1、测量库更新

guanxinyi 9 months ago
parent
commit
981d512549
25 changed files with 192 additions and 20 deletions
  1. 5 1
      lib/process/calcuators/urm_calcuators/urm_ellipse_den_measure.dart
  2. 5 1
      lib/process/calcuators/urm_calcuators/urm_ellipse_den_vel_measure.dart
  3. 5 1
      lib/process/calcuators/urm_calcuators/urm_ellipse_density.dart
  4. 5 1
      lib/process/calcuators/urm_calcuators/urm_ellipse_fractal_dim.dart
  5. 5 1
      lib/process/calcuators/urm_calcuators/urm_ellipse_perfusion.dart
  6. 5 1
      lib/process/calcuators/urm_calcuators/urm_ellipse_vel_measure.dart
  7. 5 1
      lib/process/calcuators/urm_calcuators/urm_rect_den_measure.dart
  8. 5 1
      lib/process/calcuators/urm_calcuators/urm_rect_den_vel_measure.dart
  9. 5 1
      lib/process/calcuators/urm_calcuators/urm_rect_density.dart
  10. 5 1
      lib/process/calcuators/urm_calcuators/urm_rect_fractal_dim.dart
  11. 5 1
      lib/process/calcuators/urm_calcuators/urm_rect_perfusion.dart
  12. 5 1
      lib/process/calcuators/urm_calcuators/urm_rect_vel_measure.dart
  13. 5 1
      lib/process/calcuators/urm_calcuators/urm_shell_den_measure.dart
  14. 65 1
      lib/process/calcuators/urm_calcuators/urm_shell_den_vel_measure.dart
  15. 5 0
      lib/process/calcuators/urm_calcuators/urm_shell_density_measure.dart
  16. 5 0
      lib/process/calcuators/urm_calcuators/urm_shell_fractal_dim_measure.dart
  17. 5 1
      lib/process/calcuators/urm_calcuators/urm_shell_perfusion_measure.dart
  18. 5 0
      lib/process/calcuators/urm_calcuators/urm_shell_vel_measure.dart
  19. 5 1
      lib/process/calcuators/urm_calcuators/urm_trace_den_measure.dart
  20. 5 1
      lib/process/calcuators/urm_calcuators/urm_trace_den_vel_measure.dart
  21. 5 0
      lib/process/calcuators/urm_calcuators/urm_trace_density.dart
  22. 5 0
      lib/process/calcuators/urm_calcuators/urm_trace_fractal_dim.dart
  23. 6 1
      lib/process/calcuators/urm_calcuators/urm_trace_perfusion.dart
  24. 5 1
      lib/process/calcuators/urm_calcuators/urm_trace_vel_measure.dart
  25. 11 1
      lib/process/workspace/urm/application.dart

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_ellipse_den_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ellipse_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -30,7 +31,10 @@ class URMEllipseDenMeasureCal extends URMEllipseMeasureCal {
 
       if (result != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_ellipse_den_vel_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ellipse_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -31,7 +32,10 @@ class URMEllipseDenVelMeasureCal extends URMEllipseMeasureCal {
 
       if (result != null && velResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_ellipse_density.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ellipse_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -28,7 +29,10 @@ class URMEllipseDensityCal extends URMEllipseMeasureCal {
 
       if (outResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_ellipse_fractal_dim.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ellipse_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -30,7 +31,10 @@ class URMEllipseFractalDimCal extends URMEllipseMeasureCal {
 
       if (result != null && velResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenFractalDim) {
             output.unit = VidUsUnit.None;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_ellipse_perfusion.dart

@@ -3,6 +3,7 @@ import 'dart:typed_data';
 
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ellipse_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_ellipse_measure.dart';
@@ -33,7 +34,10 @@ class URMEllipsePerfusionCal extends URMEllipseMeasureCal {
 
       if (outResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMPerfusionIndex) {
             output.unit = VidUsUnit.None;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_ellipse_vel_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ellipse_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -32,7 +33,10 @@ class URMEllipseVelMeasureCal extends URMEllipseMeasureCal {
 
       if (result != null && velResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMVelMax) {
             output.unit = VidUsUnit.None;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_rect_den_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -30,7 +31,10 @@ class URMRectDenMeasureCal extends URMRectMeasureCal {
 
       if (result != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_rect_den_vel_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -31,7 +32,10 @@ class URMRectDenVelMeasureCal extends URMRectMeasureCal {
 
       if (result != null && velResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_rect_density.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -28,7 +29,10 @@ class URMRectDensityCal extends URMRectMeasureCal {
 
       if (outResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_rect_fractal_dim.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
@@ -31,7 +32,10 @@ class URMRectFractalDimCal extends URMRectMeasureCal {
 
       if (outResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenFractalDim) {
             output.unit = VidUsUnit.None;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_rect_perfusion.dart

@@ -3,6 +3,7 @@ import 'dart:typed_data';
 
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
@@ -34,7 +35,10 @@ class URMRectPerfusionCal extends URMRectMeasureCal {
 
       if (outResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMPerfusionIndex) {
             output.unit = VidUsUnit.None;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_rect_vel_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
@@ -33,7 +34,10 @@ class URMRectVelMeasureCal extends URMRectMeasureCal {
 
       if (result != null && velResult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMVelMax) {
             output.unit = VidUsUnit.None;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_shell_den_measure.dart

@@ -3,6 +3,7 @@ import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
 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:fis_measure/process/calcuators/urm_calcuators/urm_shell_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_shell_measure.dart';
 import 'dart:math' as math;
@@ -120,7 +121,10 @@ class URMShellDenMeasureCal extends URMShellMeasureCal {
             feature.updateFloatValue(output, result.outRoiArea, output.unit);
           }
         }
-        urmApplication.onUpdateRimResult?.call(outResult);
+        urmApplication.onUpdateRimResult?.call(URMRimMesureResult(
+          result: outResult,
+          measureType: MeasureTypes.URMShellDenMeasure,
+        ));
       } else {
         throw Exception("URM Measure API error");
       }

+ 65 - 1
lib/process/calcuators/urm_calcuators/urm_shell_den_vel_measure.dart

@@ -1,9 +1,12 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
+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:fis_measure/process/calcuators/urm_calcuators/urm_shell_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_shell_measure.dart';
+import 'dart:math' as math;
 
 // import 'package:fis_measure/process/primitives/urm_straightline.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -44,7 +47,10 @@ class URMShellDenVelMeasureCal extends URMShellMeasureCal {
           });
           feature.outerExterPoints = outerExterPoints;
         }
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;
@@ -84,7 +90,65 @@ class URMShellDenVelMeasureCal extends URMShellMeasureCal {
           } else if (output.name == MeasureTerms.Area) {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, velresult.roiArea, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenROI) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.inRoiDen * 100, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenFractalDim) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.inRoiFractalDim, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenMax) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.inMaxDensity, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenMin) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.inMinDensity, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenMean) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.inMeanDensity, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenStd) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, math.sqrt(denresult.inVarianceDensity), output.unit);
+          } else if (output.name == MeasureTerms.InArea) {
+            output.unit = VidUsUnit.cm2;
+            feature.updateFloatValue(output, denresult.inRoiArea, output.unit);
+          } else if (output.name == MeasureTerms.OutURMDenROI) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.outRoiDen * 100, output.unit);
+          } else if (output.name == MeasureTerms.OutURMDenFractalDim) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.outRoiFractalDim, output.unit);
+          } else if (output.name == MeasureTerms.OutURMDenMax) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.outMaxDensity, output.unit);
+          } else if (output.name == MeasureTerms.OutURMDenMin) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.outMinDensity, output.unit);
+          } else if (output.name == MeasureTerms.OutURMDenMean) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, denresult.outMeanDensity, output.unit);
+          } else if (output.name == MeasureTerms.OutURMDenStd) {
+            output.unit = VidUsUnit.None;
+            feature.updateFloatValue(
+                output, math.sqrt(denresult.outVarianceDensity), output.unit);
+          } else if (output.name == MeasureTerms.OutArea) {
+            output.unit = VidUsUnit.cm2;
+            feature.updateFloatValue(output, denresult.outRoiArea, output.unit);
           }
+          urmApplication.onUpdateRimResult?.call(URMRimMesureResult(
+            result: outresult,
+            measureType: MeasureTypes.URMShellDenVelMeasure,
+          ));
         }
       } else {
         throw Exception("URM Measure API error");

+ 5 - 0
lib/process/calcuators/urm_calcuators/urm_shell_density_measure.dart

@@ -1,6 +1,7 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_shell_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_shell_measure.dart';
 
@@ -35,6 +36,10 @@ class URMShellDensityMeasureCal extends URMShellMeasureCal {
       if (ref.meta.outputs.isNotEmpty) {
         final first = ref.meta.outputs.first;
         first.unit = VidUsUnit.percent;
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         if (feature is! ShellImageFeature) return;
         if (outresult.outerExterPoints != null) {
           List<DPoint> outerExterPoints = [];

+ 5 - 0
lib/process/calcuators/urm_calcuators/urm_shell_fractal_dim_measure.dart

@@ -1,6 +1,7 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_shell_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_shell_measure.dart';
 
@@ -35,6 +36,10 @@ class URMShellFractalDimMeasureCal extends URMShellMeasureCal {
       if (ref.meta.outputs.isNotEmpty) {
         final first = ref.meta.outputs.first;
         first.unit = VidUsUnit.None;
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         if (feature is! ShellImageFeature) return;
         if (outresult.outerExterPoints != null) {
           List<DPoint> outerExterPoints = [];

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_shell_perfusion_measure.dart

@@ -5,6 +5,7 @@ import 'dart:ui' as ui;
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_shell_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_shell_measure.dart';
@@ -41,7 +42,10 @@ class URMShellPerfusionMeasureCal extends URMShellMeasureCal {
           if (output.name == MeasureTerms.URMPerfusionIndex) {
             output.unit = VidUsUnit.None;
             feature.updateFloatValue(output, outResult.resultData, output.unit);
-
+            feature.updateStringValue(
+                ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+                "",
+                VidUsUnit.None);
             if (feature is! ShellPerfusionImageFeature) return;
             if (outResult.perfusionImgBase64 != null) {
               feature.perfusionImg =

+ 5 - 0
lib/process/calcuators/urm_calcuators/urm_shell_vel_measure.dart

@@ -1,6 +1,7 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_shell_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_shell_measure.dart';
@@ -36,6 +37,10 @@ class URMShellVelMeasureCal extends URMShellMeasureCal {
 
       if (result != null) {
         final feature = ref.feature!;
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         if (feature is! ShellImageFeature) return;
         if (outresult.outerExterPoints != null) {
           List<DPoint> outerExterPoints = [];

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_trace_den_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/services/aIDiagnosis.m.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -33,7 +34,10 @@ class URMTraceDenMeasureCal extends URMTraceMeasureCal {
 
       if (result != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_trace_den_vel_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/services/aIDiagnosis.m.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -32,7 +33,10 @@ class URMTraceDenVelMeasureCal extends URMTraceMeasureCal {
       URMVelMeasureResult? velresult = outresult.velMeasureResult;
       if (denresult != null && velresult != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenROI) {
             output.unit = VidUsUnit.percent;

+ 5 - 0
lib/process/calcuators/urm_calcuators/urm_trace_density.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
 import 'package:vid/us/vid_us_unit.dart';
@@ -28,6 +29,10 @@ class URMTraceDensityCal extends URMTraceMeasureCal {
         return;
       }
       final feature = ref.feature!;
+      feature.updateStringValue(
+          ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+          "",
+          VidUsUnit.None);
       if (ref.meta.outputs.isNotEmpty) {
         final first = ref.meta.outputs.first;
         first.unit = VidUsUnit.percent;

+ 5 - 0
lib/process/calcuators/urm_calcuators/urm_trace_fractal_dim.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
 import 'package:vid/us/vid_us_unit.dart';
@@ -28,6 +29,10 @@ class URMTraceFractalDimCal extends URMTraceMeasureCal {
         return;
       }
       final feature = ref.feature!;
+      feature.updateStringValue(
+          ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+          "",
+          VidUsUnit.None);
       if (ref.meta.outputs.isNotEmpty) {
         final first = ref.meta.outputs.first;
         first.unit = VidUsUnit.None;

+ 6 - 1
lib/process/calcuators/urm_calcuators/urm_trace_perfusion.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -37,7 +38,11 @@ class URMTracePerfusionCal extends URMTraceMeasureCal {
       if (ref.meta.outputs.isNotEmpty) {
         final first = ref.meta.outputs.first;
         first.unit = VidUsUnit.None;
-
+        if (first == null) return;
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         feature.updateFloatValue(first, outresult.resultData, first.unit);
 
         if (feature is! TracePerfusionImageFeature) return;

+ 5 - 1
lib/process/calcuators/urm_calcuators/urm_trace_vel_measure.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
@@ -32,7 +33,10 @@ class URMTraceVelMeasureCal extends URMTraceMeasureCal {
 
       if (result != null) {
         final feature = ref.feature!;
-
+        feature.updateStringValue(
+            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
+            "",
+            VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMVelMax) {
             output.unit = VidUsUnit.mms;

+ 11 - 1
lib/process/workspace/urm/application.dart

@@ -28,7 +28,7 @@ class URMApplication extends Application {
 
   final ValueChanged<URMChartParams>? onUpdateChart;
 
-  final ValueChanged<URMMeasureProcessResult?>? onUpdateRimResult;
+  final ValueChanged<URMRimMesureResult?>? onUpdateRimResult;
 
   @override
   PointInfo createPointInfo(Offset offset, PointInfoType type) {
@@ -212,3 +212,13 @@ class URMSimpleMeasureParams {
     this.shellWidth,
   });
 }
+
+class URMRimMesureResult {
+  final URMMeasureProcessResult result;
+  final String measureType;
+
+  URMRimMesureResult({
+    required this.result,
+    required this.measureType,
+  });
+}