123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- import 'package:fis_measure/interfaces/enums/items.dart';
- import 'package:fis_measure/interfaces/process/calculators/values.dart';
- import 'package:fis_measure/interfaces/process/items/item.dart';
- import 'package:fis_measure/interfaces/process/items/item_metas.dart';
- import 'package:fis_measure/interfaces/process/items/terms.dart';
- import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
- import 'package:fis_measure/process/calcuators/rvsp.dart';
- import 'package:fis_measure/process/calcuators/velocity.dart';
- import 'package:fis_measure/process/items/top_item.dart';
- import 'package:fis_measure/process/items/top_item_feature.dart';
- import 'package:vid/us/vid_us_unit.dart';
- import 'location.dart';
- class Rvsp extends TopMeasureItem<RvspFeature> {
- static const String tRVmaxKey = "TR Vmax";
- late final Location tRVmax;
- late final FloatValue _rap;
- Rvsp(super.meta) {
- final tRVmaxMeta = meta.getChildByName(tRVmaxKey)!;
- tRVmax = _TRVmaxLocation(tRVmaxMeta, this);
- tRVmax.calculator = VelocityCal(tRVmax);
- childItems.add(tRVmax);
- final rapOutputMeta =
- ItemOutputMeta(MeasureTerms.RAP, "RAP", VidUsUnit.mmHg);
- _rap = FloatValue(rapOutputMeta, 0.0, rapOutputMeta.unit);
- }
- FloatValue get rap => _rap;
- @override
- bool get repeatableEditable => false;
- @override
- bool get finishAfterUnactive => true;
- @override
- RvspFeature buildFeature() => RvspFeature(this);
- @override
- bool onExecuteMouse(PointInfo args) {
- if (feature == null) {
- feature = buildFeature();
- listenChildrenUpdate();
- }
- if (args.pointType == PointInfoType.mouseDown) {
- if (childrenAllDone) {
- workingChild.clear();
- }
- }
- feature?.hostVisualArea = args.hostVisualArea;
- if (!childrenAllDone) {
- final result = workingChild.execute(args);
- if (result) {
- doCalculate();
- }
- return result;
- }
- return true;
- }
- void updateRap(double val) {
- _rap.value = val;
- calculator?.calculate();
- update();
- }
- static Rvsp createRvsp(
- ItemMeta meta, [
- IMeasureItem? parent,
- ]) {
- Rvsp ins = Rvsp(meta);
- ins.calculator = RvspCal(ins);
- return ins;
- }
- }
- class RvspFeature extends TopMeasureItemFeature {
- RvspFeature(
- ITopMeasureItem refItem,
- ) : super(refItem);
- }
- class _TRVmaxLocation extends Location {
- _TRVmaxLocation(super.meta, super.parent);
- @override
- bool onExecuteMouse(PointInfo args) {
- if (state == ItemStates.finished || state == ItemStates.waiting) {
- if (args.pointType == PointInfoType.mouseDown) {
- measuredFeatures.clear();
- } else if (args.pointType == PointInfoType.mouseMove) {
- handleMouseMoveWhileFinish(args);
- }
- }
- if (state == ItemStates.running) {
- if (args.pointType == PointInfoType.mouseUp) return false;
- feature?.point = args;
- doCalculate();
- if (args.pointType == PointInfoType.mouseDown) {
- doFeatureFinish();
- }
- }
- return true;
- }
- }
|