Browse Source

移除非必要的占位输出项

gavin.chen 8 months ago
parent
commit
3526b09a40

+ 0 - 683
lib/process/calcuators/urm.dart

@@ -1,683 +0,0 @@
-// import 'dart:math';
-// 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/calculators/values.dart';
-// import 'package:fis_measure/process/items/item.dart';
-// import 'package:fis_measure/process/primitives/area_abstract.dart';
-// import 'package:fis_measure/process/primitives/combos/urm_sr_roi_rect_combo.dart';
-// import 'package:fis_measure/process/primitives/location.dart';
-// import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
-// // import 'package:fis_measure/process/primitives/urm_straightline.dart';
-// import 'package:fis_measure/process/workspace/urm/application.dart';
-
-// import 'calculator.dart';
-
-// class URMRectCal extends Calculator<URMRectMeasure, double> {
-//   URMRectCal(
-//     URMRectMeasure ref, {
-//     required this.type,
-//   }) : super(ref);
-//   final String type;
-//   @override
-//   void calculate() {}
-
-//   @override
-//   Future<void> calculateAsync() async {
-//     if (ref.feature == null) return;
-//     Size urmResultSize = const Size(0, 0);
-//     try {
-//       if (ref.application is! URMApplication) {
-//         return;
-//       }
-//       final URMApplication urmApplication = ref.application as URMApplication;
-//       urmResultSize = Size(urmApplication.resultWidth.toDouble(),
-//           urmApplication.resultHeight.toDouble());
-//       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);
-
-//       String description = "URM\n Calculating...";
-//       updateStringValue(description);
-
-//       // switch (type) {
-//       //   case MeasureTypes.DensitySR:
-//       //   case MeasureTypes.SRRoiDensity:
-//       //   case MeasureTypes.Roi1:
-//       //   case MeasureTypes.Roi2:
-//       //     await getSRRoiDensityResult(urmApplication, startPoint, endPoint);
-//       //     break;
-//       //   case MeasureTypes.FractalDimSR:
-//       //   case MeasureTypes.SRROIFractalDim:
-//       //     await getSRRoiFractalDimResult(urmApplication, startPoint, endPoint);
-//       //     break;
-//       //   case MeasureTypes.SRRoiVel:
-//       //     await getSRRoiVelResult(urmApplication, startPoint, endPoint);
-//       //     break;
-//       //   case MeasureTypes.URMVelMeasure:
-//       //     await getURMVelMeasureResult(urmApplication, startPoint, endPoint);
-//       //     break;
-//       //   default:
-//       // }
-//     } catch (e) {
-//       logger.e('URM Measure error: $e');
-//       return;
-//     }
-//   }
-
-//   // //✅ URM 测量项 2
-//   // Future<void> getSRRoiDensityResult(
-//   //     URMApplication app, DPoint startPoint, DPoint endPoint) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetSRRoiVelResult? result =
-//   //         await app.getSRRoiVelResult(startPoint, endPoint);
-//   //     if (result != null) {
-//   //       print("URM Measure output: ${result.output} ");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if ([MeasureTerms.URMDenROI, MeasureTerms.URMDenFractalDim]
-//   //             .contains(output.name)) {
-//   //           output.unit = VidUsUnit.percent;
-//   //           feature.updateFloatValue(output, result.output, output.unit);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-
-//   // //✅ URM 测量项 3 未验证需要组合测量项
-//   // Future<void> getSRRoiFractalDimResult(
-//   //     URMApplication app, DPoint startPoint, DPoint endPoint) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetSRRoiFractalDimResult? result =
-//   //         await app.getSRRoiFractalDimResult(startPoint, endPoint);
-//   //     if (result != null) {
-//   //       print("URM Measure output: ${result.output} ");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if (output.name == MeasureTerms.URMDenFractalDim) {
-//   //           output.unit = VidUsUnit.None;
-//   //           feature.updateFloatValue(output, result.output, output.unit);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-
-//   // //✅ URM 测量项 7 未验证需要组合测量项
-//   // Future<void> getSRRoiVelResult(
-//   //     URMApplication app, DPoint startPoint, DPoint endPoint) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetSRRoiVelResult? result =
-//   //         await app.getSRRoiVelResult(startPoint, endPoint);
-//   //     if (result != null) {
-//   //       print("URM Measure output: ${result.output} ");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if (output.name == MeasureTerms.SRRoiVel) {
-//   //           output.unit = VidUsUnit.percent;
-//   //           feature.updateFloatValue(output, result.output, output.unit);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-
-//   // //✅ URM 测量项 9
-//   // Future<void> getURMVelMeasureResult(
-//   //     URMApplication app, DPoint startPoint, DPoint endPoint) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetURMVelMeasureResult? result =
-//   //         await app.getURMVelMeasureResult(startPoint, endPoint);
-//   //     if (result != null) {
-//   //       // TODO 全部内容展示
-//   //       print("URM Measure inMaxVel: ${result.inMaxVel} ");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if (output.name == MeasureTerms.URMVelMax) {
-//   //           output.unit = VidUsUnit.mms;
-//   //           feature.updateFloatValue(
-//   //               output, result.maxVel + app.urmMinVel, VidUsUnit.mms);
-//   //         }
-//   //         if (output.name == MeasureTerms.URMVelMin) {
-//   //           output.unit = VidUsUnit.mms;
-//   //           feature.updateFloatValue(
-//   //               output, result.minVel + app.urmMinVel, VidUsUnit.mms);
-//   //         }
-//   //         if (output.name == MeasureTerms.URMVelMean) {
-//   //           output.unit = VidUsUnit.mms;
-//   //           feature.updateFloatValue(
-//   //               output, result.meanVel + app.urmMinVel, VidUsUnit.mms);
-//   //         }
-//   //         if (output.name == MeasureTerms.URMVelStd) {
-//   //           output.unit = VidUsUnit.mms;
-//   //           feature.updateFloatValue(
-//   //               output, sqrt(result.varianceVel), VidUsUnit.mms);
-//   //         }
-//   //         if (output.name == MeasureTerms.Area) {
-//   //           output.unit = VidUsUnit.cm2;
-//   //           feature.updateFloatValue(output, result.roiArea, VidUsUnit.cm2);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-// }
-
-// class URMLocationCal extends Calculator<Location, double> {
-//   URMLocationCal(Location ref) : super(ref);
-
-//   @override
-//   void calculate() {}
-
-//   @override
-//   Future<void> calculateAsync() async {
-//     if (ref.feature == null) return;
-//     Size urmResultSize = const Size(0, 0);
-//     try {
-//       if (ref.application is! URMApplication) {
-//         return;
-//       }
-//       final URMApplication urmApplication = ref.application as URMApplication;
-//       urmResultSize = Size(urmApplication.resultWidth.toDouble(),
-//           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");
-//       // await getSRLoactionVelResult(urmApplication, startPoint);
-//       return;
-//     } catch (e) {
-//       logger.e('URM Measure error: $e');
-//       return;
-//     }
-//   }
-
-//   // ✅ URM 测量项 6
-//   // Future<void> getSRLoactionVelResult(
-//   //     URMApplication app, DPoint startPoint) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetSRLoactionVelResult? result =
-//   //         await app.getSRLoactionVelResult(startPoint);
-//   //     if (result != null) {
-//   //       print("URM Measure output: ${result.output}");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if (output.name == MeasureTerms.SRVel) {
-//   //           output.unit = VidUsUnit.mms;
-//   //           feature.updateFloatValue(output, result.output, output.unit);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-// }
-
-// /// 自动弯曲度测量
-// // class URMAutoLineLineCal extends Calculator<StraightLine, double> {
-// //   URMAutoLineLineCal(
-// //     StraightLine ref, {
-// //     required this.type,
-// //   }) : super(ref);
-// //   final String type;
-// //   @override
-// //   void calculate() {}
-
-// //   @override
-// //   Future<void> calculateAsync() async {
-// //     try {
-// //       if (ref.feature == null) return;
-// //       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());
-// //       final p1 = ref.feature!.startPoint;
-// //       final p2 = ref.feature!.endPoint;
-
-// //       // final startPoint = leftTopPercent.scale2Size(urmResultSize);
-// //       // final endPoint = rightBottomPercent.scale2Size(urmResultSize);
-// //       // final startPoint = DPoint(0.478335, 0.315384);
-// //       // final endPoint = DPoint(0.538395, 0.526373);
-
-// //       switch (type) {
-// //         case MeasureTypes.SRCurvature:
-// //           await getSRCurvatureResult(urmApplication, p1, p2);
-// //           break;
-// //         // case MeasureTypes.URMDensityMeasure:
-// //         //   await getURMDenMeasureResult(urmApplication, startPoint, endPoint);
-// //         //   break;
-// //         // case MeasureTypes.URMVesselMeasure:
-// //         //   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) {
-// //       logger.e('URM Measure error: $e');
-// //       return;
-// //     }
-// //   }
-
-// //   // // ✅ URM 测量项 1
-// //   Future<void> getSRCurvatureResult(
-// //       URMApplication app, DPoint startPoint, DPoint endPoint) async {
-// //     String description = "URM\n Measuring";
-// //     try {
-// //       URMMeasureProcessResult? result = await app.getURMMeasureResult(
-// //         urmMeasureType: URMMeasureType.URMCurvature,
-// //         rOIType: URMROIType.placeHolder_0,
-// //         srcDPoints: [
-// //           UrmPoint(x: startPoint.x, y: startPoint.y),
-// //           UrmPoint(x: endPoint.x, y: endPoint.y)
-// //         ],
-// //       );
-// //       if (result != null) {
-// //         print(
-// //             "URM Measure curvature: ${result} nums: ${result.resultDPoints?.length}");
-// //         // TODO 将返回的视图百分比区域的点集转换为全图百分比点集,然会然后绘制
-// //         final feature = ref.feature!;
-// //         if (feature is! StraightCurvatureFeature) return;
-// //         feature.autoLinePoints = urmPointsToDPoints(result.resultDPoints);
-
-// //         /// TODO 只转数据类型还不够,需要将 视图区域百分比坐标转为全图百分比坐标
-// //         for (var output in ref.meta.outputs) {
-// //           if (output.name == MeasureTerms.SRCurvature) {
-// //             output.unit = VidUsUnit.None;
-// //             feature.updateFloatValue(output, result.resultData, output.unit);
-// //           }
-// //         }
-// //       } else {
-// //         throw Exception("URM Measure API error");
-// //       }
-// //     } catch (e) {
-// //       description = " ";
-// //       updateStringValue(description);
-// //       return;
-// //     }
-// //     ref.application.updateRenderReady.emit(this, null);
-// //   }
-
-// //   // //✅ URM 测量项 8
-// //   // Future<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 ...";
-// //   //       final feature = ref.feature!;
-// //   //       for (var output in ref.meta.outputs) {
-// //   //         if (output.name == MeasureTerms.URMDenROI) {
-// //   //           output.unit = VidUsUnit.percent;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.roiDen * 100, VidUsUnit.percent);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.URMDenFractalDim) {
-// //   //           output.unit = VidUsUnit.None;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.roiFractalDim, VidUsUnit.None);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.URMDenMax) {
-// //   //           output.unit = VidUsUnit.None;
-// //   //           feature.updateFloatValue(output, result.maxDensity, VidUsUnit.None);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.URMDenMin) {
-// //   //           output.unit = VidUsUnit.None;
-// //   //           feature.updateFloatValue(output, result.minDensity, VidUsUnit.None);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.URMDenMean) {
-// //   //           output.unit = VidUsUnit.None;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.meanDensity, VidUsUnit.None);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.URMDenStd) {
-// //   //           output.unit = VidUsUnit.None;
-// //   //           feature.updateFloatValue(
-// //   //               output, sqrt(result.varianceDensity), VidUsUnit.None);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.Area) {
-// //   //           output.unit = VidUsUnit.cm2;
-// //   //           feature.updateFloatValue(output, result.roiArea, VidUsUnit.cm2);
-// //   //         }
-// //   //       }
-// //   //     } else {
-// //   //       throw Exception("URM Measure API error");
-// //   //     }
-// //   //   } catch (e) {
-// //   //     description = " ";
-// //   //     updateStringValue(description);
-// //   //     return;
-// //   //   }
-// //   //   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 {
-// //   //     GetUrmVessMeasureResult? result =
-// //   //         await app.getURMVessMeasureResult(startPoint, endPoint, cmlength);
-// //   //     if (result != null) {
-// //   //       app.onUpdateChart?.call(
-// //   //         URMChartParams(
-// //   //           cmlength: cmlength,
-// //   //           minPointIndex: result.minPos,
-// //   //           maxPointIndex: result.maxPos,
-// //   //           points: convertPoints(result.outputPoints),
-// //   //         ),
-// //   //       );
-// //   //       print(
-// //   //           "URM Measure inMaxDensity: ${result.maxVessDiameter} inMeanDensity: ${result.meanVessDistacne}");
-// //   //       final feature = ref.feature!;
-// //   //       for (var output in ref.meta.outputs) {
-// //   //         if (output.name == MeasureTerms.MaxVessDistance) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.maxVessDistance, VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.MinVessDistance) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.minVessDistance, VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.MeanVessDistacne) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.meanVessDistacne, VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.StdVessDistance) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, sqrt(result.varianceVessDistance), VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.MaxVessDiameter) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.maxVessDiameter, VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.MinVessDiameter) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.minVessDiameter, VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.MeanVessDiameter) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, result.meanVessDiameter, VidUsUnit.mm);
-// //   //         }
-// //   //         if (output.name == MeasureTerms.StdVessDiameter) {
-// //   //           output.unit = VidUsUnit.mm;
-// //   //           feature.updateFloatValue(
-// //   //               output, sqrt(result.varianceVessDiameter), VidUsUnit.mm);
-// //   //         }
-// //   //       }
-// //   //     } else {
-// //   //       throw Exception("URM Measure API error");
-// //   //     }
-// //   //   } catch (e) {
-// //   //     description = " ";
-// //   //     updateStringValue(description);
-// //   //     return;
-// //   //   }
-// //   //   ref.application.updateRenderReady.emit(this, null);
-// //   // }
-
-// //   List<DPoint> urmPointsToDPoints(List<UrmPoint>? points) {
-// //     if (points == null) return [];
-// //     List<DPoint> urmPoints = [];
-// //     for (var point in points) {
-// //       urmPoints.add(DPoint(point.x, point.y));
-// //     }
-// //     return urmPoints;
-// //   }
-
-// //   //
-// // }
-
-// class URMTraceCal extends Calculator<AreaItemAbstract, double> {
-//   URMTraceCal(
-//     AreaItemAbstract ref, {
-//     required this.type,
-//   }) : super(ref);
-//   final String type;
-
-//   @override
-//   void calculate() {}
-
-//   @override
-//   Future<void> calculateAsync() async {
-//     if (ref.feature == null) return;
-//     final feature = ref.feature!;
-//     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());
-//       final List<DPoint> points =
-//           feature.innerPoints.map((e) => e.scale2Size(urmResultSize)).toList();
-
-//       // switch (type) {
-//       //   case MeasureTypes.SRTraceDensity:
-//       //     await getSRTraceVelResult(urmApplication, convertPoints(points));
-//       //     break;
-//       //   case MeasureTypes.SRTraceFractalDim:
-//       //     await getSRTraceFractalDimResult(
-//       //         urmApplication, convertPoints(points));
-//       //     break;
-//       //   default:
-//       // }
-//     } catch (e) {
-//       logger.e('URM Measure error: $e');
-//       return;
-//     }
-//   }
-
-//   // //✅ URM 测量项 4
-//   // Future<void> getSRTraceVelResult(
-//   //     URMApplication app, List<UrmPoint> points) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetSRTraceVelResult? result = await app.getSRTraceVelResult(points);
-//   //     if (result != null) {
-//   //       print("URM Measure output: ${result.output} ");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if (output.name == MeasureTerms.URMDenROI) {
-//   //           output.unit = VidUsUnit.percent;
-//   //           feature.updateFloatValue(output, result.output, output.unit);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-
-//   // //✅ URM 测量项 5
-//   // Future<void> getSRTraceFractalDimResult(
-//   //     URMApplication app, List<UrmPoint> points) async {
-//   //   String description = "URM\n Measuring";
-//   //   try {
-//   //     GetSRTraceFractalDimResult? result =
-//   //         await app.getSRTraceFractalDimResult(points);
-//   //     if (result != null) {
-//   //       print("URM Measure output: ${result.output} ");
-//   //       final feature = ref.feature!;
-//   //       for (var output in ref.meta.outputs) {
-//   //         if (output.name == MeasureTerms.URMDenFractalDim) {
-//   //           output.unit = VidUsUnit.None;
-//   //           feature.updateFloatValue(output, result.output, output.unit);
-//   //         }
-//   //       }
-//   //     } else {
-//   //       throw Exception("URM Measure API error");
-//   //     }
-//   //   } catch (e) {
-//   //     description = " ";
-//   //     updateStringValue(description);
-
-//   //     return;
-//   //   }
-//   //   ref.application.updateRenderReady.emit(this, null);
-//   // }
-
-//   List<UrmPoint> convertPoints(List<DPoint> points) {
-//     List<UrmPoint> urmPoints = [];
-//     for (var point in points) {
-//       urmPoints.add(UrmPoint(x: point.x, y: point.y));
-//     }
-//     return urmPoints;
-//   }
-// }
-
-// // class URMVelCal extends Calculator<URMVelAbstract, double> {
-// //   URMVelCal(URMVelAbstract ref) : super(ref);
-
-// //   @override
-// //   void calculate() {
-// //     if (ref.feature == null) return;
-
-// //     final a1 = _pickChildValue(ref.child1);
-// //     final a2 = _pickChildValue(ref.child2);
-// //     final a3 = _pickChildValue(ref.child2);
-
-// //     final feature = ref.feature!;
-// //     final viewport = feature.hostVisualArea!.viewport!;
-
-// //     // if (a1 != null && a2 != null) {
-// //     //   final value = GeneralFormulas.countStenosis(
-// //     //     a1,
-// //     //     a2,
-// //     //   );
-// //     //   updateFloatValue(value);
-// //     // }
-// //   }
-
-// //   double? _pickChildValue(MeasureItem item) {
-// //     if (item.calculator == null) return null;
-// //     ValueBase? value;
-// //     if (item.measuredFeatures.isNotEmpty) {
-// //       value = item.measuredFeatures.first.value;
-// //     } else if (item.feature != null) {
-// //       value = item.feature!.value;
-// //     }
-// //     if (value != null && value is FloatValue) {
-// //       return (value).value ?? 0;
-// //     }
-// //     return null;
-// //   }
-// // }
-
-// class URMSrDensityCal extends Calculator<URMTwoSRRoiRectAbstract, double> {
-//   URMSrDensityCal(URMTwoSRRoiRectAbstract ref) : super(ref);
-
-//   @override
-//   void calculate() {
-//     if (ref.feature == null) return;
-
-//     final a1 = _pickChildValue(ref.child1);
-//     final a2 = _pickChildValue(ref.child2);
-//     final a3 = _pickChildValue(ref.child2);
-
-//     final feature = ref.feature!;
-//     final viewport = feature.hostVisualArea!.viewport!;
-
-//     // if (a1 != null && a2 != null) {
-//     //   final value = GeneralFormulas.countStenosis(
-//     //     a1,
-//     //     a2,
-//     //   );
-//     //   updateFloatValue(value);
-//     // }
-//   }
-
-//   double? _pickChildValue(MeasureItem item) {
-//     if (item.calculator == null) return null;
-//     ValueBase? value;
-//     if (item.measuredFeatures.isNotEmpty) {
-//       value = item.measuredFeatures.first.value;
-//     } else if (item.feature != null) {
-//       value = item.feature!.value;
-//     }
-//     if (value != null && value is FloatValue) {
-//       return (value).value ?? 0;
-//     }
-//     return null;
-//   }
-// }

+ 0 - 4
lib/process/calcuators/urm_calcuators/urm_ellipse_density.dart

@@ -29,10 +29,6 @@ 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;

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

@@ -1,6 +1,5 @@
 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';
@@ -29,10 +28,6 @@ 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;

+ 8 - 11
lib/process/calcuators/urm_calcuators/urm_shell_density_measure.dart

@@ -1,7 +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';
 
@@ -34,14 +34,13 @@ class URMShellDensityMeasureCal extends URMShellMeasureCal {
       }
       final feature = ref.feature!;
       if (ref.meta.outputs.isNotEmpty) {
-        final first = ref.meta.outputs.first;
-        if (first == null) return;
-
-        first.unit = VidUsUnit.percent;
-        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;
+            feature.updateFloatValue(
+                output, outresult.resultData * 100, output.unit);
+          }
+        }
         if (feature is! ShellImageFeature) return;
         if (outresult.outerExterPoints != null) {
           List<DPoint> outerExterPoints = [];
@@ -50,8 +49,6 @@ class URMShellDensityMeasureCal extends URMShellMeasureCal {
           });
           feature.outerExterPoints = outerExterPoints;
         }
-
-        feature.updateFloatValue(first, outresult.resultData * 100, first.unit);
       }
     } catch (e) {
       logger.e('URM Measure error: $e');

+ 8 - 8
lib/process/calcuators/urm_calcuators/urm_trace_density.dart

@@ -4,6 +4,7 @@ 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';
+import 'package:fis_measure/interfaces/process/items/terms.dart';
 
 class URMTraceDensityCal extends URMTraceMeasureCal {
   URMTraceDensityCal(super.ref);
@@ -29,15 +30,14 @@ 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;
-
-        feature.updateFloatValue(first, outresult.resultData * 100, first.unit);
+        for (var output in ref.meta.outputs) {
+          if (output.name == MeasureTerms.URMDenROI) {
+            output.unit = VidUsUnit.percent;
+            feature.updateFloatValue(
+                output, outresult.resultData * 100, output.unit);
+          }
+        }
       }
     } catch (e) {
       logger.e('URM Measure error: $e');

+ 0 - 1
lib/process/primitives/combos/urm_sr_roi_rect.dart

@@ -1,6 +1,5 @@
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
-import 'package:fis_measure/process/calcuators/urm.dart';
 import 'package:fis_measure/process/items/top_item_feature.dart';
 import 'package:fis_measure/process/primitives/combos/urm_sr_roi_rect_combo.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';

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

@@ -2,20 +2,16 @@ 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';
 import 'package:fis_measure/interfaces/enums/items.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
-import 'package:fis_measure/interfaces/process/items/types.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
 import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
-import 'package:fis_measure/process/calcuators/urm.dart';
 import 'package:fis_measure/process/calcuators/velocity.dart';
 import 'package:fis_measure/process/visual/tissue_area.dart';
 import 'package:fis_measure/utils/canvas.dart';
 import 'package:get/get.dart';
 import 'package:vid/us/vid_us_mode.dart';
-import 'package:vid/us/vid_us_probe.dart';
 
 import '../calcuators/depth.dart';
 import '../items/item.dart';

+ 0 - 1
lib/process/primitives/urm_location.dart

@@ -2,7 +2,6 @@ import 'package:fis_measure/interfaces/enums/items.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
-import 'package:fis_measure/process/calcuators/urm.dart';
 import 'package:fis_measure/process/primitives/location.dart';
 import 'package:fis_measure/utils/prompt_box.dart';
 

+ 0 - 1
lib/process/primitives/urm_trace.dart

@@ -2,7 +2,6 @@ import 'package:fis_measure/interfaces/enums/items.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
-import 'package:fis_measure/process/calcuators/urm.dart';
 import 'package:fis_measure/process/primitives/trace.dart';
 import 'package:fis_measure/utils/prompt_box.dart';