Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -re7a8d5092cb499d6c6ed621eabde437bccbc1e0e -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision e7a8d5092cb499d6c6ed621eabde437bccbc1e0e) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -726,7 +726,7 @@ QString category = Storage::Settings_Category_MessagesUnhandled; QStringList groups = _Settings.groups(category); // DEBUG: qDebug() << groups; - for(const auto &group: qAsConst(groups)) { + for (const auto &group: std::as_const(groups)) { bool ok; quint16 id = QString(group).toUInt(&ok,16); if (!ok) continue; Index: sources/device/DeviceView.cpp =================================================================== diff -u -r6db0bf1974b688a3650db2a396590e079c477074 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision 6db0bf1974b688a3650db2a396590e079c477074) +++ sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -15,6 +15,7 @@ #include "DeviceView.h" // Qt +#include #include // Project @@ -404,7 +405,7 @@ if ( field.isEmpty() ) { ssidInfo.mSupported = false; } else { - ssidInfo.mSupported = field.remove(QRegExp("(WPA[23])")).trimmed().isEmpty(); + ssidInfo.mSupported = field.remove(QRegularExpression("(WPA[23])")).trimmed().isEmpty(); } break; Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -r59a1b4dceeb629ed08a434775d819ce108fe894b -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 59a1b4dceeb629ed08a434775d819ce108fe894b) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -207,7 +207,7 @@ { //using namespace View; qmlRegisterType ("Gui.View" , 0, 1, "GuiView"); - qmlRegisterUncreatableType ("Gui.Actions" , 0, 1, "GuiActions" , QStringLiteral("Used only for enumerations no need to have an object")); + qmlRegisterUncreatableType ("Gui.Actions" , 0, 1, "guiActions" , QStringLiteral("Used only for enumerations no need to have an object")); qmlRegisterSingletonType ("Gui.VEventSpy", 0, 1, "GuiEventSpy", [](QQmlEngine *, QJSEngine *) -> QObject * { return &_VEventSpy; }); Index: sources/gui/GuiGlobals.h =================================================================== diff -u -rbdf090c85ac9b272d1c693025542e8a5fac5a7e5 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision bdf090c85ac9b272d1c693025542e8a5fac5a7e5) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -44,7 +44,6 @@ class GuiActions { Q_GADGET - explicit GuiActions(); public: /*! Index: sources/gui/qml/components/ModalDialog.qml =================================================================== diff -u -r7fb13d9e1a453a37ab4dea5536e0f19ed6e272d2 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/components/ModalDialog.qml (.../ModalDialog.qml) (revision 7fb13d9e1a453a37ab4dea5536e0f19ed6e272d2) +++ sources/gui/qml/components/ModalDialog.qml (.../ModalDialog.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -16,7 +16,7 @@ // Qt import QtQuick 2.12 import QtQuick.Controls 2.12 // Dialog -import QtGraphicalEffects 1.12 +import Qt5Compat.GraphicalEffects // Project // Qml imports Index: sources/gui/qml/dialogs/NotificationDialog.qml =================================================================== diff -u -r7fb13d9e1a453a37ab4dea5536e0f19ed6e272d2 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 7fb13d9e1a453a37ab4dea5536e0f19ed6e272d2) +++ sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -15,7 +15,7 @@ // Qt import QtQuick 2.12 -import QtGraphicalEffects 1.12 +import Qt5Compat.GraphicalEffects // Project // Qml imports Index: sources/gui/qml/globals/Colors.qml =================================================================== diff -u -r320972a712c31e94413056591634859b4b3d564e -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 320972a712c31e94413056591634859b4b3d564e) +++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -195,25 +195,25 @@ let contentBg = "" let contentFg = "" switch (vPriority) { - case GuiActions.ALARM_PRIORITY_HIGH: + case guiActions.ALARM_PRIORITY_HIGH: titleBg = alarmTopBarHighBg titleFg = alarmTopBarHighFg contentBg = white contentFg = textNotificationHighFg break - case GuiActions.ALARM_PRIORITY_MEDIUM: + case guiActions.ALARM_PRIORITY_MEDIUM: titleBg = alarmTopBarMedBg titleFg = alarmTopBarMedFg contentBg = white contentFg = textNotificationMedFg break - case GuiActions.ALARM_PRIORITY_LOW: + case guiActions.ALARM_PRIORITY_LOW: titleBg = alarmTopBarLowBg titleFg = alarmTopBarLowFg contentBg = white contentFg = textNotificationLowFg break - default : // GuiActions.ALARM_PRIORITY_NONE + default : // guiActions.ALARM_PRIORITY_NONE titleBg = backgroundButtonSelect titleFg = textMain contentBg = white Index: sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml =================================================================== diff -u -r0bb5f08eb3570de6bff3ce67ca502db129b59096 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml (.../SettingsDeviceRegistration.qml) (revision 0bb5f08eb3570de6bff3ce67ca502db129b59096) +++ sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml (.../SettingsDeviceRegistration.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -14,7 +14,7 @@ */ // Qt -import QtQuick 2.12 +import QtQuick // Project import Gui.Actions 0.1 @@ -44,8 +44,8 @@ readonly property string separatorText : ":" property alias isRegistered : _checkListView.completeVisible - property var ipValidator : RegExpValidator { - regExp:/^(([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.){3}([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))$/ + property var ipValidator : RegularExpressionValidator { + regularExpression:/^(([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.){3}([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))$/ } onVisibleChanged: { @@ -155,9 +155,9 @@ } Connections { target: vCloudSync - function onisRunningEntered ( vValue ) { _checkListView.checkList.setItemExt( 0, true )} - function onisRegisterStartEntered ( vValue ) { _checkListView.checkList.setItemExt( 1, true )} - function onisRegisterDoneEntered ( vValue ) { _checkListView.checkList.setItemExt( 1, vValue )} + function onIsRunningEntered ( vValue ) { _checkListView.checkList.setItemExt( 0, true )} + function onIsRegisterStartEntered ( vValue ) { _checkListView.checkList.setItemExt( 1, true )} + function onIsRegisterDoneEntered ( vValue ) { _checkListView.checkList.setItemExt( 1, vValue )} } notificationText: "" Index: sources/gui/qml/pages/settings/SettingsWiFi.qml =================================================================== diff -u -r0ec66896d0a55a98915dda17f2acf3ff290398a7 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 0ec66896d0a55a98915dda17f2acf3ff290398a7) +++ sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -32,8 +32,8 @@ SettingsBase { id: _root itemIndex : SettingsStack.WiFi - property var ipValidator: RegExpValidator { - regExp:/^(([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.){3}([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))$/ + property var ipValidator: RegularExpressionValidator { + regularExpression:/^(([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.){3}([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))$/ } labelWidth : 200 Index: sources/gui/qml/pages/treatment/TreatmentSection.qml =================================================================== diff -u -r19acf57838bc97979052d626f3e05d46310b6335 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/pages/treatment/TreatmentSection.qml (.../TreatmentSection.qml) (revision 19acf57838bc97979052d626f3e05d46310b6335) +++ sources/gui/qml/pages/treatment/TreatmentSection.qml (.../TreatmentSection.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -15,7 +15,7 @@ // Qt import QtQuick 2.12 -import QtGraphicalEffects 1.12 +import Qt5Compat.GraphicalEffects import "qrc:/globals" import "qrc:/components" import "qrc:/pages/treatment" Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r59a1b4dceeb629ed08a434775d819ce108fe894b -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 59a1b4dceeb629ed08a434775d819ce108fe894b) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -15,7 +15,6 @@ // Qt import QtQuick 2.12 -import QtQuick.Controls 2.12 // StackView // Qml imports import "qrc:/components" Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml =================================================================== diff -u -r38677167535b480612809a53d824b86e11b2e5f9 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml (.../TreatmentAdjustmentUltrafiltrationConfirm.qml) (revision 38677167535b480612809a53d824b86e11b2e5f9) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml (.../TreatmentAdjustmentUltrafiltrationConfirm.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -35,6 +35,26 @@ signal confirmVolumeClicked(real vVolume, real vRate) + component ValueContainer: LabelUnitContainer { id: _valueContainer + objectName : "_valueContainer" + property alias value : _value.text + property color valueColor : _value.color + + implicitWidth : Variables.ultrafiltrationConfirmValueWidth + implicitHeight : Variables.adjustmentLabelUnitContainerHeight + + contentItem: Text { id: _value + objectName: "_value" + font { + pixelSize : Fonts.fontPixelUltrafiltrationAdjustmentMetrics + weight : Font.DemiBold + } + horizontalAlignment : Text.AlignHCenter + verticalAlignment : Text.AlignVCenter + color : Colors.ufVolumeGoalText + } + } + Item { id: _newValuesItem objectName: "_newValuesItem" anchors { Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml =================================================================== diff -u -r1286d74bd015276aab604808be2766136091c125 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml (.../TreatmentAdjustmentUltrafiltrationEdit.qml) (revision 1286d74bd015276aab604808be2766136091c125) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml (.../TreatmentAdjustmentUltrafiltrationEdit.qml) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -32,14 +32,13 @@ QtObject { id: _private objectName: "_private" - readonly property int precision : Variables.ultrafiltrationPrecision readonly property real minimum : calculatePrecisionValue( vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Min ) readonly property real maximum : calculatePrecisionValue( vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Max ) readonly property real volumeRes : calculatePrecisionValue( vTreatmentRanges.ultrafiltrationVolumeRes ) readonly property real setVolume : calculatePrecisionValue( vTreatmentUltrafiltration.setVolume ) readonly property real volumeRemoved : calculatePrecisionValue( vTreatmentUltrafiltration.volumeRemoved ) - readonly property int multiplier : Math.pow(10, precision) + readonly property int multiplier : Math.pow(10, Variables.ultrafiltrationPrecision) function calculatePrecisionValue(value) { return Math.round(value * multiplier) / multiplier } @@ -58,12 +57,9 @@ topMargin : Variables.defaultMargin horizontalCenter: parent.horizontalCenter } - leftLabel : qsTr("UF Volume Removed") - leftUnit : Variables.unitVolume - leftValue : _private.volumeRemoved.toFixed(_private.precision) - rightLabel : qsTr("UF Volume Goal") - rightUnit : Variables.unitVolume - rightValue : _volumeGoalAdjuster.value.toFixed(_private.precision) + setVolume : _volumeGoalAdjuster.value + volumeRemoved : _private.volumeRemoved + volumeRemovedColor : Colors.ufVolumeGoalText } Item { id: _contentArea @@ -81,14 +77,69 @@ width : Variables.ultrafiltrationProgressBarWidth spacing : 80 - ProgressBarEx { id: _maxVolumeBar + ProgressBar { id: _maxVolumeBar objectName : "_maxVolumeBar" width : parent.width - decimal : Variables.ultrafiltrationPrecision + height : Variables.ultraFiltrationProgressBarHeight + marker.visible : false + bgColor : Colors.ufAdjustmentProgressBarBg + color : Colors.ufAdjustmentDeltaFill + radius : Variables.ultrafiltrationProgressBarRadius + minText { + font { + pixelSize : Fonts.fontPixelUltrafiltrationMinMaxLabel + weight : Font.Normal + } + color : Colors.progressBarMinMax + text : minimum.toFixed(Variables.ultrafiltrationPrecision) + " " + Variables.unitVolume + } + maxText { + font { + pixelSize : minText.font.pixelSize + weight : minText.font.weight + } + color : Colors.progressBarMinMax + text : _private.maximum.toFixed(Variables.ultrafiltrationPrecision) + " " + Variables.unitVolume + } minimum : _private.minimum maximum : _private.maximum - value : _private.volumeRemoved - valueEx : _volumeGoalAdjuster.value + decimal : Variables.ultrafiltrationPrecision + value : _volumeGoalAdjuster.value + + Rectangle { id: _removedFill + objectName: "_removedFill" + anchors { + top : parent.top + bottom : parent.bottom + left : parent.left + right : _lowMarker.right + // adjust margin so fill completely covers the underlying slider + leftMargin : -1 + } + z : parent.z + 1 + color : Colors.ufProgressBarFill + radius : parent.radius + } + + RangeMarker { id: _lowMarker + objectName : "_lowMarker" + anchors.bottom : parent.bottom + x : (_maxVolumeBar.width * ((value - _maxVolumeBar.minimum) / (_maxVolumeBar.maximum - _maxVolumeBar.minimum))) - ((width+1)/2) + z : _removedFill.z + 1 + width : Variables.ultrafiltrationRangeMarkerWidth + height : Variables.rangeMarkerHeight + hasHandle : false + valueOnTop : true + decimal : Variables.ultrafiltrationPrecision + value : Math.max(_private.volumeRemoved, _private.minimum) + text { + anchors.bottomMargin: Variables.ultrafiltrationRangeMarkerTextMargin + font { + pixelSize: Fonts.fontPixelUltrafiltrationRangeMarker + weight: Font.DemiBold + } + } + } } LabelUnitContainer { id: _volumeGoalContainer Index: sources/storage/Settings.h =================================================================== diff -u -re21748fb21b8c964e51bb2f4be7faf699d30a057 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/storage/Settings.h (.../Settings.h) (revision e21748fb21b8c964e51bb2f4be7faf699d30a057) +++ sources/storage/Settings.h (.../Settings.h) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -269,6 +269,7 @@ static bool parse (const Detail &vDetail ); static int readCategory (Category_Enum vCategory ); static int configurationsPOST (Location_Enum vLoc = Location_Enum::eSecured) { Q_UNUSED(vLoc); return true; } + static QString convertToRichText(const QString &vInput ); }; } Index: sources/storage/TreatmentLog.cpp =================================================================== diff -u -r57ea732311e6f4c746974f5a52316f63dec23ca8 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision 57ea732311e6f4c746974f5a52316f63dec23ca8) +++ sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -138,7 +138,7 @@ /*! * \brief TreatmentLog::alarmTitle * \details prepares the alarm title and returns. - * \param vID - the alarm ID + * \param vID - the alarm ID * \return the alarm title */ QString TreatmentLog::alarmTitle(quint32 vID) { @@ -155,7 +155,7 @@ /*! * \brief TreatmentLog::eventTitle * \details prepares the event title and returns. - * \param vID - the event ID + * \param vID - the event ID * \return the event title */ QString TreatmentLog::eventTitle(quint32 vID) { @@ -169,8 +169,42 @@ return str.arg(vID, 3).arg(title); } +/*! + * \brief TreatmentLog::trendsAlarmTitle + * \details prepares the trends alarm title and returns. + * \param vID - the alarm ID + * \return the alarm title + */ +QString TreatmentLog::trendsAlarmTitle(quint32 vID) { + QString str = "%1-%2"; + QString title = "undefined"; + if ( _treatmentLogAlarmTitles.contains(vID) ) { + title = _treatmentLogAlarmTitles[vID] + .replace("," , "-") // the Txr is a csv file and any ',' in the title will break it. + .replace("\n" , "-"); // removing any new line since this will break the Txr as well. + } + return title; +} /*! + * \brief TreatmentLog::trendsEventTitle + * \details prepares the trends event title and returns. + * \param vID - the event ID + * \return the event title + */ +QString TreatmentLog::trendsEventTitle(quint32 vID) { + QString str = "%1 - %2"; + QString title = "undefined"; + if ( _treatmentLogEventTitles.contains(vID) ) { + title = _treatmentLogEventTitles[vID] + .replace("," , "-") // the Txr is a csv file and any ',' in the title will break it. + .replace("\n" , "-"); // removing any new line since this will break the Txr as well. + } + return title; +} + + +/*! * \brief TreatmentLog::timerEvent * \details The overloaded method of the main class to capture the QObject timer. */ @@ -184,19 +218,13 @@ * Initializing the model for the constant values. * \param vData - the response model data. */ -void TreatmentLog::initModel(const AdjustTreatmentLogResponseData &vData, const QString &vPatientID, bool vHeparinBolusVolumeOff, bool vHeparinDispensingRateOff) +void TreatmentLog::initModel(const AdjustTreatmentLogResponseData &vData, const QString &vPatientID, const QString &vSecondaryPatientID) { // Formatted values QString mStrText = "%1"; - // DEBUG: qDebug() << _Settings.groups(); - // SRSUI910 : PRS178 : Clinical - Data - Order - bool isHeparinOff = vHeparinBolusVolumeOff && vHeparinDispensingRateOff; - - QString mTreatmentDurationFmt = QTime (0, 0).addSecs(int(vData.mTreatmentDuration )).toString(_timeFormat); - QString mActualTreatmentDurationFmt = QTime (0, 0).addSecs(int(vData.mActualTreatmentDuration )).toString(_timeFormat); QString mTreatmentDuration = QString::number(vData.mTreatmentDuration / 60 ); // Converted seconds to minutes. - QString mActualTreatmentDuration = QString::number(vData.mActualTreatmentDuration / 60 ); // Converted seconds to minutes. + QString mActualTreatmentDuration = QString::number(vData.mTreatmentDurationActual / 60 ); // Converted seconds to minutes. QString mTreatmentStartDateTime = Format::fromEpoch( vData.mTreatmentStartEpoch , _datetimeFormat); QString mTreatmentEndDateTime = Format::fromEpoch( vData.mTreatmentEndEpoch , _datetimeFormat); @@ -205,16 +233,19 @@ // - the structure of the settings should become horizontal which vertical now. QString mCategory = Storage::Settings_Category_DataList; QString mAcidConcentrateType = _Settings.key(mCategory, "Acid Concentrate Options" , vData.mAcidConcentrateType ); - QString mBicarbonateConcentrateType = _Settings.key(mCategory, "Bicarbonate Concentrate Options" , vData.mBicarbonateConcentrateType ); + QString mBicarbonateConcentrateType = _Settings.key(mCategory, "Bicarbonate Concentrate Options" , vData.mBicarbonateCartridgeSize ); QString mDialyzerType = _Settings.key(mCategory, "Dialyzer Type Options" , vData.mDialyzerType ); QString mHeparinType = _Settings.key(mCategory, "Heparin Type Options" , vData.mHeparinType ); - QString mWaterSampleTestResult = _Settings.key(mCategory, "Water Sample Result" , vData.mWaterSampleTestResult ); + bool isHeparinOff = vData.mHeparinBolusVolume == 0; + bool isHeparinDispensingRateOff = vData.mHeparinDispenseRate == 0; - // init/fill/clear the _values clearModel(); + // TODO in treatment log story LDT-2500 or LDT-2506 + // LEAHI-PRS-143 _values[ePatientID ] = vPatientID.trimmed() ; + _values[eSecondaryPatientID ] = vSecondaryPatientID.trimmed() ; _values[eBloodFlowRate ] = mStrText.arg(vData.mBloodFlowRate ); _values[eDialysateFlowRate ] = mStrText.arg(vData.mDialysateFlowRate ); _values[eTreatmentDuration ] = mTreatmentDuration ; @@ -229,22 +260,21 @@ _values[eDialyzerType ] = mDialyzerType ; _values[eTreatmentStartDateTime ] = mTreatmentStartDateTime ; _values[eTreatmentEndDateTime ] = mTreatmentEndDateTime ; - _values[eWaterSampleTestResult ] = mWaterSampleTestResult ; + _values[eWaterSampleTestResult ] = mStrText.arg(vData.mWaterSampleTestResult ); _values[eDialysateVolumeUsed ] = mStrText.arg(vData.mDialysateVolumeUsed ,FLOAT3 ); - _values[eOriginUFVolume ] = mStrText.arg(vData.mOriginUFVolume ,FLOAT3 ); - _values[eTargetUFVolume ] = mStrText.arg(vData.mTargetUFVolume ,FLOAT3 ); - _values[eActualUFVolume ] = mStrText.arg(vData.mActualUFVolume ,FLOAT3 ); - _values[eOriginUFRate ] = mStrText.arg(vData.mOriginUFRate ,FLOAT3 ); - _values[eTargetUFRate ] = mStrText.arg(vData.mTargetUFRate ,FLOAT3 ); - _values[eActualUFRate ] = mStrText.arg(vData.mActualUFRate ,FLOAT3 ); - _values[eSalineBolusVolume ] = mStrText.arg(vData.mSalineBolusVolume ); + _values[eOriginUFVolume ] = mStrText.arg(vData.mUFVolume ,FLOAT3 ); + _values[eTargetUFVolume ] = mStrText.arg(vData.mUFVolumeTarget ,FLOAT3 ); + _values[eActualUFVolume ] = mStrText.arg(vData.mUFVolumeActual ,FLOAT3 ); + _values[eOriginUFRate ] = mStrText.arg(vData.mUFRate ,FLOAT3 ); + _values[eTargetUFRate ] = mStrText.arg(vData.mUFRateTarget ,FLOAT3 ); + _values[eActualUFRate ] = mStrText.arg(vData.mUFRateActual ,FLOAT3 ); + _values[eFluidBolusVolume ] = mStrText.arg(vData.mFluidBolusVolume ); + _values[eHeparinBolusVolume ] = mStrText.arg(vData.mHeparinBolusVolume ,FLOAT3 ); _values[eHeparinType ] = isHeparinOff ? tr("NONE") : mHeparinType ; - _values[eHeparinConcentration ] = isHeparinOff ? tr("NONE") : mStrText.arg(vData.mHeparinConcentration ); - _values[eHeparinBolusVolume ] = vHeparinBolusVolumeOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinBolusVolume ,FLOAT3 ); - _values[eHeparinDispenseRate ] = vHeparinDispensingRateOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinDispenseRate ,FLOAT3 ); - _values[eHeparinStop ] = vHeparinDispensingRateOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinStop ); - _values[eHeparinDeliveredVolume ] = isHeparinOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinDeliveredVolume ,FLOAT3 ); + _values[eHeparinDispenseRate ] = isHeparinDispensingRateOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinDispenseRate ,FLOAT3 ); + _values[eHeparinDeliveryDuration ] = isHeparinDispensingRateOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinDeliveryDuration ); + _values[eHeparinDeliveredVolume ] = isHeparinOff ? tr("OFF" ) : mStrText.arg(vData.mHeparinDeliveredVolume ,FLOAT3 ); emit didTxCodeReceive(""); } @@ -333,12 +363,13 @@ uint index = 0 ; QString txCode = "%1,%2," ; - ADDTITLE("Title"); + ADDTITLE("Patient Information"); ADDALINE(txCode .arg(_txCodeKey).arg(_gTxCode) ); - ADDTOLOG_MT( ePatientID, _emptyPatinetID ); + ADDTOLOG_MT( ePatientID, _emptyPatinetID ); + ADDTOLOG_MT( eSecondaryPatientID, _emptyPatinetID ); - ADDTITLE("Treatment Parameters" ); + ADDTITLE("Treatment Prescription" ); ADDTOLOG( eTreatmentDuration ); ADDTOLOG( eBloodFlowRate ); ADDTOLOG( eDialysateFlowRate ); @@ -351,40 +382,37 @@ ADDTOLOG( eDialysateTemperature ); ADDTOLOG( eDialyzerType ); ADDTOLOG( eHeparinType ); - ADDTOLOG( eHeparinConcentration ); ADDTOLOG( eHeparinBolusVolume ); ADDTOLOG( eHeparinDispenseRate ); - ADDTOLOG( eHeparinStop ); + ADDTOLOG( eHeparinDeliveryDuration ); - ADDTITLE("Treatment Time" ); + ADDTITLE("Treatment Report" ); ADDTOLOG( eTreatmentStartDateTime ); ADDTOLOG( eTreatmentEndDateTime ); ADDTOLOG( eActualTreatmentDuration ); - ADDTITLE("Device Treatment Data" ); ADDTOLOG( eDialysateVolumeUsed ); ADDTOLOG( eOriginUFVolume ); ADDTOLOG( eTargetUFVolume ); ADDTOLOG( eActualUFVolume ); ADDTOLOG( eOriginUFRate ); ADDTOLOG( eTargetUFRate ); ADDTOLOG( eActualUFRate ); - ADDTOLOG( eSalineBolusVolume ); + ADDTOLOG( eFluidBolusVolume ); ADDTOLOG( eHeparinDeliveredVolume ); - - ADDTITLE("Extra" ); ADDTOLOG( eWaterSampleTestResult ); - ADDTITLE("Treatment Data" ); + ADDTITLE("Measured Parameters" ); for ( const TreatmentLogAvrgeData &item : _treatmentLogAvrgeData ) { QString line; line += csv.arg(item.mTimeStamp ); -// line += csv.arg(NONE ); // removed during our meeting with Sean and Jahnavi 04/11/2022@16:00. line += csv.arg(item.mBloodFlowRate ,FLOAT3 ); line += csv.arg(item.mDialysateFlowRate ,FLOAT3 ); line += csv.arg(item.mUFRate ,FLOAT3 ); line += csv.arg(item.mArterialPressure ,FLOAT3 ); line += csv.arg(item.mVenousPressure ,FLOAT3 ); + line += csv.arg(item.mTMPPressure ,FLOAT3 ); + line += csv.arg(item.mDialysateTemp ,FLOAT3 ); line += csv.arg(item.mSystolic ); line += csv.arg(item.mDiastolic ); line += end.arg(item.mHeartRate ); @@ -394,7 +422,7 @@ ADDTITLE("Treatment Alarms" ); for ( const TreatmentLogAlarmData &item : _treatmentLogAlarmData ) { QString line; - // TODO : QString alarmText = Model::MAlarmStatus::toText(static_cast(item.mAlarmID)); +// TODO : QString alarmText = Model::MAlarmStatus::toText(static_cast(item. )); line += csv.arg( item.mTimeStamp ); line += csv.arg( alarmTitle(item.mAlarmID )); line += csv.arg( item.mParam1 ); Index: sources/view/settings/VSettings.cpp =================================================================== diff -u -r8f6ecb60abf6d47d4554cfd3019ca496d79b6f69 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 8f6ecb60abf6d47d4554cfd3019ca496d79b6f69) +++ sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -118,29 +118,24 @@ QStringList keys ; QVariantList values ; QString title = ""; - - if ( Storage::Settings::isCategoryInstructions( category ) ) { - for (const QString &key : _Settings.keys(category, group)) { - if (Storage::Settings::isKeyTitle ( key ) ) { - title = _Settings.value(category, group, key).toString(); - } else { - const QString imagePath = QStringLiteral("%1%2").arg(_location) - .arg(_Settings.value(category, group, key).toString()); - QFileInfo fileInfo(imagePath); - values.append(fileInfo.exists() && fileInfo.isFile() ? "file:" + imagePath : ""); - keys.append(key); - } + for (const QString &key : _Settings.keys(category, group)) { + if (Storage::Settings::isKeyTitle ( key ) ) { + title = _Settings.value(category, group, key).toString(); + } else { + const QString imagePath = QStringLiteral("%1%2").arg(_location) + .arg(_Settings.value(category, group, key).toString()); + QFileInfo fileInfo(imagePath); + values.append(fileInfo.exists() && fileInfo.isFile() ? "file:" + imagePath : ""); + keys.append(key); } + } + if ( Storage::Settings::isCategoryInstructions( category ) ) { TKeysList keysList = updateReplacements(group, keys ); updateInstructions(group, keysList, values, title ); updateInstructions(group ); } else { //TODO: Since it is global system settings, move this to the settings controller so the C++ backend can also use it. like Date/Time formats. - for (const QString &key : _Settings.keys(category, group)) { - keys.append(key); - } - for (const auto &key : qAsConst(keys)) { // DEBUG: qDebug() << " ~~~~~~~~~~ " << category << group << key << _Settings.value(category, group, key).toString (); QVariantMap keyValue;