OHDSI GIS
WGThe OMOP GIS extension supports analyses beyond traditional clinical observational research. This page summarizes the analysis tools available now, the extensions the working group has proposed, and the methodological and ethical needs of geospatially informed health research. The proposed items are plans, not released software.
| Tool | Role | Limits for GIS use cases |
|---|---|---|
| ATLAS | Primary user interface for OMOP analytics: cohort construction, characterization, prediction | Limited support for spatial exposure variables from
external_exposure, geographic visualization, multi-level
modeling, temporal exposure sequences and spatial statistics |
| HADES | Open-source R packages that form the analytical foundation of OHDSI | Used directly for GIS work today: SQL access to
external_exposure, flexible feature engineering from
spatial and environmental variables, causal inference and prediction,
network studies across sites |
GIS use cases currently work through HADES and custom scripts. The tutorial shows this end to end with
CaprForExtensions and
FeatureExtractionForExtensions, and gaiaCore provides exposure analytics from
R.
| Analysis step | HADES packages |
|---|---|
| Cohort construction | CohortGenerator, Capr |
| Descriptive statistics | CohortDiagnostics, FeatureExtraction |
| Population-level estimation | CohortMethod, SelfControlledCaseSeries |
| Patient-level prediction | PatientLevelPrediction |
| Data quality | DataQualityDashboard |
| Federated analytics | Strategus |
| Package | Purpose | Proposed functions |
|---|---|---|
| GeoFeatureExtraction | Extract and engineer features from external_exposure
and spatial data |
extractSpatialExposures(): link person-level data to
exposuresaggregateTemporalExposures(): moving-window
and cumulative exposurescalculateSpatialLags():
neighborhood-effect metricsimputeMissingExposures():
kriging or nearest neighbor |
| SpatialCohortMethod | Causal inference that accounts for spatial confounding and clustering | fitSpatialPropensityModel()adjustSpatialConfounding():
restricted spatial regression,
spatial+assessSpatialUnmeasuredConfounding()estimateSpatialEffects():
spillover and interaction |
| MultiLevelEstimation | Multilevel models for individuals nested in neighborhoods | fitMultilevelModel(): area-level random
effectspartitionVariance(): intra-class
correlationcrossLevelInteractions()spatialMediation() |
| GeoVisualization | Privacy-preserving visualization of spatial patterns | createChoroplethMap(): with small-number
suppressionplotSpatialClusters(): SaTScan,
DBSCANvisualizeExposureGradients()animateTemporalMaps() |
Extensions would follow the OHDSI contribution path: prototype, community review at working group meetings and symposia, validation across use cases and datasets, documentation (vignettes, function reference, validation reports), testing to HADES standards, submission through OHDSI governance, and long-term maintenance.
| Domain | Analytical needs | Proposed analyses | HADES gaps |
|---|---|---|---|
| Environmental epidemiology | Spatiotemporal exposure assessment (linking monitoring data to
locations over time) Exposure measurement error Distributed lag models Extreme value analysis (such as heat waves) |
Case-crossover designs for acute exposures Spatial survival analysis Bayesian hierarchical models for multi-pollutant exposures Mixture analysis (quantile g-computation, weighted quantile sum) |
Distributed lag models Time-series analysis Spatial survival analysis Mixture analysis |
| Sociodemographic epidemiology | Multilevel modeling Structural confounding adjustment Intersectionality analysis Longitudinal neighborhood effects |
Multilevel propensity score methods Spatial mediation analysis G-methods for time-varying area-level confounders Disparity decomposition (spatial Oaxaca-Blinder) |
Multilevel modeling Spatial mediation Disparity analysis Time-varying area-level exposures |
| Spatial epidemiology | Spatial cluster detection Spatial regression (autocorrelation, boundary effects) Disease mapping that preserves privacy Spatial interaction and access modeling |
Bayesian disease mapping (BYM) Spatial scan statistics (SaTScan) Geographically weighted regression Spatial accessibility (two-step floating catchment area) |
Spatial autocorrelation diagnostics Spatial regression Small-area estimation Accessibility analysis |
| Topic | Challenges | Transparency today | Proposed enhancements |
|---|---|---|---|
| Privacy and re-identification | Small areas (Census tracts) can identify people with rare
conditions Spatial patterns can reveal protected information even when aggregated Federated analysis must protect locations while allowing spatial statistics |
The CDM documents data structure and HADES documents methods, but privacy risk assessment is left to each researcher | Automated small-number suppression Differential privacy for spatial aggregation Re-identification risk tools Spatial k-anonymity and l-diversity metrics |
| Environmental justice and equity | Analyses can reinforce injustice narratives Data quality is unequal across communities (more monitoring in affluent areas) Boundary choices affect equity results |
Limited guidance on equity-focused analysis, no standard EJ metrics, little documentation of bias in geospatial sources | EJ impact checklists Standard metrics (cumulative burden, disparate impact ratios) Data quality reporting stratified by neighborhood Community-engaged validation |
| Structural racism and social determinants | Area-level determinants reflect historical and structural
racism Causal language must not blame communities Confounding by structural factors is pervasive |
Vocabularies document SDOH concepts but not their structural origins; HADES assumes exchangeability that may not hold; little guidance on interpreting area-level effects | Structural causal models Sensitivity analyses for structural confounding Explicit causal assumptions in every spatial analysis Anti-racist data science frameworks |
| Area | Possible uses |
|---|---|
| Automated documentation | Human-readable summaries of analysis pipelines
(provenance) Extracting causal assumptions from code and comments Translating HADES code into plain language for stakeholders |
| Bias detection and mitigation | Finding patterns of missing or poor data across
communities Reviewing analytical choices for bias Drafting robustness checks for equity-critical analyses |
| Stakeholder communication | Community-facing summaries of complex
analyses Question-and-answer interfaces to findings Privacy-preserving, equity-focused visualizations |
| Risk | Safeguard |
|---|---|
| Hallucinations introduce errors into documentation | Human review of all LLM-generated documentation |
| Automated bias detection misses context-specific equity issues | Community validation of AI-assisted equity assessments |
| Over-reliance reduces human engagement in ethical deliberation | Transparency about LLM use in analysis workflows |
| Tools carry algorithmic bias | Regular auditing of AI tools |
| Direction | Examples |
|---|---|
| Community-driven development | Use cases identify analytical needs; HADES package proposals come from validated use cases; community review checks scientific and ethical standards (see use case status) |
| Emerging methods | Causal inference for spatial exposures (spatial instrumental
variables, regression discontinuity) Machine learning for exposure prediction (satellite imagery, land use) Agent-based modeling of neighborhood effects Precision environmental health |
| Cross-disciplinary collaboration | Environmental science, geography and GIS, urban planning, social epidemiology, ethics and philosophy |
| Open science | Apache 2.0 licensed extensions, vignettes on public data, published validation studies, feedback through GitHub, forums and working group meetings |