← All case studies

Clinical Data Lab / Evidence

Trust the trail,
not the badge.

Four distinct layers of QC. Actual executions and explicit gaps. No regulatory approval or validation claim.

14,104 numeric fields compared1.42e-14 maximum absolute difference1e−9 / 1e−9 absolute / relative tolerance

What was checked

Run timestamp (UTC): . R reads unchanged inputs with haven; Python reads them with pandas. Each language independently calculates every case before comparing structured values. Shared input and analysis specifications are intentional; shared computed results are not used.

Machine-readable analysis evidence
LayerCheckStatus
analysisbaseline: Independent R / Python structured values (72 rows)PASS
analysisdisposition: Independent R / Python structured values (90 rows)PASS
analysislongitudinal: Independent R / Python structured values (72 rows)PASS
analysisadverse-events: Independent R / Python structured values (2394 rows)PASS
analysislaboratory: Independent R / Python structured values (81 rows)PASS
analysissubgroups: Independent R / Python structured values (18 rows)PASS
analysistime-to-event: Independent R / Python structured values (363 rows)PASS
analysisfixtures: Both runtimes: mean=2, SD=1, n=3; tied event/censor KM S(2)=0.5, risk=3PASS
datastructure: Unique ADSL and ADTTE subjects; unique selected ADAS subject/visit; unique ALT End of Treatment subject; complete time/status; disposition reconciliationPASS
packagepackage-tool: Existing package QC tool identity / permitted local entry point pending confirmation. No internal service contacted.NOT-RUN
presentationdisplay: Browser acceptance recorded separately after build; see local REPORT.md.NOT-RUN

Download analysis evidence (JSON)

Package quality / risk

The existing R package QC tool has not been represented as successfully integrated. Its exact permitted local entry point has not been confirmed. Package-risk checks remain not run. The local import adapter requires an explicit tool identity, version, timestamp, package/version and individual checks; unsupported status values are rejected. A passing numeric comparison does not establish package quality or regulatory acceptance.

Presentation testing

Browser evidence belongs to a separate layer: responsive layouts, filtering, clipboard, actual downloads, keyboard use and network behavior. Local screenshots and logs live outside public assets. The analysis-run record above precedes these separate browser executions.

PASS · separately executed browser acceptance

503 case assertions and 55 site navigation/search regression checks passed in Edge 153.0.4234.48; widths 390 / 768 / 1440 px. 262 downloaded rows were independently parsed and checked. Cold same-origin loading, blocked external requests, loaded-page offline filtering/export and error recovery passed.

Executed: 2026-09-21T18:24:40.984157+00:00. This is local Chromium evidence, not a complete WCAG or cross-browser certification.

Download reviewed presentation evidence (JSON)

Data provenance

One public source, pinned and attributed

Source: CDISC SDTM/ADaM Pilot Project. Commit 667511d4b183871d74392ba691c935c38d431d39. Retrieved in this local run on 2026-09-21 UTC. CDISC supplies these as clinical test data. “Copilot” is not a separate verified dataset identity in this release.

The upstream Terms of Use govern the inputs; there is no blanket permissive software license for the data. They require attribution, prohibit misleading origin claims, prohibit distribution for a fee and contain restrictions on altering data. The raw XPT files are kept unchanged outside the website. Download links here contain newly calculated aggregate results, not repackaged participant datasets. This release shares attributed educational aggregate analyses; the upstream terms continue to govern the unchanged source data.

No employer datasets, private study results, or invented clinical endpoints are used. No additional synthetic dataset is mixed into these cases. The small known-answer numerical fixtures are separate artificial test vectors.

Inputs and SHA-256; original files link to CDISC
FileSHA-256
adsl.xptc5139f873a93ef6add77bc4297beb6460a398bbdd036874382a9f39dfc92091d
adae.xptb8678e70946473a753bb01d002917f478bf51b59bdd0dc19587b97128059b6a0
adqsadas.xptac3fa1217651810b0f15fe489fdda7d99eff10553ded025156ad7c1b89f84608
adlbc.xptb9f6b5106965b5e2e3b33062a18710b58ceecc0c8cf1e54271849653037998ea
adtte.xpt68513fc4126744b6b2c7328eb70eb7b9683865d12c58b36539325f3c0c0ab93d
define.xml7e6d580e0839564f6f119c4ba7e15963d3cf7cd0c88e9f3d7da5ad396221b1cd
README.md11addb7d2bed754cc0440b546a097df864f184b37ecabf45a3e1516869896e5c

Download provenance manifest · Source data dictionary (define.xml)

Coverage before chart choice

Case / required variables / available input
CaseVerified coverage
Baseline characteristicsADSL: USUBJID, TRT01A, SAFFL, SEX, RACE, AGE (years), WEIGHTBL (kg), BMIBL (kg/m^2).
Participant dispositionADSL: USUBJID, TRT01A, SAFFL, SEX, DCDECOD, DISCONFL. COMP24FL is deliberately not used as study completion.
Longitudinal efficacyADQSADAS: PARAMCD = ACTOT, ANL01FL = Y, DTYPE blank; AVISIT, AVAL, BASE, CHG. ADSL supplies treatment and stratum.
Adverse eventsADAE: USUBJID, TRTEMFL, AEBODSYS (SOC), AEDECOD (PT). Denominator comes from ADSL, including subjects with no event.
Laboratory safetyADLBC: PARAMCD = ALT (U/L), AVISIT = End of Treatment, BNRIND, ANRIND. L = low, N = normal, H = high; categories are those supplied by CDISC.
Exploratory subgroup effectsADSL: TRT01P, ITTFL, AGE, SEX. ADQSADAS: ACTOT, AVISIT = Week 24, CHG, ANL01FL, DTYPE.
Time to dermatologic eventADTTE: AVAL = ADT − STARTDT + 1 (days), CNSR = 0 event / 1 censored, PARAMCD = TTDE, EVNTDESC. This is not overall survival.

Oncology response, waterfall and swimmer plots are not part of the CDISC Pilot cases: no suitable response endpoint was established. The separate Figure Library uses fictional teaching inputs for these templates. The supplied time-to-event endpoint is dermatologic safety, not overall survival. Participant profiles are deferred to keep this version focused on aggregate interpretation.

Reproducibility

The environment that actually ran

{
  "python": {
    "python": "3.13.13",
    "packages": {
      "numpy": "2.4.6",
      "pandas": "3.0.3",
      "scipy": "1.17.1"
    },
    "fixtures": "pass",
    "seed": "not applicable: deterministic"
  },
  "r": {
    "R": "4.6.0",
    "packages": {
      "haven": "2.5.5",
      "jsonlite": "2.0.0",
      "survival": "3.8.6",
      "ggplot2": "4.0.3"
    },
    "fixtures": "pass",
    "seed": "not applicable: deterministic"
  }
}

No new R, Python, npm or CDN dependency was installed. The local worktree reuses the existing frontend dependencies. R: haven (MIT), jsonlite (MIT), survival (LGPL ≥2), ggplot2 (MIT). Python: pandas / NumPy / SciPy (BSD family); plotting exports use the installed matplotlib. Versions are recorded, not claimed to be the newest available.

Official references: haven, ggplot2, survfit, SciPy Welch test. pharmaverse candidates admiral, rtables, tern, gtsummary and ggsurvfit were considered; this descriptive ADaM-input workflow does not need a new derivation or reporting dependency. They are not all installed here and no regulatory validation is implied.

Source ↔ result association

Executed source hashes and exact aggregate result hashes are recorded together. The page embeds source from the same files distributed for download.

Executed analysis source fingerprints
FileSHA-256
analyze.py0293d208ce516b79f13ac3b932f47f83470399aef638f4615dd1854fb9c64f25
analyze.R72a092e8a9faaf6ae0dd0fcadff8a7c9af27b5df115fe6bdb421372178c827f1
fetch-data.py7d9b4f9948ad9aa87431b1f14e6b5de0e104b5d5e07e0010edfe2251f773efbf
verify.pyab51ca787ecbc50833f1e552c34b23f5f4e0c05a6d8ff841d61545444355b918
figures.pydb1fde82dcab5038ce4b4b70223855ad2824121ba32fc915e5f4db551f3e202d
figures.Rb58bc0cb9b10f6bb9afec46f40ce413f310dc1ae753d391e843a05731653b499

Architecture decision

Static delivery is enough for these questions.

Execution options evaluated for this release
OptionDecision and tradeoffs
A · Precompute + browser interactionSelected. R/Python compute locally; Astro serves aggregate JSON and a small first-party interaction module. No compute backend, account or upload endpoint. Every available sex stratum has separately computed estimates. Limited to explicitly prepared strata; does not promise arbitrary models or editing/running code.
B · webR / Pyodide / ShinyliveNot installed or benchmarked. Would add an execution runtime, package compatibility constraints, startup downloads and mobile memory pressure. Offline package availability and a full Shiny/teal application's static compatibility would need actual testing. Unnecessary for the current interaction scope.
C · R / Python serviceNot created. Would require lifecycle, access control, dependency maintenance, concurrency limits and operating cost. Appropriate only if later requirements demand unsupported packages or compute-intensive user-defined analyses. Hosting would create additional data-handling responsibilities.

R/Python execution takes place before publication. Core scripts, fonts and data are same-origin. Lab pages have a restrictive content security policy, no analytics integration and no outbound data submission. A static server is required to fetch JSON; opening HTML with file:// is not supported.