A multi-page Streamlit dashboard that loads SDTM in several formats, derives an analysis population, and offers domain inspection, per-subject profiles, CSR-quality safety and efficacy outputs, and a NetworkX knowledge graph across domains.
Pinnacle 21 reports issues; it does not let you explore the study. This turns SDTM into an interactive review surface — per-subject profiles, CSR-quality outputs, and cross-domain queries.
How it works
Typical layout
By the numbers
Screenshots
sdtm-explorer-01-overview.png into/public/screenshots/sdtm-explorer/
sdtm-explorer-02-profile.png into/public/screenshots/sdtm-explorer/
sdtm-explorer-03-graph.png into/public/screenshots/sdtm-explorer/
Data flow
Reviewing a study's SDTM data means jumping between domains, subjects, and standard outputs. Doing that across spreadsheets and ad-hoc programs is slow and gives no single place to explore the whole study.
Input: SDTM datasets (XPT / SAS7BDAT / CSV) + study_config.yaml
|
v
Loader (data/loader.py) robust multi-format SDTM loader
|
v
Derivations (derivations/populations.py)
| ADSL, SAFFL/ITTFL, CHG/PCHG, study day
v
Analysis layer
| safety.py AE n/N, TEAE, CTCAE norm, shift tables
| descriptive.py continuous/categorical stats, KM, subgroup
| plots.py Plotly visuals (theme-aware)
| graph/builder.py NetworkX inter-domain graph
v
11 Streamlit pages --> overview, subject, TFLs, AE, LB, VS, efficacy,
patient profile, graph-RAG, export/audit Engineering trade-offs
At a glance
A quick visual read of the countable facts; full detail in the table.
Relative scale · values labelled · unit: count
Processing characteristics
| Metric | Value | Notes |
|---|---|---|
| Streamlit pages | 11 | Overview through export/audit |
| Input formats | XPT, SAS7BDAT, CSV | Robust multi-format loader |
| Analysis areas | Safety, labs, VS, efficacy | n/N, TEAE, shift tables, KM, waterfall, forest |
| Graph | NetworkX | Inter-domain knowledge graph + queries |
| ML helpers | Outlier / cluster / risk | src/ml outlier, clusterer, risk scorer |
| Export | Excel / CSV / RTF | With an audit trail page |
Functional wins
Module dependencies
- Python
- pyyaml
- streamlit
- plotly
- kaleido
- pandas
- numpy
- pyreadstat
- openpyxl
- scipy
- statsmodels
- lifelines
- networkx