Pipeline
What turns inputs into outputs
The functions, by the names the code gives them. Each one reads inputs someone wrote and writes outputs nobody edits; each page says what it reads, what it writes, where its code is, and every element it produced. The invariant in one view: agents write source, the pipeline regenerates, humans approve.
End to end
- prepare_data()R function
- build_ard()R function
- render_display()R function
- render_rtf()R function
- regenerate()R function
- regenerate_values()R function
- assemble.mjsNode script
- site.mjsNode script
prepare_data() R function
Reads each dataset the specs name from its source lane, applies the documented derivations, and hands the prepared frames to the ARD builder; every ARD records each frame's hash and row count.
- vendored transport filesthe study's own package
- the source registrydata_sources(): which lane each dataset resolves to
- the study modelanalysis-set flags, arm labels
- prepare_data()pipeline/R/data-prep.R
- prepared datasetsin memory; hash and rows recorded in every ARD envelope
Code: pipeline/R/data-prep.R
Produced
- adsl Subject-level analysis dataset · read by 30 displays
- adae Adverse events · read by 5 displays
- advs Vital signs · read by 3 displays
- adqsadas ADAS-Cog (11) · read by 8 displays
- adqscibc CIBIC+ · read by 4 displays
- adqsnpix NPI-X · read by 1 display
- adtte Time to first dermatologic event · read by 1 display
- adcm Concomitant medications (analysis dataset) · read by 1 display
- dm Demographics (SDTM domain) · read by 1 display
build_ard() R function
Runs each analysis in analysis.yaml — built-in or the display's own custom.R — over the prepared datasets and stacks the results into the ARD, one row per statistic, with the population record.
- analysis.yamlwhat to compute
- custom.Rwhere a built-in method does not fit
- prepared datasets
- the study modelarms in print order
- build_ard()pipeline/R/ard.R
- ARD rowsopencsr/ard/v1, plus the population record
Code: pipeline/R/ard.R
Produced
- t-demographics Demographic and Baseline Characteristics · v007
- t-disposition Subject Disposition · v003
- t-populations Summary of Populations · v003
- t-end-of-study Summary of End of Study Data · v003
- f-derm-time-to-event Time to Dermatologic Event by Treatment Group · v002
- t-cibic-week24 Primary Endpoint Analysis: CIBIC+ — Summary at Week 24 — LOCF · v004
- t-cibic-week8 CIBIC+ — Summary at Week 8 — LOCF · v002
- t-cibic-week16 CIBIC+ — Summary at Week 16 — LOCF · v002
- t-cibic-categorical CIBIC+ — Categorical Analysis — LOCF · v002
- t-eff-adas-wk24 Primary Endpoint Analysis: ADAS-Cog (11) - Change from Baseline to Week 24 - LOCF · v002
- t-eff-adas-wk8 ADAS-Cog (11) - Change from Baseline to Week 8 - LOCF · v002
- t-eff-adas-wk16 ADAS-Cog (11) - Change from Baseline to Week 16 - LOCF · v002
- t-eff-adas-wk24-completers ADAS-Cog (11) - Change from Baseline to Week 24 - Completers at Week 24, Observed Cases, Windowed · v002
- t-eff-adas-wk24-male ADAS-Cog (11) - Change from Baseline to Week 24 in Male Subjects - LOCF · v002
- t-eff-adas-wk24-female ADAS-Cog (11) - Change from Baseline to Week 24 in Female Subjects - LOCF · v002
- t-eff-adas-overtime ADAS-Cog (11) - Mean and Mean Change from Baseline over Time · v002
- t-eff-adas-mmrm ADAS-Cog (11) - Repeated Measures Analysis of Change from Baseline to Week 24 · v004
- t-eff-npix-mean Mean NPI-X Total Score from Week 4 through Week 24 - Windowed · v003
- t-ae-overview Overview of Treatment-Emergent Adverse Events · v003
- t-ae-common Treatment-Emergent Adverse Events by System Organ Class and Preferred Term · v004
- t-exposure Extent of Exposure to Study Drug · v004
- l-ae-serious Listing of Serious Adverse Events · v003
- t-conmeds Summary of Concomitant Medications · v003
- t-vitals Summary of Vital Signs at Baseline and End of Treatment · v002
- t-vitals-change Summary of Vital Signs Change from Baseline at End of Treatment · v002
- t-weight Summary of Weight and Weight Change from Baseline at End of Treatment · v004
- t-ae-incidence Incidence of Treatment Emergent Adverse Events by Treatment Group · v007
- t-sae-incidence Incidence of Treatment Emergent Serious Adverse Events by Treatment Group · v006
- t-subjects-by-site Summary of Number of Subjects By Site · v002
- f-disposition Subject Disposition · v001
render_display() R function
Draws each variant of the display from the ARD and display.yaml: columns, rows, formats, footnotes, and the figure where the display is one.
- ARD rows
- display.yamlhow to show it
- render_display()pipeline/R/render.R
- table.html per variantthe rendered cells
Code: pipeline/R/render.R
Produced
- t-demographics Demographic and Baseline Characteristics · v007
- t-disposition Subject Disposition · v003
- t-populations Summary of Populations · v003
- t-end-of-study Summary of End of Study Data · v003
- f-derm-time-to-event Time to Dermatologic Event by Treatment Group · v002
- t-cibic-week24 Primary Endpoint Analysis: CIBIC+ — Summary at Week 24 — LOCF · v004
- t-cibic-week8 CIBIC+ — Summary at Week 8 — LOCF · v002
- t-cibic-week16 CIBIC+ — Summary at Week 16 — LOCF · v002
- t-cibic-categorical CIBIC+ — Categorical Analysis — LOCF · v002
- t-eff-adas-wk24 Primary Endpoint Analysis: ADAS-Cog (11) - Change from Baseline to Week 24 - LOCF · v002
- t-eff-adas-wk8 ADAS-Cog (11) - Change from Baseline to Week 8 - LOCF · v002
- t-eff-adas-wk16 ADAS-Cog (11) - Change from Baseline to Week 16 - LOCF · v002
- t-eff-adas-wk24-completers ADAS-Cog (11) - Change from Baseline to Week 24 - Completers at Week 24, Observed Cases, Windowed · v002
- t-eff-adas-wk24-male ADAS-Cog (11) - Change from Baseline to Week 24 in Male Subjects - LOCF · v002
- t-eff-adas-wk24-female ADAS-Cog (11) - Change from Baseline to Week 24 in Female Subjects - LOCF · v002
- t-eff-adas-overtime ADAS-Cog (11) - Mean and Mean Change from Baseline over Time · v002
- t-eff-adas-mmrm ADAS-Cog (11) - Repeated Measures Analysis of Change from Baseline to Week 24 · v004
- t-eff-npix-mean Mean NPI-X Total Score from Week 4 through Week 24 - Windowed · v003
- t-ae-overview Overview of Treatment-Emergent Adverse Events · v003
- t-ae-common Treatment-Emergent Adverse Events by System Organ Class and Preferred Term · v004
- t-exposure Extent of Exposure to Study Drug · v004
- l-ae-serious Listing of Serious Adverse Events · v003
- t-conmeds Summary of Concomitant Medications · v003
- t-vitals Summary of Vital Signs at Baseline and End of Treatment · v002
- t-vitals-change Summary of Vital Signs Change from Baseline at End of Treatment · v002
- t-weight Summary of Weight and Weight Change from Baseline at End of Treatment · v004
- t-ae-incidence Incidence of Treatment Emergent Adverse Events by Treatment Group · v007
- t-sae-incidence Incidence of Treatment Emergent Serious Adverse Events by Treatment Group · v006
- t-subjects-by-site Summary of Number of Subjects By Site · v002
- f-disposition Subject Disposition · v001
render_rtf() R function
Writes the same rendered cells as submission-format RTF, hash-recorded in the manifest so a hand-edited copy cannot pass as the pipeline's.
Code: pipeline/R/rtf.R
Produced
- t-demographics Demographic and Baseline Characteristics · v007
- t-disposition Subject Disposition · v003
- t-populations Summary of Populations · v003
- t-end-of-study Summary of End of Study Data · v003
- f-derm-time-to-event Time to Dermatologic Event by Treatment Group · v002
- t-cibic-week24 Primary Endpoint Analysis: CIBIC+ — Summary at Week 24 — LOCF · v004
- t-cibic-week8 CIBIC+ — Summary at Week 8 — LOCF · v002
- t-cibic-week16 CIBIC+ — Summary at Week 16 — LOCF · v002
- t-cibic-categorical CIBIC+ — Categorical Analysis — LOCF · v002
- t-eff-adas-wk24 Primary Endpoint Analysis: ADAS-Cog (11) - Change from Baseline to Week 24 - LOCF · v002
- t-eff-adas-wk8 ADAS-Cog (11) - Change from Baseline to Week 8 - LOCF · v002
- t-eff-adas-wk16 ADAS-Cog (11) - Change from Baseline to Week 16 - LOCF · v002
- t-eff-adas-wk24-completers ADAS-Cog (11) - Change from Baseline to Week 24 - Completers at Week 24, Observed Cases, Windowed · v002
- t-eff-adas-wk24-male ADAS-Cog (11) - Change from Baseline to Week 24 in Male Subjects - LOCF · v002
- t-eff-adas-wk24-female ADAS-Cog (11) - Change from Baseline to Week 24 in Female Subjects - LOCF · v002
- t-eff-adas-overtime ADAS-Cog (11) - Mean and Mean Change from Baseline over Time · v002
- t-eff-adas-mmrm ADAS-Cog (11) - Repeated Measures Analysis of Change from Baseline to Week 24 · v004
- t-eff-npix-mean Mean NPI-X Total Score from Week 4 through Week 24 - Windowed · v003
- t-ae-overview Overview of Treatment-Emergent Adverse Events · v003
- t-ae-common Treatment-Emergent Adverse Events by System Organ Class and Preferred Term · v004
- t-exposure Extent of Exposure to Study Drug · v004
- l-ae-serious Listing of Serious Adverse Events · v003
- t-conmeds Summary of Concomitant Medications · v003
- t-vitals Summary of Vital Signs at Baseline and End of Treatment · v002
- t-vitals-change Summary of Vital Signs Change from Baseline at End of Treatment · v002
- t-weight Summary of Weight and Weight Change from Baseline at End of Treatment · v004
- t-ae-incidence Incidence of Treatment Emergent Adverse Events by Treatment Group · v007
- t-sae-incidence Incidence of Treatment Emergent Serious Adverse Events by Treatment Group · v006
- t-subjects-by-site Summary of Number of Subjects By Site · v002
- f-disposition Subject Disposition · v001
regenerate() R function
One display, one rebuild: prepares the data, builds the ARD, renders every variant, and writes a new iteration folder with its manifest — never editing an earlier one.
- regenerate()pipeline/R/regenerate.R
- outputs/<slug>/vNNN/spec snapshots, ard.json, table.html, table.rtf, manifest.json
- current.jsonwhich iteration is current
Code: pipeline/R/regenerate.R
Calls prepare_data(), build_ard(), render_display(), render_rtf().
Produced
- t-demographics Demographic and Baseline Characteristics · v007
- t-disposition Subject Disposition · v003
- t-populations Summary of Populations · v003
- t-end-of-study Summary of End of Study Data · v003
- f-derm-time-to-event Time to Dermatologic Event by Treatment Group · v002
- t-cibic-week24 Primary Endpoint Analysis: CIBIC+ — Summary at Week 24 — LOCF · v004
- t-cibic-week8 CIBIC+ — Summary at Week 8 — LOCF · v002
- t-cibic-week16 CIBIC+ — Summary at Week 16 — LOCF · v002
- t-cibic-categorical CIBIC+ — Categorical Analysis — LOCF · v002
- t-eff-adas-wk24 Primary Endpoint Analysis: ADAS-Cog (11) - Change from Baseline to Week 24 - LOCF · v002
- t-eff-adas-wk8 ADAS-Cog (11) - Change from Baseline to Week 8 - LOCF · v002
- t-eff-adas-wk16 ADAS-Cog (11) - Change from Baseline to Week 16 - LOCF · v002
- t-eff-adas-wk24-completers ADAS-Cog (11) - Change from Baseline to Week 24 - Completers at Week 24, Observed Cases, Windowed · v002
- t-eff-adas-wk24-male ADAS-Cog (11) - Change from Baseline to Week 24 in Male Subjects - LOCF · v002
- t-eff-adas-wk24-female ADAS-Cog (11) - Change from Baseline to Week 24 in Female Subjects - LOCF · v002
- t-eff-adas-overtime ADAS-Cog (11) - Mean and Mean Change from Baseline over Time · v002
- t-eff-adas-mmrm ADAS-Cog (11) - Repeated Measures Analysis of Change from Baseline to Week 24 · v004
- t-eff-npix-mean Mean NPI-X Total Score from Week 4 through Week 24 - Windowed · v003
- t-ae-overview Overview of Treatment-Emergent Adverse Events · v003
- t-ae-common Treatment-Emergent Adverse Events by System Organ Class and Preferred Term · v004
- t-exposure Extent of Exposure to Study Drug · v004
- l-ae-serious Listing of Serious Adverse Events · v003
- t-conmeds Summary of Concomitant Medications · v003
- t-vitals Summary of Vital Signs at Baseline and End of Treatment · v002
- t-vitals-change Summary of Vital Signs Change from Baseline at End of Treatment · v002
- t-weight Summary of Weight and Weight Change from Baseline at End of Treatment · v004
- t-ae-incidence Incidence of Treatment Emergent Adverse Events by Treatment Group · v007
- t-sae-incidence Incidence of Treatment Emergent Serious Adverse Events by Treatment Group · v006
- t-subjects-by-site Summary of Number of Subjects By Site · v002
- f-disposition Subject Disposition · v001
regenerate_values() R function
Resolves every named value's address against the committed ARDs, evaluates the declared arithmetic, and writes the store with each value's provenance.
- values.yamlnames, addresses, arithmetic
- committed ARDseach display's current iteration
- regenerate_values()pipeline/R/values.R
- outputs/values/values.jsonvalue, formatted value, ARD row and hash
Code: pipeline/R/values.R
Produced
- randomised-n Subjects randomised
- treated-n Subjects treated (safety analysis set)
- completed-n Subjects who completed the study
- discontinued-n Subjects who discontinued
- completed-pct Percentage of randomised subjects who completed
- age-median-total Median age (years), all subjects
- female-n-total Female subjects
- ae-any-n-total Subjects with at least one adverse event
- ae-any-n-placebo Subjects with at least one adverse event (Placebo)
- ae-any-n-low Subjects with at least one adverse event (Xanomeline Low Dose)
- ae-any-n-high Subjects with at least one adverse event (Xanomeline High Dose)
- ae-any-pct-high Percentage of high-dose subjects with at least one adverse event
- safety-n-high Subjects in the safety analysis set (Xanomeline High Dose)
- ae-any-n-xanomeline Subjects with at least one adverse event, both xanomeline arms
- ae-excess-high-vs-placebo Additional subjects with an adverse event, high dose versus placebo
assemble.mjs Node script
Fills a template object with this study's text, displays and values, numbers the displays from assembly order, records what each block and the document were built from, and runs the seven gates.
- sections.yaml + assembly.yamlthe document model and what this study puts in it
- text blocksapproved ones, for generated prose
- current ARDs and rendered variants
- values.json
- the study modelthe treatment-consistency gate
- assemble.mjsscripts/assemble.mjs
- docs/assembled/<document>.jsonthe document as data, with every gate's result and its inputs record
- docs/assembled/<document>.htmlthe rendered document
Code: scripts/assemble.mjs
Gates
- structure
- binding resolution
- numeric fidelity
- cross-references
- values
- treatment consistency
- display coverage
Produced
- Clinical Study Report template ich-e3
- Study Synopsis template e3-synopsis
- Post-Text Display Package template display-package
- Abbreviated Clinical Study Report (ICH E3) template e3-abbreviated
site.mjs Node script
Builds every page of this site from the registry, the outputs, the assembled documents and the evidence — including the pages you are reading — and fails on any internal link that does not resolve or any external resource.
- site/config.jsonthe registry
- outputs/every iteration
- docs/assembled/
- docs/evidence/ + docs/requirements/
- site.mjsscripts/site.mjs
- site/_build/every page, no external resource
Code: scripts/site.mjs
Produced
Nothing in the site collection yet.