Overview
Clinical dataset submission infrastructure for FDA, PMDA, and EMA regulatory workflows. Replace metacore + xportr + Pinnacle 21 — pure R, no compiled code, no Python, no network calls.
5 submit() package + validate + manifest
4 validate() CDISC CORE + FDA/PMDA + spec conformance
3 write_define_xml() Define-XML 2.1 with ARM support
2 set_label/fmt/len spec-driven metadata
1 herald_spec unified spec object (Excel / Define-XML)
0 read_xpt/write_xpt SAS V5/V8 transport I/O
Installation
pak::pak("vthanik/herald")Usage
library(herald)
# Read spec (Pinnacle 21 Excel or Define-XML 2.1)
spec <- read_spec("spec.xlsx")
# Apply metadata to datasets
dm <- read_xpt("sdtm/dm.xpt")
dm <- apply_spec(dm, spec, domain = "DM")
# Write back
write_xpt(dm, "sdtm/dm.xpt")
# Validate
result <- validate("sdtm/", spec = spec)
# Generate Define-XML
write_define_xml("sdtm/", spec = spec, output = "define.xml")
# Package for submission
submit("sdtm/", spec = spec, output = "submission/")Supported standards
Validation configs
| Authority | Standard | Versions |
|---|---|---|
| FDA | SDTM-IG | 3.2, 3.3 |
| FDA | ADaM-IG | 1.1, 1.2 |
| FDA | Define-XML | 2.1 |
| PMDA | SDTM-IG | 3.2, 3.3 |
| PMDA | ADaM-IG | 1.1 |
| PMDA | Define-XML | 2.1 |
Getting help
- Full documentation: https://vthanik.github.io/herald/
- Get Started
- Specifications
- XPT I/O
- Define-XML 2.1
- Conformance Validation
- Submission Workflow
- Bug reports and feature requests: https://github.com/vthanik/herald/issues
- Rule definitions and updates: https://github.com/vthanik/heraldrules
Code of conduct
Please note that the herald project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
