/*! * * Copyright (c) 2019-2020 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 MTreatmentAdjustRequests.h * \author (last) Behrouz NematiPour * \date (last) 10-Aug-2020 * \author (original) Behrouz NemaiPour * \date (original) 02-Jul-2020 * */ #pragma once // Qt #include //project #include "guiglobals.h" namespace Model { /*! * Simple request models * These are models to send the request for the doAdjustment * The the only reason thy have been defined to help overloading the adjustment methods * Otherwise the parameters are so tiny models. */ #include class MModel { protected: static QString toString (const QString &vStringPrefix, const QVariant &vParameters) { QString senderID = "UI,"; return QString(senderID + vStringPrefix + "," + vParameters.toStringList().join(',')); } }; class MAdjustPowerOffReq : public MModel { public: quint8 state; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({state}); } explicit MAdjustPowerOffReq(quint8 vState) : state(vState) { } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("PowerOff", vParameters); } }; class MAdjustBloodDialysateReq : public MModel { public: quint32 bloodFlow = 0; quint32 dialysateFlow = 0; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({bloodFlow , dialysateFlow}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustBloodDialysate", vParameters); } }; class MAdjustDurationReq : public MModel { public: quint32 duration = 0; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({duration}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustDuration", vParameters); } }; class MAdjustUltrafiltrationStateReq : public MModel { public: enum State{ ePaused = 0, eRunning = 1, }; State requestedState = ePaused; // the requested state. Initially it's running => paused. // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({requestedState}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustUFState", vParameters); } }; class MAdjustUltrafiltrationEditReq : public MModel { public: float volume = 0; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({volume}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustUFEdit", vParameters); } }; class MAdjustUltrafiltrationConfirmReq : public MModel { public: enum Options : quint32 { eDuration = Gui::GuiActions::UF_ADJ_TREATMENT_TIME, eRate = Gui::GuiActions::UF_ADJ_UF_RATE, }; float volume = 0; Options option = eDuration; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({volume , option}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustUFConfirm", vParameters); } }; class MAdjustSalineReq : public MModel { public: enum State { eStop = 0, eStart = 1, }; State requestedState = eStop; // the requested state. Initially it's Stop => start. // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({requestedState}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustSaline", vParameters); } }; class MAlarmSilenceReq : public MModel { public: bool state = 0; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({state}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AlarmSilence", vParameters); } }; class MStartTreatmentReq : public MModel { public: enum Options { eSelectParams = 0, eCancel = 1, eStartTreatment = 2 }; Options request = eSelectParams; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({request}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("StartTreatment", vParameters); } }; class MConfirmTreatmentReq : public MModel { public: // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("ConfirmTreatment", vParameters); } }; class MEndTreatmentReq : public MModel { public: // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({}); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("EndTreatment", vParameters); } }; class MAdjustTreatmentParametersRequest : public MModel { public: quint32 bloodFlowRate = 0; // mL/min quint32 dialysateFlowRate = 0; // mL/min quint32 duration = 0; // minutes float heparinDispensingRate = 0; // mL/hr float heparinBolusVolume = 0; // mL quint32 heparinStopTime = 0; // min quint32 salineBolus = 0; // mL quint32 acidConcentrate = 0; // quint32 bicarbonateConcentrate = 0; // quint32 dialyzerType = 0; // float dialysateTemp = 0; // Celsius qint32 arterialPressureLimitLow = 0; // mmHg qint32 arterialPressureLimitHigh = 0; // mmHg qint32 venousPressureLimitLow = 0; // mmHg qint32 venousPressureLimitHigh = 0; // mmHg quint32 bloodPressureMeasureInterval = 0; // minutes quint32 rinsebackFlowRate = 0; // mL/min // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({ bloodFlowRate , dialysateFlowRate , duration , heparinDispensingRate , heparinBolusVolume , heparinStopTime , salineBolus , acidConcentrate , bicarbonateConcentrate , dialyzerType , dialysateTemp , arterialPressureLimitLow , arterialPressureLimitHigh , venousPressureLimitLow , venousPressureLimitHigh , bloodPressureMeasureInterval , rinsebackFlowRate , }); } // coco end static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustTreatmentParametersRequest", vParameters); } }; } typedef Model:: MAdjustPowerOffReq AdjustPowerOffRequestData; typedef Model:: MAdjustBloodDialysateReq AdjustBloodDialysateRequestData; typedef Model:: MAdjustDurationReq AdjustDurationRequestData; typedef Model:: MAdjustUltrafiltrationStateReq AdjustUltrafiltrationStateRequestData; typedef Model:: MAdjustUltrafiltrationEditReq AdjustUltrafiltrationEditRequestData; typedef Model:: MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData; typedef Model:: MStartTreatmentReq StartTreatmentRequestData; typedef Model:: MConfirmTreatmentReq ConfirmTreatmentRequestData; typedef Model:: MEndTreatmentReq EndTreatmentRequestData; typedef Model:: MAdjustSalineReq AdjustSalineRequestData; typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; typedef Model::MAdjustTreatmentParametersRequest AdjustTreatmentParametersRequestData;