Embodiments of the present invention relate generally to computer technology and, more particularly, relate to methods, apparatuses, and computer program products for interfacing with a third party health information technology (HIT) system.
The widespread use of modern computing technology has led to an increasing demand for information to be captured and shared amongst computer-based applications. The medical services industry in particular relies on systems to store and maintain patient data in a centralized location made accessible to various authorized users. Third party HIT systems may access shared electronic health records (EHRs) and other consolidated information, maintained on a centralized system in order to provide the most up to date patient data available to health care providers and other customers.
There are a variety of third party HIT systems with at least some of the third party HIT systems providing data, such as EHR data, that is formatted in different manners. As such, it may be somewhat complex to communicate with each of a plurality of third party HIT systems since different interfaces may be required to communicate with the different HIT systems. Thus, substantial resources may be required to be dedicated to the design and implementation of the various interfaces that are required to communicate with third party HIT systems.
Methods, apparatuses, and computer program products are therefore provided for interfacing with a third party HIT system, such as between a third party HIT system and a centralized HIT system. Embodiments described herein may reduce the need for manual configuration or selection of interface specifications. Similarly, the necessity for systems administrators of a third party HIT system to be experienced or knowledgeable with regard to a specific HIT system may be reduced.
A method is provided, including receiving data from an HIT system. A format of the data may not be pre-established with respect to a recipient of the data. The method further includes analyzing the data, identifying the format of the data based on an analysis of the data, and extracting one or more data elements from the data in accordance with the format that was identified.
In some embodiments, analyzing the request comprises identifying a unique characteristic of the data that is associated with a respective HIT system, and identifying the format comprises identifying the format based on the respective HIT system. In some embodiments, analyzing the request comprises generating an interface and testing compatibility of the data with the interface. The method may include repeating the generating and testing until a compatible interface is generated.
In some embodiments, an apparatus is provided comprising processing circuitry configured to cause the apparatus to receive data from a health information system. A format of the data may not be pre-established with respect to the apparatus. The processing circuitry may further cause the apparatus to analyze the data, identify the format of the data based on an analysis of the data, and extract one or more data elements from the data in accordance with the format that was identified. In some embodiments, the processing circuitry may be configured to analyze the request by identifying a unique characteristic of the data that is associated with a respective HIT system, and may be configured to identify the format by identifying the format based on the respective HIT system. According to some embodiments, the processing circuitry may be configured to analyze the request by generating an interface, and testing compatibility of the data with the interface. The processing circuitry may be further configured to cause the apparatus to repeat the generating and testing until a compatible interface is generated.
In some embodiments, a computer program product comprising at least one non-transitory computer-readable medium having computer-readable program instructions stored therein with the computer-readable program instructions comprising instructions, which when performed by an apparatus, are configured to cause the apparatus to receive data from a HIT system. A format of the data may not be pre-established with respect to the computer program product. The instructions may be further configured to cause the apparatus to analyze the data, identify the format of the data based on an analysis of the data, and extract one or more data elements from the data in accordance with the format that was identified. In some embodiments, the instructions configured to analyze the request comprise instructions configured to identify a unique characteristic of the data that is associated with a respective health information system, and the instructions configured to identify the format comprise instructions configured to identify the format based on the respective health information system. According to some embodiments, the instructions configured to analyze the request comprise instructions configured to generate an interface and test compatibility of the data with the interface. The instructions may be further configured to cause the apparatus repeat the generating and testing until a compatible interface is generated.
The above summary is provided merely for purposes of summarizing some example embodiments of the invention so as to provide a basic understanding of some aspects of the invention. Accordingly, it will be appreciated that the above described example embodiments are merely examples and should not be construed to narrow the scope or spirit of the disclosure in any way. It will be appreciated that the scope of the disclosure encompasses many potential embodiments, some of which will be further described below, in addition to those here summarized.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout.
As used herein, where a computing device is described herein to receive data from another computing device, it will be appreciated that the data may be received directly from the another computing device and/or may be received indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, and/or the like. Similarly, where a computing device is described herein to send data to another computing device, it will be appreciated that the data may be sent directly to the another computing device or may be sent to the another computing device via one or more interlinking computing devices, such as, for example, one or more servers, relays, routers, network access points, and/or the like.
The system 101 may include any number of application server(s) 104 that may support and/or provide application code written in a variety of languages, providing various applications to enter, maintain, or otherwise access EHRs and/or other data stored in database 106. In some embodiments, database 106 may be implemented as any number of databases and may be accessible to application server(s) 104 via direct connection and/or over a network. In some embodiments, database 106 may be implemented on the same apparatus as an application server 104.
In some embodiments, system 101 may include a third party interface identification apparatus 102 that may be configured to identify third party systems communicating with application servers 104. Third party identification interface apparatus 102 may be directly coupled to the application server(s) 104, or accessed over a network. For example, in embodiments in which a third party interface identification apparatus 102 is disposed remotely from the application server(s) 104, EHR data may be provided to the application server(s) 104 via a network 100, by a variety of connections. Network 100 may be embodied in a local area network, the Internet, any other form of a network, or in any combination thereof, including proprietary private and semi-private networks and public networks. The network 100 may comprise a wireline network, wireless network (e.g., a cellular network, wireless local area network, wireless wide area network, some combination thereof, or the like), or a combination thereof, and in some example embodiments comprises at least a portion of the Internet.
In some example embodiments, third party interface identification apparatus 102 may be embodied as or comprise one or more computing devices, such as, by way of non-limiting example, a server, configured to access network 100 and/or application server(s) 104. In some example embodiments, third party interface identification apparatus 102 may be implemented as a distributed system or a cloud based entity that may be implemented within network 100. In this regard, third party interface identification apparatus 102 may comprise one or more servers, a server cluster, one or more network nodes, a cloud computing infrastructure, some combination thereof, or the like. Additionally or alternatively, third party interface identification apparatus 102 may be implemented as a web service. In some embodiments, third party interface identification apparatus 102 may be implemented in the same apparatus as one or more application server(s) 104. An example embodiment of third party interface identification apparatus 102 is illustrated in
Any number of third party HIT systems 110, hereinafter referred to as system(s) 110, may be configured to communicate with HIT system 101 over network 100. System(s) 110 may be maintained by an entity such as a health care, prescriptions, and/or insurance provider, and may be configured to access and/or provide information stored on database 106 via an interface provided by application server(s) 104. System(s) 110 may be implemented in a variety of configurations, and may include application servers configured to communicate with an interface of application server(s) 104.
The third party identification apparatus 102 of one embodiment includes processing circuitry 210. Processing circuitry 210 may be configured to perform actions in accordance with one or more example embodiments disclosed herein. In this regard, the processing circuitry 210 may be configured to perform and/or control performance of one or more functionalities of the third party interface identification apparatus 102 in accordance with various example embodiments. The processing circuitry 210 may be configured to perform data processing, application execution, and/or other processing and management services according to one or more example embodiments. In some embodiments, the third party interface identification apparatus 102 or a portion(s) or component(s) thereof, such as the processing circuitry 210, may be embodied as or comprise a circuit chip. The circuit chip may constitute means for performing one or more operations for providing the functionalities described herein.
In some example embodiments, the processing circuitry 210 may include a processor 212 and, in some embodiments, such as that illustrated in
The processor 212 may be embodied in a number of different ways. For example, the processor 212 may be embodied as various processing means such as one or more of a microprocessor or other processing element, a coprocessor, a controller, or various other computing or processing devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), or the like. Although illustrated as a single processor, it will be appreciated that the processor 212 may comprise a plurality of processors. The plurality of processors may be in operative communication with each other and may be collectively configured to perform one or more functionalities of third party interface identification apparatus 102 as described herein. The plurality of processors may be embodied on a single computing device or distributed across a plurality of computing devices collectively configured to function as the third party interface identification apparatus 102. In some example embodiments, the processor 212 may be configured to execute instructions stored in the memory 214 or otherwise accessible to the processor 212. As such, whether configured by hardware or by a combination of hardware and software, the processor 212 may represent an entity (e.g., physically embodied in circuitry—in the form of processing circuitry 210) capable of performing operations according to embodiments of the present invention while configured accordingly. Thus, for example, when the processor 212 is embodied as an ASIC, FPGA, or the like, the processor 212 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor 212 is embodied as an executor of software instructions, the instructions may specifically configure the processor 212 to perform one or more operations described herein.
In some example embodiments, the memory 214 may include one or more non-transitory memory devices such as, for example, volatile and/or non-volatile memory that may be either fixed or removable. In this regard, the memory 214 may comprise a non-transitory computer-readable storage medium. It will be appreciated that while the memory 214 is illustrated as a single memory, the memory 214 may comprise a plurality of memories. The plurality of memories may be embodied on a single computing device or may be distributed across a plurality of computing devices collectively configured to function as the third party interface identification apparatus 102. The memory 214 may be configured to store information, data, applications, instructions and/or the like for enabling the third party interface identification apparatus 102 to carry out various functions in accordance with one or more example embodiments. For example, the memory 214 may be configured to buffer input data for processing by the processor 212. Additionally or alternatively, the memory 214 may be configured to store instructions for execution by the processor 212. As yet another alternative, the memory 214 may include one or more databases that may store a variety of files, contents, or data sets. Among the contents of the memory 214, applications may be stored for execution by the processor 212 to carry out the functionality associated with each respective application. In some cases, the memory 214 may be in communication with one or more of the processor 212, user interface 216, or communication interface 218, for passing information among components of third party interface identification apparatus 102.
The user interface 216 may be in communication with the processing circuitry 210 to receive an indication of a user input at the user interface 216 and/or to provide an audible, visual, mechanical, or other output to the user. As such, the user interface 216 may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen display, a microphone, a speaker, and/or other input/output mechanisms. In some example embodiments in which the third party interface identification apparatus 102 is embodied as a server, cloud computing system, or the like, aspects of user interface 216 may be limited or the user interface 216 may not be present. Accordingly, the user interface 216 may provide input and output means to facilitate third party identification operations in accordance with one or more example embodiments.
The communication interface 218 may include one or more interface mechanisms for enabling communication with other devices and/or networks. In some cases, the communication interface 218 may be any means such as a device or circuitry embodied in either hardware, or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the processing circuitry 210. By way of example, the communication interface 218 may be configured to enable third party interface identification apparatus 102 to communicate with application server(s) 104 and/or database 106. Accordingly, the communication interface 218 may, for example, include supporting hardware and/or software for enabling communications via cable, digital subscriber line (DSL), universal serial bus (USB), Ethernet, or other methods.
In
In some embodiments, a format of the data received at operation 300 may not be pre-established with respect to the third party interface identification apparatus 102 that serves as the recipient of the data. In other words, the third party interface identification apparatus 102 does not know in advance the format of the data received from the HIT system since the third party interface identification apparatus may not know the identity of the HIT system or, even if the identity of the HIT system is known, may not have previously communicated with the HIT system. In this regard, the data may not be in a readable or otherwise interpretable format for third party interface identification apparatus 102, or processor 212, because the format has not been pre-established with HIT system 101. HIT system 101 may require the data to be in a readable or otherwise interpretable format in order to interpret the data and update database 106 with correct information.
At operation 310, third party interface identification apparatus 102 may analyze the data, such as by processing circuitry 210 or processor 212. An analysis may include parsing data elements from an unstructured to structured format, cleaning the data to remove unwanted characters or noise, and/or transforming data elements into a format that may be interpreted by processor 212. Continuing to operation 320, processing circuitry 210, such as processor 212, may identify the format of the data based on an analysis of the data. The format of the data may define the manner in which the plurality of data elements that are included within the data should be interpreted, e.g., patient identifier, birth date, street address, etc., the sequence in which the data elements are presented, the number of characters that comprise each data element and/or the format of each data element. For example, processor 212 may identify a format of a data element “mm/dd/yyyy” as being in a date format, or a format of “123 xyz St.” as being a street address format. In some embodiments, processor 212 may process all the data received and identify a format the data in its entirety, such as in a scenario where all required data is received together. In some embodiments, processor 212 may analyze the data on a field by field basis.
At operation 330, processing circuitry 210, such as processor 212, may supplement the EHR of the patient with one or more data elements extracted from the data in accordance with the format that was identified. For example, processor 212 may identify an EHR based on a patient name or other identifier extracted from the data. The respective EHR may then be updated with additional data elements extracted from the data and communicated to the database 106, such as via communication interface 218.
At operation 370, the processing circuitry 210, such as processor 212, may determine if the interface is compatible with the data. For example, if the interface is determined to have not properly interpreted and processed the data provided by the third party HIT system, the processor may determine that the interface is not compatible with the data and return to operation 350. In one embodiment, if an exception is thrown, processor 212 may determine the interface is not compatible with the data and return to operation 350. However, if the interface is determined to have properly interpreted and processed the data provided by the third party HIT system, such as by not throwing an exception, the processor may determine that the interface is compatible.
In instances that the processor 212 determines the interface is compatible with the data, the processor 212 will have identified the format of the data (as a format with which the interface is compatible) and may return to performing operations described with respect to
Although one technique for determining the format of the data provided by a third party HIT system has been described above for purposes of example, the system, method and computer program product of example embodiments may analyze the data in various other manners in order to determine the format of the data. For example, the processing circuitry 210 may know in advance one or more unique characteristics with respect to the manner in which each of a plurality of third party HIT systems format data. As such, the processing circuitry 210 may analyze the data provided by a third party HIT system to determine if the data includes the unique characteristics of any one of the plurality of third party HIT systems. In an instance in which the processing circuitry 210 does determine that the data provided by a third party HIT system includes a unique characteristic associated with a respective one of the plurality of third party HIT systems, the processing circuitry may determine that the data was provided by the respective third party HIT system such that the data may thereafter be interpreted in accordance with the pre-established format utilized by the respective third party HIT system.
Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.