import 'package:fis_measure/interfaces/process/items/item.dart'; import 'package:fis_measure/interfaces/process/items/item_metas.dart'; import 'package:fis_measure/process/calcuators/simpson.dart'; import 'package:fis_measure/process/items/item_feature.dart'; import 'package:fis_measure/process/items/item.dart'; import 'package:fis_measure/process/items/top_item.dart'; import 'package:fis_measure/process/items/top_item_feature.dart'; import '../multi_method/multi_simpson_path.dart'; class LvStudySimpson extends TopMeasureItem { static const String _a2CLvedvKey = "A2C LVEdV"; static const String _a2CLvesvKey = "A2C LVEsV"; static const String _a4CLvedvKey = "A4C LVEdV"; static const String _a4CLvesvKey = "A4C LVEsV"; late final MultiSimpsonPath a2cLvedv; late final MultiSimpsonPath a2cLvesv; late final MultiSimpsonPath a4cLvedv; late final MultiSimpsonPath a4cLvesv; LvStudySimpson(super.meta) { final a2cLvedvMeta = meta.getChildByName(_a2CLvedvKey)!; final a2cLvesvMeta = meta.getChildByName(_a2CLvesvKey)!; final a4cLvedvMeta = meta.getChildByName(_a4CLvedvKey)!; final a4cLvesvMeta = meta.getChildByName(_a4CLvesvKey)!; a2cLvedv = MultiSimpsonPath.create(a2cLvedvMeta, this); a2cLvesv = MultiSimpsonPath.create(a2cLvesvMeta, this); a4cLvedv = MultiSimpsonPath.create(a4cLvedvMeta, this); a4cLvesv = MultiSimpsonPath.create(a4cLvesvMeta, this); childItems.add(a2cLvedv); childItems.add(a2cLvesv); childItems.add(a4cLvedv); childItems.add(a4cLvesv); } @override bool get finishAfterUnactive => true; @override bool get isCrossFrameMode => true; @override LvStudySimpsonFeature buildFeature() => LvStudySimpsonFeature(this); static LvStudySimpson create(ItemMeta meta, [IMeasureItem? parent]) { final simpson = LvStudySimpson(meta); simpson.calculator = LvSimpsonCalNew(simpson); return simpson; } } class LvStudySingleSimpson extends TopMeasureItem { static const String _lvedvKey = "LVEDV"; static const String _lvesvKey = "LVESV"; late final MultiSimpsonPath lvedv; late final MultiSimpsonPath lvesv; LvStudySingleSimpson(super.meta) { final lvedvMeta = meta.getChildByName(_lvedvKey)!; final lvesvMeta = meta.getChildByName(_lvesvKey)!; lvedv = MultiSimpsonPath.create(lvedvMeta, this); lvesv = MultiSimpsonPath.create(lvesvMeta, this); childItems.add(lvedv); childItems.add(lvesv); } @override bool get finishAfterUnactive => true; @override bool get isCrossFrameMode => true; @override LvStudySingleSimpsonFeature buildFeature() => LvStudySingleSimpsonFeature(this); static LvStudySingleSimpson create(ItemMeta meta, [IMeasureItem? parent]) { final simpson = LvStudySingleSimpson(meta); simpson.calculator = LvSingleSimpsonCalNew(simpson); return simpson; } } class LvStudySimpsonFeature extends TopMeasureItemFeature { LvStudySimpsonFeature( ITopMeasureItem refItem, ) : super(refItem); } class LvStudySingleSimpsonFeature extends TopMeasureItemFeature { LvStudySingleSimpsonFeature( ITopMeasureItem refItem, ) : super(refItem); }