import 'dart:typed_data'; import 'package:fis_common/event/event_type.dart'; import 'package:fis_jsonrpc/rpc.dart'; import 'package:fis_measure/interfaces/process/items/item_metas.dart'; import 'package:fis_measure/process/workspace/measure_handler.dart'; import 'package:vid/us/vid_us_mode.dart'; class MeasureImageData { final String? patientCode; final String? remedicalCode; final String? recordCode; MeasureImageData({ this.patientCode, this.recordCode, this.remedicalCode, }); } /// 图片信息数据 abstract class IMeasureDataController { late FEventHandler aiResultsInfoChanged; late FEventHandler measureApplicationVersionChanged; late FEventHandler measureLanguageChanged; late FEventHandler diagnosisConclusionChanged; late FEventHandler> remedicalListResultChanged; late FEventHandler itemCurrentImageChanged; late FEventHandler> itemMetaListChanged; late FEventHandler> getMeasureApplicationChanged; late FEventHandler measureImageDataChanged; late FEventHandler measureSystemSettingChanged; late FEventHandler> applicationModesChanged; late FEventHandler> getItemMetaListChanged; late FEventHandler> getCommentsListChanged; /// 该图像下面的应用 List get itemMetaList; set itemMetaList(List value); /// 测量的翻译 String get measureLanguage; set measureLanguage(String value); /// 测量应用的版本号 String get measureApplicationVersion; set measureApplicationVersion(String value); ///当前选择图像 String get itemCurrentImage; set itemCurrentImage(String value); /// 测量图片的ai结果 String get aiResults; set aiResults(String value); /// 良恶性 用来判断是否存在ai结果 DiagnosisConclusionEnum get diagnosisConclusion; set diagnosisConclusion(DiagnosisConclusionEnum value); /// 测量图片集 List get remedicalList; set remedicalList(List value); /// 测量方式集 List get getMeasureApplicationList; set getMeasureApplicationList(List value); /// 测量具体的方式 List get getItemMetaList; set getItemMetaList(List value); /// 上层测量项 List get getTopItemMetaList; set getTopItemMetaList(List value); /// 下层测量项 List get getBottomItemMetaList; set getBottomItemMetaList(List value); /// 注释工具list List get getCommentsList; set getCommentsList(List value); /// 注释List List get measureCommentItemResult; set measureCommentItemResult(List value); /// 测量图片数据 MeasureImageData get measureImageData; set measureImageData(MeasureImageData value); /// 测量样式数据 MeasureSystemSettingDTO get measureSystemSetting; set measureSystemSetting(MeasureSystemSettingDTO value); /// 测量当前图片所有模式 List get applicationModes; set applicationModes(List value); /// 测量图片当前所有模式下所有测量项数据 List get availableModes; set availableModes(List value); String get currentMode; set currentMode(String value); } class MeasureDataController implements IMeasureDataController { String _aiResults = ''; String _itemCurrentImage = ''; String _measureLanguage = ''; String _currentMode = ''; String _measureApplicationVersion = ''; List _remedicalList = []; List _itemMetaList = []; List _getMeasureApplicationList = []; DiagnosisConclusionEnum _diagnosisConclusion = DiagnosisConclusionEnum.NotRequired; MeasureImageData _measureImageData = MeasureImageData(); MeasureSystemSettingDTO _measureSystemSetting = MeasureSystemSettingDTO(); List _applicationModes = []; List _availableModes = []; List _getItemMetaList = []; List _getTopItemMetaList = []; List _getBottomItemMetaList = []; List _getCommentsList = []; List _measureCommentItemResult = []; @override var remedicalListResultChanged = FEventHandler>(); @override var aiResultsInfoChanged = FEventHandler(); @override var measureLanguageChanged = FEventHandler(); @override var measureApplicationVersionChanged = FEventHandler(); @override var diagnosisConclusionChanged = FEventHandler(); @override var itemMetaListChanged = FEventHandler>(); @override var itemCurrentImageChanged = FEventHandler(); @override var getMeasureApplicationChanged = FEventHandler>(); @override var measureImageDataChanged = FEventHandler(); @override var measureSystemSettingChanged = FEventHandler(); @override var applicationModesChanged = FEventHandler>(); @override var getItemMetaListChanged = FEventHandler>(); @override var getCommentsListChanged = FEventHandler>(); @override List get getItemMetaList => _getItemMetaList; @override set getItemMetaList(List value) { if (value != _getItemMetaList) { _getItemMetaList = value; _onGetItemMetaListChanged(); } } @override List get getTopItemMetaList => _getTopItemMetaList; @override set getTopItemMetaList(List value) { if (value != _getTopItemMetaList) { _getTopItemMetaList = value; } } @override List get getBottomItemMetaList => _getBottomItemMetaList; @override set getBottomItemMetaList(List value) { if (value != _getBottomItemMetaList) { _getBottomItemMetaList = value; } } @override List get getCommentsList => _getCommentsList; @override set getCommentsList(List value) { if (value != _getCommentsList) { _getCommentsList = value; _onGetCommentsListChanged(); } } @override List get measureCommentItemResult => _measureCommentItemResult; @override set measureCommentItemResult(List value) { if (value != _measureCommentItemResult) { _measureCommentItemResult = value; } } @override List get availableModes => _availableModes; @override set availableModes(List value) { if (value != _availableModes) { _availableModes = value; } } @override MeasureSystemSettingDTO get measureSystemSetting => _measureSystemSetting; @override set measureSystemSetting(MeasureSystemSettingDTO value) { if (value != _measureSystemSetting) { _measureSystemSetting = value; _onMeasureSystemSettingChanged(); } } @override List get applicationModes => _applicationModes; @override set applicationModes(List value) { if (value != _applicationModes) { _applicationModes = value; _onApplicationModesChanged(); } } @override String get currentMode => _currentMode; @override set currentMode(String value) { if (value != _currentMode) { _currentMode = value; } } @override List get getMeasureApplicationList => _getMeasureApplicationList; @override set getMeasureApplicationList(List value) { if (value != _getMeasureApplicationList) { _getMeasureApplicationList = value; _onGetMeasureApplicationChanged(); } } @override List get itemMetaList => _itemMetaList; @override set itemMetaList(List value) { if (value != _itemMetaList) { _itemMetaList = value; _onItemMetaListChanged(); } } @override String get itemCurrentImage => _itemCurrentImage; @override set itemCurrentImage(String value) { if (value != _itemCurrentImage) { _itemCurrentImage = value; _onItemCurrentImageChanged(); } } @override String get aiResults => _aiResults; @override set aiResults(String value) { if (value != _aiResults) { _aiResults = value; _onAIResultsChanged(); } } @override String get measureLanguage => _measureLanguage; @override set measureLanguage(String value) { if (value != _measureLanguage) { _measureLanguage = value; _onMeasureLanguageChanged(); } } @override String get measureApplicationVersion => _measureApplicationVersion; @override set measureApplicationVersion(String value) { if (value != _measureApplicationVersion) { _measureApplicationVersion = value; _onMeasureApplicationVersion(); } } @override DiagnosisConclusionEnum get diagnosisConclusion => _diagnosisConclusion; @override set diagnosisConclusion(DiagnosisConclusionEnum value) { if (value != _diagnosisConclusion) { _diagnosisConclusion = value; _onDiagnosisConclusionChanged(); } } @override MeasureImageData get measureImageData => _measureImageData; @override set measureImageData(MeasureImageData value) { if (value != _measureImageData) { _measureImageData = value; _onMeasureImageDataChanged(); } } @override List get remedicalList => _remedicalList; @override set remedicalList(List value) { if (value != _remedicalList) { _remedicalList = value; _onRemedicalListChanged(); } } MeasureDataController( this.getRemedicalList, this.getImageInfo, this.getMeasureApplication, this.saveUserDefinedMeasureApplicationAsync, this.saveImage, this.saveMeasureSystemSettingAsync, this.getMeasureSystemSettingAsync, this.shareImage, this.getCommentsByApplicationAsync, this.saveUserDefinedCommentsAsync, ); ///参数1:patientCode,参数2:recordCode,参数3:token Future> Function(String, String, String) getRemedicalList; ///参数1:remedicalCode,参数2:token Future Function(String, String) getImageInfo; ///参数1:测量模式参数 Future Function(MeasureModeSelection) getMeasureApplication; ///参数1:imageBytes 图片字节, 参数2: patientCode 病人code,参数3:recordCode 检查code, 参数4:remedicalCode 检查code,参数5: measuredData 测量值 Future Function(Uint8List, String, String, String, String) saveImage; /// 分享vid Future Function(String) shareImage; /// 保存测量项 Future Function(MeasureModeSubmit) saveUserDefinedMeasureApplicationAsync; /// 保存卡尺样式 Future Function(MeasureSystemSettingDTO) saveMeasureSystemSettingAsync; /// 获取卡尺样式 Future Function() getMeasureSystemSettingAsync; /// 参数1: ApplicationName 应用名称,参数2:CategoryName /分类名称, Future Function(String, String) getCommentsByApplicationAsync; Future Function(String, String, List) saveUserDefinedCommentsAsync; void _onRemedicalListChanged() { remedicalListResultChanged.emit(this, remedicalList); } void _onAIResultsChanged() { aiResultsInfoChanged.emit(this, aiResults); } void _onItemCurrentImageChanged() { itemCurrentImageChanged.emit(this, itemCurrentImage); } void _onItemMetaListChanged() { itemMetaListChanged.emit(this, itemMetaList); } void _onGetMeasureApplicationChanged() { getMeasureApplicationChanged.emit(this, getMeasureApplicationList); } void _onDiagnosisConclusionChanged() { diagnosisConclusionChanged.emit(this, diagnosisConclusion); } void _onMeasureLanguageChanged() { measureLanguageChanged.emit(this, measureLanguage); } void _onMeasureApplicationVersion() { measureApplicationVersionChanged.emit(this, measureApplicationVersion); } void _onMeasureImageDataChanged() { measureImageDataChanged.emit(this, measureImageData); } void _onMeasureSystemSettingChanged() { measureSystemSettingChanged.emit(this, measureSystemSetting); } void _onApplicationModesChanged() { applicationModesChanged.emit(this, applicationModes); } void _onGetItemMetaListChanged() { getItemMetaListChanged.emit(this, getItemMetaList); } void _onGetCommentsListChanged() { getCommentsListChanged.emit(this, getCommentsList); } }