US 10,892,046 B1
Systems and methods for dynamically extracting electronic health records
James A. Harding, Issaquah, WA (US); Mark W. Bowers, Langley, WA (US); and Alejandro G. Carrillo, Seattle, WA (US)
Assigned to MultiScale Health Networks LLC, Seattle, WA (US)
Filed by James A. Harding, Issaquah, WA (US); Mark W. Bowers, Langley, WA (US); and Alejandro G. Carrillo, Seattle, WA (US)
Filed on Apr. 22, 2015, as Appl. No. 14/693,147.
Application 14/693,147 is a continuation in part of application No. 14/463,542, filed on Aug. 19, 2014, abandoned.
Claims priority of provisional application 62/039,059, filed on Aug. 19, 2014.
Int. Cl. G16H 10/60 (2018.01)
CPC G16H 10/60 (2018.01) 19 Claims
OG exemplary drawing
 
1. A system for replicating electronic health records from a source customer database that contains multiple electronic health records that are represented in a hierarchical data format, the system comprising:
a processor;
a memory;
a first extraction module comprising instructions that are stored in the memory and that are configured, when executed by the processor, to:
perform extraction of first data from the source customer database, wherein the first data includes a complete data record stored by the source customer database; and
cause the extracted first data to be stored in a clinical data engine that represents at least some of the multiple electronic health records in a manner that logically preserves the hierarchical data format while providing a relational access model to the health records; and
a second extraction module comprising instructions that are stored in the memory and that are configured, when executed by the processor, to:
perform real-time extraction of second data from the source customer database, wherein the second data is obtained from a journal file of the source customer database, wherein the source customer database stores the second data in the journal file in response to write operations performed by a customer application to store the second data in the source customer database, and wherein the second data is obtained by the second extraction module concurrent with the write operations performed by the customer application;
determine that the second data is an update that references the complete data record stored by the source customer database;
determine, by querying the clinical data engine, that the complete data record referenced by the update does not exist in the clinical data engine;
in response to the determination that the complete data record does not exist in the clinical data engine:
flag and place the update that references the complete data record in a delay queue associated with the complete data record;
transmit to the first extraction module an instruction to extract the complete data record stored by the source customer database, wherein the first extraction module stores the complete data record in the clinical data engine; and
while the first extraction module extracts the complete data record, temporarily store the second data in the delay queue;
after the first extraction module has extracted the complete data record, cause the second data stored in the delay queue to be stored in the clinical data engine; and
cause the extracted second data to be stored in the clinical data engine after storage of the complete data record in the first data.