SYSTEMS AND METHODS FOR HEALTH INFORMATION MESSAGES ARCHIVING
Messages having patient healthcare information are exchanged between various healthcare IT systems. The messages are formatted according to various specific healthcare communication standards. The standards enable communication of the patient healthcare information among the healthcare IT systems. The messages are collected into a repository. Data mining is performed on the collected messages in order to make health-related findings.
This application is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 of the filing date of U.S. patent application Ser. No. 15/476,428 filed Mar. 31, 2017, entitled “SYSTEMS AND METHODS FOR HEALTH INFORMATION MESSAGES ARCHIVING,” which is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 of the filing date of U.S. patent application Ser. No. 13/536,425 filed Jun. 28, 2012, issued as U.S. Pat. No. 9,639,615, entitled “SYSTEMS AND METHODS FOR HEALTH INFORMATION MESSAGES ARCHIVING,” the entire contents of which is hereby expressly incorporated by reference for all purposes.
BACKGROUNDThe present invention relates to the field of information technology, including, more particularly, to systems and techniques for archiving and mining health information messages exchanged among healthcare systems.
Data mining is the process of analyzing data from different perspectives and summarizing it into useful information. The patterns, associations, or relationships among data can provide knowledge of historical patterns and future trends.
Hospitals and other healthcare organizations typically have many different computer systems used for everything from patient registration to billing to patient tracking to ordering tests. Communication among these computer systems involves a vast amount of information exchange.
It is desirable to archive and mine this information because it can provide insights such as the spread of infectious diseases, health issues of a patient, the health of a population, correlations between treatments and results, and much more.
Computer network 100 includes a number of client systems 113, 116, and 119, and a server system 122 coupled to a communication network 124 via a plurality of communication links 128. There may be any number of clients and servers in a system. Communication network 124 provides a mechanism for allowing the various components of distributed network 100 to communicate and exchange information with each other.
Communication network 124 may itself be comprised of many interconnected computer systems and communication links. Communication links 128 may be hardwire links, optical links, satellite or other wireless communications links, wave propagation links, or any other mechanisms for communication of information. Various communication protocols may be used to facilitate communication between the various systems shown in
Distributed computer network 100 in
Client systems 113, 116, and 119 typically request information from a server system which provides the information. For this reason, server systems typically have more computing and storage capacity than client systems. However, a particular computer system may act as both a client or a server depending on whether the computer system is requesting or providing information. Additionally, although aspects of the invention have been described using a client-server environment, it should be apparent that the invention may also be embodied in a stand-alone computer system. Aspects of the invention may be embodied using a client-server environment or a cloud-computing environment.
Server 122 is responsible for receiving information requests from client systems 113, 116, and 119, performing processing required to satisfy the requests, and for forwarding the results corresponding to the requests back to the requesting client system. The processing required to satisfy the request may be performed by server system 122 or may alternatively be delegated to other servers connected to communication network 124.
Client systems 113, 116, and 119 enable users to access and query information stored by server system 122. In a specific embodiment, a “Web browser” application executing on a client system enables users to select, access, retrieve, or query information stored by server system 122. Examples of web browsers include the Internet Explorer® browser program provided by Microsoft® Corporation, and the Firefox® browser provided by Mozilla® Foundation, and others.
Mass storage devices 217 may include mass disk drives, floppy disks, magnetic disks, optical disks, magneto-optical disks, fixed disks, hard disks, CD-ROMs, recordable CDs, DVDs, recordable DVDs (e.g., DVD-R, DVD+R, DVD-RW, DVD+RW, HD-DVD, or Blu-ray Disc®), flash and other nonvolatile solid-state storage (e.g., USB flash drive), battery-backed-up volatile memory, tape storage, reader, and other similar media, and combinations of these.
A computer-implemented or computer-executable version of the invention may be embodied using, stored on, or associated with computer-readable medium or non-transitory computer-readable medium. A computer-readable medium may include any medium that participates in providing instructions to one or more processors for execution. Such a medium may take many forms including, but not limited to, nonvolatile, volatile, and transmission media. Nonvolatile media includes, for example, flash memory, or optical or magnetic disks. Volatile media includes static or dynamic memory, such as cache memory or RAM. Transmission media includes coaxial cables, copper wire, fiber optic lines, and wires arranged in a bus. Transmission media can also take the form of electromagnetic, radio frequency, acoustic, or light waves, such as those generated during radio wave and infrared data communications.
For example, a binary, machine-executable version, of the software of the present invention may be stored or reside in RAM or cache memory, or on mass storage device 217. The source code of the software may also be stored or reside on mass storage device 217 (e.g., hard disk, magnetic disk, tape, or CD-ROM). As a further example, code may be transmitted via wires, radio waves, or through a network such as the Internet.
Arrows such as 322 represent the system bus architecture of computer system 201. However, these arrows are illustrative of any interconnection scheme serving to link the subsystems. For example, speaker 320 could be connected to the other subsystems through a port or have an internal direct connection to central processor 302. The processor may include multiple processors or a multicore processor, which may permit parallel processing of information. Computer system 201 shown in
Computer software products may be written in any of various suitable programming languages, such as C, C++, C#, Pascal, Fortran, Perl, Matlab® (from MathWorks), SAS, SPSS, JavaScript®, AJAX, Java®, SQL, and XQuery (a query language that is designed to process data from XML files or any data source that can be viewed as XML, HTML, or both). The computer software product may be an independent application with data input and data display modules. Alternatively, the computer software products may be classes that may be instantiated as distributed objects. The computer software products may also be component software such as Java Beans® (from Oracle Corporation) or Enterprise Java Beans® (EJB from Oracle Corporation). In a specific embodiment, the present invention provides a computer program product which stores instructions such as computer code to program a computer to perform any of the processes or techniques described.
An operating system for the system may be one of the Microsoft Windows® family of operating systems (e.g., Windows 95®, 98, Me, Windows NT®, Windows 2000®, Windows XP®, Windows XP® x64 Edition, Windows Vista®, Windows 7®, Windows CE®, Windows Mobile®), Linux, HP-UX, UNIX, Sun OS®, Solaris®, Mac OS X®, Alpha OS®, AIX, IRIX32, or IRIX64. Other operating systems may be used. Microsoft Windows® is a trademark of Microsoft® Corporation.
Furthermore, the computer may be connected to a network and may interface to other computers using this network. The network may be an intranet, internet, or the Internet, among others. The network may be a wired network (e.g., using copper), telephone network, packet network, an optical network (e.g., using optical fiber), or a wireless network, or any combination of these. For example, data and other information may be passed between the computer and components (or steps) of the system using a wireless network using a protocol such as Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802.11e, 802.11g, 802.11i, and 802.11n, just to name a few examples). For example, signals from a computer may be transferred, at least in part, wirelessly to components or other computers.
In an embodiment, with a Web browser executing on a computer workstation system, a user accesses a system on the World Wide Web (WWW) through a network such as the Internet. The Web browser is used to download web pages or other content in various formats including HTML, XML, text, PDF, and postscript, and may be used to upload information to other parts of the system. The Web browser may use uniform resource identifiers (URLs) to identify resources on the Web and hypertext transfer protocol (HTTP) in transferring files on the Web.
In a first tier is the core of a database management system, a central storage 401 that holds or stores a database or repository 403. The database typically resides on one or more hard drives, and is generally part of a larger computer system. The information may be stored in the database in a variety of formats. An example is an Extensible Markup Language (XML) database. An XML database is a data persistence software system that allows data to be stored in XML format. Another example is a relational database management system (RDMS) which uses tables to store the information. Other examples of database systems suitable for use with the present invention include NoSQL database systems (e.g., MongoDB, or Cassandra). A database, however, is merely one example of a data sink suitable for use with the present invention. In other specific embodiments, a file system may be used. Metadata and messages may be written to the file system and a mining system (e.g., Greenplum) may be used. The system can be designed to store information in various kinds of data sinks (file systems, databases, in memory file stores, or others) and use information in that to mine for data too.
In a second tier are database servers 405. The database servers are instances of a program that interacts with the database. Each instance of a database server may, among other features, independently query the database and store information in the database. Depending on the implementation, the database servers 405 may or may not include user-friendly interfaces, such as graphical user interfaces.
In a third tier is an application server 407. There may be multiple application servers. In an implementation, the application server provides the user interfaces to the database servers. By way of example, the application server may be a web application server on the Internet or any other network. The application server may also be a virtual database server or a virtual directory server. The application server may provide user-friendly mechanisms and interfaces for accessing the database through the database servers. In an implementation, a web browser 409 is utilized to access the application server.
A feature of the invention includes a health information message mining system 515. The system is connected to the healthcare communication network. In a specific implementation, the system collects communications 520 that are exchanged among the nodes. A communication can be a message, file, data object, transaction, or any unit of data transmitted from a node to another node. The system uses data mining techniques on the collected communications in order to make or facilitate health-related findings, inferences, or observations. The system may, based on the findings, generate and send communications to the nodes, physicians, patients, or other users.
The healthcare communication network may be a network as shown in
For example, node A may include a hospital information system (“HIS”). The HIS may include a patient intake or registration system that captures an admitted patient's demographic information (e.g., patient name, address, phone number, date of birth, responses to medical history questionnaires, and the like), health insurance information (e.g., insurance card, insurance group number, insurance plan, or subscriber), primary care physician, signed consent forms, and other registration information. Node B may include a financial system (e.g., billing, or accounting). Node C may include a medical laboratory information system (“LIS”). Node D may include a physician electronic medical record (“EMR”) system. Node E may include a radiology information system (“RIS”).
The nodes communicate with each other over the network to share health-related information including patient records, lab results (e.g., pathology results), reports (e.g., radiology reports), and the like. When a patient is admitted to a hospital, the hospital information system may create a new patient record. The record may include various details about the patient. This information can be sent to other nodes as appropriate. For example, after visiting with a patient, a doctor may order an x-ray to be performed by the radiology department. The patient details may be sent from the hospital information system to the radiology information system. When the x-ray has been completed the results can be sent from the radiology information system to the physician's EMR system.
Typically, the communication among nodes is performed using certain healthcare specific messaging protocols, formats, structures, or standards, such as Health Level Seven (“HL7”), Digital Imaging and Communications in Medicine (“DICOM”), and Cross Enterprise Document Sharing (“XDS”). HL7, DICOM, and the emerging XDS are the standards for exchanging messages between disparate systems in a healthcare information technology (“IT”) landscape. Almost any event in the health setting, be it admitting a patient, discharging a patient, referring a patient, scheduling a office visit, making recommendations for radiological exams, billing, dealing with diagnostic imaging, centralizing health information document such as Continuity of Care Document (“CCD”) and Continuity of Care Record (“CCRs”), and others are done through the transmission of messages using one of these three protocols. In another specific embodiment, there can be content with metadata that is not formatted explicitly either as HL7, XDS or DICOM. For example, scanned documents may arrive with a scanned image along with metadata that is not necessarily formatted in one of the three formats specified above.
In a specific implementation, the system archives and mines these documents in order to provide insights such as the spread of infectious diseases. Other features include, for example, tracking the variations of different parameters of a patient over time and using that to determine health issues, correlating the progress of the health of the population over years, and mining of data in DICOM headers in conjunction with other information in HL7 messages that can be used, for example, to correlate treatments with tumor sizes.
In a specific implementation, the messages are captured and a single point of access is provided to the system that can mine the data for information. This system can capture these messages and archive them and provide a single access point for the consuming applications. In addition to archiving, the system may classify these messages along different orthogonal axis like patient medical record number (“MRN”), age, diagnosis, facility, and others to provide a multi-dimensional view of the data.
In a specific implementation, a rendition of the message is de-normalized with regards to the codes that are sent in the messages to facilitate searching and text indexing. De-normalizing the messages may be facilitated through integrating with other systems in the healthcare IT ecosystem or translating it from a static table. This normalization may include looking up demographics from an Enterprise Master Patient Index (“EMPI”) to present a view of the data that is augmented with demographic information. The format of the data stored can be optionally tweaked by the end user to conform to a user specified standard.
As shown the example of
The storage includes a database 565 for storing or archiving HL7 messages, a database 570 for storing or archiving DICOM messages, a database 575 for storing or archiving XDS messages, and a database 580 for storing or archiving patient healthcare information collected from the HL7, DICOM, and XDS messages.
The processing modules are designed to listen for, intercept, or receive messages formatted according to a particular health information exchange standard.
The normalization component can convert content found in the message to an equivalent form for storage in database 580. For example, a message may indicate that the drug “Allegra” was prescribed. “Allegra” is a brand name antihistamine pharmaceutical drug. The drug is sometimes prescribed to treat seasonal allergies. The normalization component, upon encountering the term “Allegra” may associate the term with its generic equivalent, e.g., “fexofenadine” for storage in database 580. As another example, the normalization component may associate International Statistical Classification of Diseases and Related Health Problem or IDC codes found in a message with a description of the corresponding disease, disorder, illness, syndrome, injury, or indication. This helps to facilitate searching and text indexing.
The transformation component is responsible for reformatting the message content into a document that can be easily searched and read by humans. In a specific implementation, the message content is transformed into an Extensible Markup Language (“XML”) document. Health information content from an HL7 formatted message may be reformatted by the transformation component into an XML document, a text document, a word processing document, a portable document format (PDF) document, or combinations of these.
The analysis engine includes a classification module 585, and an intelligence server 590. The classification module can group and filter the collected patient healthcare information based on any attribute or combination of attributes such as patient medical record number, age, diagnosis, facility, and others. The intelligence server analyzes the patient healthcare information collected from the messages to make health-related findings, observations, inferences, or correlations. The intelligence server may employ, for example, statistical inference, automated reasoning, Bayesian statistics, probability logic, a rules engine, or other.
The reporting and workflow engine can manage the automatic routing of notifications based on the results from the analysis engine. For example, the analysis engine may find that a patient's blood pressure is trending dangerously high. Based on the blood pressure trend, the reporting and workflow engine may send a notification of the trend to the patient. The system can store various user-configurable workflows and workflow templates. In a specific implementation, there is a workflow that monitors patient folders for updates. When an update, such as a new document is in the patient folder, the workflow may trigger a message, such as an HL7 message that is sent to the physician's EMR. The new document may be a patient consent form that has been scanned and placed in the patient folder.
User interface 540 includes a graphical user interface for receiving user input and displaying the results. For example, users may submit queries to the system and view query results through the user interface.
As shown in
An HL7 message can have any number of segments. A segment occupies a line in the message and is represented or identified by a word or code having three characters. The word or code may include letters, numbers, or both (e.g., alphanumeric). Segments identify the type of information that can be found in the message and group related information. Some examples of segments that may be found in an HL7 message include “MSH,” “EVN,” “PID,” “PV1,” “All,” and “DG1.”
The MSH segment is the message header and includes details about the message such as message type, sending, receiving application, date, or acknowledgment required or not. The EVN segment is the event type and is used to communicate trigger event information to receiving applications. The PID segment includes patient information identifying and demographic information that is not likely to change frequently. The PV1 segment includes details of the patient's visit to hospital, such as bed, inpatient/out patient/emergency, visit id, or doctor with whom patient is consulting. The AL1 segment is used to transmit patient allergy information. The DG1 segment is used to transmit the patient diagnosis.
Segment 715 (“PID”) includes patient identification data. The segment in this example includes ten fields (some of which are empty). A field may be divided into subfields. For example, a fifth field 720 includes the patient's name. The patient's name is divided into a surname, i.e., “Jones,” a first name, i.e., “William,” a second name or middle initial, i.e., “A,” and a suffix, i.e., “III.”
Table A below lists some of the segments and included fields that may be present in an HL7 message.
The segments and fields listed in Table A above are provided merely as an example and Table A is not intended to be a complete listing. An HL7 message may include various other segments and fields not listed in Table A above that the system can analyze. The reference guides “HL7 Messaging Standard Version 2.5.1,” “HL7 Version 3 Normative Edition, 2011,” and “HL7 Messaging Standard Version 2.7,” which are incorporated by reference along with all other references cited in this application, describe other types of HL7 messages, including other segments and fields, which may be mined according to aspects of the present invention.
In a specific implementation, HL7 message processing module 545 (
DICOM enables the integration of scanners, servers, workstations, printers, and network hardware from multiple manufacturers into a picture archiving and communication system (“PACS”). The different devices may come with DICOM conformance statements which state the DICOM classes they support. DICOM has been widely adopted by hospitals and is making inroads in smaller applications like dentists' and doctors' offices.
Consider the following example. A patient is admitted to a hospital with some chest pains. The attending physician may order an MRI scan, and when this request is recorded on the Hospital Information System (HIS), an electronic request is often transmitted to the Radiology Information System (RIS) located in the imaging centre. This request typically includes information about where the request came from, who ordered it, the details of the patient, the type of imaging modality requested, and so forth. Once the booking is done, the patient then is sent to the imaging centre for the scan. After a scan has been completed, a set of DICOM-compliant images are created from the raw data, and is referred to as a “study.” A study may itself include several acquisitions depending on the scan configurations, and each of these acquisitions is referred to as a “series.” Each series includes of a number of images, and each of these images is individually referred to as a “DICOM Information Object.”
After the scanning procedure has been completed, all the images are transmitted for archival to a Picture Archival and Communication System (“PACS”). The scanned images may be reviewed for quality before being transmitted to a PACS system, and the reviewing technician may order another scan if they are not satisfactory. The archived images can then be retrieved from the PACS system to a workstation for viewing by a radiologist. The radiologist may either view the images directly on the screen, or print these images on film. Later, she may add additional comments about her observations on a report. Once she completes this process, the changes are merged with the original study on the PACS system. An electronic message is also transmitted back to the RIS indicating that the modality request has been completed. Information may also be transmitted back to the originating HIS along with some of the key images to assist in intervention by, for example, a cardiologist if necessary.
As shown in the example of
In a DICOM file, typically the first 794 bytes are used for a DICOM format header. The header, as discussed, describes the image dimensions and retains other text information about the scan. The size of this header varies depending on how much header information is stored. The image data follows the header information. Generally, DICOM requires a 128-byte preamble (these 128 bytes are usually all set to zero), followed by the letters “D,” “I,” “‘C,” and “M.”
In a specific implementation, DICOM processing module 550 (
The command set is used to indicate the operations/notifications to be performed on or with the data set. A command set is constructed of command elements 920. Command elements include the encoded values for each individual field of the command set per the semantics specified in the DICOM Message Service Element (“DIMSE”) protocol. Each command element includes three fields. A first field 925 includes a tag. A second field 930 includes a value length. A third field 935 includes a value field.
The tag includes an ordered pair of 16-bit unsigned integers representing the group number followed by element number. The value length includes a 32-bit unsigned integer representing the explicit length as the number of bytes (even) that make up the value. It does not include the length of the command element tag or value length fields. The value field includes an even number of bytes containing the value or values of the command element.
In a specific implementation, DICOM processing module 550 (
Table B below lists some of the tags and corresponding tag field descriptions that may be present in a DICOM message.
The tags and fields listed in Table B above are provided merely as an example and Table B is not intended to be a complete listing. A DICOM message may include various other tags not listed in Table B above that the system can analyze. The 2011 DICOM Standard, which is incorporated by reference, lists other tags that store healthcare information and which may be mined according to aspects of the present invention.
A flow for the XDS system may be as follows. In a step 1050, the document source (e.g., document author or creator) provides or publishes the clinical document to the document repository. Examples of clinical documents include a radiology report with referenced images, a discharge summary, or a medication list.
The document repository is responsible for storing the documents. In a step 1055, the repository passes to the document registry document metadata and a pointer to the location in the repository where the document is stored. In an implementation, the document registry maintains an index of published documents. The registry includes a set of document attributes or properties for each document stored. Some examples of attributes include patient name, document type, and storage location.
The document consumer may be a web browser or other interface. The document consumer, under the direction of, for example, a user, may query 1060 the registry to, for example, locate records of a particular type for a particular patient. The desired document can then be retrieved 1065 from the repository.
In a step 1210, the system receives messages. The messages include patient healthcare information formatted according to a healthcare information communication standard. For example, the information may be formatted according to the HL7 standard, the DICOM standard, or XDS standard.
In a step 1215, the system processes the patient healthcare information from the messages. In a specific implementation, processing includes normalizing the healthcare information. In a specific implementation, a method for normalizing includes scanning message content to identify a first name of a drug recorded in the message content. The method further includes identifying a second name of the drug not recorded in the message content and associating the second name with the first name. One of the first or second names is a brand name of the drug. The other of the first or second names is a generic name of the drug. The normalizing allows returning search results for both the brand and generic drug names.
In another specific implementation, processing includes indexing message content. The indexing can allow for fast retrieval of messages in response to a search query. Some examples index data structures that may be maintained by the system include a suffix tree, inverted index, citation index, ngram index, or document-term matrix.
In another specific implementation, processing includes transforming or reformatting message content to an XML document or a text-based document to facilitate searching.
In a step 1220, the system collects the patient healthcare information in a repository. The repository may include data from HL7 formatted messages, data from DICOM formatted messages, data from XDS formatted messages, free text messages like a scanned images with metadata, or combinations of these.
In a step 1225, the system mines the collected healthcare information to make health-related findings. The data mining may include cluster analysis, anomaly detection, associating rule mining, spatial indexes, predictive analytics, or combinations of these.
In a specific implementation, the system can act on the collected healthcare information. For example, in a specific implementation, the system provides a health monitoring or notification service. The system may analyze messages associated with a particular patient, discover that the patient's blood pressure is trending dangerously high, and send out notifications to the patient, the patient's doctor or both to inform them of the findings. The system may send out periodic notifications (e.g., HL7 messages, email messages) or surveys to the patient in order to assess the patient's current health state. In this specific implementation, a feature of the system includes monitoring the changes to the patient (via the messages) and routing them through a workflow for actions to be taken based on rules. There can be human intervention like alerting a doctor or sending an email to the patient to come for a visit, making an appointment with the HIS system on the patient behalf, and so forth.
In another specific implementation, the system provides surveillance to detect the spread of infectious diseases. For example, the system can collect messages associated with patients entering the hospital and look for signs or other indications of an epidemic or disease outbreak. For example, the system can monitor the messages exchanged between the various system of a health information network to determine a number of times a particular disease has been recorded in the messages. If the number of times is greater than a predetermined threshold value, the system may generate an alert. If the number of times within a particular time period is greater than a threshold frequency, the system may generate an alert.
In another specific implementation, the system provides a predictive analytical service. In this specific implementation, the system analyzes messages collected over a period of time and which identify a particular patient. Based on the analysis, the system makes a prediction of the patient's prognosis.
In another specific implementation, the system includes a set of classification rules for automatically classifying the messages. There can be any number of different orthogonal axes. For example, the system may classify messages based on the identified patient in the messages, the ailment recorded in the messages, the medication recorded in the messages, the symptoms recorded in the messages, or combinations of these.
In another specific implementation, the system can make correlations or inferences based on analyzing the patient health information recorded in the messages.
In another specific implementation, the system provides a configuration interface. Through the configuration interface, users (e.g., administrators) can specify the message fields whose values are to be captured. For example, one hospital may specify that values in fields X, Y, and Z in the messages are to be captured and stored in the repository. Another hospital may specify that values in fields A, B, and C are instead to be captured and stored. This feature allows individual hospitals to tailor or customize the system according to their needs.
In the description above and throughout, numerous specific details are set forth in order to provide a thorough understanding of an embodiment of this disclosure. It will be evident, however, to one of ordinary skill in the art, that an embodiment may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate explanation. The description of the preferred embodiments is not intended to limit the scope of the claims appended hereto. Further, in the methods disclosed herein, various steps are disclosed illustrating some of the functions of an embodiment. These steps are merely examples, and are not meant to be limiting in any way. Other steps and functions may be contemplated without departing from this disclosure or the scope of an embodiment.
Claims
1. A method of analyzing healthcare communication messages transmitted over a network comprising:
- receiving from the network a plurality of messages, the plurality of messages comprising patient healthcare information formatted according to a healthcare communication standard;
- archiving the plurality of received messages in a database associated with the healthcare communication standard, wherein each of the plurality of received messages is archived in an unmodified form;
- automatically classifying the plurality of messages according to a stored set of classification rules, wherein the classifying is based on a plurality of different orthogonal axes;
- obtaining the patient healthcare information by parsing the plurality of received messages based on the healthcare communication standard to extract from the plurality of received messages field values as defined by the healthcare communication standard which comprise the patient healthcare information;
- collecting, in a repository which is separate from the database associated with the healthcare communication standard, the patient healthcare information by copying the field values of the obtained patient healthcare information into the repository;
- analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make health-related findings by identifying a plurality of messages associated with a particular patient, analyzing, for the collected patient healthcare information extracted from the plurality of messages associated with the particular patient, ones of the field values corresponding to a selected characteristic of the particular patient, and making the health-related findings based on the analyzed field values; and
- communicating the health-related findings to a user via a communication interface.
2. The method of claim 1, wherein communicating the health-related findings to the user comprises, in response to making the health-related findings, transmitting a notification to at least one of the particular patient and a doctor of the particular patient.
3. The method of claim 1, wherein analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings comprises monitoring changes to the particular patient indicated by the plurality of messages associated with the particular patient and routing the plurality of messages associated with the particular patient through a workflow which is configured to take actions based on a corresponding set of rules.
4. The method of claim 1, wherein the plurality of different orthogonal axes include two or more of: patient identifiers in the messages; ailments recorded in the messages; medications recorded in the messages; and symptoms recorded in the messages.
5. The method of claim 1, wherein analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings comprises collecting a plurality of messages associated with a particular patient over a period of time, analyzing the collected plurality of messages associated with the particular patient, and generating a prediction of the particular patient's prognosis.
6. The method of claim 1, wherein analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings comprises:
- monitoring the plurality of messages;
- identifying indications of a particular disease in the plurality of messages;
- determining whether the indications of the particular disease in the plurality of messages meet a threshold condition;
- in response to determining that the indications of the particular disease in the plurality of messages meet the threshold condition, generating an alert indicative of an outbreak of the particular disease.
7. The method of claim 6, wherein the threshold condition comprises detecting a threshold number of the indications of the particular disease within a selected time period.
8. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:
- receiving from a network a plurality of messages, the plurality of messages comprising patient healthcare information formatted according to a healthcare communication standard;
- archiving the plurality of received messages in a database associated with the healthcare communication standard, wherein each of the plurality of received messages is archived in an unmodified form;
- automatically classifying the plurality of messages according to a stored set of classification rules, wherein the classifying is based on a plurality of different orthogonal axes;
- obtaining the patient healthcare information by parsing the plurality of received messages based on the healthcare communication standard to extract from the plurality of received messages field values as defined by the healthcare communication standard which comprise the patient healthcare information;
- collecting, in a repository which is separate from the database associated with the healthcare communication standard, the patient healthcare information by copying the field values of the obtained patient healthcare information into the repository;
- analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make health-related findings by identifying a plurality of messages associated with a particular patient, analyzing, for the collected patient healthcare information extracted from the plurality of messages associated with the particular patient, ones of the field values corresponding to a selected characteristic of the particular patient, and making the health-related findings based on the analyzed field values; and
- communicating the health-related findings to a user via a communication interface.
9. The computer program product of claim 8, wherein communicating the health-related findings to the user comprises, in response to making the health-related findings, transmitting a notification to at least one of the particular patient and a doctor of the particular patient.
10. The computer program product of claim 8, wherein analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings comprises monitoring changes to the particular patient indicated by the plurality of messages associated with the particular patient and routing the plurality of messages associated with the particular patient through a workflow which is configured to take actions based on a corresponding set of rules.
11. The computer program product of claim 8, wherein the plurality of different orthogonal axes includes two or more of: patient identifiers in the messages; ailments recorded in the messages; medications recorded in the messages; and symptoms recorded in the messages.
12. The computer program product of claim 8, wherein analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings comprises collecting a plurality of messages associated with a particular patient over a period of time, analyzing the collected plurality of messages associated with the particular patient, and generating a prediction of the particular patient's prognosis.
13. The computer program product of claim 8, wherein analyzing the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings comprises:
- monitoring the plurality of messages;
- identifying indications of a particular disease in the plurality of messages;
- determining whether the indications of the particular disease in the plurality of messages meet a threshold condition;
- in response to determining that the indications of the particular disease in the plurality of messages meet the threshold condition, generating an alert indicative of an outbreak of the particular disease.
14. A system for analyzing healthcare communication messages, the system comprising:
- a processor-based database management system executed on a computer system and configured to:
- receive from a network a plurality of messages, the plurality of messages comprising patient healthcare information formatted according to a healthcare communication standard;
- archive the plurality of received messages in a database associated with the healthcare communication standard, wherein each of the plurality of received messages is archived in an unmodified form;
- automatically classify the plurality of messages according to a stored set of classification rules, wherein the classifying is based on a plurality of different orthogonal axes;
- obtain the patient healthcare information by parsing the plurality of received messages based on the healthcare communication standard to extract from the plurality of received messages field values as defined by the healthcare communication standard which comprise the patient healthcare information;
- collect, in a repository which is separate from the database associated with the healthcare communication standard, the patient healthcare information by copying the field values of the obtained patient healthcare information into the repository;
- analyze the field values of the collected patient healthcare information extracted from the plurality of received messages to make health-related findings by identifying a plurality of messages associated with a particular patient, analyzing, for the collected patient healthcare information extracted from the plurality of messages associated with the particular patient, ones of the field values corresponding to a selected characteristic of the particular patient, and making the health-related findings based on the analyzed field values; and
- communicate the health-related findings to a user via a communication interface.
15. The system of claim 14, wherein the processor-based database management system is configured to communicate the health-related findings to the user by, in response to making the health-related findings, transmitting a notification to at least one of the particular patient and a doctor of the particular patient.
16. The system of claim 14, wherein the processor-based database management system is configured to analyze the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings by monitoring changes to the particular patient indicated by the plurality of messages associated with the particular patient and routing the plurality of messages associated with the particular patient through a workflow which is configured to take actions based on a corresponding set of rules.
17. The system of claim 14, wherein the plurality of different orthogonal axes include two or more of: patient identifiers in the messages; ailments recorded in the messages; medications recorded in the messages; and symptoms recorded in the messages.
18. The system of claim 14, wherein the processor-based database management system is configured to analyze the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings by collecting a plurality of messages associated with a particular patient over a period of time, analyzing the collected plurality of messages associated with the particular patient, and generating a prediction of the particular patient's prognosis.
19. The system of claim 14, wherein the processor-based database management system is configured to analyze the field values of the collected patient healthcare information extracted from the plurality of received messages to make the health-related findings by:
- monitoring the plurality of messages;
- identifying indications of a particular disease in the plurality of messages;
- determining whether the indications of the particular disease in the plurality of messages meet a threshold condition;
- in response to determining that the indications of the particular disease in the plurality of messages meet the threshold condition, generating an alert indicative of an outbreak of the particular disease.
Type: Application
Filed: Sep 3, 2021
Publication Date: Dec 23, 2021
Inventors: Shanmugasundaram Veliah (San Jose, CA), Lalith G. Subramanian (San Ramon, CA)
Application Number: 17/466,945