Skip to main content

OMOP Schema

PyPI - Version codecov Tests Code Quality Python License PRs Welcome Contributors

omop_schema is a Python package designed to read, manage, and convert OMOP (Observational Medical Outcomes Partnership) data into the correct schema. It provides tools to handle OMOP CDM (Common Data Model) tables, convert schemas between different formats (e.g., PyArrow, Polars, Pandas), and load datasets efficiently.

Features

  • Schema Management: Define and manage schemas for OMOP CDM tables for different versions (e.g., 5.3, v5.4).
  • Schema Conversion: Convert PyArrow schemas to Polars or Pandas-compatible schemas.
  • Dataset Loading: Load datasets from CSV files into PyArrow tables, ensuring they match the defined schema.
  • Optional Dependencies: Support for Polars and Pandas as optional dependencies for schema conversion.

Installation

Install the package using pip:

pip install omop_schema

To include optional dependencies:

pip install omop_schema[polars]
pip install omop_schema[pandas]
pip install omop_schema[polars,pandas]

Usage

1. Define and Retrieve OMOP Schemas

The package provides predefined schemas for OMOP CDM tables. You can retrieve the schema for a specific table:

from omop_schema.schema.v54 import OMOPSchemaV54

schema_v54 = OMOPSchemaV54()
concept_schema = schema_v54.get_pyarrow_schema("concept")
print(concept_schema)

2. Load Datasets

You can load datasets from a folder containing CSV files. The files are matched to the predefined schemas:

from omop_schema.schema.v54 import OMOPSchemaV54

schema_v54 = OMOPSchemaV54()
datasets = schema_v54.load_csv_dataset("path/to/csv/folder")

# Access a specific table
concept_table = datasets["concept"]
print(concept_table)

3. Convert PyArrow Schema to Polars Schema

If Polars is installed, you can convert a PyArrow schema to a Polars-compatible schema:

from omop_schema.utils import pyarrow_to_polars_schema
import pyarrow as pa

arrow_schema = pa.schema(
    [
        pa.field("column1", pa.int64()),
        pa.field("column2", pa.string()),
    ]
)

polars_schema = pyarrow_to_polars_schema(arrow_schema)
print(polars_schema)

4. Convert PyArrow Schema to Pandas Schema

If Pandas is installed, you can convert a PyArrow schema to a Pandas-compatible schema:

from omop_schema.utils import pyarrow_to_pandas_schema
import pyarrow as pa

arrow_schema = pa.schema(
    [
        pa.field("column1", pa.int64()),
        pa.field("column2", pa.string()),
    ]
)

pandas_schema = pyarrow_to_pandas_schema(arrow_schema)
print(pandas_schema)

Optional Dependencies

  • Polars: For converting PyArrow schemas to Polars schemas.
  • Pandas: For converting PyArrow schemas to Pandas schemas.

OMOP Dataset Validation - Graphical Method

This documentation provides an overview of how to use the validate_omop_dataset_graphically function to validate OMOP datasets and display the results in a graphical format.

The validate_omop_dataset_graphically function validates an OMOP dataset against a predefined schema and displays the results in a graphical table format using the rich library. It also logs the validation process for real-time feedback.

validate_omop_dataset_graphically(validator, dataset_path="path/to/dataset")

The function will:

  • Log the validation progress in real-time.
  • Display a graphical table summarizing:
    • Missing columns
    • Mismatched columns
    • Extra columns
    • Correct columns

Example Output

Console Log

2023-10-01 12:00:00 - INFO - Validating table: person
2023-10-01 12:00:01 - INFO - Validation results for table 'person': Missing: month_of_birth, Mismatched: None, Extra: extra_column_1, Correct: person_id, gender_concept_id
2023-10-01 12:00:01 - INFO - Validation process completed.

Graphical Table

+-------------+-----------------------------+-----------------------------------+----------------------+----------------------+
| Table Name  | Missing Columns             | Mismatched Columns               | Extra Columns        | Correct Columns      |
+-------------+-----------------------------+-----------------------------------+----------------------+----------------------+
| person      | month_of_birth: int64       | None                              | extra_column_1: str  | person_id: int64     |
|             | day_of_birth: int64         |                                   |                      | gender_concept_id:   |
|             |                             |                                   |                      | int64                |
+-------------+-----------------------------+-----------------------------------+----------------------+----------------------+

Parameters

Parameter Type Description
validator OMOPValidator The validator object containing the schema for validation.
dataset_path `str Path`
load_with_expected_schema bool Whether to load the dataset with the expected schema. Default is True.

Notes

  • Ensure the dataset files are in a supported format (e.g., .csv, .parquet).
  • The function uses the rich library for graphical output and logging for real-time feedback.
  • Missing or mismatched columns are highlighted in the output for easy identification.

Troubleshooting

  • Missing Dependencies: Install the required libraries using pip install rich.
  • Invalid Dataset Path: Ensure the dataset path is correct and accessible.
  • Schema Issues: Verify the schema file is correctly defined and matches the dataset structure.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Metadata

Release files for omop-schema 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omop-schema 0.0.4
File Size Uploaded Provenance
omop_schema-0.0.4.tar.gz 27.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for omop-schema 0.0.4
File Interpreter ABI Platform
omop_schema-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 45.0 kB

Release files / omop_schema-0.0.4.tar.gz

Download URL omop_schema-0.0.4.tar.gz
Size 27.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2b3ace59e38a4006ce7e8bc2827f14b8658bef376c2c2b4af5eced8bb7074ded
BLAKE2b-256 checksum
How to use checksums
765b0a5cff6796a25d25ae33e04b1e3536bdaa8d6e9bdaa158a84d5f5f56ad42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / omop_schema-0.0.4-py3-none-any.whl

Download URL omop_schema-0.0.4-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc3d2179587b7157d815e809cd648a193a800828c2c868d9b21be5a404664603
BLAKE2b-256 checksum
How to use checksums
fa64168f770502860055de8b109df3abdedd729a362e90c69a3c02a03f001a30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for omop-schema 0.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for omop_schema-0.0.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page