Validation

Table Of Contents

Alert Types

  1. No guarantee of delivery or read
  2. Guarantee of delivery but not read
  3. Guarantee of delivery and read (decide to do something if not read in x period of time)

 This implementation supports alerts of the second type: Guarantee of delivery but not read.

Alerts are no longer sent to the inbox of particular users. Alerts are now related to one or more Patients. Whether a User can see an alert or not is resolved in runtime when the User's inbox is generated. This not only guarantees delivery but also allow Alerts to be automatically shared among different Users associated to a single Patient. It is no longer required to cleanup or transfer alerts after the shift of a patient ends. 

Alerts to specific roles and users are also supported.

Scenarios

Scenario 1: Patient Alert -> Associated Nurse

A form is submitted (or because of timer), an alert generated and sent to one or more nurses caring for the patient that shift

Configuration

AlertConfiguration table:

IdNameDescriptionAlertKeyWorkspaceIdSendNotification
1RuleX RuleXpodatrue

AlertConfigurationRoleRecipient table:

IdAlertConfigurationIdRoleId
111 (i.e. nurse)

RolePermission talbe:

IdRoleIdPermissionNameOrganizationId
11read_alerts_only_from_associated_patients 

If we want the alert to be available only to providers that are currently associated with the patient the targeted provider's role must have 'read_alerts_only_from_associated_patients' permission. Otherwise, the alert will be visible in the provider's inbox no matter if he/she is currently associated to the patient or not.

Alert

Alerts table:

IdTimestampTitleDescriptionPayloadPriorityAlertConfigurationIdStatusUserId
12014-08-05 10:00:00Rule X was fired--High1NewUserX (or NULL if the rule was triggered by a timer)

AlertStatusAudit table:

IdAlertIdStatusTimestampUserId
11New2014-08-05 10:00:00UserX (or NULL if the rule was triggered by a timer)

AlertPatient table:

IdAlertIdPatientId
11patientX

Any user with 'read_alerts_only_from_associated_patients' permission will get this alert in his/her inbox when associated with patientX.

Scenario 2.a: Patient Alert -> Role

A form is submitted (by userX regarding patientX), an alert generated and sent to the charge nurse on that shift

An alert originally sent to a nurse is not read according to requirements, and is then sent to the charge nurse on that shift

The last sentence is not currently supported by this implementation. A workaround could be to configure the Alert to be sent to both: associated nurses and the charge nurse (Scenario 2.b)

Configuration

AlertConfiguration table:

IdNameDescriptionAlertKeyWorkspaceIdSendNotification
1RuleX RuleXpodatrue

AlertConfigurationRoleRecipient table:

IdAlertConfigurationIdRoleId
112 (i.e. charge_UNC)

Alert

Alerts table:

IdTimestampTitleDescriptionPayloadPriorityAlertConfigurationIdStatusUserId
12014-08-05 10:00:00Rule X was fired--High1NewUserX

AlertStatusAudit table:

IdAlertIdStatusTimestampUserId
11New2014-08-05 10:00:00UserX

AlertPatient table:

IdAlertIdPatientId
11patientX

A nurse (whose role has 'read_alerts_only_from_associated_patients' permission) will not be able to see the Alert even if she is associated to patientX. This is because the Alert is associated to an AlertConfiguration that only has charge_UNC role as a recipient.

A nurse with charge_UNC role will receive this alert in her inbox and a notification in any device she is logged in.

Scenario 2.b: Patient Alert -> Role and Nurses

A form is submitted (by userX regarding patientX), an alert generated and sent to the charge nurse on that shift and to any nurse associated with the patient

Configuration

AlertConfiguration table:

IdNameDescriptionAlertKeyWorkspaceIdSendNotification
1RuleX RuleXpodatrue

AlertConfigurationRoleRecipient table:

IdAlertConfigurationIdRoleId
112 (i.e. charge_UNC)
211 (i.e. nurse_UNC)

Alert

Alert table:

IdTimestampTitleDescriptionPayloadPriorityAlertConfigurationIdStatusUserId
12014-08-05 10:00:00Rule X was fired--High1NewUserX

AlertStatusAudit table:

IdAlertIdStatusTimestampUserId
11New2014-08-05 10:00:00UserX

AlertPatient table:

IdAlertIdPatientId
11patientX

Scenario 3: Patient Alert -> Named Individual

A form is submitted, an alert generated and sent to Marty McCaffrey

Configuration

AlertConfiguration table:

IdNameDescriptionAlertKeyWorkspaceIdSendNotification
1RuleX RuleXpodatrue

AlertConfigurationUserRecipient table:

IdAlertConfigurationIdUserId
11marty_mccaffrey

Alert

Alert table:

IdTimestampTitleDescriptionPayloadPriorityAlertConfigurationIdStatusUserId
12014-08-05 10:00:00Rule X was fired--High1NewUserX

AlertStatusAudit table:

IdAlertIdStatusTimestampUserId
11New2014-08-05 10:00:00UserX

AlertPatient table:

IdAlertIdPatientId
11patientX

Workflows

Workflow A: Core pattern

A nurse starts her shift, scans her patients, and submits a form.  An alert is generated for the patient and sent to her device.

This is supported as long as:

  • The nurse's role has 'read_alerts_only_from_associated_patients' permission
  • The rule that fired has an entry in AlertConfiguration table that is associated to an AlertConfigurationRoleRecipient containing nurse's role as a recipient
  • For the notification to occurr, the following must be true:
    • The nurse is at least registered in one device
    • The rule that fired has an entry in AlertConfiguration table with SendNotification field = true

Workflow B: Change of shift pattern

A nurse starts her shift, scans her patients, and her inbox is populated with all unread alerts for that patient.
A Charge Nurse starts her shift and her inbox is populated with all unread alerts for her role.
A Second Charge Nurse starts the same shift and her inbox is populated with all the same unread alerts for her role.

As soon as the nurse is associated with a patient, any previous Alert of this patient is going to be present in nurse's inbox. Any new alert for this patient will also be received by this nurse (as long as the prerequisites in Workflow A are fulfilled).

The charge nurse's inbox will contain all the alerts (unread and not) for her role as long as:

  • The nurse's role doesn't have 'read_alerts_only_from_associated_patients' permission
  • The Alert has an entry in AlertConfiguration table that has nurse's role as an AlertConfigurationRoleRecipient table
  • Optional: if then nurse's role has 'read_alerts_from_entire_organization' permission, the nurse will receive any Alert from the entire Organization that has her role as a recipient. Otherwise, only Alerts from the same Facility where she belongs having her role as a recipient will be shown.

The second charge nurse will be affected by the same behavior explained before. Any Alert received by charge nurse #1 will be received by charge nurse #2. No special configuration is required.

Workflow C: Intra-shift device association - alerting

A nurse swaps out her device because the batter is dead.  She places her old device on the charger and the device is automatically disassociated from her. She forgets to log in and associate herself to the new device. Later that shift an alert is generated for her patient and an alert is sent.  The device does not ring or vibrate.  Alerts are escalated as required. 

The generated alert will be placed in nurse's inbox as long as she remains associated to the patient. The notification will not be sent given that the nurse doesn't have any active device.

The current implementation doesn't support Alert escalation though.

Alert escalation is not currently supported

Workflow D: Alert status is synchronized among different inboxes

A user of the device logins in and sees three unread alerts for her patient.  She reads one.  When she returns she only sees one remaining unread alert, because another nurse has, in the interim, read one of the remaining unread alerts.

Given that alerts don't belong to any specific User anymore, their status is shared among all the users having access to them.