@startuml Rinseback 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.] == Rinseback Screen Open == TD -> SW: MSG: [x3C: Dat 4, X, X, X, X, 1]\nTreatment State SW -> UI: CMD: Treatment State - Rinsback Run UI -> US: ACT: Rinseback Screen == Rinseback Progess == TD -> SW: MSG: [x8F: Dat targetVol, deliveredVol, flowRate, timeout, countdown, isCompleted]\nRinseback Progress SW -> UI: CMD: Rinseback Progress Data UI -> US: ACT: Display Rinseback Progress == Rinseback Command Request/Response == US -> UI: TCH: Rinseback Screen Interation UI -> SW: ACT: Rinseback Command SW -> TD: MSG: [x90: Req cmd]\nRinseback Command Request alt accepted TD -> SW: MSG: [x91: Rsp 1, X]\nRinseback Command Response SW -> UI: CMD: Rinseback Command Adjustment Triggered UI -> US: ACT: Update Rinseback Screen else rejected TD -> SW: MSG: [x91: Rsp 0, rejectionReason]\nRinseback Command Response SW -> UI: CMD: Rinseback Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end @enduml