Scalable communication system

Information

  • Patent Grant
  • 11366781
  • Patent Number
    11,366,781
  • Date Filed
    Wednesday, April 14, 2021
    3 years ago
  • Date Issued
    Tuesday, June 21, 2022
    a year ago
Abstract
A centralized communication system is disclosed that provides a modular, extendible, and scalable communication system that can exchange information between any information systems or networked devices. Adapter interfaces are configured to adapt message communications between at least one medical device and at least one external device, and graphic interface for control and modification of a communication topology of the centralized communication system is displayed, a first user selection a respective representation corresponding to the first adapter interface is received, and one or more first controls configured to cause a display of the routing information associated with the first device and to modify communication between the first adapter interface and the first device are provided responsive to the first user selection.
Description
BACKGROUND

Field


The present disclosure is related to intersystem communications, and more particularly, to messaging conversion systems and methods to provide intersystem communication between multiple systems.


Hospitals and other caregiving institutions typically employ a number of different electronic device and data systems to carry out many of the functions of the hospital. These different data systems often utilize incompatible signaling and communication protocols for the various types of systems, which can include Admit-Discharge-Transfer (ADT), physician order entry (POE), electronic Medicine Administration Record (eMAR), and others. Certain data systems, for example a medication management system such as the Pyxis MedStation™ system, receive information from one or more of these other systems on a continuous basis. As each data system may use a different message protocol or data structure, messages cannot be sent directly from one data system to another without customizing one or both data systems. Further, different manufacturers will also use different protocols, making control and communication between data systems very difficult. The maintenance and updating of multiple customized data systems to communicate within a complicated interconnected network of data systems within a hospital is a complex and sizeable task.


One approach that has been taken to integrate multiple systems within a hospital environment is to use a messaging conversion system that receives messages from different external sending data systems in formats native to each of the external sending data systems, interprets the content of the message, creates a new message in the native format of an external destination data system, and sends the new message to the external destination data system. The messaging traffic passing through this messaging conversion system may be sizeable, depending on what systems are installed in a hospital. For a hospital using an exemplary Pyxis MedStation™ system, every new entry or modification of an existing entry in any of the ADT, POE, eMAR, Material Management Information System (MMIS), Pharmacy Information System (PIS), Operating Room Information System (ORIS), and Anesthesia Information System (AIS) needs to be provided to the Pyxis MedStation™ system so that current information is available to the nurse at each of the Pyxis MedStation™ Automated Dispensing Machines (ADMs). In addition, information on each dispensed medication must be provided by the Pyxis MedStation™ system to at least the eMAR and patient billing systems. In a 500-bed hospital, for example, where the average patient is receiving 10-12 medications multiple times per day with the physician's orders changing daily, the number of messages that require conversion can exceed 100,000 messages per day. In addition, the messages are not evenly spread through the 24 hours of a day and tend to be generated at certain peak times, such as the time of the daily rounds or the regular medication administration times (such as 8 am, noon, 4 pm, and 8 pm) for that hospital. The messaging load at peak times can be very high and yet it is still critical to maintain low latency on the availability of the information to the nurses, so messaging conversion systems are frequently designed to handle the peak loads.


One drawback to traditional messaging conversion systems is that the conversion solution is not readily scalable or extendible. Some messaging conversion systems require that a specific conversion software module be written for each connection between external data systems, requiring multiple software modules to be created if one data system is providing information to multiple other data systems, or if there are multiple interconnections between multiple data systems. The conversion software modules may be hosted on individual machines if the messaging software is not configured to efficiently manage multiple conversion software modules running in parallel. In a large hospital, there may be fifty or more of these one-to-one direct conversion systems in place to integrate multiple data systems across multiple sites. Therefore, the hospital's information technology (IT) system may have fifty or more servers each running one conversion software module. Maintaining this many systems, both from hardware and software perspectives, is challenging. As each one-to-one conversion link passes through a different server, each of the sending data systems must be provided with the identification of the server linked to each destination data system.


Some traditional data systems provide “durable messaging” in that each message that passes through the conversion system is stored for some period of time. In many implementations, this is provided as a circular buffer in the nonvolatile memory of the server that stores a copy of the as-received message. This provides a message recovery capability in the event of a component or system failure. After the failure is corrected, the messages that were received within a defined period of time prior to the failure, such as one hour, can be re-converted and re-sent to ensure receipt by the destination data system. When the messaging conversion system includes multiple independent modules running on multiple servers, the coordination of this buffering and validation so that it works properly for all modules can be a challenge.


Modifying, upgrading, or extending a system of the complexity described above can eventually become extremely difficult to perform and even harder to validate, which may lead to a reduction in service or reliability of the data exchange for the large hospital systems that depend the most upon this type of integration to provide quality care to their patients.


SUMMARY

It is desirable to provide a system and method of converting messages being sent between data systems using different communication protocols and message structures that is easily scalable and extensible to new data systems. The systems and methods disclosed herein utilize, in certain embodiments, a system having an interface module for each data system. Each interface module comprises information on the communication protocol and data structure used by that data system and is configured to both receive messages from and transmit messages to a particular data system. In certain embodiments, an interface module for a first data system will comprise information about which other systems receive messages from the first data system.


In certain embodiments, a communication system is disclosed that includes an interface module configured to accept a first message from an external data system in a native message format of the external data system, convert at least a portion of the first message into a message in an internal messaging format, and provide the internal messaging format message.


In certain embodiments, a communication system is disclosed that includes an interface module that is configured to be coupled to a first external data system. The interface module includes an input queue, a message queue, and an output queue. The interface module is configured to accept a first message from the first external data system in a first native message format, store the accepted first message in the first native message format in the input queue, retrieve the first message from the input queue, convert the retrieved first message into an internal messaging format, provide the first message in the internal messaging format to another interface module, accept a second message in the internal messaging format from another interface module, store the accepted second message in the internal messaging format in the message queue, retrieve the second message from the message queue and convert the retrieved second message into the first native message format, store the converted second message in the first native message format in the output queue, and retrieve the second message from the output queue and provide the second message in the first native message format to the first external data system.


In certain embodiments, an adapter configured to adapt message communications between a first external data system and other different external data systems is disclosed, wherein at least some of the different external data systems have different native message formats from the first external data system. The adapter includes a transport component configured to send a message to and receive a message from the first external data system. The messages comprise information. The adapter also includes a protocol component coupled to the transport component. The protocol component is configured to interpret the received message and extract at least a portion of the information in the received message. The adapter also includes a mapping component configured to transform at least a portion of the extracted information into a message comprising an internal messaging format.


In certain embodiments, a centralized communication system is disclosed that includes a plurality of adapters configured to communicate with a respective plurality of external data systems in a plurality of native message formats of the respective plurality of external data systems and provide and accept internal messaging format messages in an internal messaging format and a core coupled to the plurality of adapters. The core is configured to receive an internal messaging format message in the internal messaging format from a first adapter and provide the internal messaging format message in the internal messaging format to at least one second adapter.


In certain embodiments, a method of interfacing a plurality of external data systems is disclosed. The method includes the steps of receiving from a first external data system a message in a first native message format of the first external data system, mapping at least as portion of the received message into an internal messaging format, mapping at least a portion of the internal messaging format message into a second message in a second native message format of a second external system, and providing the second message to the second external data system.


In certain embodiments, a system for managing a communication system is disclosed. The system includes a memory and a processor. The memory may be configured to store message routing information related to internal messages transmitted between a plurality of adapters of a centralized communication system. The internal messages may correspond to external messages received from one of a plurality of external systems, wherein the internal messages are formatted in accordance with an internal messaging format, and the external messages are formatted in accordance with a plurality of external messaging formats native to the plurality of external systems. The processor may be configured to determine a topology of the centralized communication system based on the message routing information related to the internal messages transmitted between the plurality of adapters. The processor may also be configured to provide a graphical representation of the determined topology of the centralized communication system.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed embodiments and together with the description serve to explain the principles of the disclosed embodiments. In the drawings:



FIG. 1A depicts a system architecture of a hospital data system.



FIG. 1B depicts an example of a system architecture deployed at a healthcare Integrated Delivery Network (IDN) having forty hospital sites.



FIG. 2A depicts an exemplary system architecture for a centralized communication system (CCS) as it would be deployed at the same IDN of FIG. 1B according to certain aspects of the present disclosure.



FIG. 2B depicts another exemplary system architecture for a CCS according to certain aspects of the present disclosure.



FIG. 3 is an overview of a CCS providing a central integration point between medical products and Hospital Information Systems (HISs) according to certain aspects of the present disclosure.



FIG. 4 depicts an overview of the CCS architecture according to certain aspects of the present disclosure.



FIG. 5 depicts details of the core and adapter framework of FIG. 4 according to certain aspects of the present disclosure.



FIG. 6 depicts a message life-cycle according to certain aspects of the present disclosure.



FIG. 7 depicts the flow of messages between two CCS adapters through the core according to certain aspects of the present disclosure.



FIG. 8 depicts the elements and connection of various elements of an adapter according to certain aspects of the present disclosure.



FIGS. 9A and 9B depict the message flow through a CCS adapter according to certain aspects of the present disclosure.



FIG. 10A is an exemplary message processing flowchart according to certain aspects of the present disclosure.



FIG. 10B is an expanded view of a portion of the message processing flowchart of FIG. 10A according to certain aspects of the present disclosure.



FIG. 11 is a state diagram of the handling of outbound messages according to certain aspects of the present disclosure.



FIG. 12 illustrates the conversion of an inbound message in a first native message format into an internal messaging format message and then into a first outbound message in a second native message format and a second outbound message in a third native message format according to certain aspects of the present disclosure.



FIG. 13 illustrates the conversion of two example inbound messages in a first and second native message format into a tagged name-data format internal messaging format message according to certain aspects of the present disclosure.



FIG. 14 is an illustration of an exemplary graphical user interface that presents a graphical representation of a topology of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 15 is an illustration of an exemplary graphical user interface that presents a graphical representation of a topology of a scaled implementation of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 16 is an illustration of an exemplary graphical user interface that presents a graphical representation of message routing information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 17 is an alternative illustration of an exemplary graphical user interface that presents a graphical representation of message routing information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 18 is an illustration of an exemplary graphical user interface that presents filtering information associated with message routing of a selected CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 19 is an illustration of an exemplary graphical user interface that presents information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 20 is an illustration of an exemplary graphical user interface that presents information associated with a device communicating with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 21 is an illustration of an exemplary graphical user interface that presents inbound messaging information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.



FIG. 22 is an illustration of an exemplary graphical user interface that presents outbound messaging information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.





DETAILED DESCRIPTION

Interoperability has become complex and challenging within the healthcare environment as many hospitals typically employ many different applications and devices developed by many different vendors on an everyday basis. An integration solution that allows data or information exchanged between the systems at both the vendor's and the user's ends and allows all systems working together seamlessly is desired. The vendor's end may include, for example, a HIS such as any, or any combination of, an ADT system, a patient order data system, a formulary data system, an ORIS, an electronic medical record (EMR) system, an MMIS, a billing system, and a packaging system. The user's end may include various application or patient devices such as a dispensing device, an infusing device, and a ventilator operated by a nurse, a caregiver, or even the patient himself or herself.


A hospital requires a number of systems to manage the large number of medications and supplies that constantly flow through a hospital. It is critical to the hospital's ability to provide quality care for their patients that the proper medications and supplies are available at all times to the staff. It is also important that the inventory of medications and supplies be carefully managed to reduce the costs associated with the amount of on-hand inventory and expiration of medications and supplies. Simultaneously achieving both of these objectives requires specialized computer systems to track and manage specific types of medications and supplies. The consoles that manage each system and the interface gateways that then link these consoles and some individual systems to the hospital's EHR are collectively grouped as the data and communication system 100 of the hospital.



FIGS. 1A and 1B provide highly schematic depictions of hospital data systems 10. Although a relatively large number of interconnections are shown in these figures, this is schematic only, as the physical implementation is much more complex, requiring a significantly larger number of interconnections than illustrated. Each of the hospital data systems 10 has a hospital information system (HIS) 200. The HIS 200 has, in this example, a number of separate electronic health record (EHR) systems, including an intensive care unit (ICU) system 220, an operating room (OR) system 222, an emergency department (ED) system 224, a pharmacy (PHARM) system 226, a post-anesthesia care unit (PACU) system 228, and a medical records (MEDREC) system 230. Each of these systems is networked to a EHR database 212. The HIS 200 also has an EHR interface server 210 to communicate with other data systems in the hospital.


In FIGS. 1A and 1B, a number of different specific data systems are shown for explanatory purposes. Such data systems are well-known, so that further details regarding the individual specific data systems are not provided. In this example, the hospital has deployed Pyxis Medstations™ 22 to store and dispense medications at the nurses stations, providing distributed access to the medications needed to treat the patients. In this example, the hospital also uses one or more Pyxis® Anesthesia Systems 24 to store and manage the medications used by anesthesiologists in the operating room, Pyxis SpecialtyStations™ 26 to store specific medications and supplies in individual treatment areas, and Pyxis OncologyStations™ 28 in oncology departments to manage the specialized and hazardous medications used to treat cancer. Pyxis DuoStations 30 are used in areas that require storage of both medications and supplies. All of these medication management devices 22, 24, 26, 28, 30 are controlled from a Pyxis MedStation console or server 102.


Supplies in the hospital in this example are managed by similar devices controlled from a Pyxis Supply Center server 104. Pyxis DuoStations 30 are linked to the Supply Center server 104 as well as the MedStation console 102. Pyxis Supply Station systems 32 are used to store supplies at points of care around the hospital. Pyxis Procedure Station systems 34 provide storage for equipment and supplies used in specialized areas such as perioperative environments and procedural suites. The hospital uses one or more Pyxis CatRacks 36 to store the supplies used in cardiac units and radiology labs, including such items as pacemakers, stents, and catheters. The scrubs worn by the doctors and nurses are dispensed and collected using Pyxis ScrubStations® systems 38 that may be placed near operating rooms as well as staff locker rooms. Both the Pyxis CatRacks 36 and the Pyxis ScrubStations 38 are linked to both the Supply Center server 104 and a Pyxis Scrub server 106.


In this example, the hospital uses a Pyxis Patient Point of Care (PPOC) verification system 40 to manage the administration of medications. This data system 40 communicates with its own Pyxis PPOC server 108 which, in turn, communicates through a dedicated PPOC Gateway 140 to the HIS 200.


Each of the servers 102, 104, 106 and 108 communicates with the HIS 200 through a message forwarding device called a Procar 120. In this example, the Procar 120 communicates with the various EHR systems 220, 222, 224, 226, 228, 230 through the EHR interface server 210. The Procar 120 includes custom translation packages for each of the servers 102, 104, 106, and 108 that convert the information flowing from the respective consoles to the format needed by the respective EHR system with which each console exchanges information.


The hospital also uses several data systems that do not have dedicated servers or consoles. The Pyxis Connect system 20 captures medication orders from physicians and transfers them to the pharmacy, where a pharmacist reviews the orders and releases them in the medication management system. The hospital uses the PHACTS® system 21 to manage medications within the pharmacy and pharmacy-managed devices. The exemplary hospital uses a Pyxis PARx® system 42 within the pharmacy to gather medications to replenish the distributed dispensing devices within the hospital. The pharmacy also uses a Pyxis CII Safe™ system 44 to store controlled substances within the hospital. All of these data systems 20, 21, 42, 44 communicate through a PROCAR 120 to the HER systems 220, 222, 224, 226, 228, 230.


It can be seen that the communication system 100 contains redundant elements, such as multiple consoles or servers 102, 104, 106, 108 managing devices with similar or overlapping capabilities, as well as multiple interface systems 120, 140 that are each tailored to linking specific consoles 102, 104, 106, 108 and independent systems 20, 21, 42, 44 to specific EHR systems 220, 222, 224, 226, 228, 230. While the function of each of the gateways 120, 140 is similar if not identical, the customized nature of the translation packages requires a significant amount of labor to rewrite and validate the new translation package that would be required to enable a change from one gateway to another. Maintaining such a complex system that includes multiple generations of products as well as similar devices from multiple companies is difficult and expensive, which may result in a reduction in system reliability as well as increased support costs. Furthermore, the introduction of any new devices into the system may require a large amount of effort and expenditure to create new translation packages so that communication may be had between the existing devices in the system and the new devices.



FIG. 1B depicts an example of a conventional communication system 100A deployed in a data system 10A at an Integrated Delivery Network (IDN) having forty hospital sites. This system 10A uses the same architecture as the system 10 of FIG. 1A, but replicated across the sites. As each server 102, 104, 106, and 108 may be limited to handling devices 22, 24, 26, 28, 30, 32, 34, 36, 38, and 40 that are on a local network, the servers 102, 104, 106, and 108 may need to replicated at each of the forty hospital sites.


In this example, the various gateways 120, 140 may be unable to handle multiple connections from the replicated servers 102, 104, 106, and 108 due to the processing requirements of the individual custom translation packages. The software of some systems may be configured to be the sole software running on a given processor, requiring that each new copy of a translation package be deployed on its own hardware platform. This results in the replication of the gateways 120, and 140 within the communication system 10A. A single hospital may require dozens of identical servers running parallel translation packages. This is characteristic of a system that is neither scalable or extendible, as each new connection, for example a connection between a new MedStation console 102 and the PHARM EHR system 226, requires a complete replication of the hardware and software of the Procar 120. This is neither cost effective nor straightforward to implement and may lead to additional support costs.


Within the following description, the centralized communication system (CCS) is described as being connected to a variety of external devices and data systems. In the examples and discussion presented herein, a “data system” is interchangeable with a “device,” especially with regard to the external devices and data systems connected to the CCS.



FIG. 2A depicts an exemplary system architecture for a CCS 300 deployed within a hospital system 10B within the same IDN as for the hospital data system of FIG. 1B according to certain aspects of the present disclosure. It is to be noted that the hospital system the following description is exemplary only, made for illustration purposes. The systems and methods of the present disclosure are not limited to the specific devices or configurations that are illustrated and described. As one of ordinary skill in the art will appreciate, the CCS systems and methods presently disclosed are applicable to other configurations and devices to provide an intercommunication system. The CCS 300 creates a layer of abstraction between the medical devices and data systems 20a, 21a, 22a, 24a, 26a, 28a, 30a, 38a, 40a, 42a and 44a, such that each sending or destination device or data system does not have to know the details of the other devices and data systems in the hospital system or the IDN, but only needs to know about the data and protocols with which it is normally configured to operate. (The medical devices and data systems are referenced with a suffix “a” in FIGS. 2A and 2B to designate generic systems without regard to source.) For example, an automated dispensing machine (ADM) contains data related to inventory but the infusion system may only care about the inventory information of the drugs that are infusing through an infusion pump in an infusion system. As another example, the Point of Care (POC) system 40 may only be configured to be concerned about alerts of a medication override but nothing else from a dispensing system.


The CCS 300 includes an adapter 320, i.e. an interface module 320, for each external device or data system that is part of the hospital's data system 10B. In certain embodiments, an adapter can have more than one interface module. Each adapter 320 is built from a common basic structure, or “framework”, and customized according to the particular native message format used by the external device to be connected to that adapter 320. The structure of adapter 320 is discussed in greater detail with respect to later figures. The CCS 300 also includes a core 340 that transfers messages in an internal messaging format between the adapters 320. The internal messaging format is common to all internal messaging format messages regardless of which adapter 320 is providing the internal messaging format message or which adapter 320 is receiving the internal messaging format message. The internal messaging format is described in greater detail with respect to at least FIG. 13.


In certain embodiments, the core 340 transfers internal messaging format messages from a first adapter 320 to one or more second adapters 320 according to information provided by the first adapter 320, thereby functioning in a “push” communication mode. In certain embodiments, the core 340 functions only to transfer internal messaging format messages between adapters 320 and does not process the internal messaging format messages. In certain embodiments, there may be more than one core 340 provided in the hospital system 10B or within an IDN. For example, an IDN having forty hospital sites may have a CCS 300 deployed at each of the forty hospital sites, with the cores 340 of each of the CCSs 300 configured to transfer the internal messaging format messages between the cores 340 when an adapter 320 of a CCS 300 at one hospital site is sending an internal messaging format message to an adapter 320 of the CCS 300 at another hospital site. In certain embodiments, a CCS 300 includes an adapter 320 connected to external devices at multiple physical sites. Alternatively, or in addition, the adapters 320 may be implemented in a web service architecture.


The CCS 300 can be extended to a new external device by adding a new adapter 320. The new adapter 320 is created starting with the adapter framework and adding elements to at least identify the other one or more external devices to which the internal messaging format messages are to be sent.


In certain embodiments, the CCS 300 comprises a non-volatile memory (not shown in FIG. 2A), for example one or more magnetically encoded hard disks or flash memory. In certain embodiments, messages that have been received by the adapters 320 are stored in the as-received format, i.e. the native message format of the external device that provided the message to the adapter 320, in the non-volatile memory. In certain embodiments, the internal messaging format messages are stored at one or more steps in the transfer process in the non-volatile memory. In certain embodiments, messages that are to be provided by the CCS 300 to external devices are stored in the native format of the destination external device prior to being provided to the external device. The storage of incoming, internal, and outbound messages in the non-volatile memory provides a “durable messaging” capability, i.e. messages will not be lost if the CCS 300 suffers a power loss or other interruption of operation. In certain embodiments, the core 340 resumes the transfer of internal messaging format messages by retrieving the in-process messages from the non-volatile storage. In certain embodiments, the adapters 320 resume providing outbound messages to external devices by retrieving in-process messages from the non-volatile memory. In certain embodiments, the CCS 300 stores the messages in a database (not shown in FIG. 2A) that is stored on the non-volatile memory. In certain embodiments, the storage of messages within the CCS 300 is implemented as queues at various points in the flow of messages through the CCS 300. The queues are described in greater detail with respect to at least FIGS. 7, 8, 9A, and 9B.



FIG. 2B depicts another exemplary system architecture for a CCS 300 according to certain aspects of the present disclosure. In this embodiment, individual adapters 320 are provided for each of the EHR systems 220, 222, 224, 226, 228, 230 of the HIS 200. In certain embodiments, an adapter 320 attached to a medical device, for example a medication dispensing device 22a, can send a message directly to a particular EHR system, for example the PHARM system 226.


The CCS 300 greatly simplifies the connections that are required to provide intersystem communication between diverse devices, relative to conventional communication arrangements. This feature of the systems and methods of the present disclosure is even more appreciated when the number of devices in the hospital system and/or IDN is increased.



FIG. 3 is a conceptual depiction of the CCS 300 providing a central integration point between external data systems (generally referred to by reference numeral 330) and the Hospital Information System (HIS) 200 according to certain aspects of the present disclosure. Data in different formats from the external data systems 330 are mapped and/or transformed into a common messaging system (CMS) format, also referred to herein as an “internal messaging format.” Once data from a sending external data system 330 is provided by an adapter 320 in the internal messaging format, this data can be changed (or “converted” or “mapped” or “translated”, “transformed”, etc.) by the CCS 300, for example, into any of the other formats of the receiving (or “destination” or “target”) data systems 330 according to certain aspects of the present disclosure. Hence, the sending data systems 330 and the receiving data systems 330 are still able to operate according to their own native data format and protocols, with the CCS 300 performing the translation to allow a sending data system 330 to communicate with a receiving data system 330.


As will be explained in more detail later, queues 310 and adapters 320 are employed to regulate and/or direct the flow of messages and provide the translations of the data and messages that are needed. Each device or data system 330, and the HIS 200, connected to the CCS 300, has its own queue(s) 310 and adapter 320, in accordance with certain aspects of the present disclosure. The individual adapters 320 provide the translations that are specific for each device 330, and translate the specific data formats of the device 330 to the internal messaging format.



FIG. 4 depicts an overview of the architecture of the CCS 300 according to certain aspects of the present disclosure. The CCS 300 includes a core 340 and an adapter framework 342 that supports a plurality of the adapters 320. The CCS 300 also includes tools 346, including a management console tool 348, a configuration tool 350, a logging tool 352, migration tools 354 and message tracing tool 356. In FIG. 4, the devices and external data systems are depicted separately, but with the same reference number 330.


The core 340 and adapter framework 342 allows the adapters 320 to be integrated into and connected to the core 340. As shown, each of the adapters 320 can connect devices 330 or data systems 330 to the core 340. In certain aspects, an empty adapter framework 342 is provided to readily enable additional adapters 320 to plug in without the need for changing the core 340.



FIG. 5 depicts in greater detail the core 340 and adapter framework 342 of the CCS 300 according to certain aspects of the present disclosure. In the core 340, the messaging system is a “push-type” messaging system. The messaging system uses message queues (310 in FIG. 3) in a database for persistent storage of the messages. Every message that is pushed to the CCS 300 will pass through a message queue 310 before being routed to its destination. In push-type messaging, message destinations are determined by the sender which means that as the message arrives at a particular CCS adapter 320, this adapter 320 will determine where this message will be sent to through configuration. In other embodiments, the messaging system 300 may be a “publish-subscribe system” where a destination selects what message it wants to receive.


The CCS 300 features durable messaging or reliable messaging. The adapter framework 342 implements a mechanism whereby each message will not be automatically removed from a queue 310 until the sending data system 330 acknowledges that it has been received by the destination data system 330. Messages in the CCS 300 are processed by default in the order in which they are received. However, the order in which the messages in the CCS 300 are processed may vary by implementation.


As seen in FIG. 5, the core 340 may include, in certain aspects, various message components of queuing, logging, message mapping, message procedure, message filtering, common message system, management services, server component adaptor, utility, Http server, message tracking, message backup, and server component loaders. These components can be dynamically loaded at run-time based on component registration or global assembly cache. Each of the components is pluggable and implements at least one interface, defines its interface identity (ID) and its class ID. A component loader loads a component dynamically based on the class id and interface id thereof. In certain embodiments, one component can implement multiple different interfaces where each interface has its own interface id.


The adapter framework 342 includes the components of message mapping, custom message processing, configuration, interceptors, external web service, external communication, and management components/services.



FIG. 6 depicts a message life-cycle according to certain aspects of the present disclosure. There are three check points that, in a default configuration, are part of a message life-cycle. These checkpoints are the In-Queue (InQ) 362, the Standard-Out-Queue (StdOutQ) 364, and the Out-Queue (OutQ) 366. These queues 362-366 were collectively referenced as message queues 310 in FIG. 3. If the CCS 300 shuts down at any time, the processing of the messages will re-start at the previous checkpoint of each message due to the use of the queues 362-366. The CCS 300 supports asynchronous message patterns between adapters 320. The core 340 and adapter framework 342 provides extendible message flow control to provide a consistent message processing within the entire CCS 300 no matter what type of adapters 320 will be developed in the future, for use with new types of devices or systems, for example.


The adapter framework 342 implements a set of processing modules 370 that allow interactions with the messages that flow through the CCS 300. These interfaces are divided into two categories: “interceptors” 370A & “custom processing modules” (CPMs) 370B as depicted in FIG. 6. Both interceptors 370A and CPMs 370B have the ability to interact with messages at the same plug-in points in the message flow path. Hence, the messages can be processed, manipulated, translated, copied, stored, etc., at certain plug-in points. In the exemplary embodiment of FIG. 6, the various plug-in points are referenced by reference numerals 372, 374, 376, 378, and 380.


According to certain aspects of the disclosure, multiple interceptors 370A can be applied at a particular plug-in point, for example plug-in point 374, and the order in which the multiple interceptors 370A execute can be configured, for example, at the time of implementation of the CCS 300. Interceptors 370A can be applied across more than one adapter 320 to provide an aspect-type of data processing which means that the same interceptor 370A can be used for multiple adapters 320. For example, a message backup interceptor 370A can be used for many adapters 320 to provide a generic backup mechanism. According to certain aspects of the disclosure, a CPM 370B has a higher precedence than an interceptor 370A. This means that a CPM 370B can overwrite what an interceptor 370A has done to a message. In certain embodiments, CPMs 370B cannot be shared across multiple adapters 320.


Interceptors 370A and CPMs 370B are both allowed to interact with the flow of the message at the following locations, according to certain aspects of the disclosure.


Pre-InQueue 362, at plug-in point 372: as a message in the native message format arrives from a sending external data system 330 through a web service 332, and prior to persisting, this plug-in point 372 allows the adapter 342 to perform custom processing on the native format message, i.e. the format of the message native to the sending external data system 330.


Post InQueue 362, at plug-in point 374: as the native format message is persisted in InQueue 362 and prior to mapping/transforming to the CMS format, this plug-in point 374 allows the adapter 320 to perform any custom processing on the native format message, i.e. the format of the message native to the sending external data system 330.


Post message mapping, at plug-in point 376: after the sending native message is mapped and/or transformed into the internal messaging format, also referred to as the CMS format, and before the now internal messaging format message leaves the receive adapter 320, this plug-in point 376 allows the adapter 320 to perform any custom processing on the internal messaging format message.


Post StdOutQueue 364, at plug-in point 378: before the internal messaging format message is mapped and/or transformed to a destination native message format, this plug-in point 378 allows the adapter 320 to perform any custom processing on the internal messaging format message while it is in the internal messaging format.


Post OutQueue 366, at plug-in point 380: before the now destination native format message is sent to the external data system 330 by a communication component 334, this plug-in point 380 allows the adapter 320 to perform any custom processing on this destination native format message in the destination native format, i.e. the format of the message native to the destination external data system 330.


Since the plug-in points 376, 378 allow messages to be processed in the internal messaging format, any interceptors 370A or CPMs 370B that process messages at plug-in points 376, 378 may be able to process the messages irrespective of the particular sending external data system 330, and irrespective of the messaging format native to the particular sending external data system 330. Thus, any interceptors 370A or CPMs 370B that process messages at plug-in points 376, 378 may be reusable across any of the external data systems 330, in addition to any external data systems added in the future, without having to rewrite, or customize any such interceptors 370A or CPMs 370B for each external data system 330.



FIG. 7 depicts the flow of messages between two adapters 320 through the core 340 according to certain aspects of the present disclosure. This figure depicts two adapters 320 communicating through the core 340 for illustration purposes. In practice, a greater number of adapters 320 are generally coupled to the core 340, enabling a multitude of devices and data systems 330 to communicate with each other.



FIG. 8 depicts elements and connections of various elements of an adapter 320 according to certain aspects of the present disclosure. As discussed previously, an interceptor 370A is a set of components that can be plugged into the adapter framework to perform particular operations such as storing a copy of a message, replicate a message into multiple copies, or perform custom processing for particular system. A particular interceptor 370A may be used at multiple different plug-in points within an adapter or across multiple adapters.


Adapters 320 are sets of components that provide plug-in points between external data systems and the CCS 300. According to certain aspects of the disclosure, each adapter 320 comprises transport, protocol, map and business logics plug-in points.


Transport logic (component) 121 is responsible for sending and receiving data streams to and from external data systems 330. The transport component 121 deals with bits and bytes. Each transport component will have to implement a set of software interfaces so that it can be plugged into the adapter framework 342 via the transport plug-in point 321.


Protocol logic (component) 122 is responsible for interpreting data streams by implementing particular communication hand shakes between two endpoints. The protocol component 122 detects the beginning and the end of the message so that messages can be extracted from data streams. In addition to extracting messages from data streams, the protocol component 122 also is responsible for detecting error conditions and recovering from errors if the errors are recoverable. Each protocol component 122 implements a set of software interfaces so that it can be plugged into the adapter framework 342 via a protocol plug-in 322.


Map logic (component) 123 is responsible for transforming a message in native message format from an external data system 330 to the internal messaging format (CMS) or from the internal messaging format to a native message format. The map component 123 will be plugged in at deployment time. The map component 123 comprises translation tables, data element mapping and message structure definition. The map component needs to understand the native message format, know how to convert (map, translate, transform, etc.) the native message format to the internal messaging format and know how to map individual data elements in native message format to the internal messaging format. The map component 123 plugs into the map plug-in point 323.



FIGS. 9A and 9B depict an exemplary message flow through an adapter 320 according to certain aspects of the present disclosure. The depiction is similar to that shown in FIG. 6, but also shows the transport, protocol, map, interceptor and CPM modules. FIG. 9A depicts the flow of received messages that are received at the core 340 from a sending external data system. The transport component 121 receives a native message format message in a native message format from an input port (TCP/IP or Serial) and the native message format message is passed to the protocol component 122. The protocol component 122 extracts the information in the native message format message, stores the native message format message in the native message format in the InQueue 362, and sends an acknowledgement to the transport logic 121. The native message format message is pulled out from the InQueue 362 and mapped by the map component 123 to an internal messaging format message, i.e. a message in the format used in the CMS. This internal messaging format message is then passed through series of one or more interceptors 370A and CPMs 370B. The internal messaging format message is then provided to a message transfer system, i.e. the core 340 (not shown in FIG. 9A), for routing.


In the outbound flow path of FIG. 9B, the CPM 370B receives an internal messaging format message in the internal messaging format from the core 340 (not shown in FIG. 9B) and stores the internal messaging format message in the StdOutQueue 364. The internal messaging format message is then retrieved from the StdOutQueue 364 and passed to one or more interceptors 370A and to the CPM 370B. Once processing is completed, the internal messaging format message is mapped by the map component 123 into the native message format of the destination data system 330 and is stored into the OutQueue 366. The protocol component 122 retrieves the native message format message from the OutQueue 366 and adds necessary message protocol framing. The transport component 121 sends the protocol framed message to the external data system 330. Once the external data system 330 acknowledges the message, the protocol component 122 removes the native message format message from the OutQueue 366.


Once the core 340 receives an internal messaging format message from the adapter 320, the core 340 uses its configurable routing table to find out which of the adapters 320 are the recipients of the internal messaging format message. The core 340 will push the internal messaging format message to the destination adapter(s) 320. Since, in one example, the core 340 is a push messaging system, the routing tables are determined by the sending (or source) adapter 320. The sending adapter 320 determines where the internal messaging format message shall be routed. It is up to the destination adapter 320 to determine whether it wants to accept the internal messaging format message or not. If the destination adapter 320 does not want to accept a particular internal messaging format message, the destination adapter 320 is configurable to send a signal to inform the messaging system whether the specific internal messaging format message is acceptable or should be blocked. This allows the destination external data system 330 to select desired communications and filter out unwanted communications, regardless of where the communication is generated.



FIG. 10A is an exemplary message processing flowchart 600 according to certain aspects of the present disclosure. Steps 602-632 are related to processing and handling of in-bound messages from external data systems, and steps 640-674 are related to processing and handling of out-bound messages to external data systems. In certain embodiments, all of the steps of process 600 are performed by a single adapter 320, such as shown in FIG. 2, and connected to a single external data system that communicates in a native format according to a native protocol. In certain embodiments, an adapter 320 is configured to communicate with multiple external devices and data systems in a native message format used by all of the multiple external devices and data systems. In certain embodiments, an adapter 320 is configured to communicate with multiple external devices and data systems in their respective native message formats.


The in-bound process starts at step 602 with the receipt of a message from the external system. The message is parsed and interpreted in step 604 according to the native message format and protocol used by the external data system 330. Step 606 determines whether the message was successfully received. If not, the process branches along the ‘no’ path back to step 602 to request a repetition of the transmission. If the message was successfully received, the process branches along the ‘yes’ path to step 610.


Step 610 is the first plug-in point in the message process 600. The adapter framework 342 provides a plurality of plug-in points at various points in the process. Step 610 is a post-receipt processing point prior to saving the incoming native message format message in the InQueue 362. There may be no processing of the native message format message at step 610. The details of the processing in step 610 are discussed in greater detail with respect to FIG. 13B. After the native message format message is processed, or not, in step 610, the native message format message is saved in step 614 in the native format in the InQueue 362.


The native message format message is retrieved from the InQueue 362 and made available at a plug-in point 620. Again, there may be no processing or they may be one or more processes that occur at step 620. The native message format message is then mapped to the internal messaging format, i.e. the CMS format, in step 622 and then there is another plug-in point 630 for further processing. The internal messaging format message is then sent to the core 340 to be transferred to one or more destination adapters 320.


The out-bound process starts at step 640 with the receipt of an internal messaging format message in the internal messaging format from the core 340. The internal messaging format message is immediately saved in the StandardOutQueue 364. The internal messaging format message is then retrieved from the StandardOutQueue 364 and made available at a fourth plug-in point 650 for processing. After the processing, if any, is completed in step 650, the internal messaging format message is mapped to the native message format of the external data system in step 652. The native message format message is then available for further processing at plug-in point 660, and then is saved into the OutQueue 366. The native message format message is retrieved from the OutQueue 366 and processed in step 670, if the system is configured to do so, and then framed in step 672 and sent to the external data system in step 674.


In certain embodiments, one or more plug-in points 610, 620, 630, 650, 660, and 670 are omitted in the adapter framework 342. For example, plug-in point 660 is omitted in the embodiments of FIGS. 6 and 7. In certain embodiments, additional plug-in points may be provided at other message flow points not identified herein, for example after receipt of an internal messaging format message from the core 340 and prior to storing the received internal messaging format message in the StandardOutQueue 364.



FIG. 10B is an expanded view of a portion of the message processing flowchart 600 of FIG. 10A according to certain aspects of the present disclosure. The box marked 610/620/630/650/660/670 in FIG. 10B is an exemplary flow of the processing within any of the plug-in steps of flowchart 600. Two types of processing modules 370 are provided in this example, an interceptor 370A and a custom processing module (CPM) 370B. In this example, the process first determines in step 682 whether an interceptor 370A is configured to process the message in the particular step 610/620/630/650/660/670. If there is, the process branches along the ‘yes’ path to step 684 and executes the interceptor 370A. In certain embodiments, there is more than one interceptor 370A. In certain embodiments, there is no interceptor 370A configured for the particular step 610/620/630/650/660/670. If there is no interceptor 370A, or after executing an interceptor 370A in step 684, the process arrives at step 686 where it determines whether there is a CPM 370B. If yes, the process branches along the ‘yes’ path to step 688 and executes the CPM 370B. In certain embodiments, there is only a single CPM 370B in a particular step 610/620/630/650/660/670. In certain embodiments, step 686 and 688 are executed before step 682.


In this example, interceptors 370A are configured to execute algorithms that are used at more than one of steps 610/620/630/650/660/670, or used at a particular step in multiple adapters 320. In this example, CPMs 370B are configured to execute algorithms unique to a particular step 610/620/630/650/660/670 in a CCS 300. In other embodiments, other configuration guidelines are used to determine the number of types of processing modules provided and how they are designated.


In certain embodiments, data can be injected into the message by an interceptor 370A or CPM 370B. For example, a field may be added that identifies the source device or system based on header information received with the message.



FIG. 11 is a state diagram of the handling of outbound messages according to certain aspects of the present disclosure. The process starts in the ready state 702. Upon receipt of a native message format message from the OutQueue 366, the system transitions to state 704 where the native message format message is transmitted. Upon completion of the transmission, the system transitions to state 706 and starts a timer, then further transitions to wait state 708. If the system receives a NAK, i.e. a message that the transmission was not successfully received, from the external data system 330, or if the timer started in state 706 times out before an ACK or NAK message is received, then the system returns to state 704 and repeats the transmission. If the system receives an ACK from the external data system 330, the system transitions to state 710 wherein the system deletes the native message format message from the OutQueue 366. Upon completion of the erasure, the system transitions back to the ready state and awaits a new native message format message.


The process shown in FIG. 11 is typical of the message handling subsequent to any of the InQueue 362, the StandardOutQueue 364, and the OutQueue 366. As the message is not erased from the respective queue until the message has been confirmed to be received at the next processing step, whether internal or external, the system can repeat the retrieval and transfer of the message in case of power loss or other interruption in the transfer. This provides data persistence and a data recovery capability in the case of a system interruption.



FIG. 12 illustrates the conversion of an inbound message 400 in a first native message format (i.e., a native message format message) into an internal messaging format message 420 and then into a first outbound message 440 in a second native message format and a second outbound message 460 in a third native message format according to certain aspects of the present disclosure. In this example, the inbound message is from a device serial #A123456 and reports a medication dispensed for a patient. The device may be an automated dispensing machine, for example. Field 402 is the patient name, which is in a first-last format. Field 404 is the event and field 406 is the name of the patient for whom the medication was dispensed. Fields 408, 410, and 412 are separate fields for the month, day, and year, respectively. Field 414 is the name of the medication that was dispensed.


In this example, the CCS 300 uses the internal messaging format shown for the internal messaging format message 420. The patient name from field 402 of the inbound message 400 has been split into the last name in field 422 and first name in field 424. The internal messaging format has fields 426 for the patient's age and field 428 to identify an allergy of the patient. While the patient has an age and may have an allergy, the inbound (native message format) message 400 does not contain this information so that fields 426 and 428 are blank. Field 430 is the source device type and field 432 is the serial number of the device, extracted from the header of the inbound native message format message 400. The internal messaging format message 420 includes a plurality of other fields, and records the year, month, and day separately in fields 434, 436, and 438 at the end of the message. It can be seen that the order of the date fields has been changed from the month-day-year sequence of the inbound native message format message 400 to the year-month-day sequence of the internal messaging format message 420.


Portions of the information of the internal messaging format message 420 are provided to the eMAR system in message 440 and the billing system in message 460. In certain embodiments, only a first portion of the information of the internal messaging format message 420 is provided in message 440. In certain embodiments, a second and different portion of the information of the internal messaging format message 420 is provided in message 460.


In message 440, the date information of fields 434, 436, and 438 of the internal messaging format message 420 has been concatenated into a month-day-year string in field 442. The third field is the nurse's name. The patient's first and last names from the first and second fields 422 and 424 of internal messaging format message 420 have been concatenated into a first-last string in the fourth field 448 of message 440.


In message 460, the date information of fields 434, 436, and 438 of the CMS message 420 has been concatenated into a year-month-day string in field 466. The third field 446 is the nurse's name. The patient's first and last names from fields 422 and 424 of message 420 have been concatenated into a last-first string in the first field 462 of message 460. The medication name is now the fourth field 468 where it was originally the seventh field 414 in native message format message 400.


It can be seen in the example of FIG. 12 how information can be moved between fields in various positions within the message formats as the information is transferred from native message format message 400 to internal messaging format message 420 to messages 440 and 460. Information of a single field can be split into separate fields, such as the patient name field 402 being split into fields 422 and 444, and information from multiple fields can be concatenated or otherwise combined as in the date fields 434, 436, and 438 being combined into the month-day-year string of field 442 and the year-month-day string of field 466.


In certain embodiments, the formatting of the fields changes between messages. For example, in certain embodiments, the date-year field 412 is formatted as a 8-character ASCII string to record the year, whereas the date-year field 434 is formatted as a 16-bit binary number to record the same information as field 412. The structure of the messages and the fields of each message may be any of the data structures and data formats known to those of skill in the art.



FIG. 13 illustrates the conversion of two example inbound messages 800 and 840 in a first and second native message format into tagged name-data format internal messaging format messages 820 and 860 according to certain aspects of the present disclosure. Each message in the internal messaging format comprises only actively used fields, wherein each field comprises a name, or tag, portion and a data portion. Internal messaging format messages, such as messages 820 and 860, will not have the same set of field but fields having the same name are equivalent. Fields in the incoming message may be mapped into one or more internal messaging format fields, depending on the field.


In this example, the name field 802 and 842 are both mapped to a name field 822, wherein the name field of message 820 is designated 822A and the name field of message 860 is designated 822B to indicate they have different data. Other fields 804, 806, and 814 of message 800 are mapped to fields 824, 826, and 830 of message 820 but these fields 824, 826, and 830 are not found in message 860 as message 840 did not include those data. The date fields 808, 810, and 812 of message 800 and date fields 844, 846, and 848 of message 840 are both mapped to date field 828, again with suffixes ‘A’ and ‘B’ to indicate the difference in data.


In certain embodiments, data in fields that are not recognized by the mapping module of the adapter 320 are stored in generic data fields, i.e. stored in a field having a system-generated label that is not related to the data. In this manner, data in the incoming message is not lost and may be processed at a later stage in the process or may be archived and available for off-line processing in the future after a modification is made to the adapter 320.


In summary, the CCS 300 provides a modular, extendible, and scalable communication system that can exchange information between any information systems or networked devices. Information from a single sending device or system can be selectively broadcast to predetermined destination devices and systems rather than broadcast to every device on the network. Information may be filtered and processed at one or more selectable points in the communication flow between systems. In certain embodiments, incoming messages are received in their native message format and protocol and converted to an internal messaging format for internal handling in the CCS 300, then converted to the native message format of a receiving system and sent to that system per its native protocol.



FIGS. 14-22 illustrate exemplary graphical user interfaces, or graphical displays, for presenting a user with a graphical representation of the topology of an exemplary CCS 300, and for providing for control and modification thereof. The graphical user interfaces illustrated in FIGS. 14-22 may allow a user, such as an administrator, to efficiently monitor and control message routing between the adapters 320 of the CCS 300 such that a user can quickly identify and handle any problems within the CCS 300 in a timely fashion. For example, the graphical user interfaces may allow a user to interact with a graphical representation of the topology of the CCS 300 in order to configure and test the routing of messages between the adapters 320. For example, the graphical user interfaces may allow a user to inject messages, such as test messages, internal messages or external messages, into the message routing of the CCS 300, such as at the plug-in points of the CCS 300.


In addition, the graphical user interfaces illustrated in FIGS. 14-22 may allow a user to view the status of, add, remove, and modify, the interceptors and CPMs applied at the plug-in points of the CCS 300, such as at pre-InQueue, post InQueue, post StdOutQueue, and post OutQueue plug-in points. In this manner, a user may efficiently add, remove, and monitor interceptors 370a and CPMs 370b that are applied at each of the plug-in points of the CCS 300.


The graphical user interfaces illustrated in FIGS. 14-22 may also allow a user to monitor, add, remove, and configure the adapters 320 in the CCS 300. For example, the graphical user interfaces may present a user with graphical elements that are indicative of the status of the adapters 320, and may allow a user to start, pause, or stop the adapters 320, such as by selecting the graphical elements that are indicative of the status of the adapters 320. In addition, the graphical user interfaces may allow a user to modify various parameters associated with the adapters 320, for example when an adapter 320 associated with an external system is added to the CCS 300, or when a change occurs in a characteristic or aspect of an external system associated with one of the adapters 320.


In one embodiment, the CCS 300 may determine the topology of the CCS 300 based on message routing information corresponding to the adapters 320 of the CCS 300. For example, the CCS 300 may process each message sent from each of the adapters 320 in order to identify the destination of each message. The CCS 300 may determine and store message routing information for each distinct destination of messages sent from each of the adapters 320. The CCS 300 may then individually process, control, and monitor the message routing information for each distinct destination of each of the adapters 320.


Alternatively, or in addition, the CCS 300 may determine the topology of the CCS 300 based on connections between the adapters 320 of the CCS 300. For example, the CCS 300 may monitor and store all active connections between the adapters 320, such as by storing connection information in a database table. The CCS 300 may process the connection information stored in the database table to determine each possible distinct destination of messages sent from each of the adapters 320. The CCS 300 may then individually process, control, and monitor the connection information and the message routing information for each distinct destination of each of the adapters 320. Accordingly, the message routing information may refer to any connection between one or more adapters 320 through which messages may be routed.


In general, the graphical user interfaces of FIGS. 14-22 present the user with high-level information and low-level information corresponding to the topology of the CCS 300, and provide for control and modification thereof. In this manner, the graphical user interfaces of FIGS. 14-22 may allow a user to efficiently monitor, modify, and control the CCS 300, regardless of the complexity and scale of the CCS 300 implementation.



FIG. 14 is an illustration of an exemplary graphical user interface 1400 that presents a graphical representation of a topology of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure.


The graphical user interface 1400 may include an action area 1410 and a display area 1420. The action area 1410 may include a start all selector 1411, a stop all selector 1412, a message selector 1413, a group selector 1414, an add group selector 1415, a remove group selector 1416, a logout selector 1417, and a refresh selector 1418. The display area 1420 may include a filter information selector 1421, an adapter configuration selector 1422, a host connection information selector 1423, an inbound messages information selector 1424, an outbound messages information selector 1425, and a CCS topology display area 1430.


The CCS topology display area 1430 may include adapter icons 1440, outbound message routing 1432, and inbound message routing 1434. The adapter icons 1440 may each include an inbound message node 1441, an outbound message node 1442, a post StdOutQueue segment 1443 that may correspond to a post StdOutQueue plug-in point 378, a post OutQueue segment 1444 that may correspond to a post OutQueue plug-in point 380, a host connection segment 1445, a pre-InQueue segment 1446 that may correspond to a pre-InQueue plug-in point 372, and a post InQueue segment 1447 that may correspond to a post InQueue plug-in point 374. In addition, each adapter icon 1440 may be identified by an adapter label 1448 that may display a name, or other identifier, corresponding to the adapter icon 1440.


In operation, the topology display area 1430 may present a user with a graphical representation of the topology of a corresponding CCS 300. For example, the topology display area 1430 may present graphical representations of each of the adapters 320 of the CCS 300 (as represented by the adapter icons 1440), and of the outbound message routing 1432 and the inbound message routing 1434 of each of the adapters 320. Alternatively, or in addition, the outbound message routing 1432 and the inbound message routing 1434 of each of the adapters 320 may represent connections between the adapters 320.


The color of the adapter icons 1440 may be indicative of the status of the corresponding adapters 320. For example, an adapter icon 1440 having a color of green may indicate that the status of the corresponding adapter 320 is started, an adapter icon 1440 having a color of red may indicate that the status of the corresponding adapter 320 is stopped, and an adapter icon 1440 having a color of grey may indicate that the status of the corresponding adapter 320 is unknown. In one embodiment, in response to a user selecting an adapter icon 1440, the CCS 300 may cycle the status of the corresponding adapter 320 from started to stopped, or from stopped to started, such as by starting or stopping the corresponding adapter 320.


The adapter icons 1440 may also display additional information regarding each corresponding adapter 320. For example, when a user selects, or hovers a pointing device over, one of the segments 1443, 1444, 1445, 1446, 1447 of one of the adapter icons 1440, the graphical user interface 1400 may display additional information to the user, such as in the form of a tool tip, in the form of a pop-up window, in the form of an audio prompt, or generally in any form of presenting information to the user. Alternatively, or in addition, the color of one of the segments 1443, 1444, 1445, 1446, 1447 may change when a user selects, or hovers a pointing device over, the one of the segments 1443, 1444, 1445, 1446, 1447, such as to distinguish a selected segment from the other segments 1443, 1444, 1445, 1446, 1447. For example, the color of a selected segment may change to yellow.


Since the message routing of the CCS 300 may be complex, the graphical user interface 1400 provides several mechanisms for refining, or filtering, the information displayed in the display area 1420. For example, in response to a user selecting one of the adapter icons 1440, the graphical user interface 1400 may display only the message routing of the adapter 320 corresponding to the selected adapter icon 1440, as shown in FIGS. 16 and 17 below. In addition, in response to a user selecting the filter information selector 1421, the graphical user interface may display additional filters, as shown in FIG. 18 below. Similarly, in response to a user selecting the adapter configuration selector 1422, the graphical user interface may display information and controls for the configuration of an adapter 320 corresponding to a selected adapter icon 1440, as shown in FIG. 19 below. In response to a user selecting the host connection information selector 1423, the graphical user interface may display information and controls for a device communicating with, or hosting, an adapter 320 corresponding to a selected adapter icon 1440, as shown in FIG. 21 below. In response to a user selecting the inbound messages information selector 1424, the graphical user interface 1400 may display information and controls for the inbound messages of an adapter 320 corresponding to a selected adapter icon 1440, as shown in FIG. 22 below. In response to a user selecting the outbound messages information selector 1425, the graphical user interface 1400 may display information and controls for the outbound messages of an adapter 320 corresponding to a selected adapter icon 1440, as discussed in FIG. 23 below.


The action area 1410 may provide selectors for performing actions related to the information displayed in the display area 1420, such as actions related to the adapters 320 represented by the adapter icons 1440 displayed in the display area 1420. For example, in response to a user selecting the start all selector 1411 or the stop all selector 1412, the CCS 300 may issue a start command or a stop command, respectively, to each of the adapters represented by an adapter icon 1440 in the display area 1420. In response to the user selecting the message selector 1413, a message, such as a test message or other message, may be injected into the message routing of the CCS 300. Alternatively, or in addition, in response to the user selecting the message selector 1413, the graphical user interface 1400 may display an additional selector that allows the user to identify where a message, such as a test message or other message, should be injected into the CCS 300. Alternatively, or in addition, a user may select a graphical representation in the display area 1420, such as an adapter icon 1440, or a segment corresponding to a plug-in point, to identify where a message, such as a test message or other message, should be injected into the CCS 300.


A user may be able to select a group of adapters 320 using the group selector 1414. In response to the user selecting a group of adapters 320 with the group selector 1414, the adapter icons 1440 may be filtered such that only adapter icons 1440 corresponding to adapters 320 of the selected group are displayed in the display area 1420. In response to the user selecting the add group selector 1415, the graphical user interface 1400 may display a mechanism for adding or creating a group of adapters 320, such as in the form of a pop-up window. In response to a user selecting the remove group selector 1416, any group presently selected by the group selector 1414 will be removed from the group selector 1414. Alternatively, or in addition, in response to a user selecting a group with the remove group selector 1416, the adapter icons 1440 corresponding to the adapters 320 of the selected group may be removed from the display area 1420. In response to a user selecting the refresh selector 1418, the graphical user interface 1400 may be refreshed. In response to a user selecting the logout selector 1417, the user may be logged out of the graphical user interface 1400.



FIG. 15 is an illustration of an exemplary graphical user interface 1500 that presents a graphical representation of a topology of a scaled implementation of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 1500 may present the topology of a CCS 300 that includes a large number of adapters 320 in a readable format.


For example, the graphical user interface 1400 of FIG. 14 may be transformed into the graphical user interface 1500 of FIG. 15 when the number of the adapter icons 1440 displayed in the display area 1420 exceeds a threshold. The size of the adapter icons 1440 may change proportionally to the number of adapter icons 1440 displayed in the display area 1410. In addition, when the number of displayed adapter icons 1440 exceeds a threshold, the adapter labels 1448 of the adapter icons 1440 may rotate proportionally to the number of displayed adapter icons 1440 such that the adapter labels 1448 of the adapter icons 1440 do not overlap. In this manner, the graphical user interface 1500 presents the user with the topology of a CCS 300 that includes a large number of adapters 320 in a readable format.



FIG. 16 is an illustration of an exemplary graphical user interface 1600 that presents a graphical representation of message routing information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 1600 may be presented in response to a user selecting one of the adapter icons 1440 of FIG. 15. For example, the graphical user interface 1600 may be displayed in response to a user selecting the adapter icon 1440 having adapter label 1448 entitled “ADT Inbound.” The graphical user interface 1600 may present an indicator 1610 around the circumference of a selected adapter icon 1440, such as to distinguish the selected adapter icon 1440 from the other adapter icons 1440. In addition, the adapter label 1448 of the selected adapter icon 1440 may be modified to distinguish the adapter label 1448 of a selected adapter icon 1440 from the adapter labels 1448 of the other adapter icons 1440, such as by drawing an outline around the adapter label 1448 of the selected adapter icon 1440.


As shown in the graphical user interface 1600, in response to a user selecting one of the adapter icons 1440, the outbound message routing 1432 and inbound message routing 1434 presented in the display area 1420 may be filtered to only present the outbound message routing 1432 and inbound message routing 1434 of the adapter 320 represented by the selected adapter icon 1440. Further in this regard, in order to distinguish the adapters 320 that receive messages from, or send messages to, the adapter 320 represented by the selected adapter icon 1440, the adapter labels 1448 may be highlighted for the adapter icons 1440 corresponding to the adapters 320 that receive messages from, or send messages to, the adapter 320 represented by the selected adapter icon 1440.


The graphical user interface 1600 also illustrates a host connection tool tip 1615 that is presented to the user, for example, in response to the user selecting, or hovering a pointing device over, the host connection segment 1445. Similarly, the graphical user interface 1600 may display a tool tip corresponding to one of the other segments 1443, 1444, 1446, 1447, when a user selects, or hovers a pointing device over, one of the other segments 1443, 1444, 1446, 1447. In addition, the color of the selected host connection segment 1445 may change, such as to yellow, in order to visually distinguish the selected host connection segment 1445 from the other segments 1443, 1444, 1446, 1447.



FIG. 17 is an alternative illustration of an exemplary graphical user interface 1700 that presents a graphical representation of message routing information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. In addition to the information illustrated in FIG. 16, FIG. 17 further illustrates that the outbound message routing 1432 and inbound message routing 1434 corresponding to an adapter 320 represented by a selected adapter icon 1440 may be individually color-coded, such as to allow a user to easily distinguish between the outbound message routing 1432 and the inbound message routing 1434. For example, the inbound message routing 1434 may be represented by a first color, while the outbound message routing 1432 may be represented by a second color that is visually distinguishable from the first color.


In addition, graphical user interface 1700 illustrates that the highlighting of the adapter labels 1448 of the adapter icons 1440 corresponding to adapters 320 that send messages to, or receive messages from, the adapter 320 corresponding to the selected adapter icon 1440 may also be color-coded. For example, the adapter labels 1448 of the adapter icons 1440 corresponding to adapters 320 that send messages to the adapter 320 corresponding to the selected adapter icon 1440 may be highlighted in the same color as the inbound message routing 1434, while the adapter labels 1448 of the adapter icons 1440 corresponding to the adapters 320 that receive message from the adapter 320 corresponding to the selected adapter icon 1440 may be highlighted in the same color as the outbound message routing 1432.



FIG. 18 is an illustration of an exemplary graphical user interface 1800 that presents filtering information associated with message routing of a selected CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 1800 may be displayed in response to a user selecting the filter information selector 1421, such as in FIG. 14. In addition to the elements discussed in regards to FIGS. 14-17, the graphical user interface 1800 may also include a filter selector area 1810. The filter selector area 1810 may include a target selector 1812, a server selector 1814, and an interceptor selector 1816.


In response to a user selecting one or more values from one or more of the target selector 1812, the server selector 1814, or the interceptor selector 1816, the graphical user interface 1800 may modify the display of the adapter icons 1440, the segments 1443, 1444, 1445, 1446, 1447, or any of the graphical elements associated therewith, to visually distinguish the components that satisfy the values selected by the target selector 1812, the server selector 1814, or the interceptor selector 1816. For example, in the graphical user interface 1800, a user selected the value “ADT Messages” in the interceptor selector 1816, and in response thereto, the color of each segment of each of the adapters 320 that corresponds to a plug-in point where the “ADT Messages” interceptor is being applied is modified such that the segments where the selected interceptor is being applied are visually distinguishable from the other segments. For example, the color of the segments may be changed to red.


The graphical user interface 1800 also illustrates a post InQueue tooltip 1815 that is displayed to the user in response to the user selecting, or hovering a pointing device over, the post InQueue segment 1447. Similarly, the graphical user interface 1800 may display a tool tip corresponding to one of the other segments 1443, 1444, 1445, 1446, when a user selects, or hovers a pointing device over, one of the other segments 1443, 1444, 1445, 1446.



FIG. 19 is an illustration of an exemplary graphical user interface 1900 that presents information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 1900 may be displayed in response to a user selecting the adapter configuration selector 1422, such as in FIG. 14. In addition to the elements discussed in regards to FIGS. 14-17, the graphical user interface 1900 may also include an adapter information area 1910 and an adapter status selector 1920.


The adapter information area 1910 may display information and controls related to the adapter 320 corresponding to the selected adapter icon 1440. For example, the adapter information area 1910 may display the status of the adapter 320, message statistics for the adapter 320, mappings for the adapter 320, or generally any information corresponding to the adapter 320. In addition, the user may modify the status of the adapter 320 corresponding to the selected adapter icon 1440 by selecting the adapter status selector 1920. For example, if the status of the adapter 320 is started, the CCS 300 may change the status of the adapter 320 to stopped, in response to a user selecting the adapter status selector 1920, and vice-versa.



FIG. 20 is an illustration of an exemplary graphical user interface 2000 that presents information associated with a device communicating with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 2000 may be displayed in response to a user selecting the host connection information selector 1423, such as in FIG. 14. In addition to the elements discussed in regards to FIGS. 14-17, the graphical user interface 2000 may include a host connection display area 2010. The host connection display area 2010 may display information and controls related to the device that is communicating with, or hosting, the adapter 320 corresponding to the selected adapter icon 1440. For example, the host connection display area 2010 may display downtime information, connection status information, timeout information, or generally any information related to the device communicating with, or hosting, the adapter 320 corresponding to the selected adapter icon 1440.



FIG. 21 is an illustration of an exemplary graphical user interface 2100 that presents inbound messaging information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 2100 may be displayed in response to a user selecting the inbound messages information selector 1424, such as in FIG. 14. In addition to the elements discussed in regards to FIGS. 14-17, the graphical user interface 2100 may include an inbound messages information area 2110. The inbound messages information area 2110 may display information and controls related to the inbound messages of the adapter 320 corresponding to the selected adapter icon 1440. For example, the inbound messages information area 2110 may display message counts for each of the inbound message sources for the adapter 320 corresponding to the selected adapter icon 1440.



FIG. 22 is an illustration of an exemplary graphical user interface 2200 that presents outbound messaging information associated with a selected adapter of a CCS, and that provides for control and modification thereof, according to certain aspects of the present disclosure. The graphical user interface 2200 may be displayed in response to a user selecting the outbound messages information selector 1425, such as in FIG. 14. In addition to the elements discussed in regards to FIGS. 14-17, the graphical user interface 2200 may include an outbound messages information area 2210. The outbound messages information area 2210 may display information and controls related to the outbound messages of the adapter 320 corresponding to the selected adapter icon 1440. For example, the outbound messages information area 2210 may display message counts for each of the outbound message destinations for the adapter 320 corresponding to the selected adapter icon 1440.


While this specification contains many specifics, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of particular implementations of the subject matter. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.


A computer program as discussed herein does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.


A computer system further includes a data storage device such as a magnetic disk or optical disk, coupled to a bus for storing information and instructions. Computer systems may be coupled via input/output modules to various devices. The input/output module can be any input/output module, such as USB ports. The input/output module is configured to connect to a communications module, such as networking interface cards, as Ethernet cards, and modems. In certain aspects, the computer system includes an input/output module such as a keyboard and a pointing device, e.g., a mouse or a trackball, by which a user can provide input to the computer system. Other kinds of input devices can be used to provide for interaction with a user as well, such as a tactile input device, visual input device, audio input device, or brain-computer interface device. For example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, tactile, or brain wave input. Exemplary output devices include display devices, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user.


According to one aspect of the present disclosure, the disclosed processes can be implemented using a processor executing one or more sequences of one or more instructions contained in memory. Such instructions may be read into memory from another machine-readable medium, such as a magnetic disk or an optical disk. Execution of the sequences of instructions contained in main memory causes processor to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory. In alternative aspects, hard-wired circuitry may be used in place of or in combination with software instructions to implement various aspects of the present disclosure. Thus, aspects of the present disclosure are not limited to any specific combination of hardware circuitry and software.


Various aspects of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. The communication can include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the communication network can include, but is not limited to, for example, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, or the like. The communications modules can be, for example, modems or Ethernet cards.


A computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Computing systems can be, for example, and without limitation, a desktop computer, laptop computer, or tablet computer. Computing systems can also be embedded in another device, for example, and without limitation, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, a video game console, and/or a television set top box.


The term “machine-readable storage medium” or “computer readable medium” as used herein refers to any medium or media that participates in providing instructions to a processor for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks. Volatile media include dynamic memory. Transmission media include coaxial cables, copper wire, and fiber optics. Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EPROM, any other memory chip or cartridge, or any other medium from which a computer can read. The machine-readable storage medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.


While operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the aspects described above should not be understood as requiring such separation in all aspects, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.


The subject matter of this specification has been described in terms of particular aspects, but other aspects can be implemented and are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.


The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the terms “a set” and “some” refer to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the invention.


A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. A phrase such an embodiment may refer to one or more embodiments and vice versa.


The word “exemplary” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.


All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” Furthermore, to the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.

Claims
  • 1. A computer-implemented method, comprising: providing, in a centralized communication system, a plurality of adapter interfaces configured to adapt message communications between at least one medical device and at least one external device, a first adapter interface being configured to receive a first message in a first format from a first device, convert a first portion of the first message into second format different than the first format, and send the converted portion in a second message to a second adapter interface for communication with a second device different than the first device;storing, in a memory device, routing information associated with active communication connections transmitting internal messages between the adapter interfaces;providing for display a first graphic interface for control and modification of a communication topology of the centralized communication system, the first graphic interface comprising representations of the first adapter interface and the second adapter interface;receiving, within the first graphic interface, a first user selection a respective representation corresponding to the first adapter interface; andproviding for display, responsive to the first user selection corresponding to the first adapter interface, one or more first controls configured to cause a display of the routing information associated with the first device and to modify communication between the first adapter interface and the first device.
  • 2. The method of claim 1, further comprising: monitoring the internal messages transmitted over the active communication connections between the adapter interfaces;providing for display one or more second controls configured to cause a display of one or more of the internal messages transmitted by the first device;receiving a selection of the second control; andresponsive to the selection of the second control, displaying the one or more of the internal messages transmitted by the first device or routing information associated with the one or more of the internal messages transmitted by the first device.
  • 3. The method of claim 1, wherein modifying communication between the first adapter interface and the first device comprises starting or stopping the first adapter interface, the method further comprising: receiving a respective selection of the one or more first controls and an indication to stop the first adapter interface; andresponsive to receiving the respective selection, stopping the first adapter interface from communicating with the first device or with a respective active communication connection of the active communication connections.
  • 4. The method of claim 1, further comprising: determining the communication topology of the centralized communication system based on the routing information associated with active communication connections;providing a representation of the determined communication topology of the centralized communication system, with each adapter interface being represented by one or more graphical elements;receiving a respective selection of the one or more first controls and an indication to modify the first adapter interface within the communication topology; andin response to the respective selection, modifying the first adapter interface within the communication topology.
  • 5. The method of claim 4, wherein modifying the first adapter interface within the communication topology comprises adding the first adapter interface to, or removing the first adapter interface from, a location within the communication topology.
  • 6. The method of claim 4, further comprising: providing for display, together with the representation of the determined communication topology, a graphical representation of a communication path between the first device and the adapter interface associated with the second device.
  • 7. The method of claim 6, wherein the representation of the determined communication topology is determined based on based on a monitoring of the internal messages.
  • 8. The method of claim 1, further comprising: receiving an indication to display only message routing information related to messages transmitted to or from the first adapter interface; andfiltering, responsive to receiving a second user selection, a graphical representation of the communication topology to display only message routing information related to the messages transmitted to or from the first adapter interface.
  • 9. A system for managing a communication system, the system comprising: a non-transitory machine-readable memory comprising instructions stored thereon; andone or more processors configured to execute the instructions to perform operations, comprising: providing, in a centralized communication system, a plurality of adapter interfaces configured to adapt message communications between at least one medical device and at least one external device, a first adapter interface being configured to receive a first message in a first format from a first device, convert a first portion of the first message into second format different than the first format, and send the converted portion in a second message to a second adapter interface for communication with a second device different than the first device;storing, in a memory device, routing information associated with active communication connections transmitting internal messages between the adapter interfaces;providing for display a first graphic interface for control and modification of a communication topology of the centralized communication system, the first graphic interface comprising representations of the first adapter interface and the second adapter interface;receiving, within the first graphic interface, a first user selection a respective representation corresponding to the first adapter interface; andproviding for display, responsive to the first user selection corresponding to the first adapter interface, one or more first controls configured to cause a display of the routing information associated with the first device and to modify communication between the first adapter interface and the first device.
  • 10. The system of claim 9, wherein the operations further comprise: monitoring the internal messages transmitted over the active communication connections between the adapter interfaces;providing for display one or more second controls configured to cause a display of one or more of the internal messages transmitted by the first device,receiving a selection of the second control; andresponsive to the selection of the second control, displaying the one or more of the internal messages transmitted by the first device or routing information associated with the one or more of the internal messages transmitted by the first device.
  • 11. The system of claim 9, wherein modifying communication between the first adapter interface and the first device comprises starting or stopping the first adapter interface, wherein the operations further comprise: receiving a respective selection of the one or more first controls and an indication to stop the first adapter interface; andresponsive to receiving the respective selection, stopping the first adapter interface from communicating with the first device or with a respective active communication connection of the active communication connections.
  • 12. The system of claim 9, wherein the operations further comprise: determining the communication topology of the centralized communication system based on the routing information associated with active communication connections;providing a representation of the determined communication topology of the centralized communication system, with each adapter interface being represented by one or more graphical elements;receiving a respective selection of the one or more first controls and an indication to modify the first adapter interface within the communication topology; andin response to the respective selection, modifying the first adapter interface within the communication topology.
  • 13. The system of claim 12, wherein modifying the first adapter interface within the communication topology comprises adding the first adapter interface to, or removing the first adapter interface from, a location within the communication topology.
  • 14. The system of claim 12, wherein the operations further comprise: providing for display, together with the representation of the determined communication topology, a graphical representation of a communication path between the first device and the adapter interface associated with the second device.
  • 15. The system of claim 14, wherein the representation of the determined communication topology is determined based on based on a monitoring of the internal messages.
  • 16. The system of claim 15, wherein the operations further comprise: receiving an indication to display only message routing information related to messages transmitted to or from the first adapter interface; andfiltering, responsive to receiving a second user selection, a graphical representation of the communication topology to display only message routing information related to the messages transmitted to or from the first adapter interface.
  • 17. A non-transitory computer readable medium having instructions stored thereon that, when executed by a computing device, cause the computer device to perform a method comprising: providing, in a centralized communication system, a plurality of adapter interfaces configured to adapt message communications between at least one medical device and at least one external device, a first adapter interface being configured to receive a first message in a first format from a first device, convert a first portion of the first message into second format different than the first format, and send the converted portion in a second message to a second adapter interface for communication with a device different than the first device;storing, in a memory device, routing information associated with active communication connections transmitting internal messages between the adapter interfaces;providing for display a first graphic interface for control and modification of a communication topology of the centralized communication system, the first graphic interface comprising representations of the first adapter interface and the second adapter interface;receiving, within the first graphic interface, a first user selection a respective representation corresponding to the first adapter interface; andproviding for display, responsive to the first user selection corresponding to the first adapter interface, one or more first controls configured to cause a display of the routing information associated with the first device and to modify communication between the first adapter interface and the first device.
  • 18. The non-transitory computer readable medium of claim 17, wherein modifying communication between the first adapter interface and the first device comprises starting or stopping the first adapter interface, the method further comprising: receiving a respective selection of the one or more first controls and an indication to stop the first adapter interface; andresponsive to receiving the respective selection, stopping the first adapter interface from communicating with the first device or with a respective active communication connection of the active communication connections.
  • 19. The non-transitory computer readable medium of claim 17, the method further comprising: receiving a respective selection of the one or more first controls and an indication to modify the selected adapter interface within the communication topology of the centralized communication system; andin response to the respective selection, modifying the selected adapter interface within the communication topology.
  • 20. The non-transitory computer readable medium of claim 19, wherein modifying the first adapter interface within the communication topology comprises adding the first adapter interface to, or removing the first adapter interface from, a location within the communication topology.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 16/512,239, entitled “SCALABLE COMMUNICATION SYSTEM,” filed on Jul. 15, 2019, now U.S. Pat. No. 10,983,946, which is a continuation of U.S. application Ser. No. 13/421,776, entitled “SCALABLE COMMUNICATION SYSTEM,” filed on Mar. 15, 2012, now U.S. Pat. No. 10,353,856, which is a nonprovisional of U.S. Application Ser. No. 61/453,853, entitled “COMMUNICATION USER INTERFACE,” filed on Mar. 17, 2011, and U.S. Application Ser. No. 61/555,820, entitled “COMMUNICATION INTERFACE,” filed on Nov. 4, 2011, the entirety of each of which is incorporated herein by reference.

US Referenced Citations (522)
Number Name Date Kind
2141006 Marinsky Dec 1938 A
3724455 Unger Apr 1973 A
3831006 Chaffin, III et al. Aug 1974 A
3848112 Weichselbaum et al. Nov 1974 A
3872448 Mitchell, Jr. Mar 1975 A
3898984 Mandel et al. Aug 1975 A
3910260 Sarnoff et al. Oct 1975 A
3921196 Patterson Nov 1975 A
3970996 Yasaka et al. Jul 1976 A
4051522 Healy et al. Sep 1977 A
4135241 Stanis et al. Jan 1979 A
4164320 Irazoqui et al. Aug 1979 A
4216462 McGrath et al. Aug 1980 A
4237344 Moore Dec 1980 A
4315309 Coli Feb 1982 A
4321461 Walter, Jr. et al. Mar 1982 A
4360125 Martindale et al. Nov 1982 A
4373527 Fischell Feb 1983 A
4476381 Rubin Oct 1984 A
4604847 Moulding, Jr. et al. Aug 1986 A
4636950 Caswell et al. Jan 1987 A
4674652 Aten et al. Jun 1987 A
4676776 Howson Jun 1987 A
4688026 Scribner et al. Aug 1987 A
4695954 Rose et al. Sep 1987 A
4696671 Epstein et al. Sep 1987 A
4731726 Allen, III Mar 1988 A
4733364 Yamagata Mar 1988 A
4741732 Crankshaw et al. May 1988 A
4756706 Kerns et al. Jul 1988 A
4778449 Weber et al. Oct 1988 A
4785969 McLaughlin Nov 1988 A
4803625 Fu et al. Feb 1989 A
4810243 Howson Mar 1989 A
4828545 Epstein et al. May 1989 A
4831562 McIntosh et al. May 1989 A
4835372 Gombrich et al. May 1989 A
4839806 Goldfischer et al. Jun 1989 A
4847764 Halvorson Jul 1989 A
4850009 Zook et al. Jul 1989 A
4853521 Claeys et al. Aug 1989 A
4855909 Vincent et al. Aug 1989 A
4857713 Brown Aug 1989 A
4857716 Gombrich et al. Aug 1989 A
4865584 Epstein et al. Sep 1989 A
4882575 Kawahara Nov 1989 A
4899839 Dessertine et al. Feb 1990 A
4916441 Gombrich et al. Apr 1990 A
4918604 Baum Apr 1990 A
4925444 Orkin et al. May 1990 A
4942544 McIntosh et al. Jul 1990 A
4950246 Muller Aug 1990 A
4967928 Carter Nov 1990 A
4970669 McIntosh et al. Nov 1990 A
4978335 Arthur, III Dec 1990 A
5001630 Wiltfong Mar 1991 A
5006699 Felkner et al. Apr 1991 A
5036462 Kaufman et al. Jul 1991 A
5036852 Leishman Aug 1991 A
5041086 Koenig et al. Aug 1991 A
5072383 Brimm et al. Dec 1991 A
5077666 Brimm et al. Dec 1991 A
5078683 Sancoff et al. Jan 1992 A
5088056 McIntosh et al. Feb 1992 A
5088981 Howson et al. Feb 1992 A
5100380 Epstein et al. Mar 1992 A
5126957 Kaufman et al. Jun 1992 A
5142484 Kaufman et al. Aug 1992 A
5153416 Neeley Oct 1992 A
5153827 Coutre et al. Oct 1992 A
5164575 Neeley et al. Nov 1992 A
5166498 Neeley Nov 1992 A
5171977 Morrison Dec 1992 A
5181910 Scanion Jan 1993 A
5190522 Wojcicki et al. Mar 1993 A
5207642 Orkin et al. May 1993 A
5235507 Sackler et al. Aug 1993 A
5256157 Samiotes et al. Oct 1993 A
5258906 Kroll et al. Nov 1993 A
5265010 Evans-Paganelli et al. Nov 1993 A
5267174 Kaufman et al. Nov 1993 A
5291399 Chaco Mar 1994 A
5292029 Pearson Mar 1994 A
5307263 Brown Apr 1994 A
5312334 Hara et al. May 1994 A
5314243 McDonald et al. May 1994 A
5315505 Pratt et al. May 1994 A
5317506 Coutre et al. May 1994 A
H1324 Dalke et al. Jun 1994 H
5331547 Laszlo Jul 1994 A
5356378 Doan Oct 1994 A
5367555 Isoyama Nov 1994 A
5368554 Nazarian et al. Nov 1994 A
5371692 Draeger et al. Dec 1994 A
5374813 Shipp Dec 1994 A
5376070 Purvis et al. Dec 1994 A
5378231 Johnson et al. Jan 1995 A
5382232 Hague et al. Jan 1995 A
5390238 Kirk et al. Feb 1995 A
5401059 Ferrario Mar 1995 A
5404384 Colburn et al. Apr 1995 A
5408443 Weinberger Apr 1995 A
5412372 Parkhurst et al. May 1995 A
5412564 Ecer May 1995 A
5416695 Stutman et al. May 1995 A
5456691 Snell Oct 1995 A
5460605 Tuttle et al. Oct 1995 A
5465082 Chaco Nov 1995 A
5472614 Rossi Dec 1995 A
5502944 Kraft et al. Apr 1996 A
5515426 Yacenda et al. May 1996 A
5522798 Johnson et al. Jun 1996 A
5533079 Colburn et al. Jul 1996 A
5536084 Curtis et al. Jul 1996 A
5538006 Heim et al. Jul 1996 A
5542420 Goldman et al. Aug 1996 A
5544649 David et al. Aug 1996 A
5544661 Davis et al. Aug 1996 A
5547470 Johnson et al. Aug 1996 A
5561412 Novak et al. Oct 1996 A
5562232 Pearson Oct 1996 A
5564803 McDonald et al. Oct 1996 A
5573506 Vasko Nov 1996 A
5582593 Hultman Dec 1996 A
5583758 McIlroy et al. Dec 1996 A
5592374 Fellagara et al. Jan 1997 A
5594786 Chaco Jan 1997 A
5597995 Williams et al. Jan 1997 A
5601445 Schipper et al. Feb 1997 A
5622429 Heinze Apr 1997 A
5628309 Brown May 1997 A
5630710 Tune et al. May 1997 A
5633910 Cohen May 1997 A
5643212 Coutre et al. Jul 1997 A
5644778 Burks et al. Jul 1997 A
5645531 Thompson et al. Jul 1997 A
5651775 Walker et al. Jul 1997 A
5655118 Heindel et al. Aug 1997 A
5657236 Conkright Aug 1997 A
5658250 Blomquist et al. Aug 1997 A
5672154 Sillen et al. Sep 1997 A
5681285 Ford et al. Oct 1997 A
5683367 Jordan et al. Nov 1997 A
5685844 Marttila Nov 1997 A
5689229 Chaco et al. Nov 1997 A
5692640 Caulfield et al. Dec 1997 A
5699038 Ulrich et al. Dec 1997 A
5700998 Palti Dec 1997 A
5703786 Conkright Dec 1997 A
5704352 Tremblay et al. Jan 1998 A
5710551 Ridgeway Jan 1998 A
5712913 Chaum Jan 1998 A
5713856 Eggers et al. Feb 1998 A
5721913 Ackroff et al. Feb 1998 A
5733259 Vaicke et al. Mar 1998 A
5737539 Edelson et al. Apr 1998 A
5738102 Lemelson Apr 1998 A
5752235 Kehr et al. May 1998 A
5758095 Albaum et al. May 1998 A
5758096 Barsky et al. May 1998 A
5760704 Barton et al. Jun 1998 A
5764034 Bowman et al. Jun 1998 A
5772585 Lavin et al. Jun 1998 A
5774865 Glynn Jun 1998 A
5781442 Engleson et al. Jul 1998 A
5790409 Fedor et al. Aug 1998 A
5795327 Wilson et al. Aug 1998 A
5803906 Pratt et al. Sep 1998 A
5807321 Stoker et al. Sep 1998 A
5807336 Russo et al. Sep 1998 A
5819229 Boppe Oct 1998 A
5822418 Yacenda et al. Oct 1998 A
5822544 Chaco et al. Oct 1998 A
5832488 Eberhardt Nov 1998 A
5833599 Schrier et al. Nov 1998 A
5842173 Strum et al. Nov 1998 A
5842976 Williamson Dec 1998 A
5845253 Rensimer et al. Dec 1998 A
5845254 Lockwood et al. Dec 1998 A
5845255 Mayaud Dec 1998 A
5845264 Nellhaus Dec 1998 A
5848593 McGrady et al. Dec 1998 A
5850344 Conkright Dec 1998 A
5852408 Christiansen et al. Dec 1998 A
5855550 Lai et al. Jan 1999 A
5867821 Ballantyne et al. Feb 1999 A
5871465 Vasko Feb 1999 A
5883806 Meador et al. Mar 1999 A
5885245 Lynch et al. Mar 1999 A
5894273 Meador et al. Apr 1999 A
5895371 Levitas et al. Apr 1999 A
5985371 Fujioka et al. Apr 1999 A
5899998 McGauley et al. May 1999 A
5903211 Flego et al. May 1999 A
5905653 Higham et al. May 1999 A
5907490 Oliver May 1999 A
5911132 Sloane Jun 1999 A
5911687 Sato et al. Jun 1999 A
5912818 McGrady et al. Jun 1999 A
5920054 Uber, III Jun 1999 A
5920263 Huttenhoff et al. Jul 1999 A
5928329 Clark et al. Jul 1999 A
5930145 Yuyama et al. Jul 1999 A
5935099 Peterson et al. Aug 1999 A
5941710 Lampotang et al. Aug 1999 A
5942986 Shabot et al. Aug 1999 A
5950630 Portwood et al. Sep 1999 A
5953099 Walach Sep 1999 A
5954641 Kehr et al. Sep 1999 A
5957835 Bollish et al. Sep 1999 A
5961036 Michael Oct 1999 A
5961446 Beller et al. Oct 1999 A
5971593 McGrady Oct 1999 A
5995077 Wilcox et al. Nov 1999 A
6000828 Leet Dec 1999 A
6003006 Colella et al. Dec 1999 A
6009333 Chaco Dec 1999 A
6017318 Gauthier et al. Jan 2000 A
6021392 Lester et al. Feb 2000 A
6024699 Surwit et al. Feb 2000 A
6032155 de la Huerga Feb 2000 A
6039251 Holowko et al. Mar 2000 A
6047203 Sackner et al. Apr 2000 A
6048087 Laurent et al. Apr 2000 A
6053887 Levitas et al. Apr 2000 A
6063026 Schauss et al. May 2000 A
6082776 Feinberg Jul 2000 A
6112182 Akers et al. Aug 2000 A
RE36871 Epstein et al. Sep 2000 E
6112502 Frederick et al. Sep 2000 A
6134582 Kennedy Oct 2000 A
6135949 Russo et al. Oct 2000 A
6180893 Saigo Jan 2001 B1
6202923 Boyer et al. Mar 2001 B1
6228057 Vasko May 2001 B1
6241704 Peterson et al. Jun 2001 B1
6269340 Ford et al. Jul 2001 B1
6282441 Raymond et al. Aug 2001 B1
6290681 Brown Sep 2001 B1
6292698 Duffin et al. Sep 2001 B1
6302844 Walker et al. Oct 2001 B1
6312378 Bardy Nov 2001 B1
6314556 DeBusk et al. Nov 2001 B1
6319200 Lai et al. Nov 2001 B1
6322502 Schoenberg et al. Nov 2001 B1
6338007 Broadfield et al. Jan 2002 B1
6339732 Phoon et al. Jan 2002 B1
6406426 Reuss et al. Jun 2002 B1
6409684 Wilk Jun 2002 B1
6421650 Goetz et al. Jul 2002 B1
6493747 Simmon et al. Dec 2002 B2
6519569 White et al. Feb 2003 B1
6529892 Lambert Mar 2003 B1
6540672 Simonsen et al. Apr 2003 B1
6558352 Hogan May 2003 B1
6571128 Lebel et al. May 2003 B2
6581606 Kutzko et al. Jun 2003 B2
6671563 Engelson et al. Dec 2003 B1
6745764 Hickle Jun 2004 B2
6757898 Ilsen et al. Jul 2004 B1
6785589 Eggenberger et al. Aug 2004 B2
6796956 Hartlaub et al. Sep 2004 B2
6799149 Hartlaub Sep 2004 B2
6847861 Lunak et al. Jan 2005 B2
6856247 Wallace Feb 2005 B1
6873268 Lebel et al. Mar 2005 B2
6993402 Klass et al. Jan 2006 B2
7034691 Rapaport et al. Apr 2006 B1
7054844 Fletcher et al. May 2006 B2
7060059 Keith et al. Jun 2006 B2
7096072 Engleson et al. Aug 2006 B2
7201734 Hickle Apr 2007 B2
7204823 Estes et al. Apr 2007 B2
7215991 Besson et al. May 2007 B2
7229430 Hickle et al. Jun 2007 B2
7230529 Ketcherside, Jr. et al. Jun 2007 B2
7256708 Rosenfeld et al. Aug 2007 B2
7263492 Suresh et al. Aug 2007 B1
7379885 Zakim May 2008 B1
7384420 Dycus et al. Jun 2008 B2
7398183 Holland et al. Jul 2008 B2
7421709 Watson et al. Sep 2008 B2
7433853 Brockway et al. Oct 2008 B2
7471994 Ford et al. Dec 2008 B2
7526769 Watts, Jr. et al. Apr 2009 B2
7587415 Guarav et al. Sep 2009 B2
7612679 Fackler et al. Nov 2009 B1
7693697 Westenskow et al. Apr 2010 B2
7769601 Bleser et al. Aug 2010 B1
7771385 Eggers et al. Aug 2010 B2
7771386 Eggers et al. Aug 2010 B2
7776031 Hartlaub et al. Aug 2010 B2
7787946 Stahmann et al. Aug 2010 B2
7796045 Spear et al. Sep 2010 B2
7835927 Schlotterbeck et al. Nov 2010 B2
7847970 McGrady Dec 2010 B1
7860583 Condurso et al. Dec 2010 B2
7962544 Torok et al. Jun 2011 B2
7970550 Arakelyan et al. Jun 2011 B2
7983995 Murphy et al. Jul 2011 B2
8005688 Coffman et al. Aug 2011 B2
8024200 Jennings et al. Sep 2011 B2
8070742 Woo Dec 2011 B2
8160895 Schmitt et al. Apr 2012 B2
8197437 Kalafut et al. Jun 2012 B2
8284059 Ross Oct 2012 B2
8291337 Gannin et al. Oct 2012 B2
8340792 Condurso et al. Dec 2012 B2
8630722 Condurso et al. Jan 2014 B2
8689008 Rangadass et al. Apr 2014 B2
8761906 Condurso et al. Jun 2014 B2
8863156 Lepanto Oct 2014 B1
8972272 Dvorak Mar 2015 B1
10192193 Glass Jan 2019 B1
10417758 Alexander Sep 2019 B1
10692207 Sandmann et al. Jun 2020 B2
20010037083 Hartlaub et al. Nov 2001 A1
20010044731 Coffman et al. Nov 2001 A1
20020010679 Felsher Jan 2002 A1
20020016568 Lebel et al. Feb 2002 A1
20020016923 Knaus et al. Feb 2002 A1
20020022973 Sun et al. Feb 2002 A1
20020026223 Riff et al. Feb 2002 A1
20020035484 McCormick Mar 2002 A1
20020038392 De La Huerga Mar 2002 A1
20020042636 Koshiol et al. Apr 2002 A1
20020046346 Evans Apr 2002 A1
20020077849 Baruch et al. Jun 2002 A1
20020087114 Hartlaub Jul 2002 A1
20020116509 De La Huerga Aug 2002 A1
20020120350 Klass et al. Aug 2002 A1
20020169636 Eggers et al. Nov 2002 A1
20020198624 Greenwald et al. Dec 2002 A1
20030009244 Engleson et al. Jan 2003 A1
20030036683 Kehr et al. Feb 2003 A1
20030045858 Strays et al. Mar 2003 A1
20030051737 Hickle et al. Mar 2003 A1
20030063524 Niemiec et al. Apr 2003 A1
20030069481 Hervy et al. Apr 2003 A1
20030105389 Noonan et al. Jun 2003 A1
20030105555 Lunak et al. Jun 2003 A1
20030106553 Vanderveen Jun 2003 A1
20030114836 Estes et al. Jun 2003 A1
20030121517 McFarland Jul 2003 A1
20030129578 Mault Jul 2003 A1
20030135087 Hickle et al. Jul 2003 A1
20030135388 Martucci et al. Jul 2003 A1
20030139701 White et al. Jul 2003 A1
20030140928 Bui et al. Jul 2003 A1
20030140929 Wilkes et al. Jul 2003 A1
20030149599 Goodall et al. Aug 2003 A1
20030156143 Westenskow et al. Aug 2003 A1
20030158746 Forrester Aug 2003 A1
20030163223 Blomquist Aug 2003 A1
20030205897 Kaufman Nov 2003 A1
20030236683 Henderson et al. Dec 2003 A1
20040015858 Seto Jan 2004 A1
20040068229 Jansen et al. Apr 2004 A1
20040073329 Engleson et al. Apr 2004 A1
20040107118 Harnsberger et al. Jun 2004 A1
20040122702 Sabol et al. Jun 2004 A1
20040122705 Sabol et al. Jun 2004 A1
20040122719 Sabol et al. Jun 2004 A1
20040122790 Walker et al. Jun 2004 A1
20040128162 Schlotterbeck et al. Jul 2004 A1
20040152622 Keith et al. Aug 2004 A1
20040167465 Mihai et al. Aug 2004 A1
20040167804 Simpson et al. Aug 2004 A1
20040172283 Vanderveen et al. Sep 2004 A1
20040172300 Mihai et al. Sep 2004 A1
20040172302 Martucci et al. Sep 2004 A1
20040176297 Cheung et al. Sep 2004 A1
20040188998 Henthorn Sep 2004 A1
20040193325 Bonderud et al. Sep 2004 A1
20040193446 Mayer et al. Sep 2004 A1
20040260478 Schwamm Dec 2004 A1
20050010166 Hickle Jan 2005 A1
20050010269 Lebel et al. Jan 2005 A1
20050020996 Hartlaub et al. Jan 2005 A1
20050021297 Hartlaub Jan 2005 A1
20050022274 Campbell et al. Jan 2005 A1
20050033606 Miller Feb 2005 A1
20050049179 Davidson et al. Mar 2005 A1
20050055242 Bello et al. Mar 2005 A1
20050088296 Lee Apr 2005 A1
20050096941 Tong May 2005 A1
20050097566 Watts et al. May 2005 A1
20050107914 Engleson et al. May 2005 A1
20050108057 Cohen et al. May 2005 A1
20050113945 Engleson et al. May 2005 A1
20050119788 Engleson et al. Jun 2005 A1
20050144043 Holland et al. Jun 2005 A1
20050145010 Vanderveen et al. Jul 2005 A1
20050148890 Hastings Jul 2005 A1
20050171815 Vanderveen Aug 2005 A1
20050224083 Crass et al. Oct 2005 A1
20050277911 Stewart Dec 2005 A1
20050278194 Holland et al. Dec 2005 A1
20060026205 Butterfield Feb 2006 A1
20060047538 Condurso et al. Mar 2006 A1
20060053036 Coffman et al. Mar 2006 A1
20060079831 Gilbert Apr 2006 A1
20060101072 Busche et al. May 2006 A1
20060122481 Sievenpiper et al. Jun 2006 A1
20060190302 Eggers et al. Aug 2006 A1
20060200369 Batch et al. Sep 2006 A1
20060206356 Vanderveen Sep 2006 A1
20060217628 Huiku Sep 2006 A1
20060218015 Walker et al. Sep 2006 A1
20060229551 Martinez et al. Oct 2006 A1
20060249423 Reijonen Nov 2006 A1
20060262915 Marascio Nov 2006 A1
20060271401 Lassetter et al. Nov 2006 A1
20060287890 Stead et al. Dec 2006 A1
20070015972 Wang et al. Jan 2007 A1
20070043767 Osborne et al. Feb 2007 A1
20070061266 Moore et al. Mar 2007 A1
20070061393 Moore Mar 2007 A1
20070083389 Dyer et al. Apr 2007 A1
20070106457 Rosenberg May 2007 A1
20070106753 Moore May 2007 A1
20070106754 Moore May 2007 A1
20070129647 Lynn Jun 2007 A1
20070156452 Batch Jul 2007 A1
20070156860 Nedelcu et al. Jul 2007 A1
20070168301 Eisner et al. Jul 2007 A1
20070185615 Bossi et al. Aug 2007 A1
20070208454 Forrester et al. Sep 2007 A1
20070210157 Miller Sep 2007 A1
20070286466 Heffernan et al. Dec 2007 A1
20070293843 Ireland et al. Dec 2007 A1
20080015549 Maughan Jan 2008 A1
20080025230 Patel et al. Jan 2008 A1
20080033361 Evans Feb 2008 A1
20080034323 Blomquist Feb 2008 A1
20080040151 Moore Feb 2008 A1
20080046292 Myers et al. Feb 2008 A1
20080141272 Borgendale et al. Jun 2008 A1
20080162254 Herger et al. Jul 2008 A1
20080164998 Scherpbier et al. Jul 2008 A1
20080169045 Tribble et al. Jul 2008 A1
20080195246 Tribble et al. Aug 2008 A1
20080272138 Ross et al. Nov 2008 A1
20080317672 Viertio-Oja Dec 2008 A1
20090012812 Rausch et al. Jan 2009 A1
20090012813 Berzansky et al. Jan 2009 A1
20090043253 Podaima Feb 2009 A1
20090054754 McMahon et al. Feb 2009 A1
20090062727 Woo Mar 2009 A1
20090099867 Newman Apr 2009 A1
20090112333 Sahai Apr 2009 A1
20090125335 Manetta et al. May 2009 A1
20090150484 Roberts Jun 2009 A1
20090210252 Silver Aug 2009 A1
20090240651 Fletcher et al. Sep 2009 A1
20090270810 DeBelser Oct 2009 A1
20090306585 Pang et al. Dec 2009 A1
20090306944 Willmann et al. Dec 2009 A1
20090319623 Srinivasan et al. Dec 2009 A1
20100037067 Rangadass et al. Feb 2010 A1
20100094653 Tribble et al. Apr 2010 A1
20100121654 Portnoy et al. May 2010 A1
20100161113 Tribble et al. Jun 2010 A1
20100169120 Herbst et al. Jul 2010 A1
20100169771 Pelegrin et al. Jul 2010 A1
20100174552 Hawkes et al. Jul 2010 A1
20100174553 Kaufman et al. Jul 2010 A1
20100179825 Hanov et al. Jul 2010 A1
20100241453 Malec Sep 2010 A1
20100241456 Miller et al. Sep 2010 A1
20100271218 Hoag et al. Oct 2010 A1
20100280840 Fukushi et al. Nov 2010 A1
20100323397 Reavy et al. Dec 2010 A1
20110015941 Backhaus Jan 2011 A1
20110046975 Hoffman Feb 2011 A1
20110060758 Schlotterbeck et al. Mar 2011 A1
20110078608 Gannon et al. Mar 2011 A1
20110118647 Paolini May 2011 A1
20110119612 Gannon et al. May 2011 A1
20110179405 Dicks et al. Jul 2011 A1
20110202495 Gawlick Aug 2011 A1
20110282691 Coffman et al. Nov 2011 A1
20110288882 Halow Nov 2011 A1
20110313787 Rangadass et al. Dec 2011 A1
20120011253 Friedman et al. Jan 2012 A1
20120016215 Condurso et al. Jan 2012 A1
20120041775 Cosentino et al. Feb 2012 A1
20120053533 Butterfield et al. Mar 2012 A1
20120075060 Connor Mar 2012 A1
20120075061 Barnes Mar 2012 A1
20120136673 Presley et al. May 2012 A1
20120173264 Brush et al. Jul 2012 A1
20120173391 Korhnak et al. Jul 2012 A1
20120179006 Jansen et al. Jul 2012 A1
20120182939 Rajan et al. Jul 2012 A1
20120185267 Kamen et al. Jul 2012 A1
20120191052 Rao Jul 2012 A1
20120239824 Nguyen et al. Sep 2012 A1
20120241043 Perazzo Sep 2012 A1
20120247480 Varga Oct 2012 A1
20120253835 Tracy et al. Oct 2012 A1
20120265549 Virolainen Oct 2012 A1
20120310205 Lee Dec 2012 A1
20130018356 Prince et al. Jan 2013 A1
20130085771 Ghanbari et al. Apr 2013 A1
20130096444 Condurso et al. Apr 2013 A1
20130197927 Vanderveen et al. Aug 2013 A1
20130197928 Vanderveen et al. Aug 2013 A1
20130197929 Vanderveen et al. Aug 2013 A1
20130197930 Garibaldi et al. Aug 2013 A1
20130197931 Gupta et al. Aug 2013 A1
20130204433 Gupta et al. Aug 2013 A1
20130204637 Vanderveen et al. Aug 2013 A1
20130262138 Jaskela et al. Oct 2013 A1
20140028464 Garibaldi Jan 2014 A1
20140031976 Reinhardt et al. Jan 2014 A1
20140100868 Condurso et al. Apr 2014 A1
20140278466 Simmons et al. Sep 2014 A1
20140297313 Condurso et al. Oct 2014 A1
20140350950 Jaskela et al. Nov 2014 A1
20150250948 Gupta et al. Sep 2015 A1
20160000997 Batch et al. Jan 2016 A1
Foreign Referenced Citations (92)
Number Date Country
2472098 Jul 2003 CA
2554903 Apr 2005 CA
1421810 Jun 2003 CN
1759398 Apr 2006 CN
1803103 Jul 2006 CN
101116077 Jan 2008 CN
101146055 Mar 2008 CN
201110955 Sep 2008 CN
101331491 Dec 2008 CN
101689320 Mar 2010 CN
101890193 Nov 2010 CN
102068725 May 2011 CN
102508877 Jun 2012 CN
102521394 Jun 2012 CN
102688532 Sep 2012 CN
102799783 Nov 2012 CN
4023785 Jan 1992 DE
0192786 Sep 1986 EP
0384155 Aug 1990 EP
0595474 May 1994 EP
0649316 Apr 1995 EP
0652528 May 1995 EP
0784283 Jul 1997 EP
0921488 Jun 1999 EP
1003121 May 2000 EP
1018347 Jul 2000 EP
1237113 Sep 2002 EP
1750573 Feb 2007 EP
2141006 Dec 1984 GB
62114562 May 1987 JP
5168708 Jul 1993 JP
11505352 May 1999 JP
2002520718 Jul 2002 JP
2003085283 Mar 2003 JP
2004287616 Oct 2004 JP
2005165442 Jun 2005 JP
2005296428 Oct 2005 JP
2006155070 Jun 2006 JP
2006521183 Sep 2006 JP
2008508616 Mar 2008 JP
2008516303 May 2008 JP
2011501311 Jan 2011 JP
2012200430 Oct 2012 JP
1020070045611 May 2007 KR
1020080013129 Feb 2008 KR
100847397 Jul 2008 KR
1020100125972 Dec 2010 KR
1020110070824 Jun 2011 KR
1020120076615 Jul 2012 KR
1020120076635 Jul 2012 KR
522631 Jul 2004 NZ
WO-1993022735 Nov 1993 WO
WO-1994005344 Mar 1994 WO
WO-1994008647 Apr 1994 WO
WO-1994013250 Jun 1994 WO
WO-1995023378 Aug 1995 WO
WO-1996020745 Jul 1996 WO
WO-1996025214 Aug 1996 WO
WO-1996036923 Nov 1996 WO
WO-1997004712 Feb 1997 WO
WO-1998013783 Apr 1998 WO
WO-1998028676 Jul 1998 WO
WO-1999009505 Feb 1999 WO
WO-1999010829 Mar 1999 WO
WO-1999010830 Mar 1999 WO
WO1999035583 Jul 1999 WO
WO-1999044167 Sep 1999 WO
WO-1999045490 Sep 1999 WO
WO-1999046718 Sep 1999 WO
WO-1999067732 Dec 1999 WO
WO-2000003344 Jan 2000 WO
WO-2000004521 Jan 2000 WO
WO-2000018449 Apr 2000 WO
WO-2000032088 Jun 2000 WO
WO-2000032098 Jun 2000 WO
WO-2001086506 Nov 2001 WO
WO-2001088828 Nov 2001 WO
WO-2002036044 May 2002 WO
WO-2002069099 Sep 2002 WO
WO-2003038566 May 2003 WO
WO-2003053503 Jul 2003 WO
WO-2003092769 Nov 2003 WO
WO-2003094091 Nov 2003 WO
WO-2004060443 Jul 2004 WO
WO-2004061745 Jul 2004 WO
WO-2002053209 Oct 2004 WO
WO-2005110208 Nov 2005 WO
WO-2008087982 May 2010 WO
WO-2010124016 Oct 2010 WO
WO-2010124328 Nov 2010 WO
WO-2012095829 Jul 2012 WO
WO-2014159280 Oct 2014 WO
Non-Patent Literature Citations (116)
Entry
Australian Office Action for Application No. 2020200812, dated Mar. 24, 2021, 5 pages.
Canadian Office Action for Application No. 2828898, dated Aug. 25, 2021, 5 pages.
Canadian Office Action for Application No. 2901024, dated Aug. 25, 2021, 6 pages.
Chinese Notice of Reexamination for Application No. 201480015025.7, dated Aug. 20, 2021, 29 pages including translation.
European Office Action for Application No. 20191537.8, dated Aug. 18, 2021, 10 pages.
Japanese Office Action for Application No. 2019-030891, dated Aug. 24, 2021, 4 pages including translation.
Australian Office Action for Application No. 2020203449, dated May 26, 2021, 5 pages.
Chinese Notice of Reexamination for Application No. 201480015036.5, dated Jul. 29, 2021, 32 pages including machine translation.
Chinese Office Action for Application No. 201480041985.0, dated Jun. 2, 2021, 4 pages including translation.
Australian Office Action for Application No. 2020200812, dated Nov. 18, 2021, 4 pages.
Canadian Office Action for Application No. 2912792, dated Dec. 30, 2021, 9 pages.
Australian Office Action for Application No. 2020203449, dated Nov. 24, 2021, 3 pages.
Australian Office Action for Application No. 2020210162, dated Sep. 22, 2021, 6 pages.
Chinese Office Action for Application No. 201480015036.5, dated Sep. 24, 2021, 52 pages including translation.
Chinese Office Action for Application No. 201480015093.3, dated Nov. 1, 2021, 36 pages including translation.
“General-Purpose Infusion Pumps,” Evaluation—Health Devices, Oct. 2002, pp. 353-387, vol. 31 (10), ECRI Institute.
“Infusion Pump Technology,” Health Devices, Apr.-May 1998, pp. 150-170, vol. 27(4-5), ECRI Institute.
“Infusion Pumps, General Purpose,” Healthcare Product Comparison System, 2007, pp. 1-54, ECRI Institute.
“Infusion Pumps, Large-Volume,” Healthcare Product Comparison System, 2010, pp. 1-51, ECRI Institute.
“Smart Infusion Pumps Join CPOE and Bar Coding as Important Ways to Prevent Medication Errors,” ISMP—Medication Safety Alert, Feb. 7, 2002, 2 p., Institute for Safe Medication Practices.
Anonymous, Guardrails® Safety Software—Medley TM Medication Safety System, Alaris Medical Systems XP-00234431; 2002 Alaris Medical Systems Inc. Nov. 2002, SSM @2159C.
Australia Office Action for Application No. 2014268828, dated Jul. 3, 2020, 5 pages.
Australian Examination Report No. 1 for Application No. 2016216550, dated Sep. 20, 2017, 3 pages.
Australian Examination Report No. 2 for Application No. 2012228997, dated Dec. 11, 2015, 3 pages.
Australian Office Action for Application No. 2014241019, dated Aug. 12, 2019, 4 pages.
Australian Office Action for Application No. 2014241019, dated Dec. 5, 2019, 5 pages.
Australian Office Action for Application No. 2014241019, dated Feb. 6, 2019, 3 pages.
Australian Office Action for Application No. 2014241022, dated Feb. 7, 2019, 4 pages.
Australian Office Action for Application No. 2014241022, dated Jun. 25, 2019, 3 pages.
Australian Office Action for Application No. 2014241022, dated Sep. 30, 2019, 4 pages.
Australian Office Action for Application No. 2014268828, dated Jul. 26, 2019, 4 pages.
Australian Office Action for Application No. 2014268828, dated Nov. 25, 2019, 3 pages.
Australian Office Action for Application No. 2018232958, dated Aug. 7, 2019, 3 pages.
Australian Office Action for Application No. 2020201641, dated Oct. 9, 2020, 4 pages.
Baldauf-Sobez et al., “How Siemens' Computerized Physician Order Entry Helps Prevent the Human Errors,” electromedica, vol. 71, No. 1, 2003, pp. 2-10.
Brazil Office Action for Application No. BR112015019758-2, dated Feb. 20, 2020, 5 pages.
Brazil Office Action for Application No. BR112015029135-0, dated Feb. 12, 2020, 5 pages.
Calabrese, et al., “Medication administration errors in adult patients in the ICU,” Intensive Care Med, 2001, pp. 1592-1598, vol. 27, Springer-Verlag.
Canada Office Action for Application No. 2900564, dated Jan. 28, 2020, 4 pages.
Canadian Office Action for Application No. 2512991, dated Jan. 10, 2018, 4 pages.
Canadian Office Action for Application No. 2512991, dated Mar. 2, 2017, 4 pages.
Canadian Office Action for Application No. 2551903, dated Aug. 18, 2020, 3 pages.
Canadian Office Action for Application No. 2551903, dated Mar. 28, 2017, 7 pages.
Canadian Office Action for Application No. 2551903, dated Mar. 5, 2018, 8 pages.
Canadian Office Action for Application No. 2828898, dated Dec. 3, 2019, 6 pages.
Canadian Office Action for Application No. 2828898, dated Dec. 7, 2018, 5 pages.
Canadian Office Action for Application No. 2828898, dated Jan. 11, 2018, 8 pages.
Canadian Office Action forAprlication No. 2828898, dated Oct. 7, 2020, 7 pages.
Canadian Office Action for Application No. 2900564, dated Nov. 19, 2020, 4 pages.
Canadian Office Action for Application No. 2901024, dated Jan. 27, 2020, 5 pages.
Canadian Office Action for Application No. 2901024, dated Nov. 20, 2020, 6 pages.
Chinese First Office Action for Application No. 2012800136388, dated Jul. 23, 2015, 15 pages.
Chinese Office Action for Application No. 2 1480041362.3, dated Oct. 18, 2018, 13 pages.
Chinese Office Action for Application No. 2012800136388, dated Jul. 18, 2016, 2 pages excluding machine translation.
Chinese Office Action for Application No. 201480015025.7, dated Jan. 23, 2018, 11 pages excluding English summary.
Chinese Office Action for Application No. 201480015025.7, dated Jun. 24, 2019, 25 pages.
Chinese Office Action for Application No. 201480015025.7, dated Nov. 12, 2019, 20 pages.
Chinese Office Action for Application No. 201480015025.7, dated Oct. 9, 2018, 27 pages.
Chinese Office Action for Application No. 201480015036.5, dated Jan. 23, 2018, 13 pages excluding English translation.
Chinese Office Action for Application No. 201480015036.5, dated Jun. 24, 2019, 20 pages.
Chinese Office Action for Application No. 201480015036.5, dated Nov. 5, 2019, 12 pages.
Chinese Office Action for Application No. 201480015036.5, dated Sep. 29, 2018, 20 pages.
Chinese Office Action for Application No. 201480015093.3, dated Dec. 4, 2019, 17 pages.
Chinese Office Action for Application No. 201480015093.3, dated Jul. 16, 2018, 16 pages.
Chinese Office Action for Application No. 201480015147.6, dated Mar. 10, 2017, 10 pages excluding translation.
Chinese Office Action for Application No. 201480015147.6, dated May 3, 2018, 6 pages.
Chinese Office Action for Application No. 201480015147.6, dated Nov. 16, 2017, 8 pages.
Chinese Office Action for Application No. 201480041985.0, dated May 15, 2020, 23 pages.
Chinese Office Action for Application No. 201480041985.0, dated Sep. 23, 2019, 24 pages.
Chinese Office Action for Application No. 201480041985.0, dated Sep. 3, 2020, 38 pages.
Chinese Second Office Action for Application No. 201280013638.8, dated Feb. 15, 2016, 8 pages excluding translation.
Eskew, James et al., Using Innovative Technologies To Set New Safety Standards For The Infusion Of Intravenous Medications, Hospital Pharmacy, vol. 37, No. 11, pp. 1179-1189, 2002, Facts and Comparisons.
European Communication for Application No. 14779655.1, dated Oct. 2, 2019, 12 pages.
European Communication of the Board of Appeal for Application No. 05791269.3, dated Nov. 10, 2017, 7 pages.
European Office Action for Application No. 12756903.6, dated Apr. 19, 2017, 5 pages.
European Office Action for Application No. 14772937.0, dated Apr. 19, 2018, 9 pages.
European Office Action for Application No. 14775918.7, dated Dec. 20, 2017, 8 pages.
European Office Action for Application No. 14779655.1, dated Jul. 28, 2017, 6 pages.
European Office Action for Application No. 14779655.1, dated Mar. 8, 2018, 7 pages.
European Office Action for Application No. 14801713.0, dated Dec. 11, 2019, 6 pages.
European Summons to attend oral proceedings pursuant to Rule 115(1) EPC for Application No. 14772937.0, dated Jul. 17, 2019, 12 pages.
Evans, R. S. et al., “Enhanced notification of infusion pump programming errors”, Studies in health technology and informatics, Jan. 1, 2010, pp. 734-738, XP055305644, Netherlands DOI: 10.3233/978-1-60750-588-4-734 Retrieved from the Internet: URL:http://booksonline.iospress.nl/Extem/EnterMedLine.aspx?ISSN=0926-9630&Volume=160&SPage=734 [retrieved on Sep. 26, 2016].
Extended European Search Report and Written Opinion for Application No. 14772937.0, dated Oct. 10, 2016, 9 pages.
Extended European Search Report and Written Opinion for Application No. 14775918.7, dated Sep. 13, 2016, 10 pages.
Extended European Search Report and Written Opinion for Application No. 14779139.6, dated Nov. 7, 2016, 7 pages.
Extended European Search Report for Application No. 14779655.1, dated Jul. 14, 2016, 8 pages.
Extended European Search Report for Appiication No. 14780320.9, dated Jul. 1, 2016, 7 pages.
Extended European Search Report for Application No. 14801713.0, dated Jan. 16, 2017, 8 pages.
Extended European Search Report for Application No. 14801726.2, dated Jan. 5, 2017, 8 pages.
Extended European Search Report for Application No. 20191537.8, dated Dec. 17, 2020, 9 pages.
India Office Action for Application No. 2625/KOLNP/2015, dated Jul. 8, 2020, 7 pages.
India Office Action for Aoplication No. 4041/KOLNP/2015, dated Jul. 8, 2020, 8 pages.
India Office Action for Application No. 7050/CHENP/2013, dated Sep. 18, 2019, 7 pages.
International Search Report and Written Opinion for PCT/US2012/029544 dated Sep. 28, 2012, 8 pages.
Japanese Office Action for Application No. 2016501081, dated Nov. 12, 2019, 6 pages.
Japanese Office Action for Application No. 2016-501081, dated Nov. 2, 2018, 6 pages.
Japanese Office Action for Application No. 2019-030891, dated May 27, 2020, 8 pages.
Japanese Office Action for Application No. 2019-030891, dated Nov. 26, 2020, 5 pages including English translation.
Japanese Office Action in Application No. 2016-501081, dated Feb. 9, 2018, 4 pages.
Kohn, et al., “To Err is Human—Building a Safer Health System,” National Academy Press, 2002, pp. i-287, National Academy of Sciences.
Lesar, “Recommendations for Reducing Medication Errors,” Medscape Pharmacists, posted Jul. 24, 2000, 10 pgs, vol. 1(2), Medscape Pharmacists, <http://www.medscape.com>.
Meier, “Hospital Products Get Seal of Approval at a Price,” The New York Times, Apr. 23, 2002, 5 pgs.
Memo concerning Mexican Office Action for Application No. MX/a/2015/015959, dated Sep. 21, 2017, 4 pages.
Memo concerning Mexican Office Action for Application No. MX/a/2015/015959, dated Mar. 2, 2018, 1 page.
Non-Final Office Action dated Oct. 14, 2014, issued in U.S. Appl. No. 11/326,145.
Office Action for United Arab Emirates Application No. UAE/P/0962/2013, dated Apr. 17, 2017, 18 pages.
Queensland Health. Use of returned or unused dispensed medicines, Jan. 5, 2005, Queensland Government. pp. 1-2.
Shabot et al., “Wireless clinical alerts for critical medication, laboratory and physiologic data,” System Sciences 2000. Proceedings of the 33rd Annual Conference on Jan. 4-7, 2000, Piscataway, NJ, IEEE, Jan. 4, 2000.
U.S. Appl. No. 90/009,912, filed Aug. 12, 2013, Schlotterbeck et al.
U.S. Appl. No. 90/011,697, filed Aug. 12, 2013, Schlotterbeck et al.
United Arab Emirates Office Action from KIPO for Application No. UAE/P/1554/2015, dated Nov. 21, 2019, 11 pages.
U.S. Appl. No. 13/901,501, filed May 23, 2013.
Williams, et al., “Reducing the Risk of User Error with Infusion Pumps,” Professional Nurse—Safe Practice—Infusion Devices, Mar. 2000, pp. 382-384, vol. 15(6).
Yokoi, “Prevention of Errors in Injection/Drip Infusion—No excuse for ignorance!—Essential Points of Accident Prevention, IV Infusion Pump, Syringe-pump Accident Prevention,” JIN Special, Igaku Shoin K.K., Dec. 1, 2001, pp. 109-120, No. 70.
Australian Decision issued for Application No. 2014268828, dated Feb. 26, 2021, 30 pages.
Canadian Office Action for Application No. 2912792, dated Mar. 1, 2021, 7 pages.
Related Publications (1)
Number Date Country
20210232533 A1 Jul 2021 US
Provisional Applications (2)
Number Date Country
61555820 Nov 2011 US
61453853 Mar 2011 US
Continuations (2)
Number Date Country
Parent 16512239 Jul 2019 US
Child 17230880 US
Parent 13421776 Mar 2012 US
Child 16512239 US