import 'package:fis_measure/interfaces/process/items/terms.dart'; import 'package:fis_measure/process/primitives/rvsp.dart'; import 'package:vid/us/vid_us_unit.dart'; import 'calculator.dart'; import 'formulas/general.dart'; class RvspCal extends Calculator { RvspCal(super.ref); @override void calculate() { if (ref.feature == null) return; final feature = ref.feature!; final tRVmax = pickChildFloatValue(ref.tRVmax); if (tRVmax == null) { updateStringValue(""); return; } final rap = ref.rap.value ?? 0; final rvsp = GeneralFormulas.countPressure(tRVmax) + rap; // TODO: ??? PG=RVSP-RAP final pg = rvsp - rap; for (var output in ref.meta.outputs) { switch (output.name) { case MeasureTerms.RVSP: updateFloatValue(rvsp); break; case MeasureTerms.RAP: feature.updateFloatValue(output, rap, VidUsUnit.mmHg); break; case MeasureTerms.PG: feature.updateFloatValue(output, pg, VidUsUnit.mmHg); break; } } } }