|
@@ -7,7 +7,6 @@ import 'package:fis_measure/utils/prompt_box.dart';
|
|
|
import 'package:fis_measure/view/player/controller.dart';
|
|
|
import 'package:fis_measure/view/player/enums.dart';
|
|
|
import 'package:fis_measure/view/player/events.dart';
|
|
|
-import 'package:fis_vid/data_host/data_host.dart';
|
|
|
|
|
|
import 'package:fis_measure/interfaces/process/workspace/application.dart';
|
|
|
import 'package:fis_measure/interfaces/process/player/play_controller.dart';
|
|
@@ -17,6 +16,7 @@ import 'package:get/get.dart';
|
|
|
import 'package:vid/us/vid_us_image.dart';
|
|
|
|
|
|
import 'measure_data_controller.dart';
|
|
|
+import 'package:universal_html/html.dart' as html;
|
|
|
|
|
|
typedef MeasureImagesFetchFunc = Future<List<ExamImageInfo>> Function(
|
|
|
String code);
|
|
@@ -96,11 +96,12 @@ class MeasureController implements IMeasureController {
|
|
|
|
|
|
void _onExamImageSelectedChanged(Object sender, int index) async {
|
|
|
final url = currentVidUrl;
|
|
|
+
|
|
|
_playerController?.firstFrameLoaded.removeListener(_onFirstFrameLoaded);
|
|
|
_playerController?.eventHandler.removeListener(_onPlayerEnvent);
|
|
|
_playerController?.dispose();
|
|
|
Get.delete<IPlayerController>();
|
|
|
-
|
|
|
+ _windowSetState(index);
|
|
|
_playerController = Get.put<IPlayerController>(VidPlayerController(url));
|
|
|
playerController.firstFrameLoaded.addListener(_onFirstFrameLoaded);
|
|
|
playerController.eventHandler.addListener(_onPlayerEnvent);
|
|
@@ -170,4 +171,30 @@ class MeasureController implements IMeasureController {
|
|
|
_application = Get.put<IApplication>(app);
|
|
|
_application!.isSingleFrame = dataChannel.imageCount == 1;
|
|
|
}
|
|
|
+
|
|
|
+ void _windowSetState(int index) {
|
|
|
+ try {
|
|
|
+ final measureData = Get.find<MeasureDataController>();
|
|
|
+ var remedicalList = measureData.remedicalList;
|
|
|
+ var examCode = examInfo.code;
|
|
|
+ if (index > remedicalList.length - 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var remedicalInfo = remedicalList[index];
|
|
|
+ if (remedicalInfo != null) {
|
|
|
+ var searchUrl = html.window.location.search ?? '';
|
|
|
+ var remedicalCode = remedicalInfo.remedicalCode;
|
|
|
+ var parameters = searchUrl.split('&');
|
|
|
+ if (parameters.isNotEmpty) {
|
|
|
+ var target = parameters
|
|
|
+ .firstWhereOrNull((element) => element.contains("remedicalCode"));
|
|
|
+ if (target != null) {
|
|
|
+ var paraneter = "remedicalCode=$remedicalCode";
|
|
|
+ var newSearchUrl = searchUrl.replaceAll(target, paraneter);
|
|
|
+ html.window.history.replaceState('', '', newSearchUrl);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e) {}
|
|
|
+ }
|
|
|
}
|