Maintaining clinical messaging during an internet outage
Various techniques for facilitating communication with and across a clinical environment and a cloud environment are described. For example, a method for providing messaging in a clinical environment during a network outage is described. During a network outage, messages in the queue may become stale. A connectivity adapter may remove those messages from the queue. When the network connection is restored, the connectivity adapter may transmit any remaining messages in the queue.
1 . A method for providing messaging in a clinical environment, the method comprising:
storing a plurality of messages in a message queue for transmission to a remote server, wherein the plurality of messages contain information about one or more medical devices residing in the clinical environment, the plurality of messages stored in the message queue including at least a first message associated with a first infusion pump event and a second message associated with a second infusion pump event;
detecting a network outage associated with the remote server that prevents the plurality of messages in the message queue from being transmitted to the remote server;
subsequent to detecting the network outage, determining whether any of the plurality of messages in the message queue has become stale by satisfying one or more time-based conditions for being removed from the message queue without being transmitted to the remote server, wherein the first message satisfies the one or more time-based conditions based at least in part on a threshold amount of time having elapsed since a first event time associated with the first infusion pump event in a manner that would cause the first message to be removed from the message queue without being transmitted to the remote server, and the second message does not satisfy the one or more time-based conditions based at least in part on the threshold amount of time not yet having elapsed since a second event time associated with the second infusion pump event in a manner that would not cause the second message to be removed from the message queue without being transmitted to the remote server;
in response to determining that the first message satisfies the one or more time-based conditions, removing the first message without transmitting the first message to the remote server;
detecting a resolution of the network outage that allows transmission of one or more messages in the message queue to the remote server to be resumed; and
subsequent to the resolution of the network outage, transmitting the second message, which was previously determined not to satisfy the one or more time-based conditions, to the remote server.
2 . The method of claim 1 , further comprising attempting, prior to determining that the first message is stale, to transmit the first message to the remote server, and determining that the first message was not received by the remote server.
3 . The method of claim 1 , further comprising, prior to determining that the first message is stale, determining that an acknowledgement from the remote server has not been received within a time period.
4 . The method of claim 1 , further comprising, prior to detecting the network outage, receiving a message from the remote server that a connection to the remote server is terminated.
5 . The method of claim 1 , wherein determining that the first message is stale further comprises determining that the first message is the oldest message in the message queue.
6 . The method of claim 1 , wherein determining that the first message is stale further comprises determining that the message queue is full.
7 . The method of claim 1 , further comprising determining that a message is stale based on determining, based on the message being associated with a time-sensitive event, that an amount of time shorter than the threshold amount of time has passed since the time-sensitive event associated with the message.
8 . The method of claim 1 , wherein determining that the first message is stale further comprises determining that the first message has been in the message queue for an amount of time.
9 . The method of claim 1 , further comprising determining that the first message is stale based on an amount of time associated with a medical device associated with the first message.
10 . The method of claim 1 , further comprising determining that the first message is stale based on an amount of time specific to a type of event associated with the first message.
11 . The method of claim 1 , further comprising determining that the first message is stale based on a type of event associated with the first message being time sensitive.
12 . An apparatus configured to provide messaging in a clinical environment, the apparatus comprising:
one or more processors; and
one or more memories in communication with the one or more processors and storing computer-executable instructions that, when executed by the one or more processors, configure the one or more processors to:
cause a plurality of messages to be stored in a message queue for transmission to a remote server, wherein the plurality of messages contains information about one or more medical devices residing in the clinical environment, the plurality of messages stored in the message queue including at least a first message associated with a first infusion pump event and a second message associated with a second infusion pump event;
detect a network outage associated with the remote server that prevents the plurality of messages in the message queue from being transmitted to the remote server;
subsequent to detecting the network outage, determine whether any of the plurality of messages in the message queue has become stale by satisfying one or more time-based conditions for being removed from the message queue without being transmitted to the remote server, wherein the first message satisfies the one or more time-based conditions based at least in part on a threshold amount of time having elapsed since a first event time associated with the first infusion pump event in a manner that would cause the first message to be removed from the message queue without being transmitted to the remote server, and the second message does not satisfy the one or more time-based conditions based at least in part on the threshold amount of time not yet having elapsed since a second event time associated with the second infusion pump event in a manner that would not cause the second message to be removed from the message queue without being transmitted to the remote server;
in response to determining that the first message satisfies the one or more time-based conditions, remove the first message without transmitting the first message to the remote server;
detect a resolution of the network outage that allows transmission of one or more messages in the message queue to the remote server to be resumed; and
subsequent to the resolution of the network outage, transmit the second message, which was previously determined not to satisfy the one or more time-based conditions, to the remote server.
13 . The apparatus of claim 12 , wherein the computer-executable instructions, when executed by the one or more processors, further configure the one or more processors to attempt, prior to determining that the first message is stale, to transmit the first message to the remote server, and determining that the first message was not received by the remote server.
14 . The apparatus of claim 12 , wherein the computer-executable instructions, when executed by the one or more processors, further configure the one or more processors to, prior to detecting the network outage, perform one of (1) determining that an acknowledgement from the remote server has not been received within a time period, or (2) receiving a message from the remote server that a connection to the remote server is terminated.
15 . The apparatus of claim 12 , wherein determining that the first message is stale further comprises one of (1) determining that the first message is the oldest message in the message queue, or (2) determining that the message queue is full.
16 . The apparatus of claim 12 , wherein determining that the first message is stale further comprises determining that the first message has been in the message queue for an amount of time.
17 . Non-transitory physical computer storage storing computer-executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to:
cause a plurality of messages to be stored in a message queue for transmission to a remote server, wherein the plurality of messages contains information about one or more medical devices residing in a clinical environment, the plurality of messages stored in the message queue including at least a first message associated with a first infusion pump event and a second message associated with a second infusion pump event;
detect a network outage associated with the remote server that prevents the plurality of messages in the message queue from being transmitted to the remote server;
subsequent to detecting the network outage, determine whether any of the plurality of messages in the message queue has become stale by satisfying one or more time-based conditions for being removed from the message queue without being transmitted to the remote server, wherein that the first message satisfies the one or more time-based conditions based at least in part on a threshold amount of time having elapsed since a first event time associated with the first infusion pump event in a manner that would cause the first message to be removed from the message queue without being transmitted to the remote server, and the second message does not satisfy the one or more time-based conditions based at least in part on the threshold amount of time not yet having elapsed since a second event time associated with the second infusion pump event in a manner that would not cause the second message to be removed from the message queue without being transmitted to the remote server;
in response to determining that the first message satisfies the one or more time-based conditions, remove the first message without transmitting the first message to the remote server;
detect a resolution of the network outage that allows transmission of one or more messages in the message queue to the remote server to be resumed; and
subsequent to the resolution of the network outage, transmit the second message, which was previously determined not to satisfy the one or more time-based conditions, to the remote server.
18 . The non-transitory physical computer storage of claim 17 , wherein the computer-executable instructions, when executed by the one or more computing devices, further configure the one or more computing devices to, prior to detecting the network outage, perform one of (1) determining that an acknowledgement from the remote server has not been received within a time period, or (2) receiving a message from the remote server that a connection to the remote server is terminated.
19 . The non-transitory physical computer storage of claim 17 , wherein determining that the first message is stale further comprises one of (1) determining that the first message is the oldest message in the message queue, or (2) determining that the message queue is full.
20 . The non-transitory physical computer storage of claim 17 , wherein determining that the first message is stale further comprises determining that the first message has been in the message queue for an amount of time.