@startuml Treatment_Logs participant TD as TD participant SW as SW participant UI as UI actor USER as US 'Possible actions and interaction tuypes ' TD -> SW: MSG: Message ' SW -> TD: MSG: Message ' SW -> UI: CMD: command ' UI -> SW: ACT: Action ' US -> UI: User actions are: ' ENT: User enters a value or string ' TCH: User touches a button (RadioButton, CheckBox, ...) ' SET: User sets/slides a slider ' SCL: User scrolls a flipable area ' 'Messages conventions: '[x ,] \n '[x ,# certain amount of parameters according to the content] \n '[x ,X The rest of the parameters do not matter.] \n == Log Data Collection during Treatment == loop Treatment Log Alarm Data TD -> SW: MSG: [x6A: #3] Event: \ \n\t(U32) mAlarmID \ \n\t(F32) mParam1 \ \n\t(F32) mParam2 end loop Treatment Log Event Data TD -> SW: MSG: [x6B: #3] Event: \ \n\t(U32) mEventID \ \n\t(F32) mOldValue \ \n\t(F32) mNewValue end loop Treatment Log Average Periodic Data TD -> SW: MSG: [xAD: #7] Event: \ \n\t(U32) mBloodFlowRate \ \n\t(F32) mDialysateFlowRate \ \n\t(F32) mUFRate \ \n\t(F32) mArterialPressure \ \n\t(F32) mVenousPressure \ \n\t(F32) mTMPPressure \ \n\t(F32) mDialysateTemp end == Post Treatment == UI -> SW: ACT: Post Treatment logs Request SW -> TD: MSG: [xA9: #0] Req: Post Treatment logs Request TD -> SW: MSG: [xAA: #62] Rsp: \ \n\t(U32) mAccepted \ \n\t(U32) mReason \ \n\t(U32) mBloodFlowRate \ \n\t(U32) mBloodFlowRateActual \ \n\t(U32) mDialysateFlowRate \ \n\t(U32) mDialysateFlowRateActual \ \n\t(U32) mTreatmentDuration \ \n\t(U32) mTreatmentDurationActual \ \n\t(U32) mAcidConcentrateType \ \n\t(U32) mAcidConcentrateTypeActual \ \n\t(U32) mBicarbonateCartridgeSize \ \n\t(U32) mBicarbonateCartridgeSizeActual \ \n\t(U32) mPotassiumConcentration \ \n\t(U32) mPotassiumConcentrationActual \ \n\t(U32) mCalciumConcentration \ \n\t(U32) mCalciumConcentrationActual \ \n\t(U32) mBicarbonateConcentration \ \n\t(U32) mBicarbonateConcentrationActual \ \n\t(U32) mSodiumConcentration \ \n\t(U32) mSodiumConcentrationActual \ \n\t(U32) mVitalsInterval \ \n\t(U32) mVitalsIntervalActual \ \n\t(U32) mDialyzerType \ \n\t(U32) mTreatmentStartEpoch \ \n\t(U32) mTreatmentEndEpoch \ \n\t(U32) mFluidBolusVolume \ \n\t(U32) mFluidBolusVolumeActual \ \n\t(U32) mHeparinType \ \n\t(U32) mHeparinDeliveryDuration \ \n\t(U32) mHeparinDeliveryDurationActual TD -> SW: ... \ \n\t(U32) mTreatmentModality \ \n\t(U32) mTreatmentModalityActual \ \n\t(U32) mHDFOperatingMode \ \n\t(U32) mHDFOperatingModeActual \ \n\t(U32) mHepatitisStatus \ \n\t(F32) mDialysateTemperature \ \n\t(F32) mDialysateTemperatureActual \ \n\t(F32) mDialysateVolumeUsed \ \n\t(F32) mHeparinBolusVolume \ \n\t(F32) mHeparinBolusVolumeActual \ \n\t(F32) mHeparinDispenseRate \ \n\t(F32) mHeparinDispenseRateActual \ \n\t(F32) mHeparinDeliveredVolume \ \n\t(F32) mUFVolume \ \n\t(F32) mUFVolumeActual \ \n\t(F32) mUFVolumeTarget \ \n\t(F32) mUFRate \ \n\t(F32) mUFRateActual \ \n\t(F32) mUFRateTarget \ \n\t(F32) mSubstitutionVolume \ \n\t(F32) mSubstitutionVolumeActual \ \n\t(F32) mSubstitutionVolumeTarget \ \n\t(F32) mSubstitutionRate \ \n\t(F32) mSubstitutionRateActual \ \n\t(F32) mSubstitutionRateTarget \ \n\t(F32) mIsoUfVolume \ \n\t(F32) mIsoUfVolumeActual \ \n\t(F32) mIsoUfVolumeTarget \ \n\t(F32) mIsoUfRate \ \n\t(F32) mIsoUfRateActual \ \n\t(F32) mIsoUfRateTarget TD -> SW: ... \ \n\t(F32) mWaterSampleTestResult SW -> SW: ACT: Populate data model with collected data \ \n\t Write data to log file \ \n\t Save log file with unique name @enduml