1. Field of the Disclosure
The present disclosure relates generally to monitoring a computer system for handling hardware and software failures, and more specifically to proactively detecting, notifying, and managing system failures and business performance exceptions in a healthcare information setting.
2. Description of the Related Art
Reliable and robust information systems are central to today's research and commercial undertakings. Timely detection and handling of problems in computer hardware and software and exceptions in business operations is vital to the success of any business enterprise. In a healthcare information setting, it is particularly important that system failures and business performance exceptions be captured and resolved proactively.
Existing approaches of customer or user support for computer systems in general or healthcare information systems in particular are reactive. That is, customer support systems learn about problems associated with software and hardware performance only when customers or users report the problems. This model has a number of drawbacks. Chief among them is that the problems are resolved after they have had negative impact on the system performance.
There is a need for a way to proactively prevent problems and facilitate corrections prior to receiving customer reports and before the problems have a negative impact on the system performance.
The present disclosure provide methods and systems for proactively detecting, notifying, and fixing hardware and software failures as well as business performance exceptions in a healthcare information setting.
The proactive notification may be delivered to a customer or user, or a customer support representative of a healthcare information system. A customer support system of the healthcare information system may receive notifications of system and business performance failures and perform actions in response to the notification. The customer support system, for example, repairs the customer system, reconfigures the healthcare information system, and sends fixes and new updates. The user or customer of the healthcare information system, on the other hand, may respond to the notification of business performance exceptions and adjust business operations accordingly.
The methods and systems of this disclosure are useful to enhance system performance and user satisfaction, as system failures and business performance exceptions can be detected and dealt with before the problems become significant and exert a notable negative impact on the system performance or business in general.
The figures depict certain embodiments of the present disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the various embodiments of this disclosure.
In one embodiment, customer system 140 executes a healthcare information system. A healthcare information system, according to one embodiment, includes at least one database capable of storing patient data and at least one user interface capable of presenting the patient data and receiving user input. The patient data refers to relevant physiological, genetic, and biochemical measurements of patients, among other things. The healthcare information system is capable of processing the patient data for suitable diagnosis and treatment. In another embodiment, the database is further capable of storing information of clinical procedures, billing, and medical insurance and the healthcare information system is capable of processing this information thereby managing patient billing.
Customer system 140 includes typical computing elements such as memory 142, a processor 144 and a storage device (not shown). Customer system 140 runs a database system 146. Processor 144 may be any specific or general-purpose processor such as an INTEL x86 or POWERPC-compatible central processing unit (CPU). The storage device may be any device capable of holding large amounts of data, like a hard drive, compact disk read-only memory (CD-ROM), DVD, or some other form of fixed or removable storage device. Memory 142 holds instructions and data used by the processor 144. Because in the preferred embodiment customer system 140 executes a healthcare information system, database 146 preferably stores patient-related data.
In various embodiments, the communication links 150, 152, and 154 are supported by a local, wide area, or global computer and communications networks, wired or wireless.
Customer system 140 also operates a proactive notification agent (“agent”) 148. Agent 148 polls data on customer system performance. Agent 148 transforms the data into counters and detects whether the counters exceed thresholds. Counters counts occurrences of events. According to various embodiments, they are capable of monitoring one of a multiplicity of business or system performance parameters by recording the values of the parameters at predetermined intervals. Some counters may be further defined with specific system, organizational, or business details to create counter instances. One or more counter instances may be created for each counter according to certain embodiments. A counter instance may monitor and record certain specific aspects or details of a counter. A counter may be implemented as a generic counter object. In alternative embodiments, the counter of the proactive notification system may be separated from and independent of the notification agent.
Agent 148 notifies customer support system 110 when the counters or counter instances exceed thresholds specified by customer support system 110 or by user s or customers of the healthcare information system. Agent 148 also notifies customers (or customer support system 110) when the counters exceed thresholds specified by customers or users. A user or customer of a healthcare information system refers to, among other things, a doctor, a nurse, a healthcare administrator, or an insurance specialist. Threshold, as used in this disclosure, refers to a value that marks a boundary indicating a level of concern. A threshold may concern hardware or software system performance as well as business operational status. In various embodiments, thresholds may be predetermined by either the customer support system or the customer (user) of the healthcare information system.
Notifications may be delivered to a designated representative, such as a customer representative, or a customer (user), as desired. The designated representative may be a human or an automated system or process. In one embodiment, the designated representative may be responsible for one or more counters, such that the notification concerning these counters are forwarded to the designated representative. In another embodiment, the designated representative may be responsible for one or more healthcare information systems, such that all notifications concerning these healthcare information systems are forwarded to the designated representative. A designated customer representative may be associated with the customer support system 110. That is, for example, the customer support system 110 may have appointed one or more customer representatives who are responsible for one or more counters according to various embodiments.
In one embodiment, the proactive support system 110 further includes an operator capable of performing necessary fixes in response to the notified problems. By repairing the problems, the operator thus brings the value of the counter or counter instance back within the prescribed threshold. The operator may be a human or an automated system or process. The operator may manually or automatically performing the necessary fixes. In certain embodiments, the operator is part of the customer support system. For example, once a notification is acknowledged, the customer support system may repair the customer system, reconfigure the healthcare information system, or send fixes and new updates. In other embodiments, the operator is part of the customer system, which allows the user or customer to respond to the notification of business performance exceptions and adjust business operations accordingly.
In a further embodiment, if no acknowledgement is received after a predetermined period of time, the notification agent 148 escalates the notification to a higher tier. That is, the agent delivers the notification to a designated representative of a higher level. For example, a support manger may be paged after one hour if no acknowledgement is received back from the earlier notification delivered to a support engineer. Similarly, a director may be notified if no acknowledgement is received after a predetermined period of time elapsed. Thus, the notification agent may escalate the notification to one or more representatives of consecutively higher tiers, when no acknowledgement is received after a predetermined period at each tier. The predetermined time period may be, for example, 10 minutes, 15 minutes, 20 minutes, 30 minutes, 45 minutes, and 1 hour, in various embodiments.
Agent 148 is preferably a module. As used herein, the term “module” refers to computer program logic, whether incorporated into any hardware, software, or firmware to provide the functionality attributed to the module. In one embodiment, agent 148 runs as a Windows service (e.g., Web-Based Enterprise Management, Windows Management Instrumentation) on customer system 140. Functional modules within agent 148 are described below in reference to
In one embodiment, a customer uses console 160 to communicate with agent 148. Console 160 preferably includes a display for displaying notifications received from agent 148. Console 160 also includes an input device for providing data input. In one embodiment, console 160 is a computer system executing a user interface module for interfacing with agent 148. In one embodiment, the user interface module provides a graphical user interface (GUI) for accessing agent 148. In another embodiment, the user interface module is web browsing software operating as a client that accesses agent 148 via communication link 154. The user interface may be command line based or graphical. The user interface module preferably makes application program interface (API) calls to agent 148 to request counters for display. This allows customers to view counters using console 160. The customer also receives notifications from agent 148 on customer system performance when counters exceed thresholds specified by the customer. These notifications are received on console 160 as asynchronous alerts that may be visible, audible, and/or tactile. Console 160 may be a pager, a telephone, a personal digital assistant (PDA), etc, in various embodiments.
The proactive notification system in one embodiment includes a user interface connected to a user of the healthcare information system. In another embodiment, the proactive notification system includes a second user interface connected to a customer support system of the healthcare information system. The user interfaces are capable of displaying the information about the counters and thresholds and their relationships.
Communication link 154 coupling console 160 to customer system 140 is preferably a network connection such as a local area network (LAN), a wide area network (WAN), a telephone network, a pager network, etc., as described above. Data can be sent as an email message using simple mail transfer protocol (SMTP). Data can also be sent as a web page using hypertext transfer protocol (HTTP) and secure hypertext transfer protocol (HTTPS). Data may be encoded in the extensible markup language (XML) or any other representation.
Customer support system 110 receives notifications from agent 148 when customer system 140 performance exceeds specified thresholds. Customer support system 110 performs actions in response to the received notifications. Among the actions performed by customer support system 110 are repairing customer system 140, providing updates to customer system 140, and/or reconfiguring customer system 140. In one embodiment, customer support system 110 receives notifications from agent 148 over communication link 150. Communication link 150 is preferably a network connection such as Internet. In one embodiment, notifications are sent as an email message using SMTP. In another embodiment, notifications are sent as a web page using HTTP and HTTPS. Notifications may be encoded in the XML or any other representation. Thus, notifications may be delivered through a Personal Digital Assistant, pager, landline or mobile phone, radio broadcast, among other things.
In one embodiment, the customer support system 110 includes a customer system database 120 and an application server 180. Customer system database 120 stores customer system records, including the performance data of the healthcare information system. Customer system database 120 also stores mappings of customer systems 140 to customer support representatives. Customer system database 120 also stores mappings of counters to customer support representatives and a set of rules for responding to received notifications. Customer system database 120 is described in more detail in reference to
Application server 180 includes modules providing functionality attributed to customer support system 110. Application server 180 receives notifications on customer system performance from agent 148. The notifications include a customer system ID that uniquely identifies the customer systems from which the notifications were received. In one embodiment, application server 180 executes rules stored in customer system database 120 to perform actions in response to the notifications received from agent 148. Application server 180 uses data stored in database 120 to map the customer system ID to a customer support representative that is responsible for the particular customer system and sends notifications to that customer support representative. This way, a customer support representative that is responsible for the customer system 140 identified by the customer system ID will be notified.
In another embodiment, application server 180 uses the data stored in database 120 to map counters for which the threshold is exceeded to a customer service representative that is responsible for attending to the type of problem indicated in the received notification. When customer support system 110 receives a notification from agent 148, it updates a corresponding customer system record in database 120. Similarly, customer support system 110 updates a corresponding customer system record when it performs an action in response to the received notification.
Application server 180 preferably includes an email server 184 that allows customer support system 110 to send and receive electronic messages to/from agent 148. In one embodiment, email server 184 uses known protocols, such as Post Office Protocol (POP3) or Internet Message Access Protocol (IMAP) to retrieve electronic messages.
A customer service representative uses console 170 to communicate with customer support system 110. Console 170 preferably includes a display to view received notifications and an input device for providing data input. In one embodiment, console 170 is a computer system executing a user interface module for interfacing with customer support system 110. In one embodiment, the user interface module provides a GUI for interfacing with customer support system 110. The user interface module preferably makes API calls to agent 148 to request counters that were provided for display to the customer at console 160. A customer support representative receives notifications from customer support system 110 on customer system performance. Notifications can be sent as an email message using SMTP. Notifications can also be sent as a web page using HTTP and HTTPS. Console 170 can also be a pager, a telephone, a PDA, etc.
Communication link 152 coupling console 170 to customer support system 170 is preferably a network connection as described above with respect to link 154.
Examples of data monitored by the counter or the polling module 210 include:
Clinical Data:
Business Data:
System Data:
Database Data:
Connectivity Data:
System Performance Data:
Change Control (Changes to System Configuration):
Security Data:
Examples of the counters are:
Referring again to
Communications module 230 is adapted to route notifications in the form of messages to customers and customer support system 110 according to the rules stored in database 240. Each notification preferably includes a customer system ID and an indication that a particular counter or counter instance exceeded a threshold. Communications module 230 routes notifications by sending an email, sending a page, making a phone call, etc. Rules 240 stored in database 240 indicate the number of notifications per customer system 140. For example, when counters indicate that a database server of customer system 140 encounters an error, communications module 230 sends multiple messages to customers according to the rules stored in database 240.
Agent 148 also determines 540 whether the counters reached thresholds specified by customer support system 110. If so, agent 148 notifies 550 customer support system 110 to indicate that the counters reached the thresholds. In step 580 customer support system 110 receives notifications from agent 148 and performs actions in response to the notification. Among the actions performed by customer support system 110 are providing hot fixes, updates, system reconfigurations, patches and repairs. If the counters do not exceed thresholds, agent 148 continues polling customer system 140 for new data.
Notifications to the customer system 140 may be forwarded to the customer support system 110, and vice versa, in alternative embodiments. As such, the custom support system 110 may be informed of the potential problematic events according to the customer-defined thresholds and, the user, through the custom system 140, may be notified as needed when certain events exceeding the threshold defined by the customer support system 110.
In addition, customer support system 110 is adapted to send “broadcast” communications to more than one customer system 140. For example, custom support system 110 can notify customer system 140 of availability of a new product release. Custom support system 110 is also capable of sending electronic messages including attachments to one or more customer system 140. Custom support system 110 is also capable of sending new counters to customer system 140. In another embodiment, new counters or instances of counters may be defined by a user through a consol 160 and then instituted in the proactive notification agent 148.
Similarly, customer support system 110 is capable of querying one or more customer systems 140 to gather reports and statistics. For example, customer support system 110 can issue a query to more than one customer system 140 for critical problems that are common for these systems.
Therefore, the instrumentation counters provide real time monitoring for performance, error, and transaction throughput in a healthcare information system. The notification agents enable both the customer support and the customers to proactively capture and fix the problems thereby achieving better workflow and enhancing the productivity in a healthcare enterprise setting.
It is to be understood that the description, specific examples and data, while indicating to limit the various embodiments, are given by way of illustration and are not intended to limit the various embodiments of the present disclosure. All references cited herein are specifically and entirely incorporated by reference. Various changes and modifications within the present disclosure will become apparent to the skilled artisan from the description and data contained herein, and thus are considered part of the various embodiments of this disclosure.
This application claims the benefit of U.S. Provisional Application No. 60/428,588, filed Nov. 22, 2002.
Number | Date | Country | |
---|---|---|---|
60428588 | Nov 2002 | US |