Question 17 of 20 Advanced Practical
How would you design data lineage for a derived endpoint built from several clinical source systems?
Short answer
Trace every input from its source system and original record, through each transfer and transformation, to the SDTM variable, the ADaM derivation and the final result. Record origin, version, timestamp and rule at each step, so any reported value can be followed back to source and any source change forward to the result.
Why
A derived endpoint such as progression-free survival may combine scan dates from an imaging vendor, death dates from the EDC, last contact dates from several forms and censoring rules from the statistical analysis plan. If any link is undocumented, nobody can explain why a participant's value is what it is. E6(R3) asks that data transfers keep integrity, with documentation that ensures traceability, and that statistical programming records relating to outputs be retained.
CDISC Define-XML carries variable origins and derivation methods for submitted datasets. Good lineage has three parts. A source map lists each input, its system, owner, transfer frequency and the agreement covering it.
A transformation record lists each step, the program and version that did it, and the rule in words. And identifiers link records end to end, such as participant ID, visit and source record ID. The test is two-way: pick a reported value and walk back to the source, then change a source value in a test copy and confirm the result changes as expected.
How to work it through
- List every input to the endpoint and the source system and owner of each.
- Write the derivation rule in words, matching the statistical analysis plan, including censoring and tie-breaking.
- Map each transfer with its schedule, format and reconciliation check.
- Carry stable identifiers and source record IDs through SDTM into ADaM.
- Version-control programs and record which version produced each output.
- Test lineage by tracing sample values back to source and forward from changed inputs.
An example
For progression-free survival in a 450 participant trial, inputs are central imaging progression dates, EDC death dates and last tumor assessment dates. Each ADaM record carries the source variable and record ID used. A trace of 30 random participants finds 2 whose event date came from local rather than central imaging, against the analysis plan.
The derivation had a fallback to local reads that the plan did not allow. The program is corrected, the change logged, and the 2 participants' event times move from day 168 and day 203 to day 182 and day 224.
Where the answer stops holding
Lineage documentation is only as good as its upkeep, and fast-moving studies often let it lag behind code changes. Vendor systems may not expose internal record IDs, which limits backward tracing. Lineage shows how a value was produced, not whether the source itself was right.
A strong answer covers
- Source map with owners and transfers
- Derivation rules in words aligned to the analysis plan
- Stable identifiers end to end
- Version-controlled programs
- Backward and forward tracing tests
Common mistakes
- Documenting lineage only in program code comments.
- Losing source record IDs when data are merged.
- Treating Define-XML alone as complete lineage for a complex endpoint.
The interviewer might ask next
How would you show an inspector that a late source correction flowed correctly into the final endpoint?