How ohdsi/whiterabbit works
White Rabbit scans database tables or CSV/SAS files, summarizes structure and value frequencies, and produces a scan report for ETL planning. Rabbit in a Hat loads that report, lets users map its source tables and fields to an OMOP CDM target, and generates ETL documentation and related outputs. The graph reflects README capabilities and the supplied source excerpts; unsampled UI-to-engine wiring and several scan implementations are represented only where documented, not as detailed call chains.
Main entry points: ETL.java ETL model · SourceDataScan.java Source scan · RabbitInAHatMain.java Rabbit in a Hat · LocationsPanel.java Source setup
Components 20
Scan setup
- Source setup
whiterabbit/src/main/java/org/ohdsi/whiterabbit/gui/LocationsPanel.java - White Rabbit
whiterabbit/src/main/java/org/ohdsi/whiterabbit/WhiteRabbitMain.java
Scan engine
- Source scan
whiterabbit/src/main/java/org/ohdsi/whiterabbit/scan/SourceDataScan.java - DB settings
rabbit-core/src/main/java/org/ohdsi/databases/configuration/ScanConfiguration.java - DB handlers
rabbit-core/src/main/java/org/ohdsi/databases/JdbcStorageHandler.java - Query access
rabbit-core/src/main/java/org/ohdsi/databases/QueryResult.java - CSV/SAS input
whiterabbit/src/main/java/org/ohdsi/whiterabbit/scan/SourceDataScan.java
ETL design
- Rabbit in a Hat
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/RabbitInAHatMain.java - Scanned model
rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Database.java - ETL model
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ETL.java - Mapping editor
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/MappingPanel.java - OMOP target
rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Database.java - SQL generator
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/SQLGenerator.java
ETL outputs
- ETL specification
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLWordDocumentGenerator.java - Markup document
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLMarkupDocumentGenerator.java - ETL summary
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLSummaryGenerator.java - ETL test framework
rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLTestFrameWorkGenerator.java
Other components
- User
- Source database
- Scan report
Connections 23
- User → White Rabbit: starts scan
- User → Source setup: configures source
- Source setup → DB settings: sets options
- White Rabbit → Source scan: runs scan
- Source scan → DB settings: uses settings
- Source scan → DB handlers: scans database
- DB handlers → Query access: executes queries
- Query access → Source database: reads rows
- Source scan → CSV/SAS input: scans files
- CSV/SAS input → Scan report: writes report
- Source scan → Scan report: writes report
- User → Rabbit in a Hat: designs ETL
- Rabbit in a Hat → Scanned model: loads scan report
- Scan report → Scanned model: provides scan data
- Rabbit in a Hat → ETL model: edits design
- Rabbit in a Hat → OMOP target: selects CDM
- ETL model → Mapping editor: presents mappings
- Mapping editor → ETL model: updates mappings
- ETL model → SQL generator: generates SQL
- ETL model → ETL specification: generates specification
- ETL model → Markup document: generates markup
- ETL model → ETL summary: generates summary
- ETL model → ETL test framework: generates framework