import 'package:fis_measure/configs/patient.dart'; import 'package:fis_measure/interfaces/process/items/terms.dart'; import 'package:fis_measure/process/primitives/combos/lv_mass.dart'; import 'package:vid/us/vid_us_unit.dart'; import 'calculator.dart'; import 'formulas/cardiac.dart'; class LvdMassALCal extends Calculator { LvdMassALCal(super.ref); @override void calculate() { if (ref.feature == null) return; final feature = ref.feature!; double? epi = pickChildFloatValue(ref.epi); double? endo = pickChildFloatValue(ref.endo); double? l = pickChildFloatValue(ref.l); double? lvdmass; double? lvdMassIndex; if (epi != null && endo != null && l != null) { lvdmass = CardiacFormulas.lvdMassAL(epi, endo, l); } if (lvdmass != null && GlobalPatientConfig.bsa > 0) { lvdMassIndex = CardiacFormulas.lvdMassIndex(lvdmass, GlobalPatientConfig.bsa); } for (var output in ref.meta.outputs) { switch (output.name) { case MeasureTerms.LVdMass: if (lvdmass != null) { feature.updateFloatValue(output, lvdmass, VidUsUnit.kg); } break; case MeasureTerms.LVdMassIndex: if (lvdMassIndex != null) { feature.updateFloatValue(output, lvdMassIndex, VidUsUnit.gm2); } break; } } } }