BDCHM Interactive Documentation

BioData Catalyst Harmonized Model — Schema Explorer

Target release: July 30, 2026

This page documents the current state of the interactive schema explorer, what's been built, what remains, and open design questions. The app itself is at sigfried.github.io/dynamic-model-var-docs.

What's Shipped

Entity Explorer (default view)
Progressive-disclosure interface replacing the original multi-panel layout. Entities organized by category (Admin/Study, Clinical, Observations/Measurements, Lab/Biospecimen, Survey, Files/Other) with a Pinned section at top. Click an entity to drill down into its slots and variables. Click a range badge to see enum details (permissible values, usages) or to recursively drill into another entity. Subclass indentation for inheritance relationships. Pin/unpin entities to customize the top section. The old "Kitchen Sink" multi-panel view is still available via a toggle in the header.
live progressive disclosure recursive drilldown pinning
Kitchen Sink view (legacy)
The original multi-panel layout with link overlays connecting classes to their ranges, detail popups, relationship info boxes, and variable tables. All entity types (classes, enums, slots, types, variables) visible simultaneously. Still accessible via the Explorer/Kitchen Sink toggle in the header.
legacy view links + panels

Explorations & Mockups

Standalone proof-of-concept visualizations exploring model structure. Not yet integrated into the main app.

Containment Tree
Interactive indented list showing the full containment hierarchy rooted at ResearchStudyCollection. BDCHM uses FK-style back-references (child points to parent), so single-valued entity references are inverted to show "what contains what." Inheritance subclasses nested inline with diamond markers, showing only their own additional slots. Expand/collapse, hide-subclasses toggle, dark mode.
exploration containment FK inversion
Containment Graph
Cytoscape + dagre node-link diagram of the containment hierarchy (49 nodes, 95 edges). Three edge types: solid (has-a), purple (flipped FK), dashed green (is-a subclass). Click nodes to highlight neighborhoods. Multiple layouts (top-down, left-right, force-directed). Legibility is borderline at full scale — motivates the "pin a subset" approach below.
exploration graph Cytoscape + dagre

What's Next

Open Design Questions

Model structure: is-a vs has-a
User audience
Where do links fit?
Variable Library dependency