Skip to main content

Database query tool for the OMOP Common Data Model

Project description

# InspectOMOP

## What is it?

**inspectomop** is a lightweight python 3 package that assists in the extraction of electronic health record(EHR) data from relational databases following the OHDSI OMOP Common Data Model(CDM) standard v>=5.

* OHDSI: Observational Health Data Sciences and Informatics
* OMOP: Observation Medical Outcomes Partnership

## Why was this built?
A large portion of data science research is spent on ETL (Extraction, Transformation, and Loading). If the data are stored in a relational database, the first step includes deciphering the database schema and figuring out how to write SQL queries that will properly gather the information of interest. This can be both laborious and time consuming. **inspectomop** attempts to simplify extracting data from the OMOP CDM with an API that is easy to use, extensible, and SQL dialect agnostic.

One of the main benefits of adopting a CDM such as OMOP is that it promotes the sharing of ideas and methodology. Queries in **inspectomop** are simple python functions of the format:
So using sqlAlchemy any user can create custom queries that can be shared accross intitutions and database management systems.

```sh
def my_query(inputs, inspector, retrun_columns='all'):

# create SQL agnostic query usually of the form

statement = select([columns]).where(inputs == criteria)

return inspector.execute(statement)
```

## Who is this for?

**inspectomop** is for any python 3 programmer with an interest in interfacing with an EHR relational database formatted to follow the OMOP CDM standard.

The OHDSI group has developed and excellent library of tools written in R, but there are few, if any tools, for the python community.


## Features
- SQL dialect agnostic thanks to SQLAlchemy allowing for a variety of compatible database back ends
- automatic relection of DB tables to dot accesable python objects for easy traversal and inspection
- preloaded with standard queries from the OHDSI group
- results returnable as pandas dataframes or dataframe chuncks for queries with a large number of rows
- extensibility withwith custom queries built from simple python functions

## SQL Dialect Compatibility

Below is a table comparing SQL dialect support for **inspectomop** versus the R SQLRender package written and maintained by the OHDSI group.

| dialect | inspectomop (python) | SQLRender (R) |
| --- | --- | --- |
| BigQuery | No \* | Yes |
| Impala | Yes \* | Yes |
| Netezza | No \* | Yes |
| Oracle | Yes | Yes |
| PostgreSQL | Yes | Yes |
| Redshift | Yes \* | Yes
| SQL Server | Yes | Yes |
| SQLite | Yes | Unknown |

Note: compatibility is based solely on the availability of dialects written for SQLAlchemy and has not been explicitly tested by the author. However, success stories and troubleshooting questions are welcome!

#### \* BigQuery : python DB-API, but no sqlalchemy dialect as of 8/17/2018 (https://github.com/GoogleCloudPlatform/google-cloud-python/issues/3603)
#### \* Impala : external dialect available via [impyla](https://pypi.org/project/impyla/) package
#### \* Netezza : python DB-API, but no sqlalchemy dialect as of 8/17/2018
#### \* Redshift : external dialect available via [sqlalchemy-redshift](https://pypi.org/project/sqlalchemy-redshift/) package

# Where to get it
* install from PyPI using pip with
```sh
pip install inspectomop
```

# Dependencies
- [SQLAlchemy v>=1.2](https://www.sqlalchemy.org)
- [Pandas](https://pandas.pydata.org)

\* Developed using SQLAlchemy 1.2.1 and Pandas 0.22.0

# License
Feel free to fork, copy, share and contribute. This software released under [GNU Affero GPL v3.0](https://github.com/jbadger3/inspectomop/tree/maste/LICENSE.md)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

inspectomop-0.1.0-py3.6.egg (583.8 kB view hashes)

Uploaded Source

inspectomop-0.1.0-py3.5.egg (580.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page