|
@@ -4,6 +4,9 @@ import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.
|
|
|
import 'package:fis_measure/process/primitives/urm_measure/urm_trace_measure.dart';
|
|
|
import 'package:fis_measure/process/workspace/urm/application.dart';
|
|
|
import 'package:vid/us/vid_us_unit.dart';
|
|
|
+import 'dart:ui' as ui;
|
|
|
+import 'dart:convert';
|
|
|
+import 'dart:typed_data';
|
|
|
|
|
|
class URMTracePerfusionCal extends URMTraceMeasureCal {
|
|
|
URMTracePerfusionCal(super.ref);
|
|
@@ -43,15 +46,26 @@ class URMTracePerfusionCal extends URMTraceMeasureCal {
|
|
|
|
|
|
feature.updateFloatValue(first, outresult.resultData, first.unit);
|
|
|
if (feature is! TracePerfusionImageFeature) return;
|
|
|
- feature.abc = outresult.perfusionImgData;
|
|
|
- // final tracePerfusionImageFeature = TracePerfusionImageFeature(ref);
|
|
|
+ if (outresult.perfusionImgBase64 != null) {
|
|
|
+ feature.perfusionImg =
|
|
|
+ await loadImageFromBase64(outresult.perfusionImgBase64!);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- /// TODO URMPerfusionFunction.Instance.ShowImage(outresult, feature, currentHostArea);
|
|
|
} catch (e) {
|
|
|
logger.e('URM Measure error: $e');
|
|
|
return;
|
|
|
}
|
|
|
ref.application.updateRenderReady.emit(this, null);
|
|
|
}
|
|
|
+
|
|
|
+ Future<ui.Image> loadImageFromBase64(String base64String) async {
|
|
|
+ // Replace this with your actual Base64 string
|
|
|
+ Uint8List bytes = base64Decode(base64String);
|
|
|
+ ui.Codec codec = await ui.instantiateImageCodec(bytes);
|
|
|
+ ui.FrameInfo frameInfo = await codec.getNextFrame();
|
|
|
+ return frameInfo.image;
|
|
|
+ // setState(() {
|
|
|
+ // _image = frameInfo.image;
|
|
|
+ // });
|
|
|
+ }
|
|
|
}
|