The present invention generally relates to computer information systems. More particularly, the present invention relates to a message data processing system and method therefor suitable for healthcare and other fields.
Some healthcare software applications are specifically tailored to a particular healthcare department (e.g., a Radiology Management System (“RMS”)), and provide healthcare information that is specific and relevant to the particular healthcare department.
Other healthcare software applications provide healthcare information compatible with a Health Level 7 (“HL7”) communication standard, but these applications do not provide healthcare information that is specific and relevant to a particular healthcare department. A user typically determines HL7 compatible healthcare information that is specific and relevant to a particular healthcare department by manually counting delimiters, separating fields of information in an HL7 message, and by manually looking up a field that is represented between a set of delimiters to interpret the information in the field. This manual process is time consuming and often leads to errors.
Accordingly, there is a need for a message data processing system and method therefor suitable for healthcare and other fields that provides healthcare information compatible with a HL7 communication standard, for example, and provides healthcare information that is specific and relevant to a particular healthcare department in a format that is user friendly.
A message data processing system suitable for processing messages identifying transactions includes an input processor, a parser, one or more repositories, and a data processor. The input processor receives data representing a message. The parser parses received message data to identify an individual data field in the message data. The one or more repositories contain ancillary information associated with data fields of the message data. The data processor retrieves ancillary information, associated with the identified data field of the message data, from the one or more repositories, and processes the retrieved associated ancillary information together with information in the data field for output.
The system 100 is intended for use by a healthcare provider that is responsible for servicing the health and/or welfare of people in its care. A healthcare provider may provide services directed to the mental, emotional, or physical well being of a patient. Examples of healthcare providers include a hospital, a nursing home, an assisted living care arrangement, a home health care arrangement, a hospice arrangement, a critical care arrangement, a health care clinic, a physical therapy clinic, a chiropractic clinic, and a dental office. When servicing a person in its care, a healthcare provider diagnoses a condition or disease, and recommends a course of treatment to cure the condition, if such treatment exists, or provides preventative healthcare services. Examples of the people being serviced by a healthcare provider include a patient, a resident, a client, a user, and an individual.
The system 100 is suitable for processing messages 120 identifying transactions. The input processor 102 receives data representing a message 120 to produce received message data 122. The parser 104 parses the received message data 122 to identify information in an individual data field 124 in the received message data. The repository 106 contains ancillary information 112 associated with data fields of the received message data 122. The data processor 108 retrieves the ancillary information 112, associated with the identified data field of the received message data 122, from the repository 106, and processes the retrieved associated ancillary information 126 together with information in the data field 124 for output 128.
The input processor 102 represents any type of communication interface that receives any type of signal, such as message data 120 including data fields. The message data 120 concerns a healthcare activity relating to a patient. The healthcare activity comprises one or more of the following: (a) patient admission, discharge or transfer from a hospital, (b) patient allergies, (c) radiology, (d) laboratory tests, (e) medication, (f) diet, and (g) therapy.
The parser 104 represents any type of processing element that parses signals. Parsing may otherwise be called dissecting, separating, distinguishing, identifying, categorizing, sorting, etc.
The repository 106 represents a data storage element and may otherwise be called a memory device, a storage device, a database, etc. The database may be of any type including for example, a Microsoft® (MS) Access® database. The repository 106 contains ancillary information 112 associated with the identified data field of the message data 12. The ancillary information 112 may otherwise be called additional, extra, supplemental information, etc. The ancillary information 112 associated with the identified data field of the message data 124 includes information derived from a clinical information database associated with the healthcare activity, such as that specific and relevant to a particular healthcare department. The ancillary information 112 includes one or more of the following: (a) activity type, (b) activity sub-type, (c) medical record number associated with the patient, (d) admission number associated with the patient, (e) a corporation identifier, (f) a visit identifier, (g) a patient identifier, and (h) a physician associated the healthcare activity.
The data processor 108 processes the retrieved associated ancillary information 126 together with information in the data field 124 for output 128 to one or more of the following: (a) a display on a reproduction device, (b) communication to a remote system, and (c) print output. The output 128 may be the same or different than the image data 130 communicated to the user interface 110.
The user interface 110 permits a user to interact with the system 100 by inputting data into the system 100 and/or receiving data from the system 100. The user interface 110 generates one or more display images, as shown in
The data input device 114 provides data 132 to the display generator 116 in response to receiving input information either manually from a user or automatically from an electronic device. The data input device 114 is a keyboard, but also may be a touch screen, or a microphone with a voice recognition program, for example.
The display generator 116 generates display signals 134, representing one or more images for display, in response to receiving the data 132 or other data from the system 100, such as the image data 130 from the data processor 108. The display generator 116 is a known element including electronic circuitry or software or a combination of both for generating display images or portions thereof. The image for display may include the retrieved ancillary information 126 and may include information associated with the identified data field 124. An action by a user, such as, for example, an activation of a displayed button, may cause the image to be displayed.
The data output device 118 represents any type of element that generates data. The data output device 118 is a display that generates display images in response to receiving the display signals 134, but also may be a speaker or a printer, for example.
The user interface 110 provides a graphical user interface (GUI), as shown in
In the system 100, one or more elements may be implemented in hardware, software, or a combination of both. Further, one or more elements may include one or more processors, such as the input processor 102, the parser 104, the data processor 108, and the display generator. A processor includes any combination of hardware, firmware, and/or software. A processor acts upon stored and/or received information by computing, manipulating, analyzing, modifying, converting, or transmitting information for use by an executable procedure or an information device, and/or by routing the information to an output device. For example, a processor may use or include the capabilities of a controller or microprocessor.
A processor performs tasks in response to processing an object. An object comprises a grouping of data and/or executable instructions, an executable procedure, or an executable application. An executable application comprises code or machine readable instruction for implementing predetermined functions including those of an operating system, healthcare information system, or other information processing system, for example, in response user command or input. The system 100 is written in Microsoft® Visual Basic 6.0, for example.
The system 100 may be fixed or mobile (i.e., portable), and may be implemented in a variety of forms including a personal computer (PC), a desktop computer, a laptop computer, a workstation, a network-based device, a personal digital assistant (PDA), a smart card, a cellular telephone, a pager, and a wristwatch. The system 100 may be implemented in a centralized or decentralized configuration.
The system 100 provides an electronic mechanism for a healthcare provider (otherwise called a “worker” or “user”) to analyze healthcare information in the form of message data associated with a transaction or record. The healthcare information may be represented in a variety of file formats including numeric files, text files, graphic files, video files, audio files, and visual files. The graphic files include a graphical trace including, for example, an electrocardiogram (ECG) trace, and an electroencephalogram (EEG) trace. The video files include a still video image or a video image sequence. The audio files include an audio sound or an audio segment. The visual files include a diagnostic image including, for example, a magnetic resonance image (MRI), an X-ray, a positive emission tomography (PET) scan, or a sonogram.
The system 100 communicates with remote computer systems over a wired or wireless communication path, otherwise called a network, a link, a channel, or a connection. The communication path may use any type of protocol or data format including an Internet Protocol (IP), a Transmission Control Protocol Internet protocol (TCPIP), a Hyper Text Transmission Protocol (HTTP), an RS232 protocol, an Ethernet protocol, a Medical Interface Bus (MIB) compatible protocol, a Local Area Network (LAN) protocol, a Wide Area Network (WAN) protocol, an Institute Of Electrical And Electronic Engineers (IEEE) bus compatible protocol, a Digital and Imaging Communications (DICOM) protocol, and a Health Level Seven (HL7) protocol.
The system processes message data 120 for healthcare transactions using the Health Level Seven (HL7) compatible protocol. A transaction comprises an activity associated with delivering healthcare to a patient. The image for display indicates that the identified data field is a particular HL7 data field. Health Level Seven, having a website at http://www.h17.org, is one of several American National Standards Institute (ANSI) accredited Standards Developing Organizations (SDOs) operating in the healthcare field. Most SDOs produce standards (sometimes called specifications or protocols) for a particular healthcare domain such as pharmacy, medical devices, imaging, or insurance (e.g., claims processing) transactions. HL7 is concerned with is clinical and administrative data. HL7 provides standards for the exchange, management, and integration of data that support clinical patient care and the management, delivery and evaluation of healthcare services. HL7 creates flexible, cost effective approaches, standards, guidelines, methodologies, and related services for interoperability between healthcare information systems.
“Level Seven” in HL7 refers to the highest level of the International Standards Organization's (ISO) communications model for Open Systems Interconnection (OSI), known as the application level. The application level addresses definition of the data to be exchanged, the timing of the interchange, and the communication of certain errors to the application. The application level supports such functions as security checks, participant identification, availability checks, exchange mechanism negotiations, and data exchange structuring.
According to one aspect of the present invention, the system 100 makes it easier for a user to view HL7 transactions that are received by healthcare information systems by automatically parsing the message data 120 in a transaction, and automatically provides a description of the field that the user has selected. The system 100 performs the automatic parsing process by automatically identifying identifiers that separate fields of information in the HL7 message, which is described in further detail with reference to
For example, HL7 information has standard field labels that identify a hierarchy of field labels from a segment (i.e., high) level to a sub-component (i.e., low) level. An example of a standard HL7 field label is patient identification (“ID”) five (i.e., “PID 5”), which represents “patient name.” Field label PID 5 is further broken down into field labels PID 5.1 and PID 5.2, which represent “family name” and “given name,” respectively. The parsing process automatically parses the hierarchy of field labels in the message data 120, and automatically provides a description of the field label that the user has selected.
According to another aspect of the present invention, the system 100 advantageously provides standard HL7 information, in combination with associated ancillary information 112 (e.g., from a clinical application) from the repository 106. The clinical application may be a radiology management system (“RMS”), for example, used by a radiology department. Examples of ancillary information 112 provided to a user include information, as shown in
At step 201, the method 200 starts.
At step 202, the input processor 102 receives data representing a message 120 and generates received message data 122.
At step 203, the parser 104 parses the received message data 122 to identify information 124 in an individual data field in the received message data 122.
At step 204, the data processor 108 retrieves ancillary information 112, associated with the identified data field of the received message data 122, from the repository 106 containing the ancillary information 112 associated with data fields of the received message data 122.
At step 205, the data processor 108 processes the retrieved associated ancillary information 126 together with the information 124 in the data field for output 128.
At step 206, the display generator 116 initiates generation of data 134 representing one or more images (300, 400, 500, 600, 700, 800) for display including the additional information.
At step 207, the method 200 ends.
The display area 302 represents the large open area in the window 300 and displays for the user message data 120 for the transaction. The user may delete the message data 120 displayed in the display area 302 by selecting (i.e., clicking on) the “Clear” box 304. The user may delete the message data 120 for the transaction displayed in the display area 302, and insert (i.e., paste) new or different message data 120 into the display area 302 by selecting the “Clear and Paste” box 306. The user may also insert message data 120 from sample transactions by selecting a right hand side mouse button (i.e., right clicking on) while the cursor is positioned over the “Process Transaction” box 310. The user may exit (i.e., close) the window 300 by selecting the “Exit” box 308. When the display area 302 displays the desired message data 120 for the transaction, the user causes the system 100 (
The delimiters 312, otherwise called identifiers or field labels, separate (i.e., distinguish or identify) information fields at various levels of granularity (i.e., detail) in the message data 120 (
Various delimiters shown in the message data 120 displayed in the display area 302 include, as shown in closed quotation marks: at a first level “<×0D>”; at a second level “|”; and at a third level “{circumflex over (0)}”. The levels of delimiters correspond to the hierarchy of field labels from the segment (i.e., high) level to the sub-component (i.e., low) level, described above. Because the delimiters are strung together with the field information in
The system 100 distinguishes the delimiters from the information to decode the message data 120 (
A simple example of message data 120 using the delimiters 312 at various levels, wherein letters A-G represent information in the data fields and shown in closed quotation marks is: “AAA|BBB|CCC{circumflex over (0)}DDD|<×0D>EEE|FFF{circumflex over (0)}GGG<×0D>.” In this example, the two first level delimiters “<×0D>” separate a first group of information and other delimiters “AAA|BBB|CCC{circumflex over (0)}DDD|” from a second group of information and other delimiters “EEE|FFF{circumflex over (0)}GGG”.
Next, in the simple example, the three second level delimiters “|” in the first group of information and other delimiters (i.e., “AAA|BBB|CCC{circumflex over (0)}DDD|”) separate a first set of information “AAA” from a second set of information “BBB” and from a third group of information and other delimiters “CCC{circumflex over (0)}DDD.” Likewise, the one second level delimiter “|” in the second group of information and other delimiters (“EEE|FFF{circumflex over (0)}GGG”) separates a first set of information “EEE” from a second group of information and other delimiters “FFF{circumflex over (0)}GGG.”
Next, in the simple example, one third level delimiter “{circumflex over (0)}” in the third group of information and other delimiters (i.e., “CCC{circumflex over (0)}DDD”) separate a first set of information “CCC” from a second set of information “DDD.” Likewise, the one third level delimiter “{circumflex over (0)}” in the second group of information and other delimiters (i.e., “FFF{circumflex over (0)}GGG”) separates a first set of information “FFF” from a second set of information “GGG.”
Therefore, this simple example shows how delimiters 312 may be used to identify information fields at various levels in the message data 120 (
Next,
After the user selects (i.e., clicks on) the “Process Transaction” box 310 (
The message data 120 (
The image element 402 is a known element that shows a “+” sign when the image element 402 is collapsed, as shown in
The expanding and collapsing of the image elements to display various levels of information separated by various levels of delimiters 312 (
The database information 404 displays details about the database storing the message data 120 (
The note section 405 permits a user, a system developer, or another party to insert a description related to the parsing process or other processes.
Selection of the “Quick Stats” box 406 permits a user to display statistics about the transaction. The statistics are displayed by opening another window 700, as shown in
The placement identifier (“ID”) 407 describes the location of the portion of the message data 120 for the transaction that is presently highlighted and broken down in the display area 401. An HL7 system describes the identifier 407 as the “unique placer ID.” The identifier 407 will be red, if a selected field is a required field. For example, from left to right the identifier 407, OBR 02.01.00, represents the observation request (“OBR”) segment, the second data field of the segment (i.e., “00003{circumflex over (0)}001”), the first component of the data field (i.e., “00003”), and no sub-components.
Selection of the “Exit” box 408 permits the user to exit (i.e., close) the windows 400 (
Selection of the “New Transaction” box 410 permits the user to parse message data 120 (
Selection of the “View Results” box 412 permits a user to display results about the transaction. The results are displayed by opening another window 800, as shown in
Selection of the “Record Type” indicators 414 permit a user to select a type of record to be displayed. Types of records include, for example, Invision (“INV”), Generic Record Versions 3 (“GR3”), and Med-Series 4 (“MS4”). Selection of a record type causes the data processor 108 to retrieve the appropriate information from the repository 106 by sending a message (e.g., a SQL call) to the repository 106.
The “Total Record Length” data 416 shows the length of the record displayed (e.g., 3797). The record length may be displayed in any format, such as numbers, or units, such as bytes.
Selection of the “Print” icon 418 permits a user to print out a graphical view of the window 400\.
Selection of the “Lookup” icon 420 permits a user to display information for the selected record type that is stored in the repository 106. The system 100 displays all, but may display only part, of the information for the selected record type. The information is displayed by opening another window 600, as shown in
The system 100 displays any information related to the message data 120 including that shown in the display area 601. When the system 100 opens the window 600, the system 100 initially displays the information for the record type currently being viewed in the display area 601 ascending alphabetically by the field name in column 606. The system 100 retrieves the information in the display area 601 and in the database information area 602 from the repository 106 (
The sorting selections 603 permit a user to sort the information in the display area 601 by either field name (i.e., column 606) or by segment description (i.e., column 604). The system 100 sorts the information in the display area 601 according to the field names in column 606 when the user selects (i.e., clicks on) the “Name Sort” option. The system 100 sorts the information in the display area 601 according to the segment descriptions in column 604 when the user selects (i.e., clicks on) the “Segment Sort” option. The system 100 sorts the information in the display area 601 by either field name (i.e., column 606) or by segment description (i.e., column 604) in response to the user's selection by changing the SQL query of the repository 106. Typically, the field names in column 606 and the segment descriptions in column 604 are sorted in ascending alphabetical order. After the system 100 sorts the field names or segment descriptions, the user may manually search (i.e., scan) through the information in the display area 601 using the scroll bar on the right side of the window 600 to find the desired information. Alternatively or additionally, the window 600 may also include a search mechanism (not shown) to permit a user to automatically search for any type of desired information stored in the repository 106, including that information shown in the display area 601.
The database information area 602 displays any information in the repository 106 related to the message data 120 (
The system 100 displays any information communicated in the message data 120 (
An admission record (identified as “ADT”), for example, for a change medical record transaction (identified as “A18”), includes additional information about a patient's medical records. When the system 100 processes this type of transaction, the system 100 provides a description in sentence form explaining instructions. The system 100 generates the information in the window 700 for this type of record by parsing (i.e., pulling or retrieving) out the text from predetermined fields (e.g., Patient Identification (“PID”) and Merge Patient Information (“MRG”) segments) and displays it in predetermined portions of the window 700. For example, the description might read “Move visit 12345 under Admit 45678 from MR 2828289 to MR 128218912.”
A result record (identified as “ORU”) includes additional information about a patient's test results related to a transaction. When the system 100 processes this type of transaction, the system 100 inserts a label 706 at the top of the window 700 in the first display area 701 indicating the result status, such as for example, “Preliminary,” “Final,” or “Addendum.”
An order record (identified as “ORM”) includes additional information about a patient's orders related to a transaction. When the system 100 processes this type of transaction, the system 100 inserts extra lines to show the department and the procedure that was ordered, as shown in the second display area 702.
The system 100 provides any results information communicated in the message data (
The system 100 enables and disables the “View Results” icon 412 when the message data 120 for the transaction includes and does not include, respectively, the results information. The system 100 generates the results information for display in the window 800 either before or after the user selects the “View Results” icon 412, and displays the results information after the user selects the “View Results” icon 412.
The system 100 generates the results information for display in the window 800 by parsing out the text from predetermined fields (e.g., in an OBX segment), and displaying the text in predetermined portions of the window 800.
The system 100 performs this function using executable code in the system 100 and does not depend on an outside source. Generally, the executable code identifies the results information identified by delimiters (e.g. an OBX segment), and displays the results information in a predetermined display location in the window 800. In particular, the executable code combines the results information from the OBX segments into a single string of information. The executable code provides feed lines in the string of information by replacing (i.e., converting) the delimiters (e.g., “×0A”) in the string with other characters or symbols (e.g., the tilda (˜)) to simplify the process for displaying the results information. The executable code processes the new string of information having the feed lines to display the results information in predetermined portions of the window 800 for a user to view.
The system 100 displays the results information in a format as if it was being printed so that it can be easily read and/or printed by a user. The window 800 may have any format, and displays general results information in the first display area 802 and more detailed results information in the second display area 802.
Any system that uses a record layout, such as a HL7 compatible system, may use the system 100 and method 200, as described herein. Advantages of the system 100 and method 200 include the following, for example:
The system 100 facilitates reading, identifying, and interpreting HL7 transactions that are used to transmit patient data from one hospital system to another, for example. The system 100 advantageously enables a transaction to be broken down into its segments, fields, components and sub-components, and displays a description of a selected data element. For example, assume a user desires to view an admissions record from another system and to see what was in an OBR segment, in the second field, and in the first component. The system 100 advantageously assist the user to view the desired information by parsing the transaction, which separates the transaction, finds the segment, breaks it down, finds the second field, selects it, finds the first component, selects it, presents what is contained in the selected fields, as well as corresponding database information about the fields.
While the present invention has been described with reference to various illustrative embodiments thereof, the present invention is not intended that the invention be limited to these specific embodiments. Those skilled in the art will recognize that variations, modifications, and combinations of the disclosed subject matter can be made without departing from the spirit and scope of the invention as set forth in the appended claims.
The present application claims priority to Provisional Application Ser. No. 60/494,347, filed Aug. 11, 2003; and Provisional Application Ser. No. 60/500,140, filed Sep. 4, 2003.
Number | Date | Country | |
---|---|---|---|
60494347 | Aug 2003 | US | |
60500140 | Sep 2003 | US |