Index: sources/storage/TreatmentLog.cpp =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe --- sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) @@ -25,6 +25,8 @@ using namespace Storage; +#define ADDTITLE(vTITLE) logContent += QString("[%1]\n").arg(vTITLE) +#define ADDALINE(vTEXT ) logContent += QString("%1\n" ).arg(vTEXT ) #define ADDTOLOG(vINDEX) index = vINDEX; logContent += _titles[index] + sep + _values[index] + sep + _units[index] + "\n"; /*! @@ -62,8 +64,6 @@ // qDebug() << _Settings.groups(); // SRSUI910 : PRS187 : Clinical - Data - Order - - QString mTreatmentDuration = QTime (0, 0).addSecs(vData.mTreatmentDuration ).toString("HH:mm"); QString mActualTreatmentDuration = QTime (0, 0).addSecs(vData.mActualTreatmentDuration ).toString("HH:mm"); QString mTreatmentDateTime = QDateTime::fromSecsSinceEpoch ( vData.mTreatmentDateTime ).toString("yyyy/MM/dd HH:mm"); @@ -120,6 +120,14 @@ _values[eEndTreatmentEarlyAlarm ] = mStrText.arg(vData.mEndTreatmentEarlyAlarm ); } +/*! + * \brief TreatmentLog::append + * \param vData - the received data to be kept in the list to be appended at the end of the Treatment Log + */ +void TreatmentLog::append(const TreatmentLogAvrgeData &vData) { _treatmentLogAvrgeData.append(vData); } +void TreatmentLog::append(const TreatmentLogAlarmData &vData) { _treatmentLogAlarmData.append(vData); } +void TreatmentLog::append(const TreatmentLogEventData &vData) { _treatmentLogEventData.append(vData); } + // ----- Save /*! * \brief TreatmentLog::doSave @@ -156,13 +164,18 @@ QString logContent; QString sep = ","; + QString csv = "%1" + sep; uint index = 0; - logContent += tr("Patient ID") + sep + QString("None") + "\n"; - + const char *NONE = "N/A"; + ADDTITLE("Title"); + ADDALINE(csv.arg(tr("Patient Name")) + NONE ); + ADDALINE(csv.arg(tr("Patient ID" )) + NONE ); + ADDTOLOG( eTreatmentDateTime ); ADDTOLOG( eDeviceID ); + + ADDTITLE("Treatment Parameters" ); ADDTOLOG( eBloodFlowRate ); ADDTOLOG( eDialysateFlowRate ); - ADDTOLOG( eTreatmentDuration ); ADDTOLOG( eActualTreatmentDuration ); ADDTOLOG( eAcidConcentrateType ); ADDTOLOG( eBicarbonateConcentrateType ); @@ -177,22 +190,65 @@ ADDTOLOG( eHeparinBolusVolume ); ADDTOLOG( eHeparinDispenseRate ); ADDTOLOG( eHeparinStop ); - ADDTOLOG( eHeparinDeliveredVolume ); - ADDTOLOG( eTreatmentDateTime ); - ADDTOLOG( eWaterSampleTestResult ); + + ADDTITLE("Treatment Parameters" ); + ADDTITLE(csv.arg(tr("Start Time")) + NONE ); + ADDTITLE(csv.arg(tr("End Time" )) + NONE ); + ADDTOLOG( eTreatmentDuration ); + + ADDTITLE("Post-Treatment Data" ); ADDTOLOG( eDialysateVolumeUsed ); ADDTOLOG( eTargetUFVolume ); ADDTOLOG( eActualUFVolume ); + ADDTOLOG( eSalineBolusVolume ); + ADDTOLOG( eHeparinDeliveredVolume ); + + ADDTITLE("Extra" ); + ADDTOLOG( eWaterSampleTestResult ); ADDTOLOG( eTargetUFRate ); ADDTOLOG( eActualUFRate ); - ADDTOLOG( eSalineBolusVolume ); ADDTOLOG( eAverageBloodFlow ); ADDTOLOG( eAverageDialysateFlow ); ADDTOLOG( eAverageDialysateTemp ); ADDTOLOG( eAverageArterialPressure ); ADDTOLOG( eAverageVenousPressure ); ADDTOLOG( eEndTreatmentEarlyAlarm ); + ADDTITLE("Treatment Data" ); + for ( const TreatmentLogAvrgeData &item : _treatmentLogAvrgeData ) { + QString line; + line += csv.arg(item.mTimeStamp); + line += csv.arg(NONE); + line += csv.arg(item.mBloodFlowRate); + line += csv.arg(item.mDialysateFlowRate); + line += csv.arg(item.mUFRate); + line += csv.arg(item.mArterialPressure); + line += csv.arg(item.mVenousPressure); + line += csv.arg(item.mSystolic); + line += csv.arg(item.mDiastolic); + line += csv.arg(item.mHeartRate); + ADDALINE(line); + } + + ADDTITLE("Treatment Alarms" ); + for ( const TreatmentLogAlarmData &item : _treatmentLogAlarmData ) { + QString line; + line += csv.arg(item.mTimeStamp); + line += csv.arg(item.mAlarmID); + line += csv.arg(item.mParam1); + ADDALINE(line); + } + + ADDTITLE("Treatment Events" ); + for ( const TreatmentLogEventData &item : _treatmentLogEventData ) { + QString line; + line += csv.arg(item.mTimeStamp); + line += csv.arg(item.mEventID); + line += csv.arg(item.mOldValue); + line += csv.arg(item.mNewValue); + ADDALINE(line); + } + QString mDateTime = _values[eTreatmentDateTime]; mDateTime.replace("/", "" ); // remove date separator mDateTime.replace(":", "" ); // remove time separator