|
@@ -2,13 +2,17 @@ import 'dart:async';
|
|
|
|
|
|
import 'package:fis_i18n/i18n.dart';
|
|
|
import 'package:fis_jsonrpc/rpc.dart';
|
|
|
+import 'package:fis_measure/interfaces/process/player/play_controller.dart';
|
|
|
import 'package:fis_measure/interfaces/process/standard_line/calibration.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/process/workspace/measure_data_controller.dart';
|
|
|
import 'package:fis_measure/process/workspace/measure_handler.dart';
|
|
|
import 'package:fis_measure/utils/prompt_box.dart';
|
|
|
import 'package:fis_measure/view/button_group/widget/qr_code_with_logo.dart';
|
|
|
import 'package:fis_measure/view/paint/ai_patint_controller.dart';
|
|
|
+import 'package:fis_measure/view/player/controller.dart';
|
|
|
import 'package:fis_ui/index.dart';
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
@@ -34,6 +38,8 @@ class _ButtonGroupState extends State<ButtonGroup> {
|
|
|
|
|
|
|
|
|
final measureData = Get.find<MeasureDataController>();
|
|
|
+ final playerController = Get.find<IPlayerController>() as VidPlayerController;
|
|
|
+ final measure3DViewController = Get.find<Measure3DViewController>();
|
|
|
late final measureHandler = Get.find<MeasureHandler>();
|
|
|
late final aiPatintController = Get.find<AiPatintController>();
|
|
|
late bool canShowAI = [
|
|
@@ -42,6 +48,40 @@ class _ButtonGroupState extends State<ButtonGroup> {
|
|
|
DiagnosisConclusionEnum.BenignAndMalignant
|
|
|
].contains(measureData.diagnosisConclusion);
|
|
|
|
|
|
+ bool canShowModeButton = false;
|
|
|
+ @override
|
|
|
+ void initState() {
|
|
|
+ super.initState();
|
|
|
+ measure3DViewController.updatePlayerMode.addListener(_onModeChanged);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void dispose() {
|
|
|
+ measure3DViewController.updatePlayerMode.removeListener(_onModeChanged);
|
|
|
+ super.dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ void _onModeChanged(Object s, MeasureMode mode) {
|
|
|
+ switch (mode) {
|
|
|
+ case MeasureMode.vidMode:
|
|
|
+ setState(() {
|
|
|
+ canShowModeButton = false;
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case MeasureMode.carotid2DMode:
|
|
|
+ setState(() {
|
|
|
+ canShowModeButton = true;
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case MeasureMode.carotid3DMode:
|
|
|
+ setState(() {
|
|
|
+ canShowModeButton = false;
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<Widget> buildTitleButtonList() {
|
|
|
return [
|
|
|
_buildTitleButton(
|
|
@@ -104,6 +144,23 @@ class _ButtonGroupState extends State<ButtonGroup> {
|
|
|
setState(() {});
|
|
|
},
|
|
|
),
|
|
|
+ ],
|
|
|
+ if (canShowModeButton) ...[
|
|
|
+ _buildTitleButton(
|
|
|
+ FIcons.three_dimensional,
|
|
|
+ i18nBook.measure.carotid3DMode.t,
|
|
|
+ () {
|
|
|
+ measure3DViewController.backTo3DMode();
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ _buildTitleButton(
|
|
|
+ Icons.play_circle_outline_rounded,
|
|
|
+ i18nBook.measure.vidMode.t,
|
|
|
+ () {
|
|
|
+ measure3DViewController.backToVidMode();
|
|
|
+ playerController.resetCurrentFrame();
|
|
|
+ },
|
|
|
+ ),
|
|
|
]
|
|
|
];
|
|
|
}
|