1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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<Rvsp, double> {
- 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;
- }
- }
- }
- }
|