Преглед изворни кода

fix(measure): 修正颈动脉2D测量

gavin.chen пре 2 година
родитељ
комит
066b6ca3d2

+ 15 - 0
lib/interfaces/process/items/types.dart

@@ -141,4 +141,19 @@ class MeasureTypes {
   static const MaxPgTwoLocation = "MaxPgTwoLocation";
 
   static const HR = "Hr";
+  /* AI [begin]*/
+  /// 前壁
+  static const AntCCA_IMT = "Ant.CCA IMT";
+
+  /// 后壁
+  static const PostCCA_IMT = "Post.CCA IMT";
+
+  /// 前壁和后壁
+  static const BothCCA_IMT = "Both.CCA IMT";
+
+  /// 斑块检测
+  static const PlaqueDetection = "Plaque Detection";
+
+  /// 内膜检测
+  static const IntimaDetection = "Intima Detection";
 }

+ 1 - 1
lib/process/calcuators/detection.dart

@@ -38,7 +38,7 @@ class CarotidDetectionCal extends Calculator<CarotidDetection, double> {
     }
     final params = "{'MeasureItemType':'$measureItemType'}";
 
-    String description = "Waiting $type";
+    String description = "\n Waiting $type";
     updateStringValue(description);
     List<Offset> getPointsFromStrList(List pointsStr) {
       final points = <Offset>[];

+ 12 - 0
lib/process/items/factory.dart

@@ -2,6 +2,7 @@ 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/process/items/item.dart';
+import 'package:fis_measure/process/primitives/carotid_imt.dart';
 import 'package:fis_measure/process/primitives/combos/afi.dart';
 import 'package:fis_measure/process/primitives/combos/area_straightline.dart';
 import 'package:fis_measure/process/primitives/combos/depth2baseline.dart';
@@ -11,6 +12,7 @@ import 'package:fis_measure/process/primitives/combos/two_area.dart';
 import 'package:fis_measure/process/primitives/combos/two_location.dart';
 import 'package:fis_measure/process/primitives/combos/two_ray.dart';
 import 'package:fis_measure/process/primitives/combos/two_straightline.dart';
+import 'package:fis_measure/process/primitives/detection.dart';
 import 'package:fis_measure/process/primitives/ellipse.dart';
 import 'package:fis_measure/process/primitives/location.dart';
 import 'package:fis_measure/process/primitives/multi_method/multiple_trace.dart';
@@ -176,5 +178,15 @@ class MeasureItemFactory {
     _singleton._register(MeasureTypes.HipTwoRay, ThreeRay.createThreeRay);
     _singleton._register(
         MeasureTypes.CardiacAxis, TwolineAngle.createTwolineAngle);
+
+    _singleton._register(MeasureTypes.AntCCA_IMT, CarotidIMT.createMeasureRect);
+    _singleton._register(
+        MeasureTypes.PostCCA_IMT, CarotidIMT.createMeasureRect);
+    _singleton._register(
+        MeasureTypes.BothCCA_IMT, CarotidIMT.createMeasureRect);
+    _singleton._register(
+        MeasureTypes.PlaqueDetection, CarotidDetection.createDetectionRect);
+    _singleton._register(
+        MeasureTypes.IntimaDetection, CarotidDetection.createDetectionRect);
   }
 }

+ 11 - 88
lib/view/measure/carotid_measure_tool.dart

@@ -1,12 +1,9 @@
 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/language/measure_language.dart';
-import 'package:fis_measure/process/workspace/measure_3d_view_controller.dart';
 import 'package:fis_measure/view/measure/measure_tool.dart';
 import 'package:fis_ui/index.dart';
 import 'package:flutter/material.dart';
-import 'package:get/get.dart';
 import 'package:vid/us/vid_us_unit.dart';
 
 /// 颈动脉测量项页面(继承自 测量项页面)
@@ -19,7 +16,7 @@ class CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasure {
 }
 
 class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
-  late final measure3DViewController = Get.find<Measure3DViewController>();
+  // late final measure3DViewController = Get.find<Measure3DViewController>();
 
   ///写死的颈动脉测量项
   List<ItemMeta> carotidMeasureApplicationList = [
@@ -72,7 +69,7 @@ class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
     ItemMeta(
       MeasureTerms.AntCCA_IMT,
       description: MeasureTerms.AntCCA_IMT,
-      measureType: MeasureTerms.AntCCA_IMT,
+      measureType: MeasureTypes.AntCCA_IMT,
       outputs: [
         ItemOutputMeta(MeasureTerms.AntCCA_IMT, "", VidUsUnit.cm),
       ],
@@ -80,7 +77,7 @@ class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
     ItemMeta(
       MeasureTerms.PostCCA_IMT,
       description: MeasureTerms.PostCCA_IMT,
-      measureType: MeasureTerms.PostCCA_IMT,
+      measureType: MeasureTypes.PostCCA_IMT,
       outputs: [
         ItemOutputMeta(MeasureTerms.PostCCA_IMT, "", VidUsUnit.cm),
       ],
@@ -88,7 +85,7 @@ class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
     ItemMeta(
       MeasureTerms.BothCCA_IMT,
       description: MeasureTerms.BothCCA_IMT,
-      measureType: MeasureTerms.BothCCA_IMT,
+      measureType: MeasureTypes.BothCCA_IMT,
       outputs: [
         ItemOutputMeta(MeasureTerms.BothCCA_IMT, "", VidUsUnit.cm),
       ],
@@ -96,7 +93,7 @@ class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
     ItemMeta(
       MeasureTerms.PlaqueDetection,
       description: MeasureTerms.PlaqueDetection,
-      measureType: MeasureTerms.PlaqueDetection,
+      measureType: MeasureTypes.PlaqueDetection,
       outputs: [
         ItemOutputMeta(MeasureTerms.PlaqueDetection, "", VidUsUnit.cm2),
       ],
@@ -104,7 +101,7 @@ class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
     ItemMeta(
       MeasureTerms.IntimaDetection,
       description: MeasureTerms.IntimaDetection,
-      measureType: MeasureTerms.IntimaDetection,
+      measureType: MeasureTypes.IntimaDetection,
       outputs: [
         ItemOutputMeta(MeasureTerms.IntimaDetection, "", VidUsUnit.cm2),
       ],
@@ -112,84 +109,10 @@ class _CarotidLeftSiderSelectMeasure extends LeftSiderSelectMeasureState {
   ];
 
   @override
-  FWidget build(BuildContext context) {
-    return FScrollbar(
-      isAlwaysShown: true,
-      child: FGridView.count(
-          shrinkWrap: true,
-          crossAxisCount: 1,
-          childAspectRatio: 5,
-          controller: ScrollController(),
-          children: [
-            ...carotidMeasureApplicationList.map((e) {
-              if (e.name == activeName) {
-                return _buildActivedMeasure(
-                  e,
-                );
-              } else {
-                return _buildNoActivedMeasure(e);
-              }
-            }).toList(),
-          ]),
-    );
-  }
-
-  FWidget _buildActivedMeasure(ItemMeta itemMeta) {
-    return FRow(
-      children: [
-        const FSizedBox(
-          width: 12,
-        ),
-        FExpanded(
-          child: FElevatedButton(
-            onPressed: () => changeItem(itemMeta),
-            child: FText(itemMeta.name),
-            style: ElevatedButton.styleFrom(
-              fixedSize: const Size.fromHeight(
-                40,
-              ),
-            ),
-          ),
-        ),
-        const FSizedBox(
-          width: 10,
-        ),
-      ],
-    );
-  }
-
-  FWidget _buildNoActivedMeasure(ItemMeta itemMeta) {
-    return FRow(
-      children: [
-        const FSizedBox(
-          width: 12,
-        ),
-        FExpanded(
-          child: FOutlinedButton(
-            onPressed: () => changeItem(itemMeta),
-            child: FText(
-              itemMeta.name,
-              style: const TextStyle(
-                color: Colors.white,
-              ),
-            ),
-            style: OutlinedButton.styleFrom(
-              fixedSize: const Size.fromHeight(
-                40,
-              ),
-              side: const BorderSide(
-                color: Color.fromRGBO(124, 124, 124, 1),
-              ),
-              textStyle: const TextStyle(
-                color: Colors.white,
-              ),
-            ),
-          ),
-        ),
-        const FSizedBox(
-          width: 12,
-        ),
-      ],
-    );
+  void initState() {
+    WidgetsBinding.instance.addPostFrameCallback((call) {
+      measureData.curItemMetaList = carotidMeasureApplicationList;
+    });
+    super.initState();
   }
 }

+ 0 - 3
lib/view/measure/measure_tool.dart

@@ -96,7 +96,6 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
 
   /// TODO:[baka] 当前测量数据源变更 ???
   void _onItemMetaListChanged(Object s, dynamic e) {
-    print("测量项变更_onItemMetaListChanged");
     try {
       if (e != null) {
         setState(() {});
@@ -108,7 +107,6 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
 
   /// 首帧加载完成事件监听: 获取当前图像的测量项,从第一帧取
   void _onFirstFrameLoaded(Object sender, VidUsImage e) async {
-    print("onFirstFrameLoaded");
     List<String> getModes = [];
     for (var element in e.visuals[0].modes) {
       getModes.add(element.type.toString().split('.')[1]);
@@ -154,7 +152,6 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
 
   /// 测量项列表变化事件监听
   void _onCurItemMetaListChanged(sender, e) {
-    print("_onCurItemMetaListChanged");
     if (measureData.curItemMetaList.isNotEmpty) {
       changeItem(measureData.curItemMetaList[0]);
     }