|
@@ -1,14 +1,19 @@
|
|
|
import 'dart:async';
|
|
|
import 'dart:typed_data';
|
|
|
+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/measure_3d_view_controller.dart';
|
|
|
import 'package:fis_measure/process/workspace/measure_3d_view_controller.dart';
|
|
|
import 'package:fis_measure/view/player/controller.dart';
|
|
|
import 'package:fis_measure/view/vid_painter/carotid_vid_painter.dart';
|
|
|
import 'package:flutter/material.dart' hide Image, decodeImageFromList;
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:vid/us/vid_us_image.dart';
|
|
|
+import 'package:vid/us/vid_us_unit.dart';
|
|
|
import 'dart:ui';
|
|
|
|
|
|
+import '../../interfaces/process/items/item_metas.dart';
|
|
|
+
|
|
|
class CarotidPlayer extends StatefulWidget {
|
|
|
const CarotidPlayer(
|
|
|
this.measure3DViewController, {
|
|
@@ -34,7 +39,6 @@ class _CarotidPlayerState extends State<CarotidPlayer> {
|
|
|
@override
|
|
|
void initState() {
|
|
|
final stdSize = widget.measure3DViewController.stdSize;
|
|
|
- // application.loadFrame(widget.measure3DViewController.image4Measure!);
|
|
|
application.loadFrame(VidUsImage(1, stdSize.width.toInt(),
|
|
|
stdSize.height.toInt(), Uint8List.fromList([0])));
|
|
|
application.carotid2DSize = Size(
|
|
@@ -48,6 +52,8 @@ class _CarotidPlayerState extends State<CarotidPlayer> {
|
|
|
}
|
|
|
widget.measure3DViewController.onUpdateCarotid2DImage
|
|
|
.addListener(_loadCarotidImageBytes);
|
|
|
+ widget.measure3DViewController.updatePlayerMode.addListener(_onModeChanged);
|
|
|
+
|
|
|
loadFrame(widget.measure3DViewController.image4Measure!);
|
|
|
super.initState();
|
|
|
}
|
|
@@ -57,10 +63,36 @@ class _CarotidPlayerState extends State<CarotidPlayer> {
|
|
|
application.isAdaptiveCarotid2D = false;
|
|
|
widget.measure3DViewController.onUpdateCarotid2DImage
|
|
|
.removeListener(_loadCarotidImageBytes);
|
|
|
+ widget.measure3DViewController.updatePlayerMode
|
|
|
+ .removeListener(_onModeChanged);
|
|
|
+
|
|
|
image?.dispose();
|
|
|
super.dispose();
|
|
|
}
|
|
|
|
|
|
+ /// 模式改变触发更新
|
|
|
+ void _onModeChanged(Object s, MeasureMode mode) {
|
|
|
+ switch (mode) {
|
|
|
+ case MeasureMode.vidMode:
|
|
|
+ break;
|
|
|
+ case MeasureMode.carotid2DMode:
|
|
|
+ final itemMeta = ItemMeta(
|
|
|
+ MeasureTypes.IntimaDetection,
|
|
|
+ description: MeasureTypes.IntimaDetection,
|
|
|
+ measureType: MeasureTypes.IntimaDetection,
|
|
|
+ outputs: [
|
|
|
+ ItemOutputMeta(MeasureTypes.IntimaDetection, "", VidUsUnit.cm2),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ application.clearRecords();
|
|
|
+ application.switchItem(itemMeta);
|
|
|
+ loadFrame(widget.measure3DViewController.image4Measure!);
|
|
|
+ break;
|
|
|
+ case MeasureMode.carotid3DMode:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@override
|
|
|
void didUpdateWidget(covariant CarotidPlayer oldWidget) {
|
|
|
if (oldWidget.measure3DViewController != widget.measure3DViewController) {
|