@startuml Trends participant DD as DD participant TD as TD participant SW as SW participant UI as UI actor USER as US 'Possible actions and interaction types ' 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 \n ,# certain amount of parameters according to the content] '[x \n ,X The rest of the parameters do not matter.] note over UI See Vitals SDD for details on Vitals Interval Timer end note == Trends Data - Data Collection == DD -> SW: MSG: [x1F: Data]\nDD Conductivity Data SW -> SW: ACT: Cache Collected Data TD -> SW: MSG: [x24: Data]\nPressure Data SW -> SW: ACT: Cache Collected Data TD -> SW: MSG: [x3D: Data]\nSaline Bolus Data SW -> SW: ACT: Cache Collected Data TD -> SW: MSG: [x3E: Data]\nUltrafiltration Data SW -> SW: ACT: Cache Collected Data TD -> SW: MSG: [x4F: Data]\nSet Point Data SW -> SW: ACT: Cache Collected Data == Trends History - Data Collection == TD -> SW: MSG: [x3B: id]\nTreatment Log Alarm SW -> SW: Store Treatment Log Alarm data SW -> UI: CMD: Display new Trend History entry TD -> SW: MSG: [x3D: eventId]\nTreatment Log Event SW -> SW: Store Treatment Log Event data SW -> UI: CMD: Display new Trend History entry == Interval Timer Timeout== SW -> SW: ACT: Interval Timer Timeout SW -> UI: ACT: onDidTimeout alt Interval is OFF UI -> SW: ACT: onNoVitalsRecord SW -> SW: ACT: Record cached Trend Data as new entry (no Vitals) SW -> UI: CMD: Display new Trend Data entry SW -> SW: ACT: Clear Cached Data else Interval is ON alt Blood Pressure Cuff is Enabled UI -> SW: ACT: onIntervalRequestVitals SW -> SW: ACT: Snapshot and Timestamp Cached Data SW -> TD: MSG: [x63: Req]\nVitals Request alt accepted TD -> SW: MSG: [x64: Rsp 1]\nVitals Response alt Vitals Received TD -> SW: MSG: [x65: Data]\nVitals Data SW -> SW: ACT: Record cached Trend Data and Vitals Data as new entry SW -> UI: CMD: Display new Trend Data entry SW -> SW: ACT: Clear Cached Data else Vitals Wait 2 Minute Timeout SW -> UI: CMD: onDidTimeout UI -> SW: ACT: onIntervalTimeoutVitals SW -> SW: ACT: Record snapshot Trend Data as new entry SW -> UI: CMD: Display new Trend Data entry SW -> SW: ACT: Clear Cached Data end else rejected TD -> SW: MSG: [x64: Rsp 0]\nVitals Response SW -> UI: CMD: Vitals Request Adjustment Triggered UI -> US: ACT: Manual Vitals Pop-up US -> UI: TCH: Enter Manual Vitals Measurement UI -> SW: ACT: onManualVitals SW -> SW: ACT: Record Trend Data entry SW -> UI: CMD: Display new Trend Data entry SW -> SW: ACT: Clear Cached Data end end end == Clearing Trends Data and Trends History == TD -> SW: MSG: [0x12: Data]\nTD OpMode SW -> UI: InTreatment UI -> SW: doClearData SW -> SW: Clear Trends Data and History @enduml