1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import 'package:fis_measure/configs/patient.dart';
- import 'package:fis_measure/interfaces/process/calculators/values.dart';
- import 'package:fis_measure/interfaces/process/items/terms.dart';
- import 'package:fis_measure/process/calcuators/unit_formulas/index.dart';
- import 'package:fis_measure/process/primitives/combos/lv_mass.dart';
- import 'calculator.dart';
- class LvdMassALCal extends Calculator<LVMass, double> {
- LvdMassALCal(super.ref);
- @override
- void calculate() {
- if (ref.feature == null) return;
- final feature = ref.feature!;
- UnitFloatValue? epi = pickChildToFloatValue(ref.epi)?.toUnitFloatValue();
- UnitFloatValue? endo = pickChildToFloatValue(ref.endo)?.toUnitFloatValue();
- UnitFloatValue? l = pickChildToFloatValue(ref.l)?.toUnitFloatValue();
- UnitFloatValue? lvdmass;
- UnitFloatValue? lvdMassIndex;
- if (epi != null && endo != null && l != null) {
- lvdmass = UnitFormulas.cardiac.lvdMassAL(epi, endo, l);
- }
- if (lvdmass != null && GlobalPatientConfig.bsa > 0) {
- lvdMassIndex = UnitFormulas.cardiac.lvdMassIndex(
- lvdmass,
- bsa: GlobalPatientConfig.bsa,
- );
- }
- for (var output in ref.meta.outputs) {
- switch (output.name) {
- case MeasureTerms.LVdMass:
- if (lvdmass != null) {
- feature.updateFloatValue(output, lvdmass.value, lvdmass.unit);
- }
- break;
- case MeasureTerms.LVdMassIndex:
- if (lvdMassIndex != null) {
- feature.updateFloatValue(
- output,
- lvdMassIndex.value,
- lvdMassIndex.unit,
- );
- }
- break;
- }
- }
- }
- }
|