Index: sources/view/VTreatmentCreate.cpp =================================================================== diff -u -rda6d5fa4aa2f69c1f9607b4060934943ce186452 -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/view/VTreatmentCreate.cpp (.../VTreatmentCreate.cpp) (revision da6d5fa4aa2f69c1f9607b4060934943ce186452) +++ sources/view/VTreatmentCreate.cpp (.../VTreatmentCreate.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,13 +1,13 @@ /*! * - * Copyright (c) 2020-2023 Diality Inc. - All Rights Reserved. + * Copyright (c) 2020-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 VTreatmentCreate.cpp * \author (last) Behrouz NematiPour - * \date (last) 08-Nov-2022 + * \date (last) 21-Nov-2023 * \author (original) Peter Lucia * \date (original) 22-Sep-2020 * @@ -20,6 +20,7 @@ #include "VTreatmentCreate.h" #include "FileHandler.h" #include "MsgDefs.h" +#include "TreatmentLog.h" using namespace Gui; using namespace View; @@ -30,6 +31,7 @@ ADJUST_VIEW_CONNECTION(AdjustParametersValidationRequestData ) ACTION_VIEW_CONNECTION(AdjustParametersValidationResponseData ) ADJUST_VIEW_CONNECTION(AdjustParametersConfirmRequestData ) + ACTION_VIEW_CONNECTION(AdjustSerialNumberHDResponseData ) } @@ -41,24 +43,23 @@ AdjustParametersValidationRequestData data; - data.bloodFlowRate = _bloodFlowRate; - data.dialysateFlowRate = _dialysateFlowRate; - data.treatmentDuration = _treatmentDuration; - data.heparinDispensingRate = _heparinDispensingRate; - data.heparinBolusVolume = _heparinBolusVolume; - data.heparinStopTime = _heparinStopTime; - data.salineBolus = _salineBolusVolume; - data.heparinType = _heparinType; - data.acidConcentrate = _acidConcentrate; - data.bicarbonateConcentrate = _bicarbonateConcentrate; - data.dialyzerType = _dialyzerType; - data.dialysateTemp = _dialysateTemp; - data.arterialPressureLimitLow = _arterialPressureLimitLow; - data.arterialPressureLimitHigh = _arterialPressureLimitHigh; - data.venousPressureLimitLow = _venousPressureLimitLow; - data.venousPressureLimitHigh = _venousPressureLimitHigh; - data.bloodPressureMeasureInterval = _bloodPressureMeasureInterval; - data.rinsebackFlowRate = _rinsebackFlowRate; + data.mBloodFlowRate = _bloodFlowRate ; + data.mDialysateFlowRate = _dialysateFlowRate ; + data.mTreatmentDuration = _treatmentDuration ; + data.mHeparinDispensingRate = _heparinDispensingRate ; + data.mHeparinBolusVolume = _heparinBolusVolume ; + data.mHeparinStopTime = _heparinStopTime ; + data.mSalineBolus = _salineBolusVolume ; + data.mHeparinType = _heparinType ; + data.mAcidConcentrate = _acidConcentrate ; + data.mBicarbonateConcentrate = _bicarbonateConcentrate ; + data.mDialyzerType = _dialyzerType ; + data.mDialysateTemp = _dialysateTemp ; + data.mArterialPressureLimitWindow = _arterialPressureLimitWindow ; + data.mVenousPressureLimitWindow = _venousPressureLimitWindow ; + data.mVenousPressureLimitAsymtrc = _venousPressureLimitAsymtrc ; + data.mBloodPressureMeasureInterval = _bloodPressureMeasureInterval ; + data.mRinsebackFlowRate = _rinsebackFlowRate ; emit didAdjustment(data); } @@ -107,27 +108,70 @@ */ void VTreatmentCreate::onActionReceive(const AdjustParametersValidationResponseData &data) { if (! data.mAccepted) { - emit fwValidationFailed(""); + bloodFlowRateRejectReason (data.mBloodFlowRate ); + dialysateFlowRateRejectReason (data.mDialysateFlowRate ); + treatmentDurationRejectReason (data.mDuration ); + heparinDispensingRateRejectReason (data.mHeparinDispensingRate ); + heparinBolusVolumeRejectReason (data.mHeparinBolusVolume ); + heparinStopTimeRejectReason (data.mHeparinStopTime ); + salineBolusVolumeRejectReason (data.mSalineBolus ); + + heparinTypeRejectReason (data.mHeparinType ); + acidConcentrateRejectReason (data.mAcidConcentrate ); + bicarbonateConcentrateRejectReason (data.mBicarbonateConcentrate ); + dialyzerTypeRejectReason (data.mDialyzerType ); + + dialysateTempRejectReason (data.mDialysateTemp ); + arterialPressureLimitWindowRejectReason (data.mArterialPressureLimitWindow ); + venousPressureLimitWindowRejectReason (data.mVenousPressureLimitWindow ); + venousPressureLimitAsymtrcRejectReason (data.mVenousPressureLimitAsymtrc ); + bloodPressureMeasureIntervalRejectReason (data.mBloodPressureMeasureInterval); + rinsebackFlowRateRejectReason (data.mRinsebackFlowRate ); + + emit didValidationFail(); } else { - emit fwValidationSuccess(); + generateTxCode(); + emit didValidationPass(); } } /*! + * \brief VTreatmentCreate::onActionReceive + * \details This message is received from the HD in POST through the applicationController and GuiController. + * This class keeps the serial for any treatment Code (txCode) generation + * \param data - the message model data + */ +void VTreatmentCreate::onActionReceive(const AdjustSerialNumberHDResponseData &data) { + _HDSerialNumber = data.mSerialNumber; +} + +/*! + * \brief VTreatmentCreate::generateTxCode + * \details Generates the txCode by combination of the HD serial number and date and time in yyyyMMddHHmmss + * And updates the TreatmenLog class to be saved in the Tx Report. + */ +void VTreatmentCreate::generateTxCode() { + QDateTime datetime = QDateTime::currentDateTime(); + QString today = datetime.toString("yyyyMMddHHmmss"); + txCode(_HDSerialNumber + today); + _TreatmentLog.gTxCode(_txCode); + LOG_APPED_UI(QString("Generated Treatment Code is %1").arg(_txCode)); +} + +/*! * \brief VCreateTreatment::doGetPrescriptionParameterValues * \details Gets a list of the prescription parameter values * \return (QStringList) The list of parameter values with units */ -QStringList VTreatmentCreate::doGetPrescriptionParameterValues() -{ - return QStringList() << QString("%0 mL/min").arg(_bloodFlowRate) - << QString("%0 mL/min").arg(_dialysateFlowRate) - << QString("%0 min").arg(_treatmentDuration) - << ( _heparinDispensingRate ? QString("%0 mL/hr").arg(_heparinDispensingRate) : tr("OFF") ) - << ( _heparinBolusVolume ? QString("%0 mL" ).arg(_heparinBolusVolume ) : tr("OFF") ) - << QString("%0 min").arg(_heparinStopTime) - << QString("%0 mL").arg(_salineBolusVolume); +QStringList VTreatmentCreate::doGetPrescriptionParameterValues() { + return QStringList() << QString("%1 mL/min" ).arg(_bloodFlowRate ) + << QString("%1 mL/min" ).arg(_dialysateFlowRate ) + << QString("%1 min" ).arg(_treatmentDuration ) + << ( _heparinDispensingRate ? QString("%1 mL/hr" ).arg(_heparinDispensingRate) : tr("OFF") ) + << ( _heparinBolusVolume ? QString("%1 mL" ).arg(_heparinBolusVolume ) : tr("OFF") ) + << ( _heparinDispensingRate ? QString("%1 min" ).arg(_heparinStopTime ) : tr("OFF") ) + << QString("%1 mL" ).arg(_salineBolusVolume ) ; } /*! @@ -149,7 +193,7 @@ QString mCategory = Storage::Settings_Category_ConfigurationsDataList; - if ( heparinTypeSet () ) { + if ( heparinTypeSet () ) { // this is managed on UI with heparinTypeSet() // && ( _heparinDispensingRate || _heparinBolusVolume ) mHeparinTypeOptions = _Settings.keys(mCategory, "Heparin Type Options" ); if ((int) _heparinType < mHeparinTypeOptions .length()) mHeparinType = mHeparinTypeOptions .at( _heparinType ); } else { mHeparinType = tr("NONE"); } @@ -175,10 +219,6 @@ << mBicarbonateConcentrate << mDialyzerType << QString("%0 °C" ).arg(_dialysateTemp ) - << QString("%0 mmHg" ).arg(_arterialPressureLimitLow ) - << QString("%0 mmHg" ).arg(_arterialPressureLimitHigh ) - << QString("%0 mmHg" ).arg(_venousPressureLimitLow ) - << QString("%0 mmHg" ).arg(_venousPressureLimitHigh ) << ( _bloodPressureMeasureInterval ? QString("%0 min").arg(_bloodPressureMeasureInterval) : tr("OFF") ) - << QString("%0 mL/min" ).arg(_rinsebackFlowRate ); + ; }