Bladeren bron

完善 URM 测量值显示

gavin.chen 10 maanden geleden
bovenliggende
commit
a9c821570c

+ 4 - 1
lib/interfaces/process/items/terms.dart

@@ -33,12 +33,15 @@ class MeasurespecialsupportedTerms {
 
 class MeasureTerms {
   /* URM [begin]*/
-  static const SRCurvature = "SRStraightCurvatureLineMeasure";
+  static const SRCurvature = "SRCurvature";
   static const SRRoiDensity = "SRRoiDensity";
   static const SRRoiFractalDim = "SRRoiFractalDim";
   static const SRTraceDensity = "SRTraceDensity";
   static const SRTraceFD = "SRTraceFD";
   static const SRLoactionVel = "SRLoactionVel";
+
+  static const SRVel = "SRVel";
+
   static const SRRoiVel = "SRRoiVel";
   static const URMDensityMeasure = "URMRectDenMeasure";
   static const URMVelMeasure = "URMRectVelMeasure";

+ 3 - 1
lib/interfaces/process/items/types.dart

@@ -182,7 +182,9 @@ class MeasureTypes {
   static const RVSP = "RVSP";
 
   /* URM [begin]*/
-  static const SRCurvature = "SRStraightCurvatureLineMeasure";
+  static const SRStraightCurvatureLineMeasure =
+      "SRStraightCurvatureLineMeasure";
+  static const SRCurvature = "SRCurvature";
   static const SRRoiDensity = "SRRoiDensity";
   static const SRRoiFractalDim = "SRRoiFractalDim";
   static const SRTraceDensity = "SRTraceDensity";

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

@@ -3,6 +3,7 @@ import 'dart: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/terms.dart';
 import 'package:fis_measure/interfaces/process/items/types.dart';
 import 'package:fis_measure/process/primitives/area_abstract.dart';
 import 'package:fis_measure/process/primitives/location.dart';
@@ -177,7 +178,7 @@ class URMLocationCal extends Calculator<Location, double> {
     }
   }
 
-  // URM 测量项 6
+  // URM 测量项 6
   Future<void> getSRLoactionVelResult(
       URMApplication app, DPoint startPoint) async {
     String description = "URM\n Measuring";
@@ -186,13 +187,18 @@ class URMLocationCal extends Calculator<Location, double> {
           await app.getSRLoactionVelResult(startPoint);
       if (result != null) {
         print("URM Measure output: ${result.output}");
-        description = "${(result.output).toStringAsFixed(2)}mm/s";
+        final feature = ref.feature!;
+        for (var output in ref.meta.outputs) {
+          if (output.name == MeasureTerms.SRVel) {
+            feature.updateFloatValue(output, result.output, output.unit);
+          }
+        }
       }
     } catch (e) {
       description = " ";
+      updateStringValue(description);
       return;
     }
-    updateStringValue(description);
     ref.application.updateRenderReady.emit(this, null);
   }
 }
@@ -209,6 +215,7 @@ class URMStraightLineCal extends Calculator<StraightLine, double> {
   @override
   Future<void> calculateAsync() async {
     if (ref.feature == null) return;
+
     try {
       if (ref.application is! URMApplication) {
         return;
@@ -234,6 +241,17 @@ class URMStraightLineCal extends Calculator<StraightLine, double> {
         case MeasureTypes.URMDensityMeasure:
           await getURMDenMeasureResult(urmApplication, startPoint, endPoint);
           break;
+        case MeasureTypes.URMVelMeasure: // TODO 修改为 URMVessMeasure
+          final feature = ref.feature!;
+          final viewport = feature.hostVisualArea!.viewport!;
+          final p1 = feature.startPoint;
+          final p2 = feature.endPoint;
+          final pp1 = viewport.convert(p1);
+          final pp2 = viewport.convert(p2);
+          final cmlength = (pp2 - pp1).length.abs();
+          await getURMVessMeasureResult(
+              urmApplication, startPoint, endPoint, cmlength);
+          break;
         default:
       }
     } catch (e) {
@@ -242,7 +260,7 @@ class URMStraightLineCal extends Calculator<StraightLine, double> {
     }
   }
 
-  // URM 测量项 1
+  // URM 测量项 1
   Future<void> getSRCurvatureResult(
       URMApplication app, DPoint startPoint, DPoint endPoint) async {
     String description = "URM\n Measuring";
@@ -252,13 +270,18 @@ class URMStraightLineCal extends Calculator<StraightLine, double> {
       if (result != null) {
         print(
             "URM Measure curvature: ${result.curvature} nums: ${result.outPointsNum}");
-        description = "${(result.curvature).toStringAsFixed(2)}mm/s";
+        final feature = ref.feature!;
+        for (var output in ref.meta.outputs) {
+          if (output.name == MeasureTerms.SRCurvature) {
+            feature.updateFloatValue(output, result.curvature, output.unit);
+          }
+        }
       }
     } catch (e) {
       description = " ";
+      updateStringValue(description);
       return;
     }
-    updateStringValue(description);
     ref.application.updateRenderReady.emit(this, null);
   }
 
@@ -281,6 +304,29 @@ class URMStraightLineCal extends Calculator<StraightLine, double> {
     updateStringValue(description);
     ref.application.updateRenderReady.emit(this, null);
   }
+
+  // URM 测量项 10
+  Future<void> getURMVessMeasureResult(URMApplication app, DPoint startPoint,
+      DPoint endPoint, double cmlength) async {
+    String description = "URM\n Measuring";
+    try {
+      // FIXME 修正为正确的返回值
+      GetURMVelMeasureResult? result =
+          await app.getURMVessMeasureResult(startPoint, endPoint, cmlength);
+      if (result != null) {
+        print(
+            "URM Measure inMaxDensity: ${result.inMaxVel} inMeanDensity: ${result.inMaxVel}");
+        description = "${(result.inMaxVel).toStringAsFixed(2)}mm/s ...";
+      }
+    } catch (e) {
+      description = " ";
+      return;
+    }
+    updateStringValue(description);
+    ref.application.updateRenderReady.emit(this, null);
+  }
+
+  //
 }
 
 class URMTraceCal extends Calculator<AreaItemAbstract, double> {

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

@@ -237,7 +237,7 @@ class MeasureItemFactory {
 
     // URM
     _singleton._register(
-      MeasureTypes.SRCurvature,
+      MeasureTypes.SRStraightCurvatureLineMeasure,
       URMStraightLine.createURMStraightline,
     );
     _singleton._register(

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

@@ -330,4 +330,29 @@ class URMApplication extends Application {
       return null;
     }
   }
+
+  Future<GetURMVelMeasureResult?> getURMVessMeasureResult(
+      DPoint startPoint, DPoint endPoint, double cmlength) 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,
+          areaScaler: 1.0,
+          token: RPCBridge.ins.userToken,
+        ),
+      );
+      return result;
+    } catch (e) {
+      return null;
+    }
+  }
 }

+ 1487 - 0
urm-config.json

@@ -0,0 +1,1487 @@
+[
+  {
+    "Name": "SRCurvature",
+    "Description": "SRCurvature",
+    "BriefAnnotation": "SRCurvature",
+    "MeasureTypeName": "SRCurvature",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "SRCurvature",
+          "Description": "SRCurvature",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "SRStraightCurvatureLineMeasure",
+        "Description": "Auto",
+        "IsWorking": true,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "SRCurvature",
+              "Description": "SRCurvature",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRStraightCurvatureLineMeasure"
+      },
+      {
+        "Name": "SRCurveCurvatureLineMeasure",
+        "Description": "Manual",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "SRCurvature",
+              "Description": "SRCurvature",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRCurveCurvatureLineMeasure"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRLoactionVel",
+    "Description": "SRLoactionVel",
+    "BriefAnnotation": "SRLoactionVel",
+    "MeasureTypeName": "SRLoactionVel",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "SRVel",
+          "Description": "SRVel",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRTraceDensity",
+    "Description": "SRTraceDensity",
+    "BriefAnnotation": "SRTraceDensity",
+    "MeasureTypeName": "SRTraceDensity",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Vessel ratio",
+          "Description": "Vessel ratio",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRRoiDensity",
+    "Description": "SRRoiDensity",
+    "BriefAnnotation": "SRRoiDensity",
+    "MeasureTypeName": "SRRoiDensity",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Vessel ratio",
+          "Description": "Vessel ratio",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRRoiVel",
+    "Description": "SRRoiVel",
+    "BriefAnnotation": "SRRoiVel",
+    "MeasureTypeName": "SRRoiVel",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "SRRoiVel",
+          "Description": "SRRoiVel",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRROIFractalDim",
+    "Description": "SRRoiFD",
+    "BriefAnnotation": "SRRoiFD",
+    "MeasureTypeName": "SRROIFractalDim",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Complexity level",
+          "Description": "Complexity level",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRTraceFractalDim",
+    "Description": "SRTraceFD",
+    "BriefAnnotation": "SRTraceFD",
+    "MeasureTypeName": "SRTraceFractalDim",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Complexity level",
+          "Description": "Complexity level",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "FractalDimSR",
+    "Description": "SR FractalDim",
+    "BriefAnnotation": "SR FractalDim",
+    "MeasureTypeName": "FractalDimSR",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Complexity level",
+          "Description": "Complexity level",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "SRROIFractalDim",
+        "Description": "Rect",
+        "IsWorking": true,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRROIFractalDim"
+      },
+      {
+        "Name": "SRTraceFractalDim",
+        "Description": "Trace",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRTraceFractalDim"
+      },
+      {
+        "Name": "URMShellFractalDim",
+        "Description": "Shell",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "URMShellFractalDim"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRROIFractalDimRation",
+    "Description": "SR FD 1/2",
+    "BriefAnnotation": "SR FD 1/2",
+    "MeasureTypeName": "SRROIFractalDimRation",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Ratio",
+          "Description": "Ratio",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "Rect",
+        "IsWorking": true,
+        "ChildItems": [
+          {
+            "Name": "Roi1",
+            "Description": "Roi1",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Complexity level",
+                  "Description": "Complexity level",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRROIFractalDim"
+          },
+          {
+            "Name": "Roi2",
+            "Description": "Roi2",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Complexity level",
+                  "Description": "Complexity level",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRROIFractalDim"
+          }
+        ],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Ratio",
+              "Description": "Ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "FractalDimTwoSRRoiRect"
+      },
+      {
+        "Name": "Trace",
+        "IsWorking": false,
+        "ChildItems": [
+          {
+            "Name": "Roi1",
+            "Description": "Roi1",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Complexity level",
+                  "Description": "Complexity level",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRTraceFractalDim"
+          },
+          {
+            "Name": "Roi2",
+            "Description": "Roi2",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Complexity level",
+                  "Description": "Complexity level",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRTraceFractalDim"
+          }
+        ],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Ratio",
+              "Description": "Ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "FractalDimTwoSRROITrace"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "SRRoiDensityRation",
+    "Description": "SR Density 1/2",
+    "BriefAnnotation": "SR Density 1/2",
+    "MeasureTypeName": "SRRoiDensityRation",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Ratio",
+          "Description": "Ratio",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "Rect",
+        "IsWorking": true,
+        "ChildItems": [
+          {
+            "Name": "Roi1",
+            "Description": "Roi1",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Vessel ratio",
+                  "Description": "Vessel ratio",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRRoiDensity"
+          },
+          {
+            "Name": "Roi2",
+            "Description": "Roi2",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Vessel ratio",
+                  "Description": "Vessel ratio",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRRoiDensity"
+          }
+        ],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Ratio",
+              "Description": "Ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "DensityTwoSRRoiRect"
+      },
+      {
+        "Name": "Trace",
+        "IsWorking": false,
+        "ChildItems": [
+          {
+            "Name": "Roi1",
+            "Description": "Roi1",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Vessel ratio",
+                  "Description": "Vessel ratio",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRTraceDensity"
+          },
+          {
+            "Name": "Roi2",
+            "Description": "Roi2",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "Vessel ratio",
+                  "Description": "Vessel ratio",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRTraceDensity"
+          }
+        ],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Ratio",
+              "Description": "Ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "DensityTwoSRROITrace"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "DensitySR",
+    "Description": "SR Density",
+    "BriefAnnotation": "SR Density",
+    "MeasureTypeName": "DensitySR",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Vessel ratio",
+          "Description": "Vessel ratio",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "SRRoiDensity",
+        "Description": "Rect",
+        "IsWorking": true,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRRoiDensity"
+      },
+      {
+        "Name": "SRTraceDensity",
+        "Description": "Trace",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRTraceDensity"
+      },
+      {
+        "Name": "URMShellDensity",
+        "Description": "Shell",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "URMShellDensity"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "URMDensityMeasure",
+    "Description": "URMDensityMeasure",
+    "BriefAnnotation": "URMDensityMeasure",
+    "MeasureTypeName": "URMDensityMeasure",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Vessel ratio",
+          "Description": "Vessel ratio",
+          "Unit": 0,
+          "IsWorking": true
+        },
+        {
+          "Name": "Complexity level",
+          "Description": "Complexity level",
+          "Unit": 0
+        },
+        {
+          "Name": "Max",
+          "Description": "Max",
+          "Unit": 0
+        },
+        {
+          "Name": "Min",
+          "Description": "Min",
+          "Unit": 0
+        },
+        {
+          "Name": "Mean",
+          "Description": "Mean",
+          "Unit": 0
+        },
+        {
+          "Name": "Std",
+          "Description": "Std",
+          "Unit": 0
+        },
+        {
+          "Name": "Area",
+          "Description": "Area",
+          "Unit": 50
+        },
+        {
+          "Name": "Vessel ratio(In)",
+          "Description": "Vessel ratio(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Complexity level(In)",
+          "Description": "Complexity level(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Max(In)",
+          "Description": "Max(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Min(In)",
+          "Description": "Min(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Mean(In)",
+          "Description": "Mean(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Std(In)",
+          "Description": "Std(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Area(In)",
+          "Description": "Area(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Vessel ratio(Out)",
+          "Description": "Vessel ratio(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Complexity level(Out)",
+          "Description": "Complexity level(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Max(Out)",
+          "Description": "Max(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Min(Out)",
+          "Description": "Min(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Mean(Out)",
+          "Description": "Mean(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Std(Out)",
+          "Description": "Std(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Area(Out)",
+          "Description": "Area(Out)",
+          "Unit": 0
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "URMRectDenMeasure",
+        "Description": "Rect",
+        "IsWorking": true,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0
+            },
+            {
+              "Name": "Max",
+              "Description": "Max",
+              "Unit": 0
+            },
+            {
+              "Name": "Min",
+              "Description": "Min",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean",
+              "Description": "Mean",
+              "Unit": 0
+            },
+            {
+              "Name": "Std",
+              "Description": "Std",
+              "Unit": 0
+            },
+            {
+              "Name": "Area",
+              "Description": "Area",
+              "Unit": 50
+            },
+            {
+              "Name": "Vessel ratio(In)",
+              "Description": "Vessel ratio(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level(In)",
+              "Description": "Complexity level(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Max(In)",
+              "Description": "Max(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(In)",
+              "Description": "Min(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(In)",
+              "Description": "Mean(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(In)",
+              "Description": "Std(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(In)",
+              "Description": "Area(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Vessel ratio(Out)",
+              "Description": "Vessel ratio(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level(Out)",
+              "Description": "Complexity level(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Max(Out)",
+              "Description": "Max(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(Out)",
+              "Description": "Min(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(Out)",
+              "Description": "Mean(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(Out)",
+              "Description": "Std(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(Out)",
+              "Description": "Area(Out)",
+              "Unit": 0
+            }
+          ]
+        },
+        "MeasureTypeName": "URMRectDenMeasure"
+      },
+      {
+        "Name": "URMTraceDenMeasure",
+        "Description": "Trace",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0
+            },
+            {
+              "Name": "Max",
+              "Description": "Max",
+              "Unit": 0
+            },
+            {
+              "Name": "Min",
+              "Description": "Min",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean",
+              "Description": "Mean",
+              "Unit": 0
+            },
+            {
+              "Name": "Std",
+              "Description": "Std",
+              "Unit": 0
+            },
+            {
+              "Name": "Area",
+              "Description": "Area",
+              "Unit": 50
+            }
+          ]
+        },
+        "MeasureTypeName": "URMTraceDenMeasure"
+      },
+      {
+        "Name": "URMShellDensityMeasure",
+        "Description": "Shell",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0
+            },
+            {
+              "Name": "Max",
+              "Description": "Max",
+              "Unit": 0
+            },
+            {
+              "Name": "Min",
+              "Description": "Min",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean",
+              "Description": "Mean",
+              "Unit": 0
+            },
+            {
+              "Name": "Std",
+              "Description": "Std",
+              "Unit": 0
+            },
+            {
+              "Name": "Area",
+              "Description": "Area",
+              "Unit": 50
+            },
+            {
+              "Name": "Vessel ratio(In)",
+              "Description": "Vessel ratio(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level(In)",
+              "Description": "Complexity level(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Max(In)",
+              "Description": "Max(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(In)",
+              "Description": "Min(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(In)",
+              "Description": "Mean(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(In)",
+              "Description": "Std(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(In)",
+              "Description": "Area(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Vessel ratio(Out)",
+              "Description": "Vessel ratio(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Complexity level(Out)",
+              "Description": "Complexity level(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Max(Out)",
+              "Description": "Max(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(Out)",
+              "Description": "Min(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(Out)",
+              "Description": "Mean(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(Out)",
+              "Description": "Std(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(Out)",
+              "Description": "Area(Out)",
+              "Unit": 0
+            }
+          ]
+        },
+        "MeasureTypeName": "URMShellDenMeasure"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "URMVelMeasure",
+    "Description": "URMVelMeasure",
+    "BriefAnnotation": "URMVelMeasure",
+    "MeasureTypeName": "URMVelMeasure",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Max",
+          "Description": "Max",
+          "Unit": 0,
+          "IsWorking": true
+        },
+        {
+          "Name": "Min",
+          "Description": "Min",
+          "Unit": 0
+        },
+        {
+          "Name": "Mean",
+          "Description": "Mean",
+          "Unit": 0
+        },
+        {
+          "Name": "Std",
+          "Description": "Std",
+          "Unit": 0
+        },
+        {
+          "Name": "Area",
+          "Description": "Area",
+          "Unit": 50
+        },
+        {
+          "Name": "Max(In)",
+          "Description": "Max(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Min(In)",
+          "Description": "Min(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Mean(In)",
+          "Description": "Mean(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Std(In)",
+          "Description": "Std(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Area(In)",
+          "Description": "Area(In)",
+          "Unit": 0
+        },
+        {
+          "Name": "Max(Out)",
+          "Description": "Max(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Min(Out)",
+          "Description": "Min(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Mean(Out)",
+          "Description": "Mean(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Std(Out)",
+          "Description": "Std(Out)",
+          "Unit": 0
+        },
+        {
+          "Name": "Area(Out)",
+          "Description": "Area(Out)",
+          "Unit": 0
+        }
+      ]
+    },
+    "MultiMethodItems": [
+      {
+        "Name": "URMRectVelMeasure",
+        "Description": "Rect",
+        "IsWorking": true,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Max",
+              "Description": "Max",
+              "Unit": 0
+            },
+            {
+              "Name": "Min",
+              "Description": "Min",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean",
+              "Description": "Mean",
+              "Unit": 0
+            },
+            {
+              "Name": "Std",
+              "Description": "Std",
+              "Unit": 0
+            },
+            {
+              "Name": "Area",
+              "Description": "Area",
+              "Unit": 50
+            },
+            {
+              "Name": "Max(In)",
+              "Description": "Max(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(In)",
+              "Description": "Min(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(In)",
+              "Description": "Mean(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(In)",
+              "Description": "Std(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(In)",
+              "Description": "Area(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Max(Out)",
+              "Description": "Max(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(Out)",
+              "Description": "Min(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(Out)",
+              "Description": "Mean(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(Out)",
+              "Description": "Std(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(Out)",
+              "Description": "Area(Out)",
+              "Unit": 0
+            }
+          ]
+        },
+        "MeasureTypeName": "URMRectVelMeasure"
+      },
+      {
+        "Name": "URMTraceVelMeasure",
+        "Description": "Trace",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Max",
+              "Description": "Max",
+              "Unit": 0
+            },
+            {
+              "Name": "Min",
+              "Description": "Min",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean",
+              "Description": "Mean",
+              "Unit": 0
+            },
+            {
+              "Name": "Std",
+              "Description": "Std",
+              "Unit": 0
+            },
+            {
+              "Name": "Area",
+              "Description": "Area",
+              "Unit": 50
+            }
+          ]
+        },
+        "MeasureTypeName": "URMTraceVelMeasure"
+      },
+      {
+        "Name": "URMShellVelMeasure",
+        "Description": "Shell",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Max",
+              "Description": "Max",
+              "Unit": 0
+            },
+            {
+              "Name": "Min",
+              "Description": "Min",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean",
+              "Description": "Mean",
+              "Unit": 0
+            },
+            {
+              "Name": "Std",
+              "Description": "Std",
+              "Unit": 0
+            },
+            {
+              "Name": "Area",
+              "Description": "Area",
+              "Unit": 50
+            },
+            {
+              "Name": "Max(In)",
+              "Description": "Max(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(In)",
+              "Description": "Min(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(In)",
+              "Description": "Mean(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(In)",
+              "Description": "Std(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(In)",
+              "Description": "Area(In)",
+              "Unit": 0
+            },
+            {
+              "Name": "Max(Out)",
+              "Description": "Max(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Min(Out)",
+              "Description": "Min(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Mean(Out)",
+              "Description": "Mean(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Std(Out)",
+              "Description": "Std(Out)",
+              "Unit": 0
+            },
+            {
+              "Name": "Area(Out)",
+              "Description": "Area(Out)",
+              "Unit": 0
+            }
+          ]
+        },
+        "MeasureTypeName": "URMShellVelMeasure"
+      }
+    ],
+    "MethodChildItems": []
+  },
+  {
+    "Name": "URMDen",
+    "Description": "URMDen",
+    "BriefAnnotation": "URMDen",
+    "MeasureTypeName": "URMDen",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "URMDen",
+          "Description": "URMDen",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": [
+      {
+        "Name": "SRCurvature",
+        "IsWorking": false,
+        "ChildItems": [
+          {
+            "Name": "SRStraightCurvatureLineMeasure",
+            "Description": "Auto",
+            "IsWorking": true,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "SRCurvature",
+                  "Description": "SRCurvature",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRStraightCurvatureLineMeasure"
+          },
+          {
+            "Name": "SRCurveCurvatureLineMeasure",
+            "Description": "Manual",
+            "IsWorking": false,
+            "ChildItems": [],
+            "Calculator": {
+              "AvailableOutputs": [
+                {
+                  "Name": "SRCurvature",
+                  "Description": "SRCurvature",
+                  "Unit": 0,
+                  "IsWorking": true
+                }
+              ]
+            },
+            "MeasureTypeName": "SRCurveCurvatureLineMeasure"
+          }
+        ],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "SRCurvature",
+              "Description": "SRCurvature",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRCurvature"
+      },
+      {
+        "Name": "SRRoiDensity",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Vessel ratio",
+              "Description": "Vessel ratio",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRRoiDensity"
+      },
+      {
+        "Name": "SRROIFractalDim",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Complexity level",
+              "Description": "Complexity level",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRROIFractalDim"
+      },
+      {
+        "Name": "Vessel diameter",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Distance",
+              "Description": "Distance",
+              "Unit": 10,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "Distance"
+      },
+      {
+        "Name": "Vessel distance",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Distance",
+              "Description": "Distance",
+              "Unit": 10,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "Distance"
+      }
+    ]
+  },
+  {
+    "Name": "Vessel diameter",
+    "IsWorking": false,
+    "ChildItems": [],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Distance",
+          "Description": "Distance",
+          "Unit": 10,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MeasureTypeName": "Distance"
+  },
+  {
+    "Name": "Vessel distance",
+    "IsWorking": false,
+    "ChildItems": [],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "Distance",
+          "Description": "Distance",
+          "Unit": 10,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MeasureTypeName": "Distance"
+  },
+  {
+    "Name": "URMVel",
+    "Description": "URMVel",
+    "BriefAnnotation": "URMVel",
+    "MeasureTypeName": "URMVel",
+    "Categories": ["Common"],
+    "Calculator": {
+      "AvailableOutputs": [
+        {
+          "Name": "URMVel",
+          "Description": "URMVel",
+          "Unit": 0,
+          "IsWorking": true
+        }
+      ]
+    },
+    "MultiMethodItems": [],
+    "MethodChildItems": [
+      {
+        "Name": "SRLoactionVel",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "SRVel",
+              "Description": "SRVel",
+              "Unit": 0,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "SRLoactionVel"
+      },
+      {
+        "Name": "Vessel diameter",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Distance",
+              "Description": "Distance",
+              "Unit": 10,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "Distance"
+      },
+      {
+        "Name": "Vessel distance",
+        "IsWorking": false,
+        "ChildItems": [],
+        "Calculator": {
+          "AvailableOutputs": [
+            {
+              "Name": "Distance",
+              "Description": "Distance",
+              "Unit": 10,
+              "IsWorking": true
+            }
+          ]
+        },
+        "MeasureTypeName": "Distance"
+      }
+    ]
+  }
+]