|
@@ -306,143 +306,7 @@ class Application implements IApplication {
|
|
|
|
|
|
@override
|
|
|
void switchItem(ItemMeta meta) {
|
|
|
- switchItemByName(meta.name);
|
|
|
- activeMeasureItem ??= MeasureItemFactory.createItem(meta);
|
|
|
- // activeMeasureItem = MeasureItemFactory.createItem(meta);
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- void switchItemByName(String name) {
|
|
|
- _updateOperateType(MeasureOperateType.measure);
|
|
|
- activeMeasureItem?.finishOnce();
|
|
|
- // TODO: create from map
|
|
|
- if (name == MeasureTerms.AntCCA_IMT) {
|
|
|
- activeMeasureItem = CarotidIMT.createMeasureRect(
|
|
|
- ItemMeta(
|
|
|
- MeasureTerms.AntCCA_IMT,
|
|
|
- description: MeasureTerms.AntCCA_IMT,
|
|
|
- measureType: MeasureTerms.AntCCA_IMT,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta(MeasureTerms.AntCCA_IMT, "", VidUsUnit.cm),
|
|
|
- ],
|
|
|
- ),
|
|
|
- null);
|
|
|
- return;
|
|
|
- }
|
|
|
- if (name == MeasureTerms.PostCCA_IMT) {
|
|
|
- activeMeasureItem = CarotidIMT.createMeasureRect(
|
|
|
- ItemMeta(
|
|
|
- MeasureTerms.PostCCA_IMT,
|
|
|
- description: MeasureTerms.PostCCA_IMT,
|
|
|
- measureType: MeasureTerms.PostCCA_IMT,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta(MeasureTerms.PostCCA_IMT, "", VidUsUnit.cm),
|
|
|
- ],
|
|
|
- ),
|
|
|
- null);
|
|
|
- return;
|
|
|
- }
|
|
|
- if (name == MeasureTerms.BothCCA_IMT) {
|
|
|
- activeMeasureItem = CarotidIMT.createMeasureRect(
|
|
|
- ItemMeta(
|
|
|
- MeasureTerms.BothCCA_IMT,
|
|
|
- description: MeasureTerms.BothCCA_IMT,
|
|
|
- measureType: MeasureTerms.BothCCA_IMT,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta(MeasureTerms.BothCCA_IMT, "", VidUsUnit.cm),
|
|
|
- ],
|
|
|
- ),
|
|
|
- null);
|
|
|
- return;
|
|
|
- }
|
|
|
- if (name == MeasureTerms.PlaqueDetection) {
|
|
|
- ///TODO: 只允许触发一次
|
|
|
- activeMeasureItem = CarotidDetection.createDetectionRect(
|
|
|
- ItemMeta(
|
|
|
- MeasureTerms.PlaqueDetection,
|
|
|
- description: MeasureTerms.PlaqueDetection,
|
|
|
- measureType: MeasureTerms.PlaqueDetection,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta(MeasureTerms.PlaqueDetection, "", VidUsUnit.cm2),
|
|
|
- ],
|
|
|
- ),
|
|
|
- null);
|
|
|
- return;
|
|
|
- }
|
|
|
- if (name == MeasureTerms.IntimaDetection) {
|
|
|
- ///TODO: 只允许触发一次
|
|
|
- activeMeasureItem = CarotidDetection.createDetectionRect(
|
|
|
- ItemMeta(
|
|
|
- MeasureTerms.IntimaDetection,
|
|
|
- description: MeasureTerms.IntimaDetection,
|
|
|
- measureType: MeasureTerms.IntimaDetection,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta(MeasureTerms.IntimaDetection, "", VidUsUnit.cm2),
|
|
|
- ],
|
|
|
- ),
|
|
|
- null);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (name == MeasureTypes.AreaPerimeterEllipse) {
|
|
|
- activeMeasureItem = MeasureItemFactory.createItem(
|
|
|
- ItemMeta(
|
|
|
- MeasureTypes.AreaPerimeterEllipse,
|
|
|
- measureType: MeasureTypes.AreaPerimeterEllipse,
|
|
|
- description: MeasureTypes.AreaPerimeterEllipse,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta("Perimeter", "Perimeter", VidUsUnit.cm),
|
|
|
- ItemOutputMeta("Area", "Area", VidUsUnit.cm2),
|
|
|
- ],
|
|
|
- ),
|
|
|
- );
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (name == MeasureTypes.AreaPerimeterPolyline) {
|
|
|
- activeMeasureItem = MeasureItemFactory.createItem(
|
|
|
- ItemMeta(
|
|
|
- MeasureTypes.AreaPerimeterPolyline,
|
|
|
- measureType: MeasureTypes.AreaPerimeterPolyline,
|
|
|
- description: MeasureTypes.AreaPerimeterPolyline,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta("Perimeter", "Perimeter", VidUsUnit.cm),
|
|
|
- ItemOutputMeta("Area", "Area", VidUsUnit.cm2),
|
|
|
- ],
|
|
|
- ),
|
|
|
- );
|
|
|
- return;
|
|
|
- }
|
|
|
- if (name == MeasureTypes.AreaPerimeterSpline) {
|
|
|
- activeMeasureItem = MeasureItemFactory.createItem(
|
|
|
- ItemMeta(
|
|
|
- MeasureTypes.AreaPerimeterSpline,
|
|
|
- measureType: MeasureTypes.AreaPerimeterSpline,
|
|
|
- description: MeasureTypes.AreaPerimeterSpline,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta("Perimeter", "Perimeter", VidUsUnit.cm),
|
|
|
- ItemOutputMeta("Area", "Area", VidUsUnit.cm2),
|
|
|
- ],
|
|
|
- ),
|
|
|
- );
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (name == MeasureTypes.VerticalDistance) {
|
|
|
- activeMeasureItem = MeasureItemFactory.createItem(
|
|
|
- ItemMeta(
|
|
|
- MeasureTerms.VerticalDistance,
|
|
|
- measureType: MeasureTypes.VerticalDistance,
|
|
|
- description: MeasureTypes.VerticalDistance,
|
|
|
- outputs: [
|
|
|
- ItemOutputMeta(MeasureTypes.VerticalDistance,
|
|
|
- MeasureTypes.VerticalDistance, VidUsUnit.cm),
|
|
|
- ],
|
|
|
- ),
|
|
|
- );
|
|
|
- return;
|
|
|
- }
|
|
|
- activeMeasureItem = null;
|
|
|
+ activeMeasureItem = MeasureItemFactory.createItem(meta);
|
|
|
}
|
|
|
|
|
|
@override
|
|
@@ -482,7 +346,7 @@ class Application implements IApplication {
|
|
|
void switchMode(String name) {
|
|
|
for (var area in currentVisual.visualAreas) {
|
|
|
if (area.mode.name == name) {
|
|
|
- _handleAreaSwitch(area, PointInfo(0, 0, PointInfoType.mouseDown));
|
|
|
+ _changeAcitveArea(area);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -578,6 +442,9 @@ class Application implements IApplication {
|
|
|
}
|
|
|
|
|
|
IVisualArea? _attchVisualArea(PointInfo point) {
|
|
|
+ if (currentVisualArea.displayRegion.containsPoint(point)) {
|
|
|
+ return currentVisualArea;
|
|
|
+ }
|
|
|
for (var visual in visuals) {
|
|
|
for (var area in visual.visualAreas) {
|
|
|
if (area.displayRegion.containsPoint(point)) {
|
|
@@ -594,16 +461,30 @@ class Application implements IApplication {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- /// 点击切换所在区域焦点
|
|
|
- if (area != currentVisualArea) {
|
|
|
- for (var visual in visuals) {
|
|
|
- visual.setUnAcitve();
|
|
|
+ // 点击切换所在区域焦点
|
|
|
+ // 不同幅或者不同模式类型的才切换
|
|
|
+ bool needSwitch = false;
|
|
|
+ if (area.visual.visualData.indicator !=
|
|
|
+ currentVisual.visualData.indicator) {
|
|
|
+ needSwitch = true;
|
|
|
+ } else {
|
|
|
+ if (!currentVisualArea.displayRegion.containsPoint(point)) {
|
|
|
+ needSwitch = true;
|
|
|
}
|
|
|
- area.isActive = true;
|
|
|
- visualAreaChanged.emit(this, area);
|
|
|
+ }
|
|
|
+ if (needSwitch) {
|
|
|
+ _changeAcitveArea(area);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
+
|
|
|
+ void _changeAcitveArea(IVisualArea area) {
|
|
|
+ for (var visual in visuals) {
|
|
|
+ visual.setUnAcitve();
|
|
|
+ }
|
|
|
+ area.isActive = true;
|
|
|
+ visualAreaChanged.emit(this, area);
|
|
|
+ }
|
|
|
}
|