@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 #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 - Rinsback Run UI -> US: ACT: Rinseback Screen == Rinseback Progress == TD -> SW: MSG: [x8F: Dat #6] Rinseback Progress\n\ \t(F32) targetRinsebackVolumeMl\n\ \t(F32) deliveredRinsebackVolumeMl\n\ \t(U32) rinsebackFlowRateMlMin\n\ \t(U32) timeout\n\ \t(U32) countdown\n\ \t(BOOL) isCompleted 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 #1] Rinseback Command Request (Pause/Resume/Stop/etc)\n\ \t(U32) cmd alt accepted TD -> SW: MSG: [x91: Rsp #2] Rinseback Command Response\n\ \t(BOOL) accepted=1\n\ \t(U32) rejReason=X SW -> UI: CMD: Rinseback Command Adjustment Triggered UI -> US: ACT: Update Rinseback Screen else #Pink rejected TD -> SW: MSG: [x91: Rsp #2] Rinseback Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason SW -> UI: CMD: Rinseback Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end == Rinseback Command Request/Response == US -> UI: TCH: Rinseback Screen Interation UI -> SW: ACT: Rinseback Command SW -> TD: MSG: [x90: Req #1] Rinseback Command Request\n\ \t(U32) cmd=\n\ \t\t[ CONFIRM_START |\n\ \t\tINCREASE_RATE |\n\ \t\tDECREASE_RATE |\n\ \t\tPAUSE |\n\ \t\tRESUME |\n\ \t\tEND |\n\ \t\tADDITIONAL |\n\ \t\tCONFIRM_DISCONNECT |\n\ \t\tEND_TREATMENT |\n\ \t\tBACK_TO_TREATMENT ] alt accepted TD -> SW: MSG: [x91: Rsp #2] Rinseback Command Response\n\ \t(BOOL) accepted=1\n\ \t(U32) rejReason=X SW -> UI: CMD: Rinseback Command Adjustment Triggered UI -> US: ACT: Update Rinseback Screen else #Pink rejected TD -> SW: MSG: [x91: Rsp #2] Rinseback Command Response\n\ \t(BOOL) accepted=0\n\ \t(U32) rejReason SW -> UI: CMD: Rinseback Command Adjustment Triggered UI -> US: ACT: Display Rejection Reason end @enduml