/*! * * Copyright (c) 2024-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 VInstitutionalRecord.h * \author (last) Behrouz NematiPour * \date (last) 26-Mar-2024 * \author (original) Dara Navaei * \date (original) 28-Feb-2024 * */ #pragma once // Qt #include // Project #include "main.h" // Doxygen : do not remove #include "VAdjustmentResponseBase.h" #include "MTDInstitutionalRecordResponse.h" namespace View { /*! * \brief The VInstitutionalRecord class * \details View for Model's Data representation. * * \sa Model::VAdjustmentResponseBase * */ class VInstitutionalRecord : public VAdjustmentResponseBase { Q_OBJECT // friends friend class ::tst_views; const QStringList _titles { tr("Blood Flow Rate" ), tr("Dialysate Flow Rate" ), tr("Treatment Duration" ), tr("Heparin Bolus Volume" ), tr("Heparin Dispense Rate" ), tr("Heparin Stop Time" ), tr("Dialysate Temperature" ), tr("Acid Composition ([K+])" ), tr("Acid Composition ([Ca2+])" ), tr("Bicarb. Final Dialysate Composition"), tr("Sodium Final Dialysate Composition" ), tr("Fluid Bolus Volume" ), tr("Arterial Pressure Limit" ), tr("Venous Pressure Limit" ), tr("Venous Asym Pressure Limit" ), tr("TMP Window Limit" ), tr("UF Volume" ), tr("Vitals Interval" ), tr("Rinseback Volume" ), tr("Rinseback Flow Rate" ), tr("Substitution Volume" ), }; const QStringList _units { tr("mL/min" ), // Blood Flow Rate tr("mL/min" ), // Dialysate Flow Rate tr("min" ), // Treatment Duration tr("mL" ), // Heparin Bolus Volume tr("mL/hr" ), // Heparin Dispense Rate tr("min" ), // Heparin Stop Time tr("°C" ), // Dialysate Temperature tr("mEq/L" ), // Acid Composition ([K+]) tr("mEq/L" ), // Acid Composition ([Ca2+]) tr("mEq/L" ), // Bicarb. Final Dialysate Composition" tr("mEq/L" ), // Sodium Final Dialysate Composition tr("mL" ), // Fluid Bolus Volume tr("mmHg" ), // Arterial Pressure Limit tr("mmHg" ), // Venous Pressure Limit tr("mmHg" ), // Venous Asym Pressure Limit tr("mmHg" ), // TMP Window Limit tr("L" ), // UF Volume tr("min" ), // Vitals Interval tr("mL" ), // Rinseback Volume tr("mL/min" ), // Rinseback Flow Rate tr("L" ), // Substitution Volume }; // The property adjustment_Triggered has to be always true // and to always trigger the change event to work as a notifier for GUI TRIGGER( bool , adjustment , 0) RANGESET( quint32 , bloodFlowRate , 0) RANGESET( quint32 , dialysateFlowRate , 0) RANGESET( quint32 , treatmentDuration , 0) RANGESET( float , heparinBolusVolume , 0) RANGESET( float , heparinDispensingRate , 0) RANGESET( quint32 , heparinStopTime , 0) RANGESET( float , dialysateTemp , 0) RANGESET( float , acidConcentratePotassium , 0) RANGESET( float , acidConcentrateCalcium , 0) RANGESET( quint32 , bicarbFinalDialysateComposition , 0) RANGESET( quint32 , sodiumFinalDialysateComposition , 0) RANGESET( quint32 , fluidBolusVolume , 0) RANGESET( qint32 , arterialPressureLimitWindow , 0) RANGESET( qint32 , venousPressureLimitWindow , 0) RANGESET( qint32 , venousPressureLimitAsymtrc , 0) RANGESET( qint32 , trancembrncPressureLimitWindow , 0) RANGESET( float , ultrafiltrationVolume , 0) RANGESET( qint32 , vitalsInterval , 0) RANGESET( quint32 , rinsebackVolume , 0) RANGESET( quint32 , rinsebackFlowRate , 0) RANGESET( float , substitutionVolume , 0) // TODO: enhancement READONLY( QStringList , treatmentModalityOptions ,{}) READONLY( QStringList , hdfTreatmentModeOptions ,{}) READONLY( QStringList , dryBicabCartridgeSizeOptions ,{}) READONLY( QStringList , dialyzerTypeOptions ,{}) PROPERTY(QStringList , parametersTitle , titles()) PROPERTY(QStringList , parametersUnit , units ()) VIEW_DEC_CLASS_ADJUSTMENT(VInstitutionalRecord, InstitutionalRecordResponseData) private: QStringList titles() { return _titles; } QStringList units () { return _units ; } public slots: void doAdjustment() { InstitutionalRequestData data; emit didAdjustment(data); } signals: void didAdjustment(const InstitutionalRequestData &vData); }; }