/*! * * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file MTreatmentPressureOcclusionData.h * \author (last) Dara Navaei * \date (last) 03-May-2024 * \author (original) Behrouz NematiPour * \date (original) 11-Apr-2021 * */ #pragma once // Qt #include // Project #include "MAbstract.h" #include "types.h" // forward declarations class tst_models; namespace Model { /*! * \brief The MPressureOcclusion class * \details The pressureocclusion data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x2400| 0x100 | 7 | 1 Hz | N | TD | All | PressureOcclusion Data | * * | Payload || * | || * | #1: (F32) | \ref Data::mArterialPressure | * | #2: (F32) | \ref Data::mVenousPressure | * | #3: (U32) | \ref Data::mLimitState | * | #4: (S32) | \ref Data::mArterialMin | * | #5: (S32) | \ref Data::mArterialMax | * | #6: (S32) | \ref Data::mVenousMin | * | #7: (S32) | \ref Data::mVenousMax | * | #8: (F32) | \ref Data::mArterialLongFilter | * | #9: (F32) | \ref Data::mVenousLongFilter | * | #10:(F32) | \ref Data::mTmpPressure | * | #11:(F32) | \ref Data::mTmpMin | * | #12:(F32) | \ref Data::mTmpMax | * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | TD | * | infoText | Occlusion | * */ class MPressureOcclusion : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::F32 mH2Pressure ; ///< Latest arterial pressure (mmHg) Types::F32 mH14Pressure ; ///< Latest venous pressure (mmHg) Types::U32 mLimitState ; ///< mH2Pressure Types::S32 mH2Min ; ///< Current pressure limits state (enum-stabilization or stable) Types::S32 mH2Max ; ///< Current arterial minimum pressure limit (mmHg) Types::S32 mH14Min ; ///< Current arterial maximum pressure limit (mmHg) Types::S32 mH14Max ; ///< Current venous minimum pressure limit (mmHg) Types::F32 mH2LongFilter ; ///< Current venous maximum pressure limit (mmHg) Types::F32 mH14LongFilter ; ///< Arterial long filter (mmHg) Types::F32 mTmpPressure ; ///< Venous long filter (mmHg) Types::F32 mTmpMin ; ///< Blood pump occlusion long filter Types::F32 mTmpMax ; ///< Partial Occlusion base line } _data; public: Type_Enum typeText () const override { return Type_Enum::eDatum ; } Unit_Enum unitText () const override { return Unit_Enum::eTD ; } QString infoText () const override { return QString("Occlusion"); } struct Data { float mArterialPressure = 0; float mVenousPressure = 0; quint32 mLimitState = 0; qint32 mArterialMin = 0; qint32 mArterialMax = 0; qint32 mVenousMin = 0; qint32 mVenousMax = 0; float mArterialLongFilter = 0; float mVenousLongFilter = 0; float mTmpPressure = 0; float mTmpMin = 0; float mTmpMax = 0; }; MPressureOcclusion () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MPressureOcclusion::Data PressureOcclusionData;