@startuml Recirculate 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.] == Recirculate Set Up == SW -> UI: CMD: Read instructions config file UI -> US: ACT: Display interactible instructions US -> UI: TCH: End Treatment Button UI -> SW: ACT: :Recirculate Command SW -> TD: MSG: [xA6: Req #1] Recirculate Command Request\n\ \t(U32) cmd=REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT TD -> SW: MSG: [xA7: Rsp #2] Recirculate Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason alt accepted TD -> SW: ACT: Go to end treatment SW -> UI: ACT: Show Post Treatment UI -> US: ACT: Post Treatment else #Pink rejected SW -> UI: CMD: Recirculate Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end US -> UI: TCH: Start Recirculate Button UI -> SW: ACT: :Recirculate Command SW -> TD: MSG: [xA6: Req #1] Recirculate Command Request\n\ \t(U32) cmd=REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_DISCONNECT TD -> SW: MSG: [xA7: Rsp #2] Recirculate Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason alt accepted TD -> SW: MSG: [x3C: Dat #10] Treatment State\n\ \t(U32) treatmentSubMode=4\n\ \t(U32) bldPrimeState=X\n\ \t(U32) dialysisState=X\n\ \t(U32) isoUFState=X\n\ \t(U32) txStopState=X\n\ \t(U32) rinsebackState=X\n\ \t(U32) txRecircState=X\n\ \t(U32) txEndState=X\n\ \t(U32) txSalBolusState=X\n\ \t(U32) txHepState=X SW -> UI: CMD: Treatment State - Recirculate Run UI -> US: ACT: Show Recriculate Progress page else #Pink rejected SW -> UI: CMD: Recirculate Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end == Recirculate In Progress == TD -> SW: MSG: [xA8: Rsp #2] Recirculate Data\n\ \t(U32) Timeout\n\ \t(U32) Countdown SW -> UI: CMD: Recirculate Progress Data UI -> US: ACT: Display Recriculate Progress US -> UI: TCH: End Treatment Button UI -> SW: ACT: :Recirculate Command SW -> TD: MSG: [xA6: Req #1] Recirculate Command Request\n\ \t(U32) cmd=REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT TD -> SW: MSG: [xA7: Rsp #2] Recirculate Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason alt accepted TD -> SW: ACT: Go to end treatment SW -> UI: ACT: Show Post Treatment UI -> US: ACT: Post Treatment else #Pink rejected SW -> UI: CMD: Recirculate Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end US -> UI: TCH: Rsume Treatment Button UI -> SW: ACT: :Recirculate Command SW -> TD: MSG: [xA6: Req #1] Recirculate Command Request\n\ \t(U32) cmd=REQUESTED_USER_ACTION_TX_RECIRC_RECONNECT TD -> SW: MSG: [xA7: Rsp #2] Recirculate Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason alt accepted TD -> SW: MSG: [x3C: Dat #10] Treatment State\n\ \t(U32) treatmentSubMode=4\n\ \t(U32) bldPrimeState=X\n\ \t(U32) dialysisState=X\n\ \t(U32) isoUFState=X\n\ \t(U32) txStopState=X\n\ \t(U32) rinsebackState=X\n\ \t(U32) txRecircState=X\n\ \t(U32) txEndState=X\n\ \t(U32) txSalBolusState=X\n\ \t(U32) txHepState=X SW -> UI: CMD: Treatment State - Recirculate Reconnect Patien UI -> US: ACT: Show Reconnect to patient page else #Pink rejected SW -> UI: CMD: Recirculate Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end == Recirculate Reconnect to patient == SW -> UI: CMD: Read instructions config file UI -> US: ACT: Display interactible instructions US -> UI: TCH: End Treatment Button UI -> SW: ACT: :Recirculate Command SW -> TD: MSG: [xA6: Req #1] Recirculate Command Request\n\ \t(U32) cmd=REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT TD -> SW: MSG: [xA7: Rsp #2] Recirculate Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason alt accepted TD -> SW: ACT: Go to end treatment SW -> UI: ACT: Show Post Treatment UI -> US: ACT: Post Treatment else #Pink rejected SW -> UI: CMD: Recirculate Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end US -> UI: TCH: Resume Treatment Button UI -> SW: ACT: :Recirculate Command SW -> TD: MSG: [xA6: Req #1] Recirculate Command Request\n\ \t(U32) cmd=REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_RECONNECT TD -> SW: MSG: [xA7: Rsp #2] Recirculate Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason alt accepted TD -> SW: MSG: [x3C: Dat #10] Treatment State\n\ \t(U32) treatmentSubMode=4\n\ \t(U32) bldPrimeState=X\n\ \t(U32) dialysisState=X\n\ \t(U32) isoUFState=X\n\ \t(U32) txStopState=X\n\ \t(U32) rinsebackState=X\n\ \t(U32) txRecircState=X\n\ \t(U32) txEndState=X\n\ \t(U32) txSalBolusState=X\n\ \t(U32) txHepState=X SW -> UI: CMD: Treatment State - Dialysis UI -> US: ACT: Show Main Treatment Screen else #Pink rejected SW -> UI: CMD: Recirculate Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end @enduml