Understanding Vocera Assignment Manager Adapter Operations for Integrations

The adapter handles assignment state transitions, patient-based assignment management, and location changes.

The Vocera Assignment Manager Adapter performs the following functions, as described in this page:

See the Vocera Assignment Manager Adapter configuration documentation to create and manage the adapter in the Vocera system.

Initial Assignment State

The Vocera Assignment Manager Adapter receives subscription messages for newly created assignments and checks if they have a state. If not, their state is set to "next" and their assigned_at timestamp is set to the current time (unless already set). To catch new assignments created while the adapter is not running, at startup it also checks for all assignments without a state and updates them using the same rules.

State Transitions

Once a minute, the Vocera Assignment Manager Adapter queries for assignments which need to have their state changed. In particular it looks for:

Assignments found will have their state changed (to "active" for the first group, to "deleted" for the second group, and to "expired" for the third group) and the current time recorded in the appropriate field for the state change ("accepted_at" for the first group and "ended_at" for the second and third groups).

The adapter confirms that there are no queued requests for state change before trying to check for any more state changes to send. This keeps the adapter from queuing the same requests multiple times. When there are still queued events, the adapter audits that it is pausing processing until processing can catch up. When the queued events have cleared, it then audits that processing is resuming.

Patient Based Assignment Management

Patient-based assignments are based on a link to the PATIENTS dataset ("patient"). If the link exists, the assignment is considered patient-based. It is assumed to be set at assignment creation and never updated.

When a patient-based assignment is created (and its state has been initially transitioned to "next"), its location will be checked to see if it matches the patient's current bed (or lack thereof). If it does not:

When a patient's status changes to a non-admitted state, all "active" assignments for that patient will be transitioned to "expired" and all "next" assignments for that patient will be transitioned to "deleted".

When a patient's assigned bed is changed, a location is found or created matching the new bed (if there is one) and their patient-based assignments are updated as follows:

To catch changes that occur while the adapter is not running, at startup the adapter checks all patient-based assignments with "next" or "active" states and:

Copying Assignments on Location Change

For active assignments (unless the assignment is new and has no current location), the location is changed by expiring the current record and creating a copy of the record with the new location. This process has the following characteristics:

Locations to Use for Changes

The locations used for patient-based assignments will be created by the Vocera Assignment Manager Adapter on an as-needed basis based on a patient's bed (and its linked room). The location id will be based on the bed's record id, with a prefix unique to the assignment manager. The location will be linked to the facility for the room, the bed, and the unit for the room. Its name will be derived from the room and bed numbers.

Rate Limiting Assignment Updates

To keep from overwhelming Vocera Platform by flooding it with updates (such as at shift change), the Vocera Assignment Manager Adapter limits the number of updates it will process at a time. The limit is set to 4000 / minute (actually 66 / second). Updates are queued up (with a maximum depth number of 10000) and the queue is checked every second, processing at most the per-second limit on each check. The per-minute limit and queue limits are configurable as interface properties.