Index: SDDs/Vitals.png =================================================================== diff -u -r056dea73bfbee3d11692397b3d469e8d3747f74f -r1e4152b2b0392fc68f3b0e01459f5201913f5d7b Binary files differ Index: SDDs/Vitals.puml =================================================================== diff -u -r056dea73bfbee3d11692397b3d469e8d3747f74f -r1e4152b2b0392fc68f3b0e01459f5201913f5d7b --- SDDs/Vitals.puml (.../Vitals.puml) (revision 056dea73bfbee3d11692397b3d469e8d3747f74f) +++ SDDs/Vitals.puml (.../Vitals.puml) (revision 1e4152b2b0392fc68f3b0e01459f5201913f5d7b) @@ -25,38 +25,61 @@ ' 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 + + == Vitals Sequence and Interval Schedule == + US -> UI: TCH: Create Rx: Select Vitals Interval (Ex. 15 min) + US -> UI: TCH: Validate and Confirm Rx + UI -> SW: ACT: Start Timer + SW -> SW: ACT: calculate time until next 15-min mark + note left: e.g. if time is 10:07 → delay = 8 minutes + SW -> UI: ACT: Update UI on current progress until next interval + + ... Time passes ... + loop QTimer - Every 15 minutes + group Interval Timeout + SW --> SW: ... + end 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 + note right: Action runs at 10:15, 10:30, 10:45, etc... - alt Accepted - group Vitals_Data + == Interval Timeout == + SW -> UI: ACT: Notify UI timer interval timeout + group Vitals (Automatic) 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 + + US --> UI: ⟲: Wait For BP Cuff to get measurement + note left: e.g. Requested at 10:15.\nMeasurement wait time may be range from 0-2 min. + ... Time passes ... + + alt Accepted + group Vitals_Data + UI --> UI: ... + end + UI -> UI: ACT: Populate all UI fields with Vitals Data + UI -> US: ACT: Display last read measurement date/time \ + \n\t Animiate vitals heart icon \ + \n\t Log Vitals + note left: e.g. Log time may be at 10:15-10:17 + + 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 (Automatic) == + 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 + + == Vitals (Popup) == US -> UI: TCH: Press Vitals Headerbar icon button\tor \ \nACT: Failed check for integrated blood pressure cuff @@ -66,6 +89,10 @@ \n\t-Diastolic \ \n\t-HeartRate US -> UI: TCH: Press Confirm + UI -> UI: ACT: Populate all UI fields with Vitals Data + UI -> US: ACT: Display last recorded measurement date/time \ + \n\t Animiate vitals heart icon \ + \n\t Log Vitals end group Automatic US -> UI: TCH: Press Measure Vitals