METHOD FOR PROCESSING MESSAGES IN A HIGHLY AVAILABLE NURSE CALL SYSTEM
A highly available nurse call system has one or more logic end-points (LEP), each one of which is comprised of two or more pairs of active and standby compute nodes. Each pair of compute nodes are configured to process particular types of messages that are different than each of the other pairs of compute nodes comprising the LEP. Any one of the active compute nodes operate to receive a message over a common communication network, and to send a copy of the message to a location in a persistent storage space that each of the other active compute nodes can examine. Each active compute node periodically examines the persistent storage location looking for a message that it is configured to process.
This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application Ser. No. 62/852,742 entitled “METHOD FOR PROVIDING SERVICES IN A SCALED-OUT HIGHLY AVAILABLE NURSE CALL SYSTEM”, filed May 24, 2019, the entire contents of which is incorporated by reference.
2. FIELD OF THE INVENTIONThe present disclosure relates generally to a highly available nurse call system having a logical endpoint with two or more active compute nodes, with each active compute node being configured to process different types of messages.
3. BACKGROUNDCertain types of organizations, such as financial institutions, hospitals and data centers, benefit from services that are highly or continually available. Generally, hardware and software techniques can be employed, either alone or in some combination, to provide such highly available services. Such computer systems are generally referred to as highly available (HA) computer systems. For example, two (or more) physical computational devices (compute nodes) can be paired such that one, active node can fail-over to another, hot standby node in the event that the active node is unable to continue supporting a service, such as a computer application, in an error free manner, or at all. Additionally, depending upon the size of an organization or depending upon the amount of data needed to be processed with low latency during any period of time, it may be necessary to configure a HA computer system to have more than one active node. In this regard, an HA computer system can be configured to have one or more logical end points, with each one having two or more active/hot-standby compute node pairs, and with each of the active nodes being configured differently to provide services. An HA computer system logically configured in this manner is able to provide a high degree of service availability with low processing latency.
In a health care environment, messages generated by a communication device associated with a patient should be processed by a particular application or service that can be running on multiple compute nodes comprising a HA computer system connected to a healthcare network. However, in order to ensure that patient messages are only processed once, each compute node is typically configured differently so that it is only capable of processing messages received from particular organizations within a healthcare enterprise, and which are generated by particular types of communication devices. For example, a hospital patient or a healthcare provider (i.e., a nurse or doctor) assigned to a particular hospital function, such as an emergency room, can activate a communication device, such as a nurse call device, to initiate a message having information corresponding to a request for patient care, or a request for nurse assistance. This message should be routed over the network to a compute node that is running a service that is configured to receive and process information in messages from a particular communication device associated with that emergency room, and to respond to the message by generating one or more instructions to initiate an appropriate workflow process, such as generating and sending a message to a particular nurse the a patient needs assistance, or notifying one particular healthcare provider that another provider needs assistance, or tuning on a light at a nurse terminal. Each message generated by a nurse call device needs to be processed, and it should to be processed only once so that only the appropriate devices or hospital staff are involved with a particular workflow.
A particular type of communication bus, called a service bus, can be implemented in environments having multiple compute nodes, some or all of which run applications which communicate with each other. This service bus can also be implemented in an environment having a logical end-point comprised of multiple compute nodes, with each node performing the same or different function. Such a service bus is typically able to support one or more different types of brokered transport/message queueing services. Some queueing services implement sender-side message distribution, and other services implement receiver-side message distribution, but all of these services implement some form of message distribution that effectively results in the random delivery of messages to subscribing compute nodes. Further, certain types of service buses (i.e., NServicebus) operate in a manner that does not allow a message received by a logical end-point to be distributed on a conditionally basis to all compute nodes comprising the logical end-point.
A logical end point (LEP) having two or more active compute nodes can be configured to subscribe to receive different types of messages from particular communication devices that are associated with a particular organization in an enterprise. Regardless of the message queueing service used to distribute messages generated by one device to a queue on another device (such as a compute node in a nurse call system) connected to a network, and due to the random process for distributing such messages to a compute node in a LEP having multiple active compute nodes, it is not possible to be sure that each message that is distributed will be delivered to a compute node that is configured to process the message (i.e., conditional message processing operation). And if the message is not distributed to the correct compute node, it will not be processed, resulting in a work flow not being initiated.
In order to guarantee that every message is distributed to a compute node that is configured to process that message, I have designed a nurse call system having at least one logical end-point which can operate to store a persistent copy of each message it receives. Each logical end-point can have two or more active compute nodes, each one of which is configured to process messages received from different devices associated with a particular organization. Each compute node that receives a message (regardless of the message type) operates to send a copy of the message to a location in a persistent storage system that can be examined by all of the compute nodes comprising the logical end-point. Each compute node can then examine every message for a message type, and determine whether it is able to process the message of that type or not, and messages that are not able to be processed are discarded.
According to one embodiment, a logical end-point is configured to be highly available (HA) having at least a first and a second HA pair of active and hot standby compute nodes, all of which are connected to a common network. Each HA pair of compute nodes comprising the logical end-point is configured to process messages of a particular type or types received over the network from a particular set of communication devices associated with one or more particular organizations in an enterprise. The logical end-point subscribes to receive messages over the service bus from two or more sets (work-set) of communication devices, each set of which can be associated with the same or different enterprise organization and each set being comprised of different communication devices. Depending upon how compute nodes are configured, a particular compute node can process some types of messages, and not process other types of messages. Regardless, each compute node sends a copy of every message it receives to one or more locations in a persistent storage system that can be examined by all of the compute nodes comprising the LEP.
Further, each compute node operating in a LEP can be configured to provide different services, such as a service for tracking the location of patients, nurses or devices, a rules processing service and a messaging service. So, for example, if a message having location tracking information is received by a compute node from a particular device, and the compute node is either not configured to provide location tracking services or not configured to provide this service to the particular device from which it received the message (i.e., msg. generated by organization not serviced by node), then this compute node is not able to process the message. However, each LEP comprising this HA nurse call system operates to store a persistent copy of every message it receives for each compute node to examine and to process if it is configured to do so.
This and other embodiments are described with reference to the figures, in which
Continuing to refer to
Referring now to
LEP.2A in
Continuing to refer to
It should be understood, that the process described with reference to
The forgoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the forgoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.
Claims
1. A method for conditionally processing a message in a nurse call system, comprising:
- configuring each of a first and a second active and hot-standby compute node pairs comprising a logical end-point in the nurse call system to conditionally process different types of messages received over a common communication network, wherein the configuring comprises assigning configuration information to each pair of compute nodes and storing the configuration information in a non-transitory, computer readable medium;
- receiving a message by either the first or the second active compute node, the active compute node that receives the message copying it and storing the message copy in at least one location in the non-transitory computer readable medium that is accessible by both the first and the second active compute nodes;
- periodically examining, by the first and the second active compute nodes, the at least one location in the non-transitory computer readable medium for the message, parsing the stored message for key message type information, and each compute node examining the configuration information associated with it;
- comparing, by both the first and the second active compute nodes, the key message type information to the associated configuration information, and the first or the second active compute node determining that it is configured to process the message; and
- processing the message by the active compute node configured to process the message, and labelling the message as being processed.
2. The method of claim 1, further comprising the active compute node configured to process the message generating one or more computer instructions which when sent to the nurse call system cause it to perform some action.
3. The method of claim 1, further comprising the active compute node configured to process the message marking the stored message as being taken at least during the time that it is processing the message.
4. The method of claim 1, wherein the different message types are identified by the key message information.
5. The method of claim 1, wherein the conditions determining whether an active compute node is able to process a message are one or more of the key message information.
6. The method of claim 5, wherein the one or more of the key message information is comprised of an organizational identity and a work-set identity.
7. The method of claim 6, wherein a work-set is a configurable number of unique connections from the first of second active compute nodes to the common communication network.
8. The method of claim 1, wherein each compute node comprising the logical end-point comprises service bus functionality that operates to permit communication between each of the compute nodes.
9. The method of claim 8, wherein the service bus does not support sending the message to both the first and the second active compute nodes.
10. A method for conditionally processing a message in a nurse call system, comprising:
- configuring each of a first and a second active and hot-standby compute node pairs comprising a logical end-point in the nurse call system to conditionally process different types of messages received over a common communication network, wherein the configuring comprises assigning configuration information to each pair of compute nodes and storing the configuration information in a non-transitory, computer readable medium;
- receiving a message by either the first of the second active compute nodes, the active compute node that receives the message copying it and storing the message copy in at least one location in the non-transitory computer readable medium that is accessible by both the first and the second active compute nodes;
- periodically examining, by the first and the second active compute nodes, the at least one location in the non-transitory computer readable medium for the message, parsing the stored message for key message type information, and each compute node examining the configuration information associated with it;
- comparing, by both the first and the second active compute nodes, the key message type information to the associated configuration information, and the first active compute node determining that it is configured to process the message, and the second active compute node determining that it is not able to process the message; and
- processing the message by the first active compute node.
11. The method of claim 10, further comprising the first active compute node marking the stored message as being taken at least during the time that it is processing the message.
12. The method of claim 10, further comprising the first active compute node generating one or more computer instructions which when sent to the nurse call system cause it to perform some action.
13. The method of claim 10, wherein the different message types are identified by the key message information.
14. The method of claim 10, wherein the conditions determining whether an active compute node is able to process a message are one or more of the key message information.
15. The method of claim 14, wherein the one or more of the key message information is an organizational identity and a work-set identity.
16. The method of claim 15, wherein a work-set is a configurable number of unique connections from the first or second active compute nodes to the common communication network.
17. The method of claim 10, wherein each compute node comprising the logical end-point comprises service bus functionality that operates to permit communication between each of the compute nodes.
18. The method of claim 17, wherein the service bus does not support the conditional communication between the compute nodes.
19. A nurse call system, comprising:
- first and a second active and hot-standby compute node pairs comprising a logical end-point that is connected to a plurality of message generating devices over a common communication network;
- each of the compute nodes are connected over the common communication network to a non-transitory computer readable medium that maintains configuration information corresponding to each pair of compute nodes and maintains a copy of a message that is received over the common communication network by either the first or the second active compute nodes, and either of the compute nodes operating to store a copy of the message at a location in the non-transitory computer readable medium that is accessible by each compute node;
- wherein, the configuration information corresponding to each pair of compute nodes conditionally enables each pair of compute nodes to process different types of messages.
Type: Application
Filed: Jun 20, 2019
Publication Date: Nov 26, 2020
Inventor: STEPHEN GILES (JACKSONVILLE, FL)
Application Number: 16/447,232