@startuml Vitals participant TD as TD participant SW as SW participant UI as UI actor USER as US 'Possible actions and interaction types ' External on CANBus ' TD -> SW: MSG: Message ' SW -> TD: MSG: Message ' Internal to the application ' XX -> YY: CMD: Command ' XX -> XX: ACT: Action ' External on OS/FS ' SW -> Script: ACT: Command ' Script -> OS: CMD: Command ' Script -> SW: MSG: Message ' OS -> Script: MSG: Message ' US -> UI: User actions are: ' ASK: Display a ' ENT: User enters a value or string ' TCH: User touches a button (RadioButton, CheckBox, ...) ' SCL: User scrolls a flip-able area == Vitals (Automatic) == loop QTimerEvent SW ->o SW: ⟲: ACT: Blood Pressure Measurement Interval Timeout end SW -> UI: ACT: Notify UI timer interval timeout UI -> SW: ACT: Request Vitals SW -> TD: MSG: [x63: #0] Request Vitals TD -> SW: MSG: [x64: #2] \ \n\tResponse: \ \n\t(U32) mAccepted\ \n\t(U32) mReason SW -> UI: ACT: Vitals Response alt Accepted group Vitals_Data UI --> UI: ... end UI -> UI: ACT: Populate all UI fields with Vitals Data UI -> US: ACT: Display updated Vitals Data \ \n\t Display last read measurement date/time \ \n\t Animiate vitals heart icon else #Pink Rejected UI -> US: ACT: Prompt vitals popup \ \n\t Notify User displaying rejection reason group Vitals (Popup) UI --> UI: ... end end UI -> SW: ACT: Confirm Vitals from integrated blood pressure cuff SW -> SW: ACT: Log Vitals \ \n\tRestart Timer == Vitals (Popup) == US -> UI: TCH: Press Vitals Headerbar icon button\tor \ \nACT: Failed check for integrated blood pressure cuff group Manual US -> UI: ENT: Enter Vitals data \ \n\t-Systolic \ \n\t-Diastolic \ \n\t-HeartRate US -> UI: TCH: Press Confirm end group Automatic US -> UI: TCH: Press Measure Vitals group Vitals (Automatic) UI --> UI: ... alt Accepted UI -> UI: ACT: Close Popup else #Pink Rejected UI -> US: ACT: Notify User displaying rejection reason end end end !include common_puml/Vitals_Data.puml @enduml