Accessing EMR (EHR) data from SQL Server

  • Who has an experience to access and load data from CERNER or EPIC EMR systemes? Can we load selected data into local SQL Server database via ADO? Do they provide an inteface?

    Thanks

  • I have not used Cerner, but I have used Epic so I'll take a stab at this.

    I will assume that you are thinking of converting from one EMR to another.

    Epic uses a document database called InterSystems Caché.

    I was not one of the people migrating data when we moved from the former EHR to Epic. Epic staff handled this and did not want to explain much.

    They have a translator that will take the SQL data and convert to document DB format.

    Now, if you are looking to get data out of the Epic database, this is a bit easier.

    Epic has nightly processes (that the client sets up) that copy data out of Epic (document DB) into either a SQL Server or Oracle DB. If you can access one of these DB's then you are good to go. Warning: Not all data (or even new data) is migrated nightly. Check with your ETL admin's about this.

    Interface.

    If you can access the Epic SQL Server/Oracle DB's, the you can use ADO (I guess with Oracle, but not sure) to access the data.

    There is a piece of middleware (I forget the name) that allows you to directly query the Caché DB in a SQL like format, but it is very slow and won't work for large queries.

    You can set up an interface between Epic and Cerner (or another EMR) systems (like Epic Inpatient->Cerner Lab), but I am not familiar with writing interfaces for these EMR's.

    Will need detailed information on what you want to do before I can try to give more information.

  • Thank you.

    Currently we place queries into vb code (or use vb code to call stored proc from the source database) and get the resultsets (using ADO) that are inserted into the local SQL Server (2008) tables. Source databases are Oracle, SQL Server or non-normalized queriable databases.

    Now questions:

    1. CERNER sits on Oracle, what kind of db EPIC's using?

    2. How you specify the dataset you load from EPIC document DB (sorry, what kind of animal is the 'document DB'?) Does EPIC provide you with metadata? Or you can create a view?

    Expect more questions:

    'A fool can ask more questions than seven wise men can answer' (Chinese proverb).

  • valeryk2000 (5/8/2015)


    Thank you.

    Currently we place queries into vb code (or use vb code to call stored proc from the source database) and get the resultsets (using ADO) that are inserted into the local SQL Server (2008) tables. Source databases are Oracle, SQL Server or non-normalized queriable databases.

    Now questions:

    1. CERNER sits on Oracle, what kind of db EPIC's using?

    2. How you specify the dataset you load from EPIC document DB (sorry, what kind of animal is the 'document DB'?) Does EPIC provide you with metadata? Or you can create a view?

    Expect more questions:

    1. CERNER sits on Oracle, what kind of db EPIC's using?

    The main database for Epic is Cachè (look up InterSystems Cachè). Cachè is a document oriented database like NoSQL, Couch or Mongo.

    Epic's reporting database is either SQL Server or Oracle (clients choice).

    The client Epic ETL administrators have a series of ETL scripts that pull data from Cachè nightly, weekly, ??? (check with ETL administrator to see what is pulled at what frequency) and insert this data into the relational database. This means that some data in the relational database is hours to weeks old.

    I would suggest using the relational database for the data you want UNLESS you need up to the minute data. You will need to see what data you are pulling and then check with the ETL administrator to verify that this data is being pulled from Cachè frequently enough to satisfy your business requirements.

    2. How you specify the dataset you load from EPIC document DB (sorry, what kind of animal is the 'document DB'?) Does EPIC provide you with metadata? Or you can create a view?

    For explanation of what a document database is, see:

    http://en.wikipedia.org/wiki/Document-oriented_database

    From memory (I did not work with Cachè much), the document database has lots of metadata but the data is a PAIN to get to and querying is slow.

    The data for easy querying is placed in a relational database where you can create views or run queries.

    You can query Cachè, but it is very slow and can't handle reporting types of queries (many joins with filtering returning many rows of data). I would avoid trying to extract data from Cachè if at all possible.

  • From memory (I did not work with Cachè much), the document database has lots of metadata but the data is a PAIN to get to and querying is slow.

    The data for easy querying is placed in a relational database where you can create views or run queries.

    Is placed by whom? ETL administrator? Is it on the server? In other words, the relational database you mention is my local SQL Server?

  • It might be.

    As part of the Epic install a SQL Server or Oracle database is set up for reporting/querying.

    The ETL administrator is responsible for migrating data from Cachè to SQL Server/Oracle.

    If you are working at the institution where Epic is installed, then the SQL database should be local (or at least available) to you in some way.

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply