|
@@ -2,6 +2,7 @@ import 'package:fis_measure/configs/cardiac.dart';
|
|
|
import 'package:fis_measure/configs/patient.dart';
|
|
|
import 'package:fis_measure/interfaces/enums/calcuator.dart';
|
|
|
import 'package:fis_measure/interfaces/enums/species.dart';
|
|
|
+import 'package:fis_measure/interfaces/process/calculators/values.dart';
|
|
|
import 'package:fis_measure/interfaces/process/items/terms.dart';
|
|
|
import 'package:fis_measure/process/items/top_item.dart';
|
|
|
import 'package:fis_measure/process/primitives/combos/lv_study.dart';
|
|
@@ -79,36 +80,22 @@ class LvStudyDistanceGroupCal extends LvStudyCalculatorBase<LvStudy> {
|
|
|
|
|
|
final feature = ref.feature!;
|
|
|
final viewport = feature.hostVisualArea!.viewport!;
|
|
|
+ VidUsUnit yUnit = viewport.yUnit;
|
|
|
|
|
|
-
|
|
|
v = _ValTemp();
|
|
|
- if (viewport.yUnit == VidUsUnit.cm) {
|
|
|
- v.ivsd = pickChildFloatValue(kidIVSd) != null
|
|
|
- ? pickChildFloatValue(kidIVSd)! * 10
|
|
|
- : null;
|
|
|
- v.ivss = pickChildFloatValue(kidIVSs) != null
|
|
|
- ? pickChildFloatValue(kidIVSs)! * 10
|
|
|
- : null;
|
|
|
- v.lvidd = pickChildFloatValue(kidLVIDd) != null
|
|
|
- ? pickChildFloatValue(kidLVIDd)! * 10
|
|
|
- : null;
|
|
|
- v.lvids = pickChildFloatValue(kidLVIDs) != null
|
|
|
- ? pickChildFloatValue(kidLVIDs)! * 10
|
|
|
- : null;
|
|
|
- v.lvpwd = pickChildFloatValue(kidLVPWd) != null
|
|
|
- ? pickChildFloatValue(kidLVPWd)! * 10
|
|
|
- : null;
|
|
|
- v.lvpws = pickChildFloatValue(kidLVPWs) != null
|
|
|
- ? pickChildFloatValue(kidLVPWs)! * 10
|
|
|
- : null;
|
|
|
- } else {
|
|
|
- v.ivsd = pickChildFloatValue(kidIVSd);
|
|
|
- v.ivss = pickChildFloatValue(kidIVSs);
|
|
|
- v.lvidd = pickChildFloatValue(kidLVIDd);
|
|
|
- v.lvids = pickChildFloatValue(kidLVIDs);
|
|
|
- v.lvpwd = pickChildFloatValue(kidLVPWd);
|
|
|
- v.lvpws = pickChildFloatValue(kidLVPWs);
|
|
|
- }
|
|
|
+ FloatValue? ivsd = pickChildToFloatValue(kidIVSd);
|
|
|
+ FloatValue? lvidd = pickChildToFloatValue(kidLVIDd);
|
|
|
+ FloatValue? lvpwd = pickChildToFloatValue(kidLVPWd);
|
|
|
+ FloatValue? ivss = pickChildToFloatValue(kidIVSs);
|
|
|
+ FloatValue? lvids = pickChildToFloatValue(kidLVIDs);
|
|
|
+ FloatValue? lvpws = pickChildToFloatValue(kidLVPWs);
|
|
|
+
|
|
|
+ v.ivsd = updateCalculateValue(ivsd, yUnit);
|
|
|
+ v.ivss = updateCalculateValue(ivss, yUnit);
|
|
|
+ v.lvidd = updateCalculateValue(lvidd, yUnit);
|
|
|
+ v.lvids = updateCalculateValue(lvids, yUnit);
|
|
|
+ v.lvpwd = updateCalculateValue(lvpwd, yUnit);
|
|
|
+ v.lvpws = updateCalculateValue(lvpws, yUnit);
|
|
|
|
|
|
for (var output in ref.meta.outputs) {
|
|
|
switch (output.name) {
|
|
@@ -151,6 +138,23 @@ class LvStudyDistanceGroupCal extends LvStudyCalculatorBase<LvStudy> {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ double? updateCalculateValue(FloatValue? floatValue, VidUsUnit unit) {
|
|
|
+ if (floatValue != null) {
|
|
|
+ if (floatValue.unit == unit) {
|
|
|
+ return floatValue.value;
|
|
|
+ } else {
|
|
|
+ if (floatValue.unit == VidUsUnit.mm &&
|
|
|
+ floatValue.unit == VidUsUnit.cm) {
|
|
|
+ return floatValue.value == null ? null : floatValue.value! * 10;
|
|
|
+ } else if (floatValue.unit == VidUsUnit.cm &&
|
|
|
+ floatValue.unit == VidUsUnit.mm) {
|
|
|
+ return floatValue.value == null ? null : floatValue.value! / 10;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
class LvStudyCalculatorBase<T extends TopMeasureItem>
|