Canonical Rules Viewer
Versioned Cortex rule files — v3 schema ownership split
🗂 Field Registry
field_registry_3_4.yaml
238 fields
Study Design And Definition
43 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| study_design_and_definition.id | ALWAYS | — |
Title Page
Header/Footer
Synopsis
|
Protocol No.
Protocol Number
Protocol ID
Study ID
Study Number
+2
|
| study_design_and_definition.name | ALWAYS | ICH M11 §1.1; SPIRIT 2013 Item 1; CDISC SDTM TS TSPARMCD=TITLE |
Title Page
Synopsis
Protocol Cover
|
Title of Study
Study Title
Protocol Title
Title:
A Phase
+3
|
| study_design_and_definition.protocolVersion | ALWAYS | ICH M11 §1; SPIRIT 2013 Item 3 |
Title Page
Synopsis
Title Page (Version field)
Header/Footer
Cover Page
|
Version
Revision
Protocol Version
Document Version
Amendment
+8
|
| study_design_and_definition.protocolDate | ALWAYS | ICH M11 §1; SPIRIT 2013 Item 3 |
Title Page
Synopsis
Adjacent to Version on Title Page
Header/Footer (date stamp)
Cover Page
|
Effective date
Date
Protocol Date
Approved
Version Date
+10
|
| study_design_and_definition.sponsor | ALWAYS | ICH M11 §1; SPIRIT 2013 Item 5a; ICH E6(R2) §1.53 |
Title Page (Sponsor field) [HIGH PRIORITY]
Cover Page
Administrative Information
Protocol Number prefix for NIH intramural [MEDIUM -- requires institute code lookup]
Synopsis
|
Sponsor
Sponsored by
Funding
Sponsor name
Sponsor:
+8
|
| study_design_and_definition.regulatoryIdentifier | COND_PROTECTED | ICH M11 §1; SPIRIT 2013 Item 2a |
Title Page
Synopsis
Title Page (IND/IDE/CTA field)
Administrative Information
Regulatory section
|
Protocol number
IND
Sponsor protocol number
EudraCT
IND No.
+9
|
| study_design_and_definition.trialRegistryIdentifier | COND_PROTECTED | ICH M11 §1; SPIRIT 2013 Item 2a; WHO ICTRP |
Title Page
Synopsis
Title Page (NCT/EudraCT field)
Background section
Administrative Information
|
NCT
ClinicalTrials.gov
Registry
CTRI
JRCT
+11
|
| study_design_and_definition.usdmVersion | SYSTEM | CDISC USDM |
Synopsis
Study Design
|
— |
| study_design_and_definition.rationale | CONDITIONAL | ICH M11 §3; SPIRIT 2013 Item 6a; ICH E8(R1) §3 |
Synopsis
Study Design
Background
Background and Rationale section
Scientific Rationale section
Study Rationale section
|
Scientific rationale
Rationale
Unmet need
Background
Justification
+12
|
| study_design_and_definition.studyType | ALWAYS | ICH M11 §4; CDISC SDTM TS TSPARMCD=STYPE |
Title Page
Study Design
Synopsis
DO NOT SEARCH — This field is DERIVED
|
Study type
Interventional
Expanded access
Observational
|
| study_design_and_definition.trialType | CONDITIONAL | ICH M11 §4; SPIRIT 2013 Item 7; CDISC SDTM TS TSPARMCD=TTYPE |
Study Design
Synopsis
Objectives section (primary objective)
Synopsis (study purpose)
Title Page
|
Efficacy
Pharmacokinetic
Safety
Dose-finding
Trial type
+20
|
| study_design_and_definition.phaseCode | COND_PROTECTED | ICH M11 §4.1; SPIRIT 2013 Item 7; CDISC SDTM TS TSPARMCD=TPHASE;... |
Title Page
Study Design
Synopsis
Enforced order: Title Page
Synopsis/Protocol Summary
Study Design Overview
|
Phase 2
Phase 1
First-in-human
Phase 4
Phase 3
+16
|
| study_design_and_definition.studyPhase | ALWAYS | ICH M11 §4.1; ICH E8(R1) §4 |
Synopsis
Study Design
|
Phase
Development phase
|
| study_design_and_definition.interventionModel | CONDITIONAL | ICH M11 §4.2; SPIRIT 2013 Item 7; CDISC SDTM TS TSPARMCD=INTMODEL |
Title Page
Study Design
Synopsis
Synopsis (study design descriptor)
Study Design section
Methods
|
Crossover
Sequential
Factorial
Parallel
Single group
+19
|
| study_design_and_definition.interventionType | CONDITIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=INTTYPE |
Study Design
Interventions
Synopsis
Interventions section
Study Arms
Investigational Product section
|
Drug
Dietary supplement
Behavioral
Biological
Device
+16
|
| study_design_and_definition.allocation | CONDITIONAL | ICH M11 §4.2; SPIRIT 2013 Item 16a; CDISC SDTM TS TSPARMCD=RANDOM |
Study Design
Synopsis
Title Page
|
Randomized
Randomised
Allocation
Non-randomized
randomized
+6
|
| study_design_and_definition.allocationRatio | CONDITIONAL | ICH M11 §4.5; SPIRIT 2013 Item 16a |
Study Design
Synopsis
Randomization section (ratio statement)
Study Arms section
Sample Size section
|
Randomization ratio
1:1
Ratio
Allocation ratio
2:1
+13
|
| study_design_and_definition.randomizationMethod | CONDITIONAL | ICH M11 §4.5; SPIRIT 2013 Item 16a; ICH E9 §2.3.1 |
Study Design
Synopsis
Randomization section
Study Design section
Statistical Methods
|
Permuted block
IWRS
Block randomization
Central randomization
IVRS
+18
|
| study_design_and_definition.stratificationFactors | CONDITIONAL | ICH M11 §4.5; SPIRIT 2013 Item 16a; ICH E9 §2.3.2 |
Statistical Considerations
Study Design
Synopsis
Randomization section
Statistical Methods
IWRS/IRT description
|
Stratified by
Strata
Stratification factors
Stratification
stratified by
+8
|
| study_design_and_definition.blindingSchema | CONDITIONAL | ICH M11 §4.2; SPIRIT 2013 Item 11b; CDISC SDTM TS TSPARMCD=BLIND |
Study Design header [HIGH -- e.g., "double-blind" in design descriptor]
Synopsis
Pharmaceutical Safety / Randomization [HIGH -- matching placebo + blinding procedures]
Study Arms section
|
Double-blind
Masking
Blinding
Open-label
Single-blind
+18
|
| study_design_and_definition.studyTypeMasking | CONDITIONAL | ICH M11 §4.4; SPIRIT 2013 Item 11b |
Study Design
Synopsis
Title Page (in study descriptor)
Synopsis (Design section)
Study Design section
|
Unblinding
Masking
Blinding procedures
Who is blinded
open-label
+26
|
| study_design_and_definition.controlType | CONDITIONAL | ICH M11 §4.2; ICH E10; CDISC SDTM TS TSPARMCD=CONTROL |
Study Design
Arms
Synopsis
Study Arms (control arm description)
Comparator section
Randomization
|
Sham
Active control
Dose-comparison
Standard of care
Placebo
+12
|
| study_design_and_definition.numberOfArms | ALWAYS | ICH M11 §4.2; SPIRIT 2013 Item 8 |
Study Design
Arms
Synopsis
Study Arms section
Synopsis (design overview)
Study Design section
|
Number of arms
Treatment groups
Arms
arms
arm
+18
|
| study_design_and_definition.studyArms | ALWAYS | ICH M11 §4.2; SPIRIT 2013 Item 8 |
Study Design
Arms
Synopsis
Study Arms section
Treatment Groups section
Randomization
|
Arm description
Treatment arms
Arms
Study arms
Arm
+18
|
| study_design_and_definition.observationalModel | CONDITIONAL | ICH M11 §4; STROBE; CDISC SDTM TS TSPARMCD=OBSMODEL |
Study Design
Synopsis
Synopsis (study design type)
Study Design section
Title Page
|
Case-control
Cross-sectional
Cohort
Observational model
cohort
+11
|
| study_design_and_definition.targetEnrollment | ALWAYS | ICH M11 §10.1; SPIRIT 2013 Item 14a; CDISC SDTM TS TSPARMCD=PLANSUB |
Sample Size Calculation / Statistical Methods [HIGH PRIORITY -- most authoritative]
Study Design section
Synopsis / Protocol Summary [MEDIUM -- may lag behind in amended protocols]
Title Page [LOW -- in NIH protocols "Number" often = screening target]
|
Sample size
Number of subjects
N=
Planned enrollment
Enrollment target
+13
|
| study_design_and_definition.populationAgeRange | ALWAYS | ICH M11 §5.1; SPIRIT 2013 Item 10; CDISC SDTM TS TSPARMCD=AGEMIN/AGEMAX |
Study Population
Synopsis
Eligibility Criteria
Inclusion Criteria (age requirement)
Synopsis (population description)
Study Population section
|
Age
Pediatric
Adult
≥18
Years old
+28
|
| study_design_and_definition.therapeuticAreas | ALWAYS | ICH M11 §3; CDISC SDTM TS TSPARMCD=TAREA |
Title Page
Background
Synopsis
Title Page (disease name)
Synopsis (indication)
Background/Rationale
|
Disease area
Indication
Oncology
Cardiology
Therapeutic area
+35
|
| study_design_and_definition.indication | CONDITIONAL | SPIRIT 2013; protocol synopsis |
Title Page
Synopsis
Background/Rationale
|
— |
| study_design_and_definition.studyDuration | ALWAYS | ICH M11 §1.2; SPIRIT 2013 Item 14a |
Synopsis (study duration statement) [HIGH — look for explicit calendar/project duration]
Study Design section [MEDIUM — may state overall timeline]
Study Timeline / Gantt chart [HIGH — if present]
Administrative Information [LOW]
|
Study duration
Duration of study
Overall duration
study duration
total duration
+14
|
| study_design_and_definition.participantDuration | ALWAYS | ICH M11 §4; SPIRIT 2013 Item 14a |
Schedule of Activities
Study Design
Synopsis
Synopsis (per-subject duration)
Study Schema/Schedule
Follow-up section
|
Subject participation
Participant duration
Individual participation
per subject
per participant
+12
|
| study_design_and_definition.screeningPeriod | COND_PROTECTED | ICH M11 §4; SPIRIT 2013 Item 13 |
Schedule of Activities
Study Design
Synopsis
Synopsis (study schema)
Study Design section
Study Schedule/Flowchart
|
Screening period
Lead-in
Washout
Screening
Run-in
+15
|
| study_design_and_definition.treatmentPeriod | ALWAYS | ICH M11 §4; SPIRIT 2013 Item 13 |
Schedule of Activities
Study Design
Synopsis
Study Design section
Dosing Schedule
Study Schema
|
Active treatment
Treatment duration
On-treatment
Treatment period
treatment period
+13
|
| study_design_and_definition.followUpPeriod | COND_PROTECTED | ICH M11 §4; SPIRIT 2013 Item 13 |
Schedule of Activities
Study Design
Synopsis
Study Design section
Safety Follow-up section
Study Schema
|
Follow-up period
Safety follow-up
Post-treatment
Follow-up
follow-up
+13
|
| study_design_and_definition.primaryCompletionType | COND_PROTECTED | ICH M11 §4; CDISC SDTM TS TSPARMCD=PCMPLT |
Statistical Considerations
Study Design
Synopsis
Study Design (completion definition)
Endpoints section
Statistical Analysis Plan reference
|
Primary analysis
LSLV
Last subject last visit
Primary completion
primary completion
+7
|
| study_design_and_definition.interimAnalysis | CONDITIONAL | ICH E9 section 4.5; ICH M11 section 10; CDISC SDTM TS TSPARMCD=INTMDANL |
Study Analysis / Statistical Methods
Data Monitoring section
Study Design
Sample Size section
|
Interim analysis
Interim
Futility
Efficacy stopping
Early stopping
+9
|
| study_design_and_definition.screeningTarget | CONDITIONAL | CDISC SDTM TS TSPARMCD=PLANSUB (when qualified as screening) |
Title Page (Number field in NIH protocols)
Sample Size section
Study Design
|
Screen
Screening
Screened
screen approximately
plan to screen
+3
|
| study_design_and_definition.maskingRoles | CONDITIONAL | ICH M11 §4.4; SPIRIT 2013 Item 11b; CDISC SDTM TS... |
Study Design (masking/blinding section)
Section 9 (Statistical Analysis Plan - Blinding)
Synopsis (study design descriptor)
Randomization and Blinding section
|
blinded
masked
blinding
masking
observer-blind
+14
|
| study_design_and_definition.primaryEstimand | CONDITIONAL | ICH E9(R1); ICH M11 §3 |
Objectives and Estimands section
Section 3.1 or equivalent
Statistical Considerations
Statistical Analysis section (for pre-E9(R1) protocols)
|
estimand
intercurrent event
treatment policy
composite strategy
hypothetical strategy
+10
|
| study_design_and_definition.dataMonitoringCommittee | ALWAYS | ICH M11 §9.7; SPIRIT 2013 Item 21b |
Synopsis (Data monitoring committee)
Section 9 Statistical Considerations
Section 10 Supporting Documentation
Committees Structure
|
data monitoring committee
DMC
DSMB
data safety monitoring board
independent monitoring
+1
|
| study_design_and_definition.rescueTherapy | CONDITIONAL | ICH M11 §4; ICH E9(R1) intercurrent events |
Rescue Therapy section
Concomitant Medication section
Treatment section
Section 6 or equivalent
|
rescue therapy
rescue medication
rescue treatment
revascularisation
breakthrough therapy
|
| study_design_and_definition.doseEscalationSchema | CONDITIONAL | ICH M11 §4.3; ICH E4 |
Treatment section (dose escalation subsection)
Study Design (dose justification)
Justification for Dose section
Study Treatments table
|
dose escalation
dose titration
starting dose
titrate
step-up
+8
|
| study_design_and_definition.hyperglycemiaRescueCriteria | CONDITIONAL | ICH E9(R1) intercurrent events; ADA Standards of Care |
Concomitant Medication section
Special Treatment Considerations
Hyperglycemia Management section
Management of Severe/Persistent Hyperglycemia section
|
persistent hyperglycemia
rescue criteria
FPG threshold
HbA1c threshold
glycemic rescue
+5
|
Arms
11 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| arms.armId | SYSTEM | CDISC SDTM TA ARMCD; ICH M11 §4.2 |
Study Design
Arms
Study Arms table/section
SoA headers
Synopsis
|
Arm ID
Arm code
Arm
Group
Cohort
+3
|
| arms.armName | ALWAYS | ICH M11 §4.2; SPIRIT 2013 Item 8; CDISC SDTM TA ARM |
Study Design
Arms
Synopsis
Study Arms table
Study Design narrative
SoA headers
|
Treatment arm
Arm
Treatment group
Group
Arm Name
+5
|
| arms.armType | CONDITIONAL | ICH M11 §4.2; SPIRIT 2013 Item 8 |
Study Design
Arms
Synopsis
Study Arms table type column
Arm header/label
Study Design narrative
|
No intervention
Sham
Experimental
Placebo comparator
Active comparator
+4
|
| arms.description | ALWAYS | ICH M11 §4.2; SPIRIT 2013 Item 11a |
Interventions
Study Design
Arms
Study Arms table description column
Arm narrative text
Study Design section
|
Treatment description
Arm description
Description
Participants receive
Treatment consists of
+2
|
| arms.interventions | ALWAYS | ICH M11 §4.3 |
Study Design
Interventions
Arms
Interventions/Study Treatment section
Study Arms table
SoA treatment columns
|
Treatment
Intervention
Drug
Dose
Intervention(s)
+5
|
| arms.sampleSize | CONDITIONAL | ICH M11 §10.1; SPIRIT 2013 Item 14a |
Statistical Considerations
Arms
Synopsis
Study Arms table N column
Statistical section
Study Design allocation
|
Arm size
Per group
N per arm
Per arm
N=
+4
|
| arms.treatmentDuration | CONDITIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a |
Interventions
Study Design
Arms
Study Arms table duration column
Study Design narrative
SoA epoch mapping
|
Treatment duration
Weeks
Cycles
Duration of treatment
Duration
+4
|
| arms.sequenceCrossover | CONDITIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Study Design
Arms
Crossover/sequence diagram
Study Design narrative
SoA crossover section
|
Crossover sequence
BA
Treatment order
Sequence
AB
+3
|
| arms.notes | OPTIONAL | Internal |
Study Design
Arms
Footnotes under arms table
Study Design notes
SoA footnotes
|
Note
Footnote
Stratified
Additional
Comment
|
| arms.pageNumber | ALWAYS | Internal — auto-populated |
Captured during extraction from source location
|
p.
page
pp.
|
| arms.pageSection | ALWAYS | Internal — auto-populated |
Captured during extraction
use section heading/table title
|
Section
Table
Study Arms
Study Design
|
Activities
21 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| activities.activityId | SYSTEM | CDISC Protocol Representation Model; ICH M11 §5 |
Schedule of Activities
N/A (System) or Activities list/table
|
Activity ID
Procedures
Assessments
Schedule of Events
|
| activities.activityName | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 11a |
Schedule of Activities
Study Procedures
Schedule of Events / Procedures
|
Test
Activity
Examination
Procedure
Assessment
+3
|
| activities.activityLabel | OPTIONAL | ICH M11 §5 |
Schedule of Activities
SOE column labels
|
Abbreviation
Short name
Label
abbreviations (ECG
PE
+1
|
| activities.description | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 11a |
Schedule of Activities
Study Procedures
Activity narrative / footnotes
|
Procedure description
Activity description
includes
performed
|
| activities.dataType | CONDITIONAL | CDISC Protocol Representation Model |
Schedule of Activities
Study Procedures
Tables stating type
|
Data type
Numeric
Text
Categorical
numeric
+2
|
| activities.collectionMethod | OPTIONAL | ICH M11 §5; SPIRIT 2013 Item 18 |
Schedule of Activities
Study Procedures
Procedures / assessments text
|
eCRF
Collection method
ePRO
Local lab
Central lab
+4
|
| activities.specimenType | CONDITIONAL | ICH M11 §5; CDISC SDTM LB |
Schedule of Activities
Study Procedures
Lab/Specimen description
|
Plasma
CSF
Urine
Specimen
Biopsy
+6
|
| activities.frequency | OPTIONAL | ICH M11 §5; SPIRIT 2013 Item 13 |
Schedule of Activities
Study Procedures
SOE frequency row/column
|
Frequency
Monthly
At each visit
Every
Weekly
+4
|
| activities.units | CONDITIONAL | CDISC SDTM |
Schedule of Activities
Study Procedures
Vital signs / lab tables
|
mg/dL
mm Hg
mmol/L
Units
mmHg
+3
|
| activities.normalRange | CONDITIONAL | ICH M11 §5; CDISC SDTM |
Safety Monitoring
Study Procedures
Lab criteria / thresholds
|
Normal range
ULN
Reference range
LLN
range
+3
|
| activities.assumption | OPTIONAL | Internal |
N/A (Documentation)
|
assume
inferred
|
| activities.notes | OPTIONAL | Internal |
Schedule of Activities
Footnotes/caveats
|
optional
footnote
|
| activities.pageNumber | ALWAYS | Internal — auto-populated |
Page footer/header
|
p.
pp.
|
| activities.pageSection | ALWAYS | Internal — auto-populated |
Section header
|
section titles
|
| activities.activityCategory | ALWAYS | ICH M11 §6 (Schedule of Activities); CDISC SDTM TA/TV |
SOA table
Schedule of Activities
row group header
|
category
group
section header
|
| activities.activityProcedure | ALWAYS | ICH M11 §6; SPIRIT 2013 Item 13 |
SOA table
row labels
procedure names
|
procedure
assessment
test
sample
|
| activities.assumptionNotes | CONDITIONAL | Internal — extraction provenance |
SOA table footnotes
protocol text
|
— |
| activities.footnoteMarkersUsed | CONDITIONAL | ICH M11 §6; SPIRIT 2013 Figure |
SOA table cells
superscript markers
|
footnote
superscript
*
†
|
| activities.footnoteText | CONDITIONAL | ICH M11 §6 |
SOA table footer
footnotes section
|
footnote
note
|
| activities.visitHeaderText | CONDITIONAL | ICH M11 §6; SPIRIT 2013 Figure |
SOA table column headers
visit names
|
— |
| activities.visitScheduleText | ALWAYS | ICH M11 §6; SPIRIT 2013 Figure |
SOA table cells
X marks
checkmarks
|
— |
Crossover Design
13 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| crossover_design.sequenceId | SYSTEM | CDISC SDTM TA; ICH M11 §4.2 |
Study Design
Crossover Design section
Sequence table header
|
Sequence ID
Sequence
Seq
AB/BA
Group
+1
|
| crossover_design.sequenceName | CONDITIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Study Design
Crossover Design section
Sequence table
|
Sequence
Sequence name
Treatment sequence
Group
Treatment Arm
+1
|
| crossover_design.sequencePattern | CONDITIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Study Design
Crossover Design section
Randomization table
|
Pattern
Treatment order
B→A
ABC
A→B
+5
|
| crossover_design.description | CONDITIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Study Design
Synopsis
Crossover Design section
Study Design narrative
|
Crossover
Cross-over
Crossover design
sequence
crossover
+2
|
| crossover_design.numberOfPeriods | OPTIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Study Design
Study Design section
Crossover description
|
Period
Number of periods
Treatment period
period
2-period
+3
|
| crossover_design.periodInterventions | CONDITIONAL | ICH M11 §4.2 |
Study Design
Interventions
Crossover table
Sequence description
|
Period 2
Treatment B
Treatment A
Period 1
followed by
+2
|
| crossover_design.washoutDuration | OPTIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Schedule of Activities
Study Design
Washout section
Crossover description
|
Washout
Rest period
Washout period
Carryover
washout
+6
|
| crossover_design.randomizationRatio | OPTIONAL | ICH M11 §4.5; SPIRIT 2013 Item 16a |
Study Design
Randomization section
|
Randomization ratio
1:1
Allocation ratio
ratio
2:1
+2
|
| crossover_design.blockSize | OPTIONAL | ICH M11 §4.5; ICH E9 §2.3.1 |
Study Design
Randomization section
|
Permuted block
Block randomization
Block size
block
block size
+2
|
| crossover_design.balancingFactor | OPTIONAL | ICH M11 §4.5; ICH E9 §2.3.2 |
Study Design
Randomization section
Stratification factors
|
Balancing
Balancing factor
Stratification
balanced
stratified
+3
|
| crossover_design.expectedN | OPTIONAL | ICH M11 §10.1 |
Statistical Considerations
Study Design
Sample Size section
|
Expected enrollment
Per sequence
N per sequence
per sequence
N=
+3
|
| crossover_design.pageNumber | CONDITIONAL | Internal — auto-populated |
All source locations for sequence fields
|
— |
| crossover_design.pageSection | CONDITIONAL | Internal — auto-populated |
Section headers in protocol
|
Section
Study Design
Randomization
Crossover
|
Eligibility Criteria
13 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| eligibility_criteria.criterionId | SYSTEM | ICH M11 §5.1 |
Eligibility Criteria
N/A (System-generated)
|
E1
Criterion ID
I1
|
| eligibility_criteria.category | ALWAYS | ICH M11 §5.1; SPIRIT 2013 Item 10 |
Eligibility Criteria
Section headers in eligibility section
explicit labels before criteria lists
|
Inclusion
Exclusion
inclusion
exclusion
eligible
+4
|
| eligibility_criteria.text | ALWAYS | ICH M11 §5.1; SPIRIT 2013 Item 10; ICH E6(R2) §4.3 |
Eligibility Criteria
Eligibility section body
bulleted/numbered lists
criterion descriptions
|
Inclusion criteria
Eligible if
Exclusion criteria
Must have
must
+8
|
| eligibility_criteria.identifier | ALWAYS | ICH M11 §5.1 |
Eligibility Criteria
Eligibility section criterion labels
numbered/lettered list markers
|
Number
Criterion
I
E
1
+6
|
| eligibility_criteria.structured | CONDITIONAL | CDISC Protocol Representation Model |
Same sentence as criterion text
clinical terms
measurable parameters
|
age
BMI
weight
height
eGFR
+11
|
| eligibility_criteria.operator | CONDITIONAL | CDISC Protocol Representation Model |
Eligibility Criteria
Adjacent to value in criterion text
comparison symbols
comparison phrases
|
≥
=
>
between
≤
+8
|
| eligibility_criteria.value | CONDITIONAL | CDISC Protocol Representation Model |
Eligibility Criteria
Same sentence as criterion text
numeric values
categorical states
|
≥
≤
>
<
=
+10
|
| eligibility_criteria.units | CONDITIONAL | CDISC Protocol Representation Model |
Eligibility Criteria
Adjacent to numeric value in criterion text
|
years
cells/μL
mg/dL
kg/m2
kg
+10
|
| eligibility_criteria.timeframe | CONDITIONAL | ICH M11 §5.1; SPIRIT 2013 Item 10 |
Eligibility Criteria
Same sentence as criterion text
temporal phrases
time-related prepositions
|
Days
Within
Before
At screening
Prior to
+15
|
| eligibility_criteria.negationFlag | ALWAYS | CDISC Protocol Representation Model |
Eligibility Criteria
Beginning of criterion text
negative phrases
exclusionary language
|
Must not
Absence of
Not
Without
No
+11
|
| eligibility_criteria.assumption | OPTIONAL | Internal |
N/A — generated by Design Agent
not extracted from protocol
|
assumed
interpreted
split
combined
inferred
+1
|
| eligibility_criteria.notes | OPTIONAL | Internal |
Eligibility Criteria
Footnotes
parentheticals
clarifications in protocol
|
note
see
refer to
footnote
*
+3
|
| eligibility_criteria.pageNumber | ALWAYS | Internal — auto-populated |
Page headers
page footers
PDF page numbers
|
page
p.
pg.
of
/
|
Encounters And Visits
17 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| encounters_and_visits.encId | SYSTEM | CDISC SDTM SV; ICH M11 §5 |
Encounters and Visits
Schedule of Activities
SoE visit ID column
Visit Schedule
Study Design
|
Visit ID
Encounter ID
Visit
Encounter
V#
+3
|
| encounters_and_visits.encounterName | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE column header
Visit Schedule
Study Design
|
Visit name
Encounter
Visit
Baseline
Follow-up
+1
|
| encounters_and_visits.visitLabel | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE header (combined)
Visit Schedule
CRF codes
|
Visit label
Wk
V1
Day
V#
+5
|
| encounters_and_visits.purpose | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
Visit Schedule purpose
Narrative
SoE footnotes
|
Treatment
Follow-up
Screening
Purpose
Safety
+5
|
| encounters_and_visits.epochReference | CONDITIONAL | CDISC SDTM SE; ICH M11 §4 |
Encounters and Visits
Schedule of Activities
SoE epoch header
Visit grouping
Study Design
|
Treatment
Epoch
Follow-up
Screening
Period
+1
|
| encounters_and_visits.studyDay | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE "Study Day" row
Visit Schedule
Timeline
|
Day
Study day
D1
D28
Study Day
+2
|
| encounters_and_visits.windowMinus | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE window row
Visit Schedule
Narrative
|
Window
Before
Minus
±
days before
+1
|
| encounters_and_visits.windowPlus | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE window row
Visit Schedule
Narrative
|
Window
Plus
After
±
days after
+1
|
| encounters_and_visits.duration | CONDITIONAL | ICH M11 §5 |
Encounters and Visits
SoE duration row
Visit Schedule
Narrative
|
Duration
Hours
Visit length
hours
minutes
+1
|
| encounters_and_visits.mode | CONDITIONAL | ICH M11 §5; ICH E6(R2) Amendment 2 |
Encounters and Visits
Schedule of Activities
SoE mode indicator
Visit notes
Narrative
|
In-person
Phone
Telehealth
Remote
On-site
|
| encounters_and_visits.location | CONDITIONAL | ICH M11 §5 |
Encounters and Visits
SoE location indicator
Visit Schedule
Narrative
|
Home
Hospital
Clinic
Location
Site
+3
|
| encounters_and_visits.required | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE required indicator
Visit notes
Narrative
|
Optional
Conditional
Required
Mandatory
PRN
|
| encounters_and_visits.overnightStay | CONDITIONAL | ICH M11 §5 |
Encounters and Visits
Study Procedures
SoE inpatient indicator
Visit Schedule
Narrative
|
Admission
Confinement
Overnight
Inpatient
Stay
+1
|
| encounters_and_visits.labsRequired | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Encounters and Visits
Schedule of Activities
SoE labs rows (X marks)
Visit activities
Narrative
|
Blood work
Blood draw
Laboratory
Labs
Safety labs
+2
|
| encounters_and_visits.activitiesPerformed | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Schedule of Activities
SoE rows with X marks
Visit description
Narrative
|
Assessments
Procedures
Activities
X
|
| encounters_and_visits.pageNumber | ALWAYS | Internal — auto-populated |
Captured during extraction from SoE
|
p.
page
pp.
|
| encounters_and_visits.pageSection | ALWAYS | Internal — auto-populated |
Captured during extraction
typically "Schedule of Events"
|
Schedule of Events
SoE
Visit Schedule
|
Epochs
10 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| epochs.epochId | SYSTEM | CDISC SDTM SE; ICH M11 §4 |
Study Design
Study Epochs table/diagram
SoA headers
Study Schema
|
Epoch ID
Epoch
Period
Phase
Study Period
+1
|
| epochs.epochName | ALWAYS | CDISC SDTM SE; ICH M11 §4; SPIRIT 2013 Item 13 |
Schedule of Activities
Study Design
Synopsis
Study Epochs table/diagram
Study Design narrative
SoA headers
|
Screening period
Treatment period
Follow-up period
Epoch
Period
+6
|
| epochs.epochType | CONDITIONAL | CDISC SDTM SE TAETORD; ICH M11 §4 |
Schedule of Activities
Study Design
Epochs/Study Periods section type column
Epoch header/label
Legend
|
Treatment
Extension
Washout
Follow-up
Screening
+7
|
| epochs.purpose | ALWAYS | CDISC SDTM SE; ICH M11 §4 |
Schedule of Activities
Study Design
Purpose text in epoch description
Study Design narrative
Epoch table
|
Objective of period
Purpose
Objective
Used for
To assess
+2
|
| epochs.duration | ALWAYS | ICH M11 §4; SPIRIT 2013 Item 13 |
Schedule of Activities
Study Design
Synopsis
Epoch duration column
Study Design narrative
SoA schedule
|
Duration
Days
Months
Weeks
Up to
+1
|
| epochs.sequenceInStudy | ALWAYS | CDISC SDTM SE TAETORD |
Schedule of Activities
Study Design
Epoch sequence column
Study flow diagram
Study Design narrative
|
Sequence
Order
1,2,3
First
Second
+1
|
| epochs.transitionRule | CONDITIONAL | CDISC SDTM TE; ICH M11 §4 |
Study Design
Transition statement between epochs
Study Design narrative
Study Schema
|
Move to
Proceed to
Completion criteria
Transition
Enter
+2
|
| epochs.notes | OPTIONAL | Internal |
Study Design
Footnotes/notes under epoch table
Study Design notes
|
Note
Footnote
Remark
Comment
|
| epochs.pageNumber | ALWAYS | Internal — auto-populated |
Captured during extraction
|
p.
page
pp.
|
| epochs.pageSection | ALWAYS | Internal — auto-populated |
Captured during extraction
|
Section
Table
Study Epochs
Study Design
|
Interventions
17 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| interventions.interventionId | SYSTEM | CDISC Protocol Representation Model; ICH M11 §4.3 |
Interventions
N/A (System) or Interventions table header
|
Intervention ID
Intervention
Investigational product
Study treatment
|
| interventions.name | ALWAYS | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=TRT |
Interventions
Study Design
Synopsis
Intervention section
Investigational Product
Study Drug
|
IMP
Investigational product
Treatment name
Study drug
Drug name
+3
|
| interventions.label | OPTIONAL | ICH M11 §4.3 |
Study Design
Interventions
Arms
Intervention table
Arms abbreviations
|
Label
Code
Treatment code
|
| interventions.type | OPTIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=INTTYPE |
Interventions
Study Design
Intervention summary
Regulatory section
|
Biologic
Drug
Sham
Placebo
Device
+2
|
| interventions.description | OPTIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a |
Interventions
Study Design
Intervention narrative
Product description
|
Presentation
Appearance
Description
Formulation
description
+1
|
| interventions.dose | OPTIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=DOSE |
Interventions
Study Design
Synopsis
Dosing section
Treatment administration
|
mg/kg
Dosage
Dose
mg/m2
mg
+2
|
| interventions.doseUnits | CONDITIONAL | ICH M11 §4.3; CDISC SDTM TS TSPARMCD=DOSEU |
Interventions
Study Design
Same sentence as dose
|
mg/kg
Units
IU
mg/m2
mcg
+3
|
| interventions.frequency | OPTIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=DOSFRQ |
Interventions
Study Design
Dose schedule
Treatment administration
|
Frequency
QD
BID
Q2W
Weekly
+4
|
| interventions.route | OPTIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=ROUTE |
Interventions
Study Design
Dosing/Administration section
|
Topical
Oral
SC
Intramuscular
IM
+6
|
| interventions.formulation | OPTIONAL | ICH M11 §4.3; CDISC SDTM TS TSPARMCD=DOSFORM |
Interventions
Pharmacy/IMP section
Product description
|
Solution
Formulation
Capsule
Injection
Suspension
+5
|
| interventions.duration | OPTIONAL | ICH M11 §4.3; SPIRIT 2013 Item 11a; CDISC SDTM TS TSPARMCD=TRTDUR |
Interventions
Study Design
Treatment administration
Duration section
|
Treatment duration
Cycles
Duration of treatment
duration
weeks
+2
|
| interventions.crossoverPeriod | CONDITIONAL | ICH M11 §4.2; ICH E9 §2.3.4 |
Study Design
Interventions
Crossover section (if present)
|
Period
Crossover period
Treatment period
period
crossover
|
| interventions.manufacturer | OPTIONAL | ICH M11 §4.3 |
Interventions
Sponsor/Manufacturer
Drug Supply section
|
Supplier
Supplied by
Manufacturer
manufacturer
supplied by
|
| interventions.indNumber | OPTIONAL | ICH M11 §4.3; FDA regulations 21 CFR 312 |
Title Page
Interventions
Regulatory/IND section
Title page
|
IND
IND number
Investigational New Drug
|
| interventions.assumptionNotes | OPTIONAL | Internal |
N/A (Documentation field)
|
— |
| interventions.pageNumber | ALWAYS | Internal — auto-populated |
Same location as evidence
|
p.
|
| interventions.pageSection | ALWAYS | Internal — auto-populated |
Section headers in protocol
|
Section
Study Interventions
Dosing
|
Objectives And Endpoints
17 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| objectives_and_endpoints.oeId | SYSTEM | ICH M11 §3 |
Objectives and Endpoints
Objective/Endpoint tables
else system fallback
|
ID
OBJ
EP
Endpoint
Objective
|
| objectives_and_endpoints.name | ALWAYS | ICH M11 §3.1; SPIRIT 2013 Item 7 |
Objectives and Endpoints
Synopsis
Objectives section headings
Summary tables
|
Outcome
Endpoint
Objective
to evaluate
to assess
+1
|
| objectives_and_endpoints.recordType | ALWAYS | ICH M11 §3 |
Objectives and Endpoints
Objectives section
Endpoints section
Synopsis
|
Endpoint
Objective
objective
endpoint
primary
+2
|
| objectives_and_endpoints.level | ALWAYS | ICH M11 §3.1; SPIRIT 2013 Item 7 |
Objectives and Endpoints
Synopsis
Bullets near Primary/Secondary/Exploratory
|
Exploratory
Key secondary
Secondary
Tertiary
Primary
+4
|
| objectives_and_endpoints.description | ALWAYS | ICH M11 §3.2; SPIRIT 2013 Item 12; ICH E9(R1) |
Objectives and Endpoints
Statistical Considerations
Synopsis
Objective/endpoint text paragraphs
|
Outcome
Endpoint
Objective
to evaluate…
to assess…
+1
|
| objectives_and_endpoints.purpose | ALWAYS | ICH M11 §3.2; ICH E9(R1) |
Objectives and Endpoints
|
Efficacy
Biomarker
PRO
Safety
PK
+5
|
| objectives_and_endpoints.measurement | CONDITIONAL | ICH M11 §3.2; SPIRIT 2013 Item 12 |
Objectives and Endpoints
Statistical Considerations
Endpoint wording (GMT
frequency)
|
Change from baseline
ORR
DOR
HbA1c
OS
+5
|
| objectives_and_endpoints.assessmentMethod | CONDITIONAL | ICH M11 §3.2; SPIRIT 2013 Item 12 |
Objectives and Endpoints
Schedule of Activities
Method statements (eDiary
RT-PCR)
|
RECIST
EORTC
NRS
Assessment
VAS
+6
|
| objectives_and_endpoints.timepoint | CONDITIONAL | ICH M11 §3.2; SPIRIT 2013 Item 12 |
Objectives and Endpoints
Schedule of Activities
Endpoints specifying timepoint windows
|
Change from baseline
Time to event
At month
At week
Day 1-7
+2
|
| objectives_and_endpoints.windowLow | CONDITIONAL | ICH M11 §3.2 |
Objectives and Endpoints
Statistical Considerations
SOE windows if in endpoints
|
Window
Minus
Lower
±
-
+1
|
| objectives_and_endpoints.windowHigh | CONDITIONAL | ICH M11 §3.2 |
Objectives and Endpoints
Statistical Considerations
SOE windows if in endpoints
|
Window
Plus
Upper
±
+
+1
|
| objectives_and_endpoints.units | CONDITIONAL | CDISC SDTM |
Objectives and Endpoints
Endpoint unit terms (%
titer)
|
mm
months
%
Units
titer
+2
|
| objectives_and_endpoints.statisticalMethod | CONDITIONAL | ICH M11 §10; SPIRIT 2013 Item 20a; ICH E9 |
Objectives and Endpoints
Statistical Considerations
Statistical analysis section
|
Log-rank
ANCOVA
Kaplan-Meier
Logistic regression
MMRM
+4
|
| objectives_and_endpoints.activityRefsText | CONDITIONAL | ICH M11 §5 |
Objectives and Endpoints
Schedule of Activities
Endpoints referencing procedures/assessments
|
Assessment
Procedure
Activity
assessments include
measured by
+1
|
| objectives_and_endpoints.encounterRefsText | CONDITIONAL | ICH M11 §5; SPIRIT 2013 Item 13 |
Objectives and Endpoints
Schedule of Activities
Endpoints referencing visits/encounters
|
Encounter
Visit
At visit
Day
visit
+3
|
| objectives_and_endpoints.assumptionNotes | OPTIONAL | Internal |
N/A (documentation)
|
assumed
inferred
not explicit
|
| objectives_and_endpoints.pageNumber | ALWAYS | Internal — auto-populated |
Captured during extraction
|
p.
pp.
|
Population And Cohorts
14 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| population_and_cohorts.populationId | SYSTEM | ICH M11 §5.1 |
Study Population
N/A (System-Generated)
|
Cohort ID
Population ID
|
| population_and_cohorts.populationName | ALWAYS | ICH M11 §5.1; SPIRIT 2013 Item 15 |
Study Population
Study Design
Synopsis
Analysis Sets
|
Dose escalation cohort
Sub-population
Expansion cohort
Population
Cohort
+8
|
| population_and_cohorts.populationCategory | ALWAYS | ICH M11 §4.2; ICH E8(R1) |
Study Population
Study Design
Analysis Sets
Population Name
|
Dose escalation
Dose expansion
Sentinel
Biomarker-selected
Enrichment
+9
|
| population_and_cohorts.description | ALWAYS | ICH M11 §5.1; SPIRIT 2013 Item 15 |
Study Population
Study Design
Eligibility Criteria
Analysis Sets Definition
Eligibility Intro
|
Cohort description
Population description
defined as
includes
consists of
+2
|
| population_and_cohorts.plannedN | CONDITIONAL | ICH M11 §10.1; SPIRIT 2013 Item 14a |
Statistical Considerations
Study Population
Synopsis
Analysis Sets
Statistical Section
Synopsis Sample Size
|
Planned enrollment
Approximately
Cohort size
N=
approximately
+4
|
| population_and_cohorts.plannednType | ALWAYS | ICH M11 §10.1 |
Study Population
Statistical Considerations
|
Approximately
At least
Up to
Minimum
Maximum
|
| population_and_cohorts.actualN | SYSTEM | ICH M11 §10.1 |
Study Population
N/A (Post-Enrollment Data)
|
Actual enrollment
Enrolled
Accrual
|
| population_and_cohorts.inclusionCriteriaIDs | CONDITIONAL | ICH M11 §5.1 |
Study Population
Eligibility Criteria
Population Definition
|
Inclusion criteria
Eligible if
inclusion criteria
same as Pop_NNN
meets eligibility
|
| population_and_cohorts.exclusionCriteriaIDs | CONDITIONAL | ICH M11 §5.1 |
Study Population
Eligibility Criteria
Population Definition
|
Excluded if
Exclusion criteria
exclusion criteria
same as Pop_NNN
|
| population_and_cohorts.criteriaReferenceMode | ALWAYS | ICH M11 §5.1 |
Study Population
Eligibility Criteria
Analysis Sets definition
Population Definition
|
Additional criteria
Same criteria
Modified criteria
Same as
received ≥1 dose
|
| population_and_cohorts.linkedArmIDs | ALWAYS | ICH M11 §4.2 |
Study Population
Study Design
Arms
Arms Table
Population Definition
|
all arms
treatment groups
|
| population_and_cohorts.assumption | CONDITIONAL | Internal |
N/A (Documentation Field)
|
— |
| population_and_cohorts.notes | OPTIONAL | Internal |
Study Population
N/A (Documentation Field)
|
N/A
|
| population_and_cohorts.pageNumber | ALWAYS | Internal — auto-populated |
Captured during primary field extraction
|
— |
Protocol Version
18 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| protocol_version.versionId | ALWAYS | ICH M11 §1 |
Title Page
Cover Page
Version History
Header
|
Version ID
Version
Ver.
Protocol Version
Version No.
+1
|
| protocol_version.versionNumber | ALWAYS | ICH M11 §1; SPIRIT 2013 Item 3 |
Title Page
Synopsis
Cover Page
Version History
Header
|
Version
v1.0
Version number
Protocol Version
Version No.
+1
|
| protocol_version.amendmentNumber | COND_PROTECTED | ICH M11 §1; SPIRIT 2013 Item 25 |
Title Page
Synopsis
Amendment Header
Cover Page
Version History
|
Amendment
Amendment number
Amendment No.
Protocol Amendment
Original
+1
|
| protocol_version.approvalDate | COND_PROTECTED | ICH M11 §1; SPIRIT 2013 Item 3 |
Title Page
Synopsis
Signature Page
Cover Page
Approval Docs
|
Approval date
Date approved
Approved
Approval Date
IRB Approval
+3
|
| protocol_version.effectiveDate | ALWAYS | ICH M11 §1 |
Title Page
Synopsis
Cover Page
Version History
Adjacent to Version
|
Effective date
Implementation date
Effective
Effective Date
Version Date
+3
|
| protocol_version.reasonForAmendment | CONDITIONAL | ICH M11 §1; SPIRIT 2013 Item 25; ICH E6(R2) §4.5.2 |
Title Page
Synopsis
Amendment Summary
Cover Page
Change History
|
Amendment rationale
Rationale
Reason for amendment
Reason for Amendment
Summary of Changes
+2
|
| protocol_version.sectionsModified | CONDITIONAL | ICH M11 §1; SPIRIT 2013 Item 25 |
Title Page
Synopsis
Amendment Summary
Change Log
TOC markers
|
Modified sections
Changes
Sections modified
Sections Modified
Sections Changed
+2
|
| protocol_version.substantialChange | CONDITIONAL | EU CT Regulation Article 15; ICH E6(R2) §4.5.2 |
Title Page
Synopsis
Amendment Classification
Regulatory
Cover
|
Substantial amendment
Substantial
Non-substantial
Substantial Change
Major
+1
|
| protocol_version.regulatoryStatus | COND_PROTECTED | ICH M11 §1 |
Title Page
Cover Page
Approval Docs
Version History
|
Pending
Under review
Approved
Status
Approval Status
+5
|
| protocol_version.subjectsEnrolled | CONDITIONAL | ICH M11 §1 |
Title Page
Synopsis
Amendment Summary
Enrollment Status
Change Justification
|
Subjects enrolled
At time of amendment
Enrolled
Subjects Enrolled
Enrollment
+1
|
| protocol_version.notes | OPTIONAL | Internal |
Title Page
N/A — Internal documentation
|
— |
| protocol_version.evidencePageNumbers | ALWAYS | Internal — extraction provenance |
Title page
Amendment history table
|
— |
| protocol_version.isLatestByOrdering | SYSTEM | Internal — system-computed | — | — |
| protocol_version.lifecycleStatus | COND_PROTECTED | ICH M11 §1; ICH E6(R2) §4.5 |
Title page
Version history table
Status field
|
status
draft
final
approved
|
| protocol_version.orderingMethod | SYSTEM | Internal — system configuration | — | — |
| protocol_version.versionIdentifier | ALWAYS | ICH M11 §1; SPIRIT 2013 Item 3 |
Title page
Header
Amendment table
|
Version
Protocol Version
Amendment
|
| protocol_version.versionNotes | COND_PROTECTED | ICH E6(R2) §4.5 |
Amendment history
Version notes
|
— |
| protocol_version.versionNumberRaw | ALWAYS | Internal — extraction provenance |
Title page
Header
|
— |
Safety Monitoring
12 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| safety_monitoring.monitoringId | SYSTEM | ICH M11 §8 |
Safety Monitoring
N/A (System-Generated)
|
— |
| safety_monitoring.type | ALWAYS | ICH M11 §8; SPIRIT 2013 Item 22 |
Safety Monitoring
Safety Monitoring section
Adverse Events section
Study Procedures
|
AE
DSMB
SUSAR
Safety review
Type
+8
|
| safety_monitoring.description | ALWAYS | ICH M11 §8; SPIRIT 2013 Item 22 |
Safety Monitoring
Complete monitoring description
Methodology narrative
Safety assessment details
|
Safety monitoring
SAE reporting
DSMB
Adverse event
monitoring
+5
|
| safety_monitoring.schedule | ALWAYS | ICH M11 §8; SPIRIT 2013 Item 22 |
Safety Monitoring
Schedule specification in monitoring table
Frequency description
Assessment timing
|
Frequency
Meeting frequency
Review schedule
Schedule
daily
+7
|
| safety_monitoring.reportingWindow | ALWAYS | ICH M11 §8.3; ICH E6(R2) §4.11.1; ICH E2A |
Safety Monitoring
Reporting requirements section
Safety reporting
SAE procedures
|
Expedited
24 hours
Reporting window
Within
Initial report
+6
|
| safety_monitoring.escalationCriteria | ALWAYS | ICH M11 §8; SPIRIT 2013 Item 11b |
Safety Monitoring
Study Design
Escalation criteria section
Dose modification criteria
Stopping rules
|
Escalation
Safety boundary
Stopping rule
Dose-limiting
DLT
+7
|
| safety_monitoring.gradingScale | ALWAYS | ICH M11 §8; ICH E6(R2) §4.11 |
Safety Monitoring
Grading criteria section
AE grading
Safety monitoring methodology
|
Severity scale
CTCAE
Grade 1-5
NCI-CTCAE
Grading
+6
|
| safety_monitoring.action | ALWAYS | ICH M11 §8; ICH E6(R2) §4.11 |
Safety Monitoring
Action/response section
Management procedures
Dose modification actions
|
Discontinuation
Action
Dose modification
Dose hold
Treatment interruption
+7
|
| safety_monitoring.endpointParameter | ALWAYS | ICH M11 §8 |
Safety Monitoring
Safety Monitoring parameter list
Laboratory section
Assessment details
|
Neutrophils
AST
Parameter
Endpoint
Hy's Law
+8
|
| safety_monitoring.encounterId | ALWAYS | ICH M11 §8 |
Schedule of Activities
Safety Monitoring
Monitoring schedule specification
SOA column headers
Visit descriptions
|
at all visits
Visit
Encounter
Day
Week
+2
|
| safety_monitoring.assumptionNotes | OPTIONAL | Internal |
N/A — Agent-generated documentation
not extracted from protocol
|
— |
| safety_monitoring.pageNumber | ALWAYS | Internal — auto-populated |
Auto-capture during extraction
record page(s) where monitoring defined
|
Page numbers auto-captured during extraction process
|
Soa Activity
12 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| soa_activity.activityId | SYSTEM | ICH M11 §5 |
Schedule of Activities
N/A (System-generated)
|
— |
| soa_activity.activityProcedure | ALWAYS | ICH M11 §6; SPIRIT 2013 Item 13 |
SOA table
row labels
procedure names
|
procedure
assessment
test
sample
|
| soa_activity.activityCategory | ALWAYS | ICH M11 §6 (Schedule of Activities); CDISC SDTM TA/TV |
SOA table
Schedule of Activities
row group header
|
category
group
section header
|
| soa_activity.categorySequence | SYSTEM | Internal — system-generated ordering |
SOA table
category order
|
— |
| soa_activity.description | CONDITIONAL | ICH M11 §5 |
Schedule of Activities
Study Procedures
Description column
Notes column
|
Description
Notes
Details
|
| soa_activity.visitHeaderText | CONDITIONAL | ICH M11 §6; SPIRIT 2013 Figure |
SOA table column headers
visit names
|
— |
| soa_activity.visitScheduleText | ALWAYS | ICH M11 §6; SPIRIT 2013 Figure |
SOA table cells
X marks
checkmarks
|
— |
| soa_activity.footnoteMarkersUsed | CONDITIONAL | ICH M11 §6; SPIRIT 2013 Figure |
SOA table cells
superscript markers
|
footnote
superscript
*
†
|
| soa_activity.footnoteText | CONDITIONAL | ICH M11 §6 |
SOA table footer
footnotes section
|
footnote
note
|
| soa_activity.assumptionNotes | CONDITIONAL | Internal — extraction provenance |
SOA table footnotes
protocol text
|
— |
| soa_activity.pageNumber | ALWAYS | Internal — auto-populated |
SOA table page(s)
|
p.
pp.
Page
|
| soa_activity.pageSection | CONDITIONAL | Internal — auto-populated |
SOA section title
|
Schedule
SOE
Table
|
Soa Visit
7 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| soa_visit.visitId | SYSTEM | ICH M11 §5 |
Schedule of Activities
N/A (System-generated)
|
— |
| soa_visit.visitName | ALWAYS | ICH M11 §5; SPIRIT 2013 Item 13 |
Schedule of Activities
SOA column headers
Visit Schedule
Study Design
|
EOT
Visit
Week
Screening
Day
+5
|
| soa_visit.visitOrder | SYSTEM | Internal |
Schedule of Activities
SOA column headers (L
R order)
|
Column position (left-to-right)
|
| soa_visit.contextType | CONDITIONAL | ICH M11 §5; SPIRIT 2013 Item 13 |
Schedule of Activities
SOA section headers
Column groupings
|
Day
Event
Week
Month
Period
+4
|
| soa_visit.contextValue | CONDITIONAL | ICH M11 §5 |
Schedule of Activities
Context header
Grouping labels
|
Numbers/letters following context type
|
| soa_visit.pageNumber | ALWAYS | Internal — auto-populated |
SOA table page(s)
Visit Schedule section
|
p.
pp.
Page
|
| soa_visit.pageSection | CONDITIONAL | Internal — auto-populated |
SOA section title
Table caption
|
Schedule of Events
SOE
Schedule of Activities
|
Study Cells
13 fields
▼| Field | Extraction Mode | Standard Ref | Search Zones | Keywords (sample) |
|---|---|---|---|---|
| study_cells.cellId | SYSTEM | CDISC SDTM TA; ICH M11 §4.2 |
Study Design
N/A (System fallback)
|
Cell ID
|
| study_cells.cellName | ALWAYS | CDISC SDTM TA; ICH M11 §4.2 |
Study Design
Arms
SOE 'Study Cells/Schema'
Schematic figures
|
Arm-epoch
Cell
study cell
cell
schema
+1
|
| study_cells.descriptionText | ALWAYS | CDISC SDTM TA; ICH M11 §4.2 |
Study Design
Arms
Cell narrative in table/footnote
|
Cell description
Treatment assignment
includes
consists of
will be performed
|
| study_cells.purposeText | CONDITIONAL | CDISC SDTM TA |
Study Design
Cell header lines ('Purpose'
'Objective')
|
Purpose
Cell purpose
purpose
to
in order to
|
| study_cells.armRefsText | ALWAYS | CDISC SDTM TA |
Study Design
Arms
SOE arm columns/rows
Randomization section
|
Treatment arm
Arm
Group
All arms
Cohort
|
| study_cells.epochRefsText | ALWAYS | CDISC SDTM TA |
Study Design
SOE epoch bands
Study Duration/Periods
|
Period
Epoch
Screening
Treatment
Follow-up
|
| study_cells.interventionRefsText | CONDITIONAL | CDISC SDTM TA; ICH M11 §4.3 |
Study Design
Interventions
Treatments/Interventions section
SOE treatment row
|
Treatment
Intervention
Drug
treatment
vaccine
+1
|
| study_cells.activityRefsText | CONDITIONAL | ICH M11 §5 |
Schedule of Activities
Study Design
SOE procedures/assessments
Schedule footnotes
|
Assessment
Activity
assessments
procedures
activities
+1
|
| study_cells.durationText | CONDITIONAL | ICH M11 §4.2; CDISC SDTM TA |
Study Design
SOE headers/footnotes with day ranges
|
Duration
Cycles
Months
Weeks
Day
+4
|
| study_cells.transitionRuleText | CONDITIONAL | CDISC SDTM TE; ICH M11 §4.2 |
Study Design
SOE footnotes + visit progression text
|
Discontinue
Complete
Criteria
Transition
transition
+3
|
| study_cells.assumptionNotes | OPTIONAL | Internal |
N/A (documentation)
|
assumed
not explicit
kept as text
|
| study_cells.pageNumber | ALWAYS | Internal — auto-populated |
Captured during extraction
|
p.
pp.
|
| study_cells.pageSection | ALWAYS | Internal — auto-populated |
SOE section title
Table caption
|
SOE
Schedule
Study Schema
Activities
|
🧭 Cortex Tier Policy
cortex_tier_policy_3_0.yaml
Domain Processing Order
▼| # | Domain | Phase | Depends On | Must Complete Before |
|---|---|---|---|---|
| 1 | study_design_and_definition | Phase 1 | — | study_design, arms, epochs, interventions |
| 2 | arms | Phase 2 | study_design_and_definition.numberOfArms, study_design_and_definition.interventionModel | study_cells, interventions |
| 3 | epochs | Phase 2 | study_design_and_definition | encounters_and_visits, study_cells |
| 4 | crossover_design | Phase 2 | study_design_and_definition.interventionModel | study_cells |
| 5 | interventions | Phase 2 | arms | study_cells, safety_monitoring |
| 6 | population_and_cohorts | Phase 2 | study_design_and_definition | eligibility_criteria |
| 7 | eligibility_criteria | Phase 3 | population_and_cohorts | — |
| 8 | encounters_and_visits | Phase 3 | epochs | soa_visit, soa_activity |
| 9 | activities | Phase 3 | — | soa_activity, objectives_and_endpoints |
| 10 | soa_visit | Phase 4 | encounters_and_visits | study_cells |
| 11 | soa_activity | Phase 4 | activities, soa_visit | — |
| 12 | study_cells | Phase 4 | arms, epochs, interventions | — |
| 13 | objectives_and_endpoints | Phase 5 | activities, encounters_and_visits | — |
| 14 | safety_monitoring | Phase 5 | encounters_and_visits, interventions | — |
| 15 | protocol_version | Phase 1 | — | — |
Per-Field Tier Routing
239 fields ▼| Field | Allowed Tiers | T3 Self-Critique | T4 on Disagreement |
|---|---|---|---|
| study_design_and_definition.id | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.name | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.protocolVersion | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.protocolDate | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.sponsor | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.regulatoryIdentifier | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.trialRegistryIdentifier | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.usdmVersion | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.rationale | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.studyType | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.trialType | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.phaseCode | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.studyPhase | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.interventionModel | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.interventionType | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.allocation | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.allocationRatio | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.randomizationMethod | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.stratificationFactors | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.blindingSchema | tier1, tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.studyTypeMasking | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.controlType | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.numberOfArms | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.studyArms | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.observationalModel | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.targetEnrollment | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.populationAgeRange | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.therapeuticAreas | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.studyDuration | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.participantDuration | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.screeningPeriod | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.treatmentPeriod | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.followUpPeriod | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.primaryCompletionType | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.dataMonitoringCommittee | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.doseEscalationSchema | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.hyperglycemiaRescueCriteria | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.interimAnalysis | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.maskingRoles | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.primaryEstimand | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.rescueTherapy | tier3, tier4 | ✓ | ✓ |
| study_design_and_definition.screeningTarget | tier3, tier4 | ✓ | ✓ |
| arms.armId | tier3, tier4 | ✓ | ✓ |
| arms.armName | tier3, tier4 | ✓ | ✓ |
| arms.armType | tier3, tier4 | ✓ | ✓ |
| arms.description | tier3, tier4 | ✓ | ✓ |
| arms.interventions | tier3, tier4 | ✓ | ✓ |
| arms.sampleSize | tier3, tier4 | ✓ | ✓ |
| arms.treatmentDuration | tier3, tier4 | ✓ | ✓ |
| arms.sequenceCrossover | tier3, tier4 | ✓ | ✓ |
| arms.notes | tier3, tier4 | ✓ | ✓ |
| arms.pageNumber | tier3, tier4 | ✓ | ✓ |
| arms.pageSection | tier3, tier4 | ✓ | ✓ |
| activities.activityId | tier3, tier4 | ✓ | ✓ |
| activities.activityName | tier3, tier4 | ✓ | ✓ |
| activities.activityLabel | tier3, tier4 | ✓ | ✓ |
| activities.description | tier3, tier4 | ✓ | ✓ |
| activities.dataType | tier3, tier4 | ✓ | ✓ |
| activities.collectionMethod | tier3, tier4 | ✓ | ✓ |
| activities.specimenType | tier3, tier4 | ✓ | ✓ |
| activities.frequency | tier3, tier4 | ✓ | ✓ |
| activities.units | tier3, tier4 | ✓ | ✓ |
| activities.normalRange | tier3, tier4 | ✓ | ✓ |
| activities.assumption | tier3, tier4 | ✓ | ✓ |
| activities.notes | tier3, tier4 | ✓ | ✓ |
| activities.pageNumber | tier3, tier4 | ✓ | ✓ |
| activities.pageSection | tier3, tier4 | ✓ | ✓ |
| activities.activityCategory | tier3, tier4 | ✓ | ✓ |
| activities.activityProcedure | tier3, tier4 | ✓ | ✓ |
| activities.assumptionNotes | tier3, tier4 | ✓ | ✓ |
| activities.categorySequence | tier3, tier4 | ✓ | ✓ |
| activities.footnoteMarkersUsed | tier3, tier4 | ✓ | ✓ |
| activities.footnoteText | tier3, tier4 | ✓ | ✓ |
| activities.visitHeaderText | tier3, tier4 | ✓ | ✓ |
| activities.visitScheduleText | tier3, tier4 | ✓ | ✓ |
| crossover_design.sequenceId | tier3, tier4 | ✓ | ✓ |
| crossover_design.sequenceName | tier3, tier4 | ✓ | ✓ |
| crossover_design.sequencePattern | tier3, tier4 | ✓ | ✓ |
| crossover_design.description | tier3, tier4 | ✓ | ✓ |
| crossover_design.numberOfPeriods | tier3, tier4 | ✓ | ✓ |
| crossover_design.periodInterventions | tier3, tier4 | ✓ | ✓ |
| crossover_design.washoutDuration | tier3, tier4 | ✓ | ✓ |
| crossover_design.randomizationRatio | tier3, tier4 | ✓ | ✓ |
| crossover_design.blockSize | tier3, tier4 | ✓ | ✓ |
| crossover_design.balancingFactor | tier3, tier4 | ✓ | ✓ |
| crossover_design.expectedN | tier3, tier4 | ✓ | ✓ |
| crossover_design.pageNumber | tier3, tier4 | ✓ | ✓ |
| crossover_design.pageSection | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.criterionId | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.category | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.text | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.identifier | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.structured | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.operator | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.value | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.units | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.timeframe | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.negationFlag | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.assumption | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.notes | tier3, tier4 | ✓ | ✓ |
| eligibility_criteria.pageNumber | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.encId | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.encounterName | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.visitLabel | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.purpose | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.epochReference | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.studyDay | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.windowMinus | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.windowPlus | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.duration | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.mode | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.location | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.required | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.overnightStay | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.labsRequired | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.activitiesPerformed | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.pageNumber | tier3, tier4 | ✓ | ✓ |
| encounters_and_visits.pageSection | tier3, tier4 | ✓ | ✓ |
| epochs.epochId | tier3, tier4 | ✓ | ✓ |
| epochs.epochName | tier3, tier4 | ✓ | ✓ |
| epochs.epochType | tier3, tier4 | ✓ | ✓ |
| epochs.purpose | tier3, tier4 | ✓ | ✓ |
| epochs.duration | tier3, tier4 | ✓ | ✓ |
| epochs.sequenceInStudy | tier3, tier4 | ✓ | ✓ |
| epochs.transitionRule | tier3, tier4 | ✓ | ✓ |
| epochs.notes | tier3, tier4 | ✓ | ✓ |
| epochs.pageNumber | tier3, tier4 | ✓ | ✓ |
| epochs.pageSection | tier3, tier4 | ✓ | ✓ |
| interventions.interventionId | tier3, tier4 | ✓ | ✓ |
| interventions.name | tier3, tier4 | ✓ | ✓ |
| interventions.label | tier3, tier4 | ✓ | ✓ |
| interventions.type | tier3, tier4 | ✓ | ✓ |
| interventions.description | tier3, tier4 | ✓ | ✓ |
| interventions.dose | tier3, tier4 | ✓ | ✓ |
| interventions.doseUnits | tier3, tier4 | ✓ | ✓ |
| interventions.frequency | tier3, tier4 | ✓ | ✓ |
| interventions.route | tier3, tier4 | ✓ | ✓ |
| interventions.formulation | tier3, tier4 | ✓ | ✓ |
| interventions.duration | tier3, tier4 | ✓ | ✓ |
| interventions.crossoverPeriod | tier3, tier4 | ✓ | ✓ |
| interventions.manufacturer | tier3, tier4 | ✓ | ✓ |
| interventions.indNumber | tier3, tier4 | ✓ | ✓ |
| interventions.assumptionNotes | tier3, tier4 | ✓ | ✓ |
| interventions.pageNumber | tier3, tier4 | ✓ | ✓ |
| interventions.pageSection | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.oeId | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.name | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.recordType | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.level | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.description | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.purpose | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.measurement | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.assessmentMethod | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.timepoint | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.windowLow | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.windowHigh | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.units | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.statisticalMethod | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.activityRefsText | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.encounterRefsText | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.assumptionNotes | tier3, tier4 | ✓ | ✓ |
| objectives_and_endpoints.pageNumber | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.populationId | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.populationName | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.populationCategory | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.description | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.plannedN | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.plannednType | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.actualN | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.inclusionCriteriaIDs | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.exclusionCriteriaIDs | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.criteriaReferenceMode | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.linkedArmIDs | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.assumption | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.notes | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.pageNumber | tier3, tier4 | ✓ | ✓ |
| population_and_cohorts.plannedN_type | tier3, tier4 | ✓ | ✓ |
| protocol_version.versionId | tier3, tier4 | ✓ | ✓ |
| protocol_version.versionNumber | tier3, tier4 | ✓ | ✓ |
| protocol_version.amendmentNumber | tier3, tier4 | ✓ | ✓ |
| protocol_version.approvalDate | tier3, tier4 | ✓ | ✓ |
| protocol_version.effectiveDate | tier3, tier4 | ✓ | ✓ |
| protocol_version.reasonForAmendment | tier3, tier4 | ✓ | ✓ |
| protocol_version.sectionsModified | tier3, tier4 | ✓ | ✓ |
| protocol_version.substantialChange | tier3, tier4 | ✓ | ✓ |
| protocol_version.regulatoryStatus | tier3, tier4 | ✓ | ✓ |
| protocol_version.subjectsEnrolled | tier3, tier4 | ✓ | ✓ |
| protocol_version.notes | tier3, tier4 | ✓ | ✓ |
| protocol_version.evidencePageNumbers | tier3, tier4 | ✓ | ✓ |
| protocol_version.isLatestByOrdering | tier3, tier4 | ✓ | ✓ |
| protocol_version.lifecycleStatus | tier3, tier4 | ✓ | ✓ |
| protocol_version.orderingMethod | tier3, tier4 | ✓ | ✓ |
| protocol_version.versionIdentifier | tier3, tier4 | ✓ | ✓ |
| protocol_version.versionNotes | tier3, tier4 | ✓ | ✓ |
| protocol_version.versionNumberRaw | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.monitoringId | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.type | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.description | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.schedule | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.reportingWindow | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.escalationCriteria | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.gradingScale | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.action | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.endpointParameter | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.encounterId | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.assumptionNotes | tier3, tier4 | ✓ | ✓ |
| safety_monitoring.pageNumber | tier3, tier4 | ✓ | ✓ |
| soa_activity.activityId | tier3, tier4 | ✓ | ✓ |
| soa_activity.activityProcedure | tier3, tier4 | ✓ | ✓ |
| soa_activity.activityCategory | tier3, tier4 | ✓ | ✓ |
| soa_activity.categorySequence | tier3, tier4 | ✓ | ✓ |
| soa_activity.description | tier3, tier4 | ✓ | ✓ |
| soa_activity.visitHeaderText | tier3, tier4 | ✓ | ✓ |
| soa_activity.visitScheduleText | tier3, tier4 | ✓ | ✓ |
| soa_activity.footnoteMarkersUsed | tier3, tier4 | ✓ | ✓ |
| soa_activity.footnoteText | tier3, tier4 | ✓ | ✓ |
| soa_activity.assumptionNotes | tier3, tier4 | ✓ | ✓ |
| soa_activity.pageNumber | tier3, tier4 | ✓ | ✓ |
| soa_activity.pageSection | tier3, tier4 | ✓ | ✓ |
| soa_visit.visitId | tier3, tier4 | ✓ | ✓ |
| soa_visit.visitName | tier3, tier4 | ✓ | ✓ |
| soa_visit.visitOrder | tier3, tier4 | ✓ | ✓ |
| soa_visit.contextType | tier3, tier4 | ✓ | ✓ |
| soa_visit.contextValue | tier3, tier4 | ✓ | ✓ |
| soa_visit.pageNumber | tier3, tier4 | ✓ | ✓ |
| soa_visit.pageSection | tier3, tier4 | ✓ | ✓ |
| study_cells.cellId | tier3, tier4 | ✓ | ✓ |
| study_cells.cellName | tier3, tier4 | ✓ | ✓ |
| study_cells.descriptionText | tier3, tier4 | ✓ | ✓ |
| study_cells.purposeText | tier3, tier4 | ✓ | ✓ |
| study_cells.armRefsText | tier3, tier4 | ✓ | ✓ |
| study_cells.epochRefsText | tier3, tier4 | ✓ | ✓ |
| study_cells.interventionRefsText | tier3, tier4 | ✓ | ✓ |
| study_cells.activityRefsText | tier3, tier4 | ✓ | ✓ |
| study_cells.durationText | tier3, tier4 | ✓ | ✓ |
| study_cells.transitionRuleText | tier3, tier4 | ✓ | ✓ |
| study_cells.assumptionNotes | tier3, tier4 | ✓ | ✓ |
| study_cells.pageNumber | tier3, tier4 | ✓ | ✓ |
| study_cells.pageSection | tier3, tier4 | ✓ | ✓ |
⚙️ Agent Configurations
agent_configs_2_1.yaml
Design Agent
Protocol Extraction v2_cascade ▼Models
active
['ollama-ministral3-14b']
optional
[]
tier4_model
ollama-qwen35
tier2_model_dir
models/cortex_tier2/current
tier2_cross_encoder
cross-encoder/ms-marco-MiniLM-L-12-v2
tier2_allow_remote_download
False
Tier Cascade
API Budgets
tier3 / max_api_calls_per_run
60
tier3 / max_input_tokens_per_run
500000
tier3 / max_concurrent_calls
6
tier3 / timeout_per_call_s
180
tier3 / fallback_attempts
1
tier4 / max_api_calls_per_run
20
tier4 / max_input_tokens_per_run
200000
tier4 / max_cost_per_run_usd
0.5
tier4 / max_concurrent_calls
2
tier4 / timeout_per_call_s
180
tier4 / fallback_attempts
1
tier4 / reasoning_effort
none
total / max_api_calls_per_job
60
total / max_wall_clock_s
300
total / max_total_cost_usd
2.0
Confidence Thresholds
t2_applicability
0.45
t2_line_score
0.3
t2_field_examples
8
t3
0.5
t4
0.4
ai_fallback
0.7
conflict_discount
0.15
Batching
t3_batch_size
5
t3_parallel_groups
3
t3_parallel_models
4
t4_batch_size
6
t4_parallel_batches
2
General Settings
temperature
0.1
require_evidence
True
Schema Agent
Normalization ▼General Settings
target_model
USDM v4.0
Mapping Agent
SDTM Mapping ▼General Settings
input
Validated, approved USDM v4.0 JSON (from Validator Agent)
Validator Agent
Cross-Agent Validation ▼General Settings
input
Schema Agent USDM v4.0 JSON with CT mappings and confidence scores
strict_blocking
True
Amendment Agent
Diff Detection ▼General Settings
input
New protocol version (PDF/DOCX) + previous version's USDM JSON
✅ Validation Rules
validation_rules_3_0.yaml
Field Validation Rules
239 fields ▼| Field | Reviewer Triggers | Blocking Conditions | System Fill | Allowed Values Enforcement |
|---|---|---|---|---|
| study_design_and_definition.id | Unexpected location, unusual format, low confidence | — | — | — |
| study_design_and_definition.name | Very short title (<30 chars), assembled from multiple sources, found only in header | — | — | — |
| study_design_and_definition.protocolVersion | Ambiguous version. Multiple candidates. Historical vs current unclear. | — | — | — |
| study_design_and_definition.protocolDate | Estimated date. Partial date. Multiple candidates. No clear version association. | — | CALC-DATE: Date Normalization | — |
| study_design_and_definition.sponsor | Uncertain sponsor identity. Possible CRO confusion. No title page presence. | — | — | — |
| study_design_and_definition.regulatoryIdentifier | V-096: Both regulatory and registry IDs missing. Invalid ID format. | — | — | — |
| study_design_and_definition.trialRegistryIdentifier | V-096: Both regulatory and registry IDs missing. Invalid format. | — | — | — |
| study_design_and_definition.usdmVersion | N/A — system value always valid. | — | — | — |
| study_design_and_definition.rationale | No rationale found. Very brief (<200 chars). Missing key elements. Literature only. | — | — | — |
| study_design_and_definition.studyType | V-050: Derived studyType inconsistent. Multiple components missing. | CONFLICT (signals for multiple types), inferred from weak signals, no explicit statement | — | CALC-STUDYTYPE: Study Type Derivation | ✓ |
| study_design_and_definition.trialType | V-061: trialType for observational (info only). V-090: trialType = interventionType (confused). | — | — | ✓ |
| study_design_and_definition.phaseCode | Conflicting explicit phases across sections OR phase only in low-priority sections OR any inferred-without-token attempt | — | CALC-025: Combined Phase Detail | ✓ |
| study_design_and_definition.studyPhase | Phase derivation uncertain. phaseCode was inferred or unclear. | — | CALC-025: Phase Derivation | — |
| study_design_and_definition.interventionModel | V-030: Both interventionModel and observationalModel NOT_NULL. V-033: SINGLE_GROUP but numberOfArms ≠ 1. | — | — | ✓ |
| study_design_and_definition.interventionType | V-062: interventionType for OBSERVATIONAL. Multiple unclear types. | — | — | ✓ |
| study_design_and_definition.allocation | MIXED allocation, inferred from structure, no explicit statement | — | CALC-024: MIXED Allocation Detail | ✓ |
| study_design_and_definition.allocationRatio | V-044: Ratio parts ≠ numberOfArms. V-045: Ratio specified for non-randomized study. | — | CALC-010: Ratio Parse CALC-011: Ratio-Arm Validation | — |
| study_design_and_definition.randomizationMethod | V-042: stratificationFactors present but method not STRATIFIED. V-043: STRATIFIED but no factors. UNKNOWN for randomized study. | — | — | — |
| study_design_and_definition.stratificationFactors | V-042: Factors present without STRATIFIED method. V-043: STRATIFIED without factors. V-046: Factors for non-randomized. | — | — | — |
| study_design_and_definition.blindingSchema | V-027: blindingSchema conflicts with studyTypeMasking. Blinded study with no mechanism found. | — | CALC-012: Masking Coherence CALC-013: Allocation-Blind Check CALC-014: Arm-Blind Check | ✓ |
| study_design_and_definition.studyTypeMasking | UNKNOWN masking. Conflicting statements. Single-arm with blinding claim. Observational with masking. | — | — | — |
| study_design_and_definition.controlType | V-063: controlType for single-arm. Type unclear. | — | — | ✓ |
| study_design_and_definition.numberOfArms | V-073: numberOfArms < 1. V-074: numberOfArms > 20. Unresolved discrepancy between sources. | — | CALC-006: Explicit Count CALC-007: Ratio-based Count CALC-008: Enumeration Count CALC-008B: Conflict Resolution | — |
| study_design_and_definition.studyArms | V-051: Arm count ≠ numberOfArms. Incomplete arm descriptions. | — | CALC-015: Arm Count Validation | — |
| study_design_and_definition.observationalModel | V-030: observationalModel for INTERVENTIONAL. Model unclear. | — | — | ✓ |
| study_design_and_definition.targetEnrollment | V-075: enrollment < 1. V-076: enrollment > 100,000. Sum ≠ arm allocations. | — | CALC-009: Enrollment Sum CALC-009B: Range Handling | — |
| study_design_and_definition.populationAgeRange | V-070: minAge < 0. V-071: maxAge > 120. V-072: minAge ≥ maxAge. Conflicting age statements. | — | CALC-021: Age Range Parse CALC-022: Pediatric Flag CALC-023: Age Validation | — |
| study_design_and_definition.therapeuticAreas | No disease identified. Drug name as disease. Non-standard terminology. Single generic term. | — | — | — |
| study_design_and_definition.studyDuration | Duration conflict with participant duration. Implausible duration. Conversion uncertainty. | — | CALC-001: Duration Normalization | — |
| study_design_and_definition.participantDuration | V-080: Derived ≠ stated ±7 days. V-081: participantDuration > studyDuration. Missing components. | — | CALC-003: Component Sum CALC-004: Explicit vs Derived CALC-005: Coherence Check CALC-020: ISO Conversion | — |
| study_design_and_definition.screeningPeriod | Screening duration inconsistent with visit schedule. Very long screening (>56 days). | — | CALC-001: Duration Normalization CALC-002: Day-Range Conversion | — |
| study_design_and_definition.treatmentPeriod | Treatment duration inconsistent with study design. Very short or very long. | — | CALC-001: Duration Normalization CALC-002: Cycle Calculation | — |
| study_design_and_definition.followUpPeriod | Follow-up longer than study duration. P0D for study requiring safety monitoring. | — | CALC-001: Duration Normalization CALC-003: Post-Treatment Calculation | — |
| study_design_and_definition.primaryCompletionType | Completion unclear or inconsistent with endpoints. | — | — | — |
| study_design_and_definition.dataMonitoringCommittee | Value not in allowed set (YES/NO/NOT_APPLICABLE). Ambiguous DMC reference. | — | — | ✓ |
| study_design_and_definition.doseEscalationSchema | Escalation only described in figure (no text). Conflicting escalation schedules across sections. | — | — | — |
| study_design_and_definition.hyperglycemiaRescueCriteria | Rescue criteria only partially stated. Thresholds ambiguous or inconsistent across sections. | — | — | — |
| study_design_and_definition.interimAnalysis | Interim analysis described but decision rules unclear. Ad hoc vs pre-specified ambiguous. | — | — | — |
| study_design_and_definition.maskingRoles | Discrepancy: blindingSchema level vs number of masked roles listed. Advisory blinding unclear. | — | — | ✓ |
| study_design_and_definition.primaryEstimand | Estimand components incomplete. Pre-E9(R1) terminology requiring interpretation. Multiple estimands with unclear primary. | — | — | — |
| study_design_and_definition.rescueTherapy | Rescue criteria unclear. Rescue medications listed without trigger thresholds. | — | — | — |
| study_design_and_definition.screeningTarget | V-077: screeningTarget < targetEnrollment (unusual). Screening number confused with enrollment. | — | — | — |
| arms.armId | V-ARM-001: Pattern mismatch; V-ARM-002: Duplicate armId | — | CALC-ARM-001 (ArmID Fallback) | — |
| arms.armName | V-ARM-003: armName IS NULL or EMPTY | — | — | — |
| arms.armType | armType inferred (not stated) | — | — | ✓ |
| arms.description | Description is global or NULL | — | — | — |
| arms.interventions | Interventions invented | — | — | — |
| arms.sampleSize | sampleSize uses total N | — | — | — |
| arms.treatmentDuration | Duration uses epoch duration | — | — | — |
| arms.sequenceCrossover | Sequence invented | — | — | — |
| arms.notes | Assumptions in notes | — | — | — |
| arms.pageNumber | W-ARM-010: pageNumber NULL | — | — | — |
| arms.pageSection | pageSection NULL | — | — | — |
| activities.activityId | Duplicate IDs / bad pattern | — | CALC-ACT-001 | — |
| activities.activityName | activityName NULL | — | — | — |
| activities.activityLabel | — | — | — | — |
| activities.description | description empty | — | — | — |
| activities.dataType | — | — | — | — |
| activities.collectionMethod | — | — | — | — |
| activities.specimenType | — | — | — | — |
| activities.frequency | — | — | — | — |
| activities.units | — | — | — | — |
| activities.normalRange | — | — | — | — |
| activities.assumption | — | — | — | — |
| activities.notes | — | — | — | — |
| activities.pageNumber | pageNumber NULL | — | — | — |
| activities.pageSection | pageSection NULL | — | — | — |
| activities.activityCategory | activityCategory IS NULL | Ambiguous grouping, mixed categories in one section | — | — | — |
| activities.activityProcedure | Ambiguous procedure name | V-SOA-002: activityProcedure IS NULL or EMPTY | — | — |
| activities.assumptionNotes | Significant assumption made | — | — | — |
| activities.categorySequence | N/A | — | CALC-SOA-CAT-SEQ | — |
| activities.footnoteMarkersUsed | W-SOA-020: EMPTY but visitScheduleText contains superscripts | Markers found but no corresponding footnote text | — | — | — |
| activities.footnoteText | W-SOA-040: footnoteMarkersUsed NOT EMPTY but footnoteText IS NULL | Marker present but no matching footnote text | — | — | — |
| activities.visitHeaderText | Merged column headers, ambiguous visit labels | V-SOA-003: visitHeaderText IS NULL or EMPTY | — | — |
| activities.visitScheduleText | Conditional text requires interpretation | V-SOA-004: visitScheduleText IS NULL or EMPTY | — | — |
| crossover_design.sequenceId | V-CROSS-001: Pattern mismatch; V-CROSS-002: Duplicate | — | CALC-CROSS-001 (SequenceID Fallback) | — |
| crossover_design.sequenceName | V-CROSS-003: Name is NULL or empty | — | — | — |
| crossover_design.sequencePattern | W-CROSS-013: Pattern is NULL | — | — | — |
| crossover_design.description | — | — | — | — |
| crossover_design.numberOfPeriods | — | — | — | — |
| crossover_design.periodInterventions | W-CROSS-012: NULL | — | — | — |
| crossover_design.washoutDuration | W-CROSS-014: NULL | — | — | — |
| crossover_design.randomizationRatio | — | — | — | — |
| crossover_design.blockSize | — | — | — | — |
| crossover_design.balancingFactor | — | — | — | — |
| crossover_design.expectedN | — | — | — | — |
| crossover_design.pageNumber | W-CROSS-010: NULL | — | — | — |
| crossover_design.pageSection | W-CROSS-011: NULL | — | — | — |
| eligibility_criteria.criterionId | HARD FAIL: Pattern mismatch, duplicate ID, sequence gap, restart at exclusion | HARD FAIL: Pattern mismatch, duplicate ID, sequence gap, restart at exclusion | CALC-EC-001 | — |
| eligibility_criteria.category | HARD FAIL: NULL or invalid value | HARD FAIL: NULL or invalid value | CALC-EC-002 | ✓ |
| eligibility_criteria.text | HARD FAIL: Empty or NULL; WARNING: Paraphrased | HARD FAIL: Empty or NULL; WARNING: Paraphrased | — | — |
| eligibility_criteria.identifier | WARNING: Invented identifier | — | — | — |
| eligibility_criteria.structured | WARNING: Over-structured qualitative criterion | — | — | ✓ |
| eligibility_criteria.operator | HARD FAIL: Invalid code; WARNING: NULL when value present | HARD FAIL: Invalid code; WARNING: NULL when value present | CALC-EC-003 | — |
| eligibility_criteria.value | WARNING: Uncertain value; HARD FAIL if invented | WARNING: Uncertain value; HARD FAIL if invented | — | — |
| eligibility_criteria.units | WARNING: Inferred unit | — | CALC-EC-005 | — |
| eligibility_criteria.timeframe | WARNING: Normalized instead of verbatim | — | CALC-EC-006 | — |
| eligibility_criteria.negationFlag | WARNING: Negation ambiguous | — | CALC-EC-004 | ✓ |
| eligibility_criteria.assumption | WARNING: Missing for ambiguous extraction | — | — | — |
| eligibility_criteria.notes | WARNING: Mixed with assumption | — | — | — |
| eligibility_criteria.pageNumber | WARNING: Missing page number | — | — | — |
| encounters_and_visits.encId | V-ENC-001: Pattern mismatch; V-ENC-002: Duplicate | — | CALC-ENC-001 | — |
| encounters_and_visits.encounterName | V-ENC-003: NULL or EMPTY | — | — | — |
| encounters_and_visits.visitLabel | Label invented | — | — | — |
| encounters_and_visits.purpose | Purpose too generic | — | — | — |
| encounters_and_visits.epochReference | Epoch_NNN used | — | — | — |
| encounters_and_visits.studyDay | W-ENC-011: studyDay NULL | — | — | — |
| encounters_and_visits.windowMinus | W-ENC-012: window NULL | — | — | — |
| encounters_and_visits.windowPlus | W-ENC-012: window NULL | — | — | — |
| encounters_and_visits.duration | Duration estimated | — | — | — |
| encounters_and_visits.mode | Mode assumed | — | — | ✓ |
| encounters_and_visits.location | Location assumed | — | — | — |
| encounters_and_visits.required | Required assumed | Required assumed | — | ✓ |
| encounters_and_visits.overnightStay | Overnight assumed | — | — | ✓ |
| encounters_and_visits.labsRequired | Labs status unclear | — | — | ✓ |
| encounters_and_visits.activitiesPerformed | W-ENC-013: activitiesPerformed NULL | — | — | — |
| encounters_and_visits.pageNumber | W-ENC-010: pageNumber NULL | — | — | — |
| encounters_and_visits.pageSection | pageSection NULL | — | — | — |
| epochs.epochId | V-EPO-001: Pattern mismatch; V-EPO-002: Duplicate epochId | — | CALC-EPOCH-001 (EpochID Fallback) | — |
| epochs.epochName | V-EPO-003: epochName IS NULL or EMPTY | — | — | — |
| epochs.epochType | epochType inferred | — | — | ✓ |
| epochs.purpose | Purpose guessed | — | — | — |
| epochs.duration | W-EPO-011: duration NULL | — | — | — |
| epochs.sequenceInStudy | V-EPO-004: Duplicate or gap (1,2,4 invalid) | — | — | — |
| epochs.transitionRule | Transition invented | — | — | — |
| epochs.notes | Assumptions in notes | — | — | — |
| epochs.pageNumber | W-EPO-010: pageNumber NULL | — | — | — |
| epochs.pageSection | pageSection NULL | — | — | — |
| interventions.interventionId | V-INT-001: Pattern; V-INT-002: Duplicate | — | CALC-INT-001 (InterventionID Fallback) | — |
| interventions.name | V-INT-003: name NULL (blocking) | V-INT-003: name NULL (blocking) | — | — |
| interventions.label | — | — | — | — |
| interventions.type | — | — | — | ✓ |
| interventions.description | W-INT-011: description empty | — | — | — |
| interventions.dose | — | — | — | — |
| interventions.doseUnits | W-INT-010: orphan units (doseUnits without dose) | — | — | — |
| interventions.frequency | — | — | — | — |
| interventions.route | — | — | — | ✓ |
| interventions.formulation | — | — | — | — |
| interventions.duration | — | — | — | — |
| interventions.crossoverPeriod | W-INT-013: crossoverPeriod NOT NULL in non-crossover | — | — | — |
| interventions.manufacturer | — | — | — | — |
| interventions.indNumber | — | — | — | — |
| interventions.assumptionNotes | — | — | — | — |
| interventions.pageNumber | V-INT-010: pageNumber NULL (blocking) | V-INT-010: pageNumber NULL (blocking) | — | — |
| interventions.pageSection | W-INT-012: NULL | — | — | — |
| objectives_and_endpoints.oeId | V-OE-002: oeId pattern mismatch | — | CALC-OE-001 (oeId fallback) | — |
| objectives_and_endpoints.name | V-OE-003: name NULL | — | — | — |
| objectives_and_endpoints.recordType | V-OE-001: recordType NULL/invalid | — | — | ✓ |
| objectives_and_endpoints.level | V-OE-004: level NULL/unclear | — | — | ✓ |
| objectives_and_endpoints.description | W-OE-010: description too short | — | — | — |
| objectives_and_endpoints.purpose | V-OE-005: purpose NULL/unclear | — | — | ✓ |
| objectives_and_endpoints.measurement | W-OE-040: measurement missing | — | — | — |
| objectives_and_endpoints.assessmentMethod | W-OE-042: method missing | — | — | — |
| objectives_and_endpoints.timepoint | W-OE-030: timepoint missing | — | — | — |
| objectives_and_endpoints.windowLow | W-OE-031: windows missing when implied | — | — | — |
| objectives_and_endpoints.windowHigh | W-OE-031: windows missing when implied | — | — | — |
| objectives_and_endpoints.units | W-OE-041: units missing | — | — | — |
| objectives_and_endpoints.statisticalMethod | W-OE-043: stats missing | — | — | — |
| objectives_and_endpoints.activityRefsText | W-OE-021: activityRefsText looks like Act_### | — | — | — |
| objectives_and_endpoints.encounterRefsText | W-OE-020: encounterRefsText looks like Enc_### | — | — | — |
| objectives_and_endpoints.assumptionNotes | W-OE-050: assumptions expected but missing | — | — | — |
| objectives_and_endpoints.pageNumber | V-OE-100: pageNumber missing | — | — | — |
| population_and_cohorts.populationId | V-100: Pop_NNN pattern mismatch; V-101: Duplicate populationId within study | — | — | — |
| population_and_cohorts.populationName | V-102: populationName required (NULL not acceptable) | V-102: populationName required (NULL not acceptable) | — | — |
| population_and_cohorts.populationCategory | V-117: Invalid category; V-118: More than one BASE; W-240: No BASE found | — | — | ✓ |
| population_and_cohorts.description | W-211: description NULL or < 20 chars (definition may be incomplete) | — | — | — |
| population_and_cohorts.plannedN | W-200: PlannedN vs targetEnrollment mismatch (may be valid for overlapping populations) | — | CALC-POP-001 (PlannedN Derivation) | — |
| population_and_cohorts.plannednType | — | — | — | — |
| population_and_cohorts.actualN | W-230: actualN NOT NULL during protocol extraction (should be NULL at this stage) | — | — | — |
| population_and_cohorts.inclusionCriteriaIDs | V-110: CriteriaIDs exist check (only if mode=EXPLICIT_IDS); V-119: Empty when mode=EXPLICIT_IDS | — | — | — |
| population_and_cohorts.exclusionCriteriaIDs | V-110: CriteriaIDs exist check; V-119: Empty when mode=EXPLICIT_IDS | — | — | — |
| population_and_cohorts.criteriaReferenceMode | V-119: CriteriaIDs empty when mode=EXPLICIT_IDS; V-120: CriteriaIDs present when mode≠EXPLICIT_IDS; W-241: mode=DERIVED_LOGIC AND notes/assumption empty | — | — | ✓ |
| population_and_cohorts.linkedArmIDs | V-111: ArmIDs exist; V-113: ArmIDs must be Arm_NNN pattern only (no "All arms" text) | — | — | — |
| population_and_cohorts.assumption | W-220: criteriaReferenceMode=DERIVED_LOGIC AND notes/assumption empty (prose criteria should be documented) | — | — | — |
| population_and_cohorts.notes | W-220: criteriaReferenceMode=DERIVED_LOGIC AND notes/assumption empty | — | — | — |
| population_and_cohorts.pageNumber | W-210: pageNumber NULL or empty (audit trail incomplete) | — | — | — |
| population_and_cohorts.plannedN_type | Ambiguous whether exact or approximate | — | — | — |
| protocol_version.versionId | V-PV-001: Pattern mismatch; V-PV-003: Duplicate versionId within study | — | CALC-PV-001 (Version ID Generation) | — |
| protocol_version.versionNumber | V-PV-002: versionNumberRaw required (NULL not acceptable) | V-PV-002: versionNumberRaw required (NULL not acceptable) | CALC-PV-002 (Version Alignment) | — |
| protocol_version.amendmentNumber | Ambiguous amendment/version distinction | — | CALC-PV-003 (Amendment-Version Alignment) | — |
| protocol_version.approvalDate | W-PV-014: approvalDate NULL (no signature/approval page found) | — | CALC-PV-008 (Approval-Effective Order) | — |
| protocol_version.effectiveDate | W-PV-010: Date present but not parseable (set NULL with warning) | — | CALC-PV-004 (Date Normalization) + CALC-PV-005 (Sequence Check) | — |
| protocol_version.reasonForAmendment | W-PV-015: amendmentSequence > 0 AND reason NULL (should have documented reason) | — | — | — |
| protocol_version.sectionsModified | Empty sections for non-Original amendment (may be valid but review) | — | — | — |
| protocol_version.substantialChange | V-PV-006: Value NOT IN (Yes, No, N/A) is invalid | — | CALC-PV-006 (Substantial Change Classification) | ✓ |
| protocol_version.regulatoryStatus | V-PV-005: regulatoryStatus NOT IN valid enum | — | — | ✓ |
| protocol_version.subjectsEnrolled | W-PV-012: subjectsEnrolled NULL (not stated for this version) | — | CALC-PV-007 (Enrollment Progression) | — |
| protocol_version.notes | — | — | — | — |
| protocol_version.evidencePageNumbers | pageNumbers NULL | Version info found in unexpected location | — | — | — |
| protocol_version.isLatestByOrdering | N/A | — | — | — |
| protocol_version.lifecycleStatus | Status ambiguous between draft and final | — | — | — |
| protocol_version.orderingMethod | N/A | — | — | — |
| protocol_version.versionIdentifier | versionIdentifier NULL | Multiple conflicting version identifiers found | — | — | — |
| protocol_version.versionNotes | Notes present but context unclear | — | — | — |
| protocol_version.versionNumberRaw | Non-standard version format | — | — | — |
| safety_monitoring.monitoringId | Duplicate ID detected; Pattern mismatch; Sequence gap | — | CALC-SAF-001 | — |
| safety_monitoring.type | Generic label; inferred type; low confidence extraction | — | — | ✓ |
| safety_monitoring.description | Incomplete; assembled; missing key elements | — | — | — |
| safety_monitoring.schedule | Inferred schedule; partial description; ambiguous timing | — | — | — |
| safety_monitoring.reportingWindow | Inferred window; partial specification; ambiguous urgency | — | — | — |
| safety_monitoring.escalationCriteria | Inferred criteria; incomplete; missing operators or thresholds | — | — | — |
| safety_monitoring.gradingScale | Inferred scale; inappropriate NULL for AE monitoring; wrong scale type | — | — | — |
| safety_monitoring.action | Inferred action; incomplete; generic response | — | — | — |
| safety_monitoring.endpointParameter | Partial list; inferred parameters; mixed safety/efficacy | — | — | — |
| safety_monitoring.encounterId | Partial references; inferred encounters; unvalidated IDs | — | — | — |
| safety_monitoring.assumptionNotes | Vague assumption; no basis; unclear impact | — | — | — |
| safety_monitoring.pageNumber | Missing pages; uncertain format; unvalidated | — | CALC-SAF-002 | — |
| soa_activity.activityId | V-ACT-001: Pattern mismatch | — | CALC-ACT-001 | — |
| soa_activity.activityProcedure | Ambiguous procedure name | V-SOA-002: activityProcedure IS NULL or EMPTY | — | — |
| soa_activity.activityCategory | activityCategory IS NULL | Ambiguous grouping, mixed categories in one section | — | — | — |
| soa_activity.categorySequence | N/A | — | CALC-SOA-CAT-SEQ | — |
| soa_activity.description | W-ACT-030: NULL description | — | — | — |
| soa_activity.visitHeaderText | Merged column headers, ambiguous visit labels | V-SOA-003: visitHeaderText IS NULL or EMPTY | — | — |
| soa_activity.visitScheduleText | Conditional text requires interpretation | V-SOA-004: visitScheduleText IS NULL or EMPTY | — | — |
| soa_activity.footnoteMarkersUsed | W-SOA-020: EMPTY but visitScheduleText contains superscripts | Markers found but no corresponding footnote text | — | — | — |
| soa_activity.footnoteText | W-SOA-040: footnoteMarkersUsed NOT EMPTY but footnoteText IS NULL | Marker present but no matching footnote text | — | — | — |
| soa_activity.assumptionNotes | Significant assumption made | — | — | — |
| soa_activity.pageNumber | V-ACT-100: NULL pageNumber | — | — | — |
| soa_activity.pageSection | W-ACT-101: NULL pageSection | — | — | — |
| soa_visit.visitId | V-VISIT-001: Pattern mismatch | — | CALC-VISIT-001 | — |
| soa_visit.visitName | V-VISIT-002: NULL or EMPTY | — | — | — |
| soa_visit.visitOrder | V-VISIT-003: NULL or gap | — | CALC-VISIT-002 | — |
| soa_visit.contextType | W-VISIT-010: Ambiguous context | — | — | ✓ |
| soa_visit.contextValue | W-VISIT-011: Ambiguous value | — | — | — |
| soa_visit.pageNumber | V-VISIT-100: NULL pageNumber | — | — | — |
| soa_visit.pageSection | W-VISIT-101: NULL pageSection | — | — | — |
| study_cells.cellId | V-CELL-001: cellId pattern mismatch | — | CALC-CELL-001 (cellId fallback) | — |
| study_cells.cellName | V-CELL-002: cellName NULL | — | — | — |
| study_cells.descriptionText | W-CELL-030: description too short | — | — | — |
| study_cells.purposeText | W-CELL-022: purpose invented | — | — | — |
| study_cells.armRefsText | W-CELL-010: armRefsText contains Arm_### | — | — | — |
| study_cells.epochRefsText | W-CELL-011: epochRefsText contains Epoch_### | — | — | — |
| study_cells.interventionRefsText | W-CELL-012: interventionRefsText contains Int_### | — | — | — |
| study_cells.activityRefsText | W-CELL-013: activityRefsText contains Act_### | — | — | — |
| study_cells.durationText | W-CELL-020: durationText normalized | — | — | — |
| study_cells.transitionRuleText | W-CELL-021: transition invented | — | — | — |
| study_cells.assumptionNotes | W-CELL-040: assumptionNotes missing when needed | — | — | — |
| study_cells.pageNumber | V-CELL-100: pageNumber missing | — | — | — |
| study_cells.pageSection | W-CELL-050: armRefsText AND epochRefsText both empty | — | — | — |
Schema Validation Rules
5 rules ▼
blocking_rules
warning_rules
cross_field_rules
qc_categories
plausibility_checks
🗺 Schema Mapping
schema_mapping_2_1.yaml
239 fields
Per-Field AI Instructions & Normalization
▼| Field | Cardinality | Normalization | CT Systems | AI Instructions (excerpt) |
|---|---|---|---|---|
| activities.activityCategory | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Classify activity type from SOA section headers. Map to controlled list (SAFETY,... |
| activities.activityId | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Cross-reference with activities[]. Should match activityId. Empty → ERROR V-SOA-A-001 |
| activities.activityLabel | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Extract or generate short label. Can be NULL |
| activities.activityName | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim. Empty → WARNING W-ACT-001 |
| activities.activityProcedure | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim from SOA row label. Should match activityName |
| activities.assumption | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Document assumptions. Free text. Can be NULL |
| activities.assumptionNotes | — | M1_PASSTHROUGH | — | Do NOT call TAL. Document extraction assumptions. Free text. Can be NULL |
| activities.categorySequence | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse row number within category section. Sequential integers. Non-integer →... |
| activities.collectionMethod | Required | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled list if available (CENTRAL_LAB, LOCAL_LAB, INVESTIGATOR_REPORTED,... |
| activities.dataType | Optional | M2_SINGLE_CT |
CDISC_CT
|
Classify data type. Map to controlled enum. Default NUMERIC for measurements |
| activities.description | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve any additional detail from SOA. Often NULL (detail in activities[] instead) |
| activities.footnoteMarkersUsed | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract superscript markers (1, 2, a, b, *, †). Link to footnoteText. Can be empty array |
| activities.footnoteText | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve footnote text verbatim. Map to footnoteMarkersUsed. Can be NULL if no footnotes |
| activities.frequency | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve frequency description. Can be NULL if varies by visit |
| activities.normalRange | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve range text. Can be NULL |
| activities.notes | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Free text. Can be NULL |
| activities.pageNumber | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Extract SOA page. Usually same across all activities. Empty → WARNING W-SOA-A-001 |
| activities.pageSection | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section. Can be NULL |
| activities.specimenType | Optional | M2_SINGLE_CT |
CDISC_CT
|
Apply ONLY if activity is specimen-based (labs/PK/biomarker). If non-specimen activity →... |
| activities.units | Optional | M5_UNIT_NORMALIZED |
UCUM
|
Parse units. Normalize to UCUM. NULL for qualitative activities |
| activities.visitHeaderText | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve column headers as array. Supports SOA parsing validation |
| activities.visitScheduleText | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract cell markers from SOA matrix. Common patterns: X, ✓, •, numeric values,... |
| arms.armId | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Generate or preserve unique ID. Format: ARM_### or preserve sponsor format.... |
| arms.armName | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim text from protocol. Normalize whitespace. Empty → WARNING W-ARM-001 |
| arms.armType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. TAL: Sponsor CT → CDISC C170998 (EXPERIMENTAL, ACTIVE_COMPARATOR, PLACEBO_COMPARATOR,... |
| arms.description | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve detailed description. Can be NULL if only name provided |
| arms.interventions | SINGLE | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract intervention references. Cross-validate with interventions[]. Missing... |
| arms.notes | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve footnotes, amendments. Free text |
| arms.pageNumber | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-ARM-005 |
| arms.pageSection | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section numbers/names. Can be NULL |
| arms.sampleSize | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer. Cross-validate sum equals targetEnrollment. Approximate →... |
| arms.sequenceCrossover | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL unless interventionModel=CROSSOVER. Parse sequence pattern (e.g., "A→B" or... |
| arms.treatmentDuration | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse duration. Normalize to UCUM. Can differ across arms in dose-ranging studies. NULL if not... |
| crossover_design.balancingFactor | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Preserve text. Can be NULL |
| crossover_design.blockSize | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Parse integer. NULL if not stated. Non-integer → ERROR V-XO-005 |
| crossover_design.description | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Preserve text. Can be NULL |
| crossover_design.expectedN | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Parse integer. Sum across sequences should equal targetEnrollment. Mismatch →... |
| crossover_design.numberOfPeriods | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Parse integer. Cross-validate with sequencePattern. Must be ≥2. Invalid →... |
| crossover_design.pageNumber | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Extract page. Empty → WARNING W-XO-004 |
| crossover_design.pageSection | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Extract section. Can be NULL |
| crossover_design.periodInterventions | ARRAY | M6_CROSS_VALIDATED | — | ONLY if CROSSOVER. Extract intervention assignments per period. Length must equal... |
| crossover_design.randomizationRatio | ARRAY | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Parse ratio (e.g., "1:1" for AB vs BA). Validate format. NULL if equal... |
| crossover_design.sequenceId | SINGLE | M1_PASSTHROUGH | — | ONLY if interventionModel=CROSSOVER. Generate or preserve ID. Format: SEQ_###. Empty → ERROR V-XO-001 |
| crossover_design.sequenceName | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Preserve verbatim. Empty → WARNING W-XO-001 |
| crossover_design.sequencePattern | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Normalize to standard pattern (A→B, B→A). Validate against numberOfPeriods.... |
| crossover_design.washoutDuration | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
ONLY if CROSSOVER. Parse duration. Normalize to UCUM. NULL if no washout (immediate crossover).... |
| eligibility_criteria.assumption | — | M1_PASSTHROUGH | — | Do NOT call TAL. Document parsing logic, ambiguities, component inference. Free text |
| eligibility_criteria.category | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled enum (INCLUSION/EXCLUSION). Detect from section headers or... |
| eligibility_criteria.criterionId | — | M1_PASSTHROUGH | — | Do NOT call TAL. Duplicate of identifier field for backward compatibility. Same validation rules |
| eligibility_criteria.identifier | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve protocol ID if present (IC.1, EC.5). If missing → NULL + ERROR... |
| eligibility_criteria.negationFlag | — | M2_SINGLE_CT |
CDISC_CT
|
Detect negation keywords ("no", "not", "absence of", "without"). Set TRUE if negated, FALSE... |
| eligibility_criteria.notes | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve footnotes, clarifications from protocol. Free text |
| eligibility_criteria.operator | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize operator symbols. Map to controlled list. Handle ranges (BETWEEN), lists (IN). NULL... |
| eligibility_criteria.pageNumber | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Support ranges. Empty → WARNING W-ELIG-001 |
| eligibility_criteria.structured | — | M3_MULTI_ONTOLOGY |
CDISC_CT
SNOMED_CT
RxNorm
UCUM
ICD
|
Parse into components: parameter, value, units, operator, timeframe, negation. CT mapping... |
| eligibility_criteria.text | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve complete text. Normalize whitespace. Handle sub-bullets (a,b,c). Empty... |
| eligibility_criteria.timeframe | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse timeframe phrases. Normalize durations to UCUM. Can be NULL if not time-dependent |
| eligibility_criteria.units | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse units from text. Normalize to UCUM. NULL if non-quantitative criterion |
| eligibility_criteria.value | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse value from text. Support numeric, ranges, lists, categorical. Store as... |
| encounters_and_visits.activitiesPerformed | — | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract activity references. Cross-validate with activities[]. May be derived... |
| encounters_and_visits.duration | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse duration. Normalize to UCUM (h, min). NULL if not stated. Approximate → WARNING W-ENC-003 |
| encounters_and_visits.encId | — | M1_PASSTHROUGH | — | Do NOT call TAL. Generate or preserve unique ID. Format: ENC_### or V###. Empty → ERROR V-ENC-001 |
| encounters_and_visits.encounterName | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim. Empty → WARNING W-ENC-001 |
| encounters_and_visits.epochReference | — | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract epoch reference. Cross-validate with epochs[]. Missing epoch → WARNING W-ENC-002 |
| encounters_and_visits.labsRequired | — | M2_SINGLE_CT |
CDISC_CT
|
Detect lab requirements. Map to boolean. Keywords: "laboratory tests", "blood draw",... |
| encounters_and_visits.location | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve text. Can be NULL |
| encounters_and_visits.mode | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled list if available. Default IN_PERSON. Unmapped → EXTENSION |
| encounters_and_visits.overnightStay | — | M2_SINGLE_CT |
CDISC_CT
|
Detect overnight requirements. Keywords: "overnight", "24-hour observation", "admitted". Default FALSE |
| encounters_and_visits.pageNumber | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-ENC-005 |
| encounters_and_visits.pageSection | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section. Can be NULL |
| encounters_and_visits.purpose | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve text. Can be NULL |
| encounters_and_visits.required | — | M2_SINGLE_CT |
CDISC_CT
|
Detect required vs optional. Map to boolean. Keywords: "mandatory", "required", "optional".... |
| encounters_and_visits.studyDay | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse study day number. Ranges → store as string. Negative for screening.... |
| encounters_and_visits.visitLabel | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract or generate short label. Normalize format. Can be NULL if not used |
| encounters_and_visits.windowMinus | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse window range. Normalize to days (d). NULL if no window. Non-numeric → ERROR V-ENC-003 |
| encounters_and_visits.windowPlus | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse window range. Normalize to days (d). Can differ from windowMinus. NULL if no window |
| epochs.duration | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse duration. Normalize to UCUM. Event-driven epochs → EXTENSION. NULL if not specified →... |
| epochs.epochId | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Generate or preserve unique ID. Format: EPO_### or preserve sponsor format.... |
| epochs.epochName | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim. Normalize whitespace. Empty → WARNING W-EPO-001 |
| epochs.epochType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. TAL: Sponsor → CDISC C99079 (SCREENING, RUN_IN, TREATMENT, WASHOUT, FOLLOW_UP).... |
| epochs.notes | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Free text |
| epochs.pageNumber | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-EPO-004 |
| epochs.pageSection | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section. Can be NULL |
| epochs.purpose | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve text. Can be NULL |
| epochs.sequenceInStudy | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Parse or infer sequence. Must be sequential starting at 1. Gaps → WARNING... |
| epochs.transitionRule | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract transition criteria. Can be NULL if sequential |
| interventions.assumptionNotes | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Document parsing assumptions. Free text. Can be NULL |
| interventions.crossoverPeriod | SINGLE | M1_PASSTHROUGH | — | ONLY if CROSSOVER. Parse period number or range. NULL for non-crossover |
| interventions.description | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve complete description. Can be NULL if name/label sufficient |
| interventions.dose | SINGLE | CONDITIONAL | — | Apply ONLY if type ∈ {DRUG, BIOLOGICAL}. Parse numeric/range and allow mg/kg, mg/m² patterns. If... |
| interventions.doseUnits | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Apply ONLY if dose present (or type ∈ {DRUG, BIOLOGICAL} and dose stated). Normalize to UCUM. If... |
| interventions.duration | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse duration. Normalize to UCUM. Event-driven → EXTENSION. NULL if matches arm/epoch duration |
| interventions.formulation | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve formulation description. Can be NULL |
| interventions.frequency | — | M1_PASSTHROUGH | — | Preserve verbatim dosing frequency. Do NOT normalize to UCUM. |
| interventions.indNumber | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve regulatory identifier. Format validation (IND ######). NULL for... |
| interventions.interventionId | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Generate or preserve unique ID. Format: INT_### or preserve sponsor format.... |
| interventions.label | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve brand name or study code. Can differ from name. Can be NULL |
| interventions.manufacturer | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim. Can be NULL if not stated |
| interventions.name | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim name. Normalize whitespace. Empty → WARNING W-INT-001 |
| interventions.pageNumber | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-INT-002 |
| interventions.pageSection | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section. Can be NULL |
| interventions.route | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Apply ONLY if type ∈ {DRUG, BIOLOGICAL}. If not → NOT_APPLICABLE (do not emit NULL). If... |
| interventions.type | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. TAL order: Sponsor CT → CDISC/USDM allowed enum (if configured) exact/synonym → else... |
| objectives_and_endpoints.activityRefsText | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve narrative activity references. Can be NULL |
| objectives_and_endpoints.assessmentMethod | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve methodology description. Can be NULL |
| objectives_and_endpoints.assumptionNotes | — | M1_PASSTHROUGH | — | Do NOT call TAL. Document assumptions. Free text. Can be NULL |
| objectives_and_endpoints.description | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve complete text. Can be lengthy. Empty → WARNING W-OE-002 |
| objectives_and_endpoints.encounterRefsText | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve narrative visit references. May be parsed to structured array later.... |
| objectives_and_endpoints.level | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Sponsor CT → allowed enum (PRIMARY/SECONDARY/EXPLORATORY, etc.) if configured.... |
| objectives_and_endpoints.measurement | — | M3_HIE_HIERARCHICAL |
CDISC_CT
SNOMED_CT
RxNorm
|
Map only when a clear atomic measurement exists. TAL: LOINC (labs/vitals) → SNOMED (clinical... |
| objectives_and_endpoints.name | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim. Empty → WARNING W-OE-001 |
| objectives_and_endpoints.oeId | — | M1_PASSTHROUGH | — | Do NOT call TAL. Generate or preserve unique ID. Format: OBJ_### or EP_###. Empty → ERROR V-OE-002 |
| objectives_and_endpoints.pageNumber | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-OE-003 |
| objectives_and_endpoints.purpose | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled list if available (EFFICACY, SAFETY, PK, PD, BIOMARKER). Unmapped →... |
| objectives_and_endpoints.recordType | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled enum (OBJECTIVE, ENDPOINT). Detect from section headers. Invalid →... |
| objectives_and_endpoints.statisticalMethod | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve statistical approach. Can be NULL |
| objectives_and_endpoints.timepoint | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse timepoint. Normalize durations to UCUM. Support ranges, milestones. Can be NULL if in... |
| objectives_and_endpoints.units | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse units. Normalize to UCUM. NULL for non-quantitative endpoints (e.g., event occurrence) |
| objectives_and_endpoints.windowHigh | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse window. Normalize to UCUM (days). Can differ from windowLow. NULL if no window |
| objectives_and_endpoints.windowLow | — | M5_UNIT_NORMALIZED |
UCUM
|
Parse window. Normalize to UCUM (days). NULL if no window specified |
| population_and_cohorts.actualN | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer. Only present in amendment documents. Original protocol → NULL.... |
| population_and_cohorts.assumption | — | M1_PASSTHROUGH | — | Do NOT call TAL. Document extraction logic, ambiguities, inferences. Free text. Can be NULL |
| population_and_cohorts.criteriaReferenceMode | — | M2_SINGLE_CT |
CDISC_CT
|
Determine reference mode. If protocol uses explicit ID linking → EXPLICIT_IDS. If states "all... |
| population_and_cohorts.description | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve text verbatim. Trim whitespace. Can be NULL if not stated |
| population_and_cohorts.exclusionCriteriaIDs | — | M6_CROSS_VALIDATED | — | Do NOT call TAL. Do NOT infer IDs. Use only IDs present in Design Agent output... |
| population_and_cohorts.inclusionCriteriaIDs | — | M6_CROSS_VALIDATED | — | Do NOT call TAL. Do NOT infer IDs. Use only IDs present in Design Agent output... |
| population_and_cohorts.linkedArmIDs | — | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract arm references. Cross-validate with studyArms[]. ITT/Safety populations... |
| population_and_cohorts.notes | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve any footnotes or special notes from protocol. Free text. Can be NULL |
| population_and_cohorts.pageNumber | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers or section references. Support ranges. Empty → WARNING W-POP-007 |
| population_and_cohorts.plannedN | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer. If same as targetEnrollment, note derivation. Approximate values... |
| population_and_cohorts.plannedN_type | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize to TOTAL, PER_ARM, or PER_COHORT based on the scope stated in the protocol. Use TOTAL... |
| population_and_cohorts.plannednType | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize enrollment qualifier: EXACT, APPROXIMATE, RANGE, UP_TO, AT_LEAST. |
| population_and_cohorts.populationCategory | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize cohort-type labels only: DOSE_ESCALATION, DOSE_EXPANSION, SENTINEL, ENRICHMENT,... |
| population_and_cohorts.populationId | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve extracted ID only. Schema Agent must NOT fabricate protocol IDs. If... |
| population_and_cohorts.populationName | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim text. Normalize whitespace. Empty → WARNING W-POP-001 |
| protocol_version.amendmentNumber | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer if explicitly present. Original protocol → 0 or NULL per your... |
| protocol_version.approvalDate | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract from signature page only. Parse to ISO 8601. If no signature page →... |
| protocol_version.effectiveDate | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse date formats. Output ISO (YYYY-MM-DD). If unparseable → NULL + WARNING W-PV-010. |
| protocol_version.evidencePageNumbers | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers where version info found. Support ranges. Normalize format... |
| protocol_version.isLatestByOrdering | — | M1_PASSTHROUGH | — | Do NOT call TAL. Computed by Schema Agent using precedence: (1) Explicit marker, (2)... |
| protocol_version.lifecycleStatus | — | M1_PASSTHROUGH |
CDISC_CT
|
Do NOT call TAL. Computed deterministically: isLatestByOrdering=TRUE → CURRENT; FALSE →... |
| protocol_version.notes | — | M1_PASSTHROUGH | — | Free text. Preserve verbatim. |
| protocol_version.orderingMethod | — | M1_PASSTHROUGH |
CDISC_CT
|
Do NOT call TAL. Computed by Schema Agent indicating which method determined isLatestByOrdering.... |
| protocol_version.reasonForAmendment | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve text verbatim. Missing reason when amendmentNumber>0 → WARNING. |
| protocol_version.regulatoryStatus | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled enum. EXTRACTED only—no inference. Require explicit statement.... |
| protocol_version.sectionsModified | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract list of section numbers or names from amendment summary. Normalize... |
| protocol_version.subjectsEnrolled | — | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer from amendment context. NULL if not stated → WARNING W-PV-012.... |
| protocol_version.substantialChange | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize to YES/NO/UNKNOWN. Map to CDISC CT if available. |
| protocol_version.versionId | — | M1_PASSTHROUGH | — | Do NOT generate or expand this value. Preserve the short visible version string exactly as... |
| protocol_version.versionIdentifier | — | M1_PASSTHROUGH | — | Lock container naming to protocolVersions[]. Preserve extracted value only. No renaming or... |
| protocol_version.versionNotes | — | M1_PASSTHROUGH | — | Do NOT call TAL. Agent-generated notes documenting extraction decisions, assumptions, or... |
| protocol_version.versionNumber | — | M1_PASSTHROUGH | — | Preserve verbatim version number. Validate pattern. |
| protocol_version.versionNumberRaw | — | M1_PASSTHROUGH | — | Store raw/helper fields ONLY in extensionAttributes. Do NOT duplicate in USDM core. Parse... |
| safety_monitoring.action | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve action description. Can be NULL |
| safety_monitoring.assumptionNotes | — | M1_PASSTHROUGH | — | Do NOT infer from “standard practice.” Only document assumptions that are explicitly warranted... |
| safety_monitoring.description | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve complete description. Can be NULL |
| safety_monitoring.encounterId | — | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract encounter reference. Cross-validate with encounters[]. Can be array for... |
| safety_monitoring.endpointParameter | — | M3_HIE_HIERARCHICAL |
CDISC_CT
MedDRA
SNOMED_CT
RxNorm
|
Normalize. TAL: MedDRA for AEs, LOINC for labs, SNOMED for clinical findings. Store code+display... |
| safety_monitoring.escalationCriteria | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve criteria text. Can be NULL |
| safety_monitoring.gradingScale | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled list (CTCAE, WHO, CUSTOM). Version important. Unmapped → EXTENSION |
| safety_monitoring.monitoringId | — | M1_PASSTHROUGH | — | Do NOT call TAL. Generate unique ID. Format: SM_###. Empty → ERROR V-SM-001 |
| safety_monitoring.pageNumber | — | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-SM-001 |
| safety_monitoring.reportingWindow | — | M5_UNIT_NORMALIZED |
UCUM
|
Normalize duration units when explicit. If “business days” present, keep... |
| safety_monitoring.schedule | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve schedule description. Can be NULL |
| safety_monitoring.type | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to controlled list (AE_MONITORING, LAB_MONITORING, DOSE_MODIFICATION,... |
| soa_activity.activityCategory | — | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Classify activity type from SOA section headers. Map to controlled list. |
| soa_activity.activityId | — | M1_PASSTHROUGH | — | Do NOT call TAL. Cross-reference with activities[]. Empty → ERROR V-SOA-A-001 |
| soa_activity.activityProcedure | — | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim from SOA row label. |
| soa_activity.assumptionNotes | — | M1_PASSTHROUGH | — | Document extraction assumptions. |
| soa_activity.categorySequence | — | M1_PASSTHROUGH | — | System-generated. Do NOT extract. |
| soa_activity.description | — | M1_PASSTHROUGH | — | Free text description. Preserve verbatim. |
| soa_activity.footnoteMarkersUsed | — | M1_PASSTHROUGH | — | Extract superscript markers from SOA cells. Comma-separate. |
| soa_activity.footnoteText | — | M1_PASSTHROUGH | — | Extract footnote text linked to markers. Preserve verbatim. |
| soa_activity.pageNumber | — | M1_PASSTHROUGH | — | Page number where SOA table was found. |
| soa_activity.pageSection | — | M1_PASSTHROUGH | — | Section reference for SOA table. |
| soa_activity.visitHeaderText | — | M1_PASSTHROUGH | — | Preserve verbatim column header text from SOA table. |
| soa_activity.visitScheduleText | — | M1_PASSTHROUGH | — | Preserve cell content (X, check, text). Do NOT interpret. |
| soa_visit.contextType | Optional | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Classify visit type from SOA. Default SCHEDULED. Detect keywords ("unscheduled",... |
| soa_visit.contextValue | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Parse timing from SOA header. Support various formats (Day X, Week X, C#D#).... |
| soa_visit.pageNumber | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Extract SOA table page. All visits typically share same page. Empty → WARNING... |
| soa_visit.pageSection | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section. Can be NULL |
| soa_visit.visitId | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Cross-reference with encounters[]. Should match encId. Empty → ERROR V-SOA-V-001 |
| soa_visit.visitName | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve verbatim from SOA table. Should match encounterName |
| soa_visit.visitOrder | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Parse column order from SOA. Must be sequential. Non-integer → ERROR V-SOA-V-002 |
| study_cells.activityRefsText | Optional | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract activity references. Cross-validate with activities[]. May be derived... |
| study_cells.armRefsText | Optional | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract arm references. Cross-validate with studyArms[]. Can be array for... |
| study_cells.assumptionNotes | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Document cell derivation logic. Free text. Can be NULL |
| study_cells.cellId | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Generate unique ID combining arm+epoch. Format: CELL_###. Empty → ERROR V-CELL-001 |
| study_cells.cellName | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Generate or preserve descriptive name. Can derive from arm+epoch names |
| study_cells.descriptionText | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve description. Can be NULL |
| study_cells.durationText | Optional | M5_UNIT_NORMALIZED |
UCUM
|
Parse duration. Normalize to UCUM. Often inherited from epoch. NULL if epoch defines duration |
| study_cells.epochRefsText | Optional | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract epoch reference. Cross-validate with epochs[]. Missing epoch → WARNING... |
| study_cells.interventionRefsText | Optional | M6_CROSS_VALIDATED | — | Do NOT call TAL. Extract intervention references. Cross-validate with interventions[]. Can be... |
| study_cells.pageNumber | Required | M1_PASSTHROUGH | — | Do NOT call TAL. Extract page numbers. Empty → WARNING W-CELL-005 |
| study_cells.pageSection | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Extract section. Can be NULL |
| study_cells.purposeText | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve purpose description. Can be NULL |
| study_cells.transitionRuleText | Optional | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve transition criteria. Often inherited from epoch. Can be NULL |
| study_design_and_definition.allocation | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Only applicable if studyType=INTERVENTIONAL. Normalize then TAL: Sponsor→CDISC exact/synonym. If... |
| study_design_and_definition.allocationRatio | ARRAY | M1_PASSTHROUGH | — | Do NOT call TAL. Parse "1:1", "2:1:1". Validate numeric. If conflicts with numberOfArms → QC WARNING |
| study_design_and_definition.blindingSchema | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Use CDISC blinding codelist. If multi-party blinding described, keep structured... |
| study_design_and_definition.controlType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Map to allowed control types (placebo/active/no control). If unclear, keep extension... |
| study_design_and_definition.dataMonitoringCommittee | SINGLE | M2_SINGLE_CT | — | Normalize. Map to YES/NO/NOT_APPLICABLE. Look for DMC, DSMB, IDMC references. |
| study_design_and_definition.doseEscalationSchema | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract dose escalation/titration schedule. Preserve verbatim. Can be NULL |
| study_design_and_definition.followUpPeriod | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Normalize; if "long-term follow-up" without number → EXTENSION + WARNING |
| study_design_and_definition.id | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Regex validate known patterns (NCT/EudraCT/IND/sponsor). Trim only. If invalid... |
| study_design_and_definition.hyperglycemiaRescueCriteria | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract quantitative rescue trigger criteria (FPG/HbA1c thresholds). Preserve... |
| study_design_and_definition.interimAnalysis | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract pre-specified interim analysis plan including timing, purpose, decision... |
| study_design_and_definition.interventionModel | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize then TAL: Sponsor→CDISC exact/synonym. If crossover keywords exist but mapped PARALLEL... |
| study_design_and_definition.interventionType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Sponsor CT first, then public CT if available. If not defined, EXTENSION_ROUTED |
| study_design_and_definition.maskingRoles | ARRAY | M2_SINGLE_CT | — | Map blinded parties to allowed values (PARTICIPANT, INVESTIGATOR, ASSESSOR, CARE_PROVIDER,... |
| study_design_and_definition.name | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Trim whitespace. Preserve punctuation/case. Placeholder ("TBD") → WARNING... |
| study_design_and_definition.numberOfArms | SINGLE | M6_CROSS_VALIDATED | — | Do NOT call TAL. Validate integer >0. After arms extraction, cross-validate count equals... |
| study_design_and_definition.observationalModel | SINGLE | CONDITIONAL |
CDISC_CT
|
If studyType != OBSERVATIONAL → NOT_APPLICABLE with rationale (field skipped). If OBSERVATIONAL:... |
| study_design_and_definition.participantDuration | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse per-subject duration; if multiple components, store structured + extension notes |
| study_design_and_definition.phaseCode | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. Detect phase patterns (I,1,1b,2a, I/II, etc.). TAL: Sponsor → CDISC C66737... |
| study_design_and_definition.populationAgeRange | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Extract min/max and units. Normalize to UCUM without unit conversion math unless UNIT-CONV rule... |
| study_design_and_definition.primaryEstimand | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract full estimand per ICH E9(R1) framework. Include treatment condition,... |
| study_design_and_definition.primaryCompletionType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. If CDISC/USDM codelist exists in implementation, map exact/synonym. Else PASSTHROUGH... |
| study_design_and_definition.protocolDate | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Parse dates (MM/DD/YYYY, DD-MMM-YYYY). Output ISO date. If invalid → ERROR... |
| study_design_and_definition.protocolVersion | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Validate version patterns (v#, x.y, Amendment #). Normalize "Version 3.0" →... |
| study_design_and_definition.randomizationMethod | SINGLE | M4_SPONSOR_MAPPED |
CDISC_CT
|
Normalize. Sponsor CT dictionary first (IRT, IVRS, permuted block). If no CT available,... |
| study_design_and_definition.rationale | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Preserve text. Trim only. Empty rationale → WARNING |
| study_design_and_definition.rescueTherapy | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Extract rescue medications/procedures and trigger criteria. Preserve verbatim.... |
| study_design_and_definition.regulatoryIdentifier | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Validate common formats (IND ######, CTA). Preserve original |
| study_design_and_definition.screeningPeriod | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse "screening up to 28 days". If range, store max and note |
| study_design_and_definition.screeningTarget | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer. Distinct from targetEnrollment (enrolled). Non-numeric → ERROR |
| study_design_and_definition.sponsor | SINGLE | M4_SPONSOR_MAPPED |
CDISC_CT
|
Normalize org strings. Lookup Sponsor CT dictionary for canonical sponsor name + IDs. If not... |
| study_design_and_definition.stratificationFactors | ARRAY | M1_PASSTHROUGH | — | Do NOT call TAL unless sponsor CT provided for factors. Preserve list items. Normalize whitespace |
| study_design_and_definition.studyArms | ARRAY | M6_CROSS_VALIDATED |
CDISC_CT
|
Do NOT map here unless armType present. Validate array structure; ensure arm.sequence/order.... |
| study_design_and_definition.studyDuration | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse duration phrases. Normalize to structured {value, unit UCUM}. Preserve original text.... |
| study_design_and_definition.studyPhase | SINGLE | DERIVED |
CDISC_CT
|
Do NOT call TAL. Derive from phaseCode mapping. If combined phase, keep combined label. If phase... |
| study_design_and_definition.studyType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Do NOT call TAL. Extract or derive study type (INTERVENTIONAL/OBSERVATIONAL/EXPANDED_ACCESS).... |
| study_design_and_definition.studyTypeMasking | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize. TAL order Sponsor→CDISC C66735 exact/synonym→NCIt. If fuzzy <0.85 or ambiguous term →... |
| study_design_and_definition.targetEnrollment | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Parse integer. If range, store min/max or extension. Non-numeric → ERROR |
| study_design_and_definition.therapeuticAreas | SINGLE | M3_HIE_HIERARCHICAL |
MedDRA
SNOMED_CT
ICD
|
Normalize disease area text. TAL order: Sponsor CT → MedDRA PT exact/synonym → SNOMED → ICD.... |
| study_design_and_definition.treatmentPeriod | SINGLE | M5_UNIT_NORMALIZED |
UCUM
|
Parse treatment duration; if cycle-based, store cycles + cycle length |
| study_design_and_definition.trialRegistryIdentifier | SINGLE | M1_PASSTHROUGH | — | Regex validate NCT/EudraCT/ISRCTN. Invalid → ERROR |
| study_design_and_definition.trialType | SINGLE | M2_SINGLE_CT |
CDISC_CT
|
Normalize; TAL order Sponsor→CDISC. If sponsor-specific intent → SPONSOR_OVERRIDE required |
| study_design_and_definition.usdmVersion | SINGLE | M1_PASSTHROUGH | — | Do NOT call TAL. Set from system configuration (e.g., "USDM v4.0"). Lock field (non-editable) |
🚧 Gate Rules
gate_rules_3_0.yaml
Gate Summary Table
▼| Gate ID | Trigger Field | Condition | Severity | Gated Count | Standard Ref |
|---|---|---|---|---|---|
| G01_non_interventional | study_design_and_definition.studyType | value != 'INTERVENTIONAL' | HARD | 61 fields | ICH E8(R1) §2; ICH M11 §4; SPIRIT 2013 Item 7 |
| G07_interventional_no_obs_model | study_design_and_definition.studyType | value == 'INTERVENTIONAL' | HARD | 1 fields | ICH M11 §4; STROBE |
| G10_expanded_access | study_design_and_definition.studyType | value == 'EXPANDED_ACCESS' | SOFT | 19 fields | ICH M11 §4; FDA 21 CFR 312.310; EU Regulation Article 83 |
| G05_single_group | study_design_and_definition.interventionModel | value == 'SINGLE_GROUP' | SOFT | 7 fields | ICH E8(R1) §4.3; ICH M11 §4.2; ICH E10 |
| G03_not_crossover | study_design_and_definition.interventionModel | value != 'CROSSOVER' | HARD | 14 fields | ICH E8(R1) §4.3; ICH M11 §4.2; ICH E9 §2.3.4 |
| G02_non_randomized | study_design_and_definition.allocation | value != 'RANDOMIZED' | HARD | 6 fields | ICH E8(R1) §4.4; ICH M11 §4.5; SPIRIT 2013 Item 16a; ICH E9 §2.3 |
| G04_open_label | study_design_and_definition.blindingSchema | value == 'NONE' | SOFT | 1 fields | ICH M11 §4.4; SPIRIT 2013 Item 11b |
| G06_uncontrolled | study_design_and_definition.controlType | value == 'UNCONTROLLED' | SOFT | 2 fields | ICH E10 §2.1; ICH M11 §4.2 |
| G08_not_early_phase | study_design_and_definition.phaseCode | value not in ('EARLY_PHASE1', 'PHASE1', 'PHASE1/PHASE2') | SOFT | 1 fields | ICH E8(R1) §4.1; ICH M11 §4.1; FDA Phase 1 Oncology Guidance |
| G09_no_amendment | protocol_version.amendmentNumber | value is None or value == '' or value == '0' | HARD | 4 fields | ICH M11 §1; SPIRIT 2013 Item 25; ICH E6(R2) §4.5.2 |
G01_non_interventional
HARD
study_design_and_definition.studyType
61 gated
▼
Trigger Field
study_design_and_definition.studyType
Condition
value != 'INTERVENTIONAL'
Validator Action
warn
Standard Ref
ICH E8(R1) §2; ICH M11 §4; SPIRIT 2013 Item 7
Observational and expanded-access studies do not assign participants to interventions, so fields describing randomisation, arm structure, blinding, crossover design, and interventional control are structurally inapplicable.
Gated Fields (61)
study_design_and_definition.allocation
study_design_and_definition.allocationRatio
study_design_and_definition.randomizationMethod
study_design_and_definition.stratificationFactors
study_design_and_definition.blindingSchema
study_design_and_definition.studyTypeMasking
study_design_and_definition.interventionModel
study_design_and_definition.interventionType
study_design_and_definition.controlType
study_design_and_definition.numberOfArms
study_design_and_definition.studyArms
arms.armName
arms.armType
arms.description
arms.interventions
arms.sampleSize
arms.treatmentDuration
arms.sequenceCrossover
arms.notes
arms.pageNumber
arms.pageSection
crossover_design.sequenceName
crossover_design.sequencePattern
crossover_design.description
crossover_design.numberOfPeriods
crossover_design.periodInterventions
crossover_design.washoutDuration
crossover_design.randomizationRatio
crossover_design.blockSize
crossover_design.balancingFactor
crossover_design.expectedN
crossover_design.pageNumber
crossover_design.pageSection
interventions.name
interventions.label
interventions.type
interventions.description
interventions.dose
interventions.doseUnits
interventions.frequency
interventions.route
interventions.formulation
interventions.duration
interventions.crossoverPeriod
interventions.manufacturer
interventions.indNumber
interventions.assumptionNotes
interventions.pageNumber
interventions.pageSection
study_cells.cellName
study_cells.descriptionText
study_cells.purposeText
study_cells.armRefsText
study_cells.epochRefsText
study_cells.interventionRefsText
study_cells.activityRefsText
study_cells.durationText
study_cells.transitionRuleText
study_cells.assumptionNotes
study_cells.pageNumber
study_cells.pageSection
G07_interventional_no_obs_model
HARD
study_design_and_definition.studyType
1 gated
▼
Trigger Field
study_design_and_definition.studyType
Condition
value == 'INTERVENTIONAL'
Validator Action
drop
Standard Ref
ICH M11 §4; STROBE
Observational model (cohort, case-control, cross-sectional) is only applicable to observational studies, not interventional ones.
Gated Fields (1)
study_design_and_definition.observationalModel
G10_expanded_access
SOFT
study_design_and_definition.studyType
19 gated
▼
Trigger Field
study_design_and_definition.studyType
Condition
value == 'EXPANDED_ACCESS'
Validator Action
warn
Standard Ref
ICH M11 §4; FDA 21 CFR 312.310; EU Regulation Article 83
Expanded access programs typically lack formal study design elements: no randomisation, no blinding, no endpoints analysis, no formal SoA. Safety monitoring and eligibility remain relevant.
Gated Fields (19)
objectives_and_endpoints.statisticalMethod
objectives_and_endpoints.windowLow
objectives_and_endpoints.windowHigh
soa_activity.visitHeaderText
soa_activity.visitScheduleText
soa_activity.footnoteMarkersUsed
soa_activity.footnoteText
study_cells.cellName
study_cells.descriptionText
study_cells.purposeText
study_cells.armRefsText
study_cells.epochRefsText
study_cells.interventionRefsText
study_cells.activityRefsText
study_cells.durationText
study_cells.transitionRuleText
study_cells.assumptionNotes
study_cells.pageNumber
study_cells.pageSection
G05_single_group
SOFT
study_design_and_definition.interventionModel
7 gated
▼
Trigger Field
study_design_and_definition.interventionModel
Condition
value == 'SINGLE_GROUP'
Validator Action
warn
Standard Ref
ICH E8(R1) §4.3; ICH M11 §4.2; ICH E10
A single-group (single-arm) study has no control arm, so control type, allocation, allocation ratio, and stratification are inapplicable. Number of arms is deterministically 1. Single-arm studies can still use assessor or role-level blinding, so masking fields should remain warning-only.
Gated Fields (7)
study_design_and_definition.controlType
study_design_and_definition.allocation
study_design_and_definition.allocationRatio
study_design_and_definition.randomizationMethod
study_design_and_definition.stratificationFactors
study_design_and_definition.blindingSchema
study_design_and_definition.studyTypeMasking
G03_not_crossover
HARD
study_design_and_definition.interventionModel
14 gated
▼
Trigger Field
study_design_and_definition.interventionModel
Condition
value != 'CROSSOVER'
Validator Action
warn
Standard Ref
ICH E8(R1) §4.3; ICH M11 §4.2; ICH E9 §2.3.4
Crossover sequences, washout periods, period-intervention mappings, and within-subject carryover considerations only apply to crossover designs.
Gated Fields (14)
crossover_design.sequenceName
crossover_design.sequencePattern
crossover_design.description
crossover_design.numberOfPeriods
crossover_design.periodInterventions
crossover_design.washoutDuration
crossover_design.randomizationRatio
crossover_design.blockSize
crossover_design.balancingFactor
crossover_design.expectedN
crossover_design.pageNumber
crossover_design.pageSection
arms.sequenceCrossover
interventions.crossoverPeriod
G02_non_randomized
HARD
study_design_and_definition.allocation
6 gated
▼
Trigger Field
study_design_and_definition.allocation
Condition
value != 'RANDOMIZED'
Validator Action
warn
Standard Ref
ICH E8(R1) §4.4; ICH M11 §4.5; SPIRIT 2013 Item 16a; ICH E9 §2.3
Without randomisation there is no allocation ratio, no randomisation method, no stratification factors, and no block-size or balancing-factor logic.
Gated Fields (6)
study_design_and_definition.allocationRatio
study_design_and_definition.randomizationMethod
study_design_and_definition.stratificationFactors
crossover_design.randomizationRatio
crossover_design.blockSize
crossover_design.balancingFactor
G04_open_label
SOFT
study_design_and_definition.blindingSchema
1 gated
▼
Trigger Field
study_design_and_definition.blindingSchema
Condition
value == 'NONE'
Validator Action
warn
Standard Ref
ICH M11 §4.4; SPIRIT 2013 Item 11b
An open-label study has no blinding procedures; the narrative description of masking is therefore inapplicable.
Gated Fields (1)
study_design_and_definition.studyTypeMasking
G06_uncontrolled
SOFT
study_design_and_definition.controlType
2 gated
▼
Trigger Field
study_design_and_definition.controlType
Condition
value == 'UNCONTROLLED'
Validator Action
warn
Standard Ref
ICH E10 §2.1; ICH M11 §4.2
An uncontrolled study has no comparator arm. Blinding schema may still exist (e.g. dose-blinding within a single active arm), so this is SOFT.
Gated Fields (2)
study_design_and_definition.blindingSchema
study_design_and_definition.studyTypeMasking
G08_not_early_phase
SOFT
study_design_and_definition.phaseCode
1 gated
▼
Trigger Field
study_design_and_definition.phaseCode
Condition
value not in ('EARLY_PHASE1', 'PHASE1', 'PHASE1/PHASE2')
Validator Action
warn
Standard Ref
ICH E8(R1) §4.1; ICH M11 §4.1; FDA Phase 1 Oncology Guidance
Dose-limiting toxicity definitions and dose-escalation methods (3+3, mCRM, BOIN) are relevant only in early-phase dose-finding studies. Phase 2b and later studies do not typically employ formal dose escalation.
Gated Fields (1)
safety_monitoring.escalationCriteria
G09_no_amendment
HARD
protocol_version.amendmentNumber
4 gated
▼
Trigger Field
protocol_version.amendmentNumber
Condition
value is None or value == '' or value == '0'
Validator Action
drop
Standard Ref
ICH M11 §1; SPIRIT 2013 Item 25; ICH E6(R2) §4.5.2
If the protocol has not been amended, amendment rationale, sections modified, substantial change classification, and subjects enrolled at time of amendment are all inapplicable.
Gated Fields (4)
protocol_version.reasonForAmendment
protocol_version.sectionsModified
protocol_version.substantialChange
protocol_version.subjectsEnrolled
🔗 USDM Path Registry
usdm_path_registry_2_0.yaml
239 paths
USDM 4.0
JSONPath Mappings
▼| Field | USDM JSON Path | Instance Type |
|---|---|---|
| study_design_and_definition.id | $.studyDesign.studyId | SINGLE |
| study_design_and_definition.name | $.studyDesign.studyTitle | SINGLE |
| study_design_and_definition.protocolVersion | $.studyDesign.protocolVersion | SINGLE |
| study_design_and_definition.protocolDate | $.studyDesign.protocolDate | SINGLE |
| study_design_and_definition.sponsor | $.study.organizations[?(@.typeCode=='SPONSOR')].name | SINGLE |
| study_design_and_definition.regulatoryIdentifier | $.study.studyIdentifiers[?(@.typeCode=='REGULATORY')].studyIdentifier | SINGLE |
| study_design_and_definition.trialRegistryIdentifier | $.study.studyIdentifiers[?(@.typeCode=='REGISTRY')].studyIdentifier | SINGLE |
| study_design_and_definition.usdmVersion | $.usdmVersion | SINGLE |
| study_design_and_definition.rationale | $.studyDesign.rationale | SINGLE |
| study_design_and_definition.studyType | $.studyDesign.studyType.code | SINGLE |
| study_design_and_definition.trialType | $.studyDesign.trialType[*].code | SINGLE |
| study_design_and_definition.phaseCode | $.studyDesign.trialIntentType[*].code | SINGLE |
| study_design_and_definition.studyPhase | $.studyDesign.studyPhase.standardCode.decode | SINGLE |
| study_design_and_definition.interventionModel | $.studyDesign.interventionModel.code | SINGLE |
| study_design_and_definition.interventionType | $.studyDesign.interventions[*].typeCode | SINGLE |
| study_design_and_definition.allocation | $.studyDesign.allocation.code | SINGLE |
| study_design_and_definition.allocationRatio | $.studyDesign.ratioAllocation | SINGLE |
| study_design_and_definition.randomizationMethod | $.studyDesign.randomizationMethod | SINGLE |
| study_design_and_definition.stratificationFactors | $.studyDesign.stratificationFactors | LIST |
| study_design_and_definition.blindingSchema | $.studyDesign.masking.level.code | SINGLE |
| study_design_and_definition.studyTypeMasking | $.studyDesign.masking.description | SINGLE |
| study_design_and_definition.controlType | $.studyDesign.studyArms[?(@.typeCode=='PLACEBO_COMPARATOR' || @.typeCode=='ACTIVE_COMPARATOR')].typeCode | SINGLE |
| study_design_and_definition.numberOfArms | $.studyDesign.studyArms.length() | SINGLE |
| study_design_and_definition.studyArms | $.studyDesign.studyArms | LIST |
| study_design_and_definition.observationalModel | $.studyDesign.observationalModel.code | SINGLE |
| study_design_and_definition.targetEnrollment | $.studyDesign.plannedSubjectsNumber | SINGLE |
| study_design_and_definition.populationAgeRange | $.studyDesign.population.plannedAge | SINGLE |
| study_design_and_definition.therapeuticAreas | $.studyDesign.therapeuticAreas | LIST |
| study_design_and_definition.studyDuration | $.studyDesign.studyDuration | SINGLE |
| study_design_and_definition.participantDuration | $.studyDesign.population.plannedDuration | SINGLE |
| study_design_and_definition.screeningPeriod | $.studyDesign.studyEpochs[?(@.typeCode=='SCREENING')].duration | SINGLE |
| study_design_and_definition.treatmentPeriod | $.studyDesign.studyEpochs[?(@.typeCode=='TREATMENT')].duration | SINGLE |
| study_design_and_definition.followUpPeriod | $.studyDesign.studyEpochs[?(@.typeCode=='FOLLOW_UP')].duration | SINGLE |
| study_design_and_definition.primaryCompletionType | $.studyDesign.primaryCompletionType | SINGLE |
| study_design_and_definition.dataMonitoringCommittee | $.studyDesign.dataMonitoringCommittee | SINGLE |
| study_design_and_definition.doseEscalationSchema | $.studyDesign.doseEscalation | SINGLE |
| study_design_and_definition.hyperglycemiaRescueCriteria | $.studyDesign.rescueCriteria | SINGLE |
| study_design_and_definition.interimAnalysis | $.studyDesign.interimAnalysis | SINGLE |
| study_design_and_definition.maskingRoles | $.studyDesign.maskingRole | LIST |
| study_design_and_definition.primaryEstimand | $.studyDesign.estimand | SINGLE |
| study_design_and_definition.rescueTherapy | $.studyDesign.rescueTherapy | SINGLE |
| study_design_and_definition.screeningTarget | $.studyDesign.screeningTarget | SINGLE |
| arms.armId | $.studyDesign.studyArms[*].id | MULTI |
| arms.armName | $.studyDesign.studyArms[*].name | MULTI |
| arms.armType | $.studyDesign.studyArms[*].typeCode | MULTI |
| arms.description | $.studyDesign.studyArms[*].description | MULTI |
| arms.interventions | $.studyDesign.studyArms[*].studyInterventions | MULTI |
| arms.sampleSize | $.studyDesign.studyArms[*].plannedSubjectsNumber | MULTI |
| arms.treatmentDuration | $.studyDesign.studyArms[*].duration | MULTI |
| arms.sequenceCrossover | $.studyDesign.studyArms[*].studyCells[*].studyEpoch.name | MULTI |
| arms.notes | $.extensionAttributes.notes | MULTI |
| arms.pageNumber | $.extensionAttributes.pageNumber | MULTI |
| arms.pageSection | $.extensionAttributes.pageSection | MULTI |
| population_and_cohorts.populationId | $.studyDesign.population.id | MULTI |
| population_and_cohorts.populationName | $.studyDesign.population.name | MULTI |
| population_and_cohorts.populationCategory | $.studyDesign.population.populationType.code | MULTI |
| population_and_cohorts.description | $.studyDesign.population.description | MULTI |
| population_and_cohorts.plannedN | $.studyDesign.population.plannedSubjectsNumber | MULTI |
| population_and_cohorts.plannednType | $.studyDesign.population.plannedSubjectsNumberType.code | MULTI |
| population_and_cohorts.plannedN_type | $.studyDesign.population.plannedSubjectsNumberType.code | MULTI |
| population_and_cohorts.actualN | $.extensionAttributes.actualN | MULTI |
| population_and_cohorts.inclusionCriteriaIDs | $.studyDesign.population.criteria[?(@.category.code=='INCLUSION')].id | LIST |
| population_and_cohorts.exclusionCriteriaIDs | $.studyDesign.population.criteria[?(@.category.code=='EXCLUSION')].id | LIST |
| population_and_cohorts.criteriaReferenceMode | $.extensionAttributes.criteriaReferenceMode | MULTI |
| population_and_cohorts.linkedArmIDs | $.studyDesign.population.linkedArmIds | LIST |
| population_and_cohorts.assumption | $.extensionAttributes.assumption | MULTI |
| population_and_cohorts.notes | $.extensionAttributes.notes | MULTI |
| population_and_cohorts.pageNumber | $.extensionAttributes.pageNumber | MULTI |
| epochs.epochId | $.studyDesign.studyEpochs[*].id | list_item |
| epochs.epochName | $.studyDesign.studyEpochs[*].name | list_item |
| epochs.epochType | $.studyDesign.studyEpochs[*].typeCode | list_item |
| epochs.purpose | $.studyDesign.studyEpochs[*].description | list_item |
| epochs.duration | $.studyDesign.studyEpochs[*].duration | list_item |
| epochs.sequenceInStudy | $.studyDesign.studyEpochs[*].sequenceInStudy | list_item |
| epochs.transitionRule | $.studyDesign.studyEpochs[*].transitionRule | list_item |
| epochs.notes | $.extensionAttributes.notes | list_item |
| epochs.pageNumber | $.extensionAttributes.pageNumber | list_item |
| epochs.pageSection | $.extensionAttributes.pageSection | list_item |
| encounters_and_visits.encId | $.studyDesign.encounters[*].id | list_item |
| encounters_and_visits.encounterName | $.studyDesign.encounters[*].name | list_item |
| encounters_and_visits.visitLabel | $.studyDesign.encounters[*].label | list_item |
| encounters_and_visits.purpose | $.studyDesign.encounters[*].description | list_item |
| encounters_and_visits.epochReference | $.studyDesign.encounters[*].studyEpoch.id | list_item |
| encounters_and_visits.studyDay | $.studyDesign.encounters[*].studyDay.value | list_item |
| encounters_and_visits.windowMinus | $.studyDesign.encounters[*].windowBefore | list_item |
| encounters_and_visits.windowPlus | $.studyDesign.encounters[*].windowAfter | list_item |
| encounters_and_visits.duration | $.studyDesign.encounters[*].duration | list_item |
| encounters_and_visits.mode | $.studyDesign.encounters[*].typeCode | list_item |
| encounters_and_visits.location | $.studyDesign.encounters[*].locationTypes[*].code | list_item |
| encounters_and_visits.required | $.studyDesign.encounters[*].mandatoryFlag | list_item |
| encounters_and_visits.overnightStay | $.extensionAttributes.overnightStay | list_item |
| encounters_and_visits.labsRequired | $.extensionAttributes.labsRequired | list_item |
| encounters_and_visits.activitiesPerformed | $.studyDesign.encounters[*].scheduledActivities | list_item |
| encounters_and_visits.pageNumber | $.extensionAttributes.pageNumber | list_item |
| encounters_and_visits.pageSection | $.extensionAttributes.pageSection | list_item |
| interventions.interventionId | $.studyDesign.studyInterventions[*].id | list_item |
| interventions.name | $.studyDesign.studyInterventions[*].name | list_item |
| interventions.label | $.studyDesign.studyInterventions[*].label | list_item |
| interventions.type | $.studyDesign.studyInterventions[*].typeCode | list_item |
| interventions.description | $.studyDesign.studyInterventions[*].description | list_item |
| interventions.dose | $.studyDesign.studyInterventions[*].dose | list_item |
| interventions.doseUnits | $.studyDesign.studyInterventions[*].doseUnit.code | list_item |
| interventions.frequency | $.studyDesign.studyInterventions[*].frequency.code | list_item |
| interventions.route | $.studyDesign.studyInterventions[*].route.code | list_item |
| interventions.formulation | $.studyDesign.studyInterventions[*].productDesignation.code | list_item |
| interventions.duration | $.studyDesign.studyInterventions[*].duration | list_item |
| interventions.crossoverPeriod | $.extensionAttributes.crossoverPeriod | conditional |
| interventions.manufacturer | $.extensionAttributes.manufacturer | list_item |
| interventions.indNumber | $.studyDesign.studyInterventions[*].codes[?(@.typeCode=='IND')].code | list_item |
| interventions.assumptionNotes | $.extensionAttributes.assumptionNotes | list_item |
| interventions.pageNumber | $.extensionAttributes.pageNumber | list_item |
| interventions.pageSection | $.extensionAttributes.pageSection | list_item |
| eligibility_criteria.criterionId | $.studyDesign.population.criteria[*].id | list_item |
| eligibility_criteria.category | $.studyDesign.population.criteria[*].category.code | list_item |
| eligibility_criteria.text | $.studyDesign.population.criteria[*].text | list_item |
| eligibility_criteria.identifier | $.studyDesign.population.criteria[*].identifier | list_item |
| eligibility_criteria.structured | $.studyDesign.population.criteria[*].dictionaryCriteria | list_item |
| eligibility_criteria.operator | $.studyDesign.population.criteria[*].dictionaryCriteria[*].operator.code | list_item |
| eligibility_criteria.value | $.studyDesign.population.criteria[*].dictionaryCriteria[*].value | list_item |
| eligibility_criteria.units | $.studyDesign.population.criteria[*].dictionaryCriteria[*].unit.code | list_item |
| eligibility_criteria.timeframe | $.extensionAttributes.timeframe | list_item |
| eligibility_criteria.negationFlag | $.studyDesign.population.criteria[*].dictionaryCriteria[*].negationFlag | list_item |
| eligibility_criteria.assumption | $.extensionAttributes.assumption | list_item |
| eligibility_criteria.notes | $.extensionAttributes.notes | list_item |
| eligibility_criteria.pageNumber | $.extensionAttributes.pageNumber | list_item |
| crossover_design.sequenceId | $.studyDesign.studyArms[*].studyCells[*].id | conditional |
| crossover_design.sequenceName | $.studyDesign.studyArms[*].name | conditional |
| crossover_design.sequencePattern | $.extensionAttributes.sequencePattern | conditional |
| crossover_design.description | $.studyDesign.description | conditional |
| crossover_design.numberOfPeriods | $.studyDesign.studyEpochs[?(@.typeCode=='TREATMENT')].length() | conditional |
| crossover_design.periodInterventions | $.studyDesign.studyArms[*].studyCells[*].studyInterventions | conditional |
| crossover_design.washoutDuration | $.studyDesign.studyEpochs[?(@.typeCode=='WASHOUT')].duration | conditional |
| crossover_design.randomizationRatio | $.studyDesign.ratioAllocation | conditional |
| crossover_design.blockSize | $.extensionAttributes.blockSize | conditional |
| crossover_design.balancingFactor | $.extensionAttributes.balancingFactor | conditional |
| crossover_design.expectedN | $.studyDesign.population.plannedSubjectsNumber | conditional |
| crossover_design.pageNumber | $.extensionAttributes.pageNumber | conditional |
| crossover_design.pageSection | $.extensionAttributes.pageSection | conditional |
| objectives_and_endpoints.oeId | $.studyDesign.objectives[*].id | list_item |
| objectives_and_endpoints.name | $.studyDesign.objectives[*].name | list_item |
| objectives_and_endpoints.recordType | $.studyDesign.objectives[*].objectiveLevel.code | list_item |
| objectives_and_endpoints.level | $.studyDesign.objectives[*].objectiveLevel.code | list_item |
| objectives_and_endpoints.description | $.studyDesign.objectives[*].text | list_item |
| objectives_and_endpoints.purpose | $.studyDesign.objectives[*].description | list_item |
| objectives_and_endpoints.measurement | $.studyDesign.objectives[*].endpoints[*].name | list_item |
| objectives_and_endpoints.assessmentMethod | $.studyDesign.objectives[*].endpoints[*].purpose.code | list_item |
| objectives_and_endpoints.timepoint | $.studyDesign.objectives[*].endpoints[*].timepoints[*].value | list_item |
| objectives_and_endpoints.windowLow | $.studyDesign.objectives[*].endpoints[*].timepoints[*].windowLow | list_item |
| objectives_and_endpoints.windowHigh | $.studyDesign.objectives[*].endpoints[*].timepoints[*].windowHigh | list_item |
| objectives_and_endpoints.units | $.studyDesign.objectives[*].endpoints[*].unit.code | list_item |
| objectives_and_endpoints.statisticalMethod | $.studyDesign.objectives[*].endpoints[*].statisticalAnalysisPlan | list_item |
| objectives_and_endpoints.activityRefsText | $.extensionAttributes.activityRefsText | list_item |
| objectives_and_endpoints.encounterRefsText | $.extensionAttributes.encounterRefsText | list_item |
| objectives_and_endpoints.assumptionNotes | $.extensionAttributes.assumptionNotes | list_item |
| objectives_and_endpoints.pageNumber | $.extensionAttributes.pageNumber | list_item |
| activities.activityId | $.studyDesign.activities[*].id | list_item |
| activities.activityName | $.studyDesign.activities[*].name | list_item |
| activities.activityLabel | $.studyDesign.activities[*].label | list_item |
| activities.description | $.studyDesign.activities[*].description | list_item |
| activities.dataType | $.studyDesign.activities[*].definedProcedure.procedureType.code | list_item |
| activities.collectionMethod | $.studyDesign.activities[*].definedProcedure.methodType.code | list_item |
| activities.specimenType | $.studyDesign.activities[*].definedProcedure.specimenType.code | list_item |
| activities.frequency | $.extensionAttributes.frequency | list_item |
| activities.units | $.studyDesign.activities[*].definedProcedure.unit.code | list_item |
| activities.normalRange | $.extensionAttributes.normalRange | list_item |
| activities.assumption | $.extensionAttributes.assumption | list_item |
| activities.notes | $.extensionAttributes.notes | list_item |
| activities.pageNumber | $.extensionAttributes.pageNumber | list_item |
| activities.pageSection | $.extensionAttributes.pageSection | list_item |
| activities.activityCategory | $.extensionAttributes.activityCategory | list_item |
| activities.activityProcedure | $.extensionAttributes.activityProcedure | list_item |
| activities.assumptionNotes | $.extensionAttributes.assumptionNotes | list_item |
| activities.categorySequence | $.extensionAttributes.categorySequence | list_item |
| activities.footnoteMarkersUsed | $.extensionAttributes.footnoteMarkersUsed | list_item |
| activities.footnoteText | $.extensionAttributes.footnoteText | list_item |
| activities.visitHeaderText | $.extensionAttributes.visitHeaderText | list_item |
| activities.visitScheduleText | $.extensionAttributes.visitScheduleText | list_item |
| study_cells.cellId | $.studyDesign.studyArms[*].studyCells[*].id | list_item |
| study_cells.cellName | $.studyDesign.studyArms[*].studyCells[*].studyEpoch.name | list_item |
| study_cells.descriptionText | $.extensionAttributes.descriptionText | list_item |
| study_cells.purposeText | $.extensionAttributes.purposeText | list_item |
| study_cells.armRefsText | $.studyDesign.studyArms[*].studyCells[*].studyArm.name | list_item |
| study_cells.epochRefsText | $.studyDesign.studyArms[*].studyCells[*].studyEpoch.name | list_item |
| study_cells.interventionRefsText | $.studyDesign.studyArms[*].studyCells[*].studyInterventions[*].name | list_item |
| study_cells.activityRefsText | $.studyDesign.studyArms[*].studyCells[*].studyActivities[*].name | list_item |
| study_cells.durationText | $.extensionAttributes.durationText | list_item |
| study_cells.transitionRuleText | $.studyDesign.studyArms[*].studyCells[*].studyEpoch.transitionRule | list_item |
| study_cells.assumptionNotes | $.extensionAttributes.assumptionNotes | list_item |
| study_cells.pageNumber | $.extensionAttributes.pageNumber | list_item |
| study_cells.pageSection | $.extensionAttributes.pageSection | list_item |
| soa_activity.activityId | $.studyDesign.studyCells[*].studyActivities[*].id | list_item |
| soa_activity.activityProcedure | $.studyDesign.studyCells[*].studyActivities[*].definedProcedure.name | list_item |
| soa_activity.activityCategory | $.studyDesign.studyCells[*].studyActivities[*].definedProcedure.procedureType.code | list_item |
| soa_activity.categorySequence | $.SYSTEM_GENERATED | list_item |
| soa_activity.description | $.studyDesign.studyCells[*].studyActivities[*].description | list_item |
| soa_activity.visitHeaderText | $.extensionAttributes.visitHeaderText | list_item |
| soa_activity.visitScheduleText | $.extensionAttributes.visitScheduleText | list_item |
| soa_activity.footnoteMarkersUsed | $.extensionAttributes.footnoteMarkersUsed | list_item |
| soa_activity.footnoteText | $.extensionAttributes.footnoteText | list_item |
| soa_activity.assumptionNotes | $.extensionAttributes.assumptionNotes | list_item |
| soa_activity.pageNumber | $.extensionAttributes.pageNumber | list_item |
| soa_activity.pageSection | $.extensionAttributes.pageSection | list_item |
| soa_visit.visitId | $.studyDesign.encounters[*].id | list_item |
| soa_visit.visitName | $.studyDesign.encounters[*].name | list_item |
| soa_visit.visitOrder | $.studyDesign.encounters[*].studyDay.value | list_item |
| soa_visit.contextType | $.studyDesign.encounters[*].typeCode | list_item |
| soa_visit.contextValue | $.studyDesign.encounters[*].studyDay.value | list_item |
| soa_visit.pageNumber | $.extensionAttributes.pageNumber | list_item |
| soa_visit.pageSection | $.extensionAttributes.pageSection | list_item |
| safety_monitoring.monitoringId | $.studyDesign.safetyMonitoring[*].id | list_item |
| safety_monitoring.type | $.studyDesign.safetyMonitoring[*].typeCode | list_item |
| safety_monitoring.description | $.studyDesign.safetyMonitoring[*].description | list_item |
| safety_monitoring.schedule | $.studyDesign.safetyMonitoring[*].frequency.code | list_item |
| safety_monitoring.reportingWindow | $.studyDesign.safetyMonitoring[*].reportingWindow | list_item |
| safety_monitoring.escalationCriteria | $.extensionAttributes.escalationCriteria | list_item |
| safety_monitoring.gradingScale | $.extensionAttributes.gradingScale | list_item |
| safety_monitoring.action | $.extensionAttributes.action | list_item |
| safety_monitoring.endpointParameter | $.extensionAttributes.endpointParameter | list_item |
| safety_monitoring.encounterId | $.extensionAttributes.encounterId | list_item |
| safety_monitoring.assumptionNotes | $.extensionAttributes.assumptionNotes | list_item |
| safety_monitoring.pageNumber | $.extensionAttributes.pageNumber | list_item |
| protocol_version.versionId | $.studyDesign.studyProtocolVersions[*].id | singleton |
| protocol_version.versionNumber | $.studyDesign.studyProtocolVersions[*].protocolVersion | singleton |
| protocol_version.amendmentNumber | $.studyDesign.studyProtocolVersions[*].protocolAmendment | singleton |
| protocol_version.approvalDate | $.studyDesign.studyProtocolVersions[*].dateValues[?(@.typeCode=='APPROVAL')].dateValue | singleton |
| protocol_version.effectiveDate | $.studyDesign.studyProtocolVersions[*].dateValues[?(@.typeCode=='EFFECTIVE')].dateValue | singleton |
| protocol_version.reasonForAmendment | $.studyDesign.studyProtocolVersions[*].description | singleton |
| protocol_version.sectionsModified | $.extensionAttributes.sectionsModified | singleton |
| protocol_version.substantialChange | $.extensionAttributes.substantialChange | singleton |
| protocol_version.regulatoryStatus | $.extensionAttributes.regulatoryStatus | singleton |
| protocol_version.subjectsEnrolled | $.extensionAttributes.subjectsEnrolled | singleton |
| protocol_version.notes | $.extensionAttributes.notes | singleton |
| protocol_version.evidencePageNumbers | $.extensionAttributes.evidencePageNumbers | singleton |
| protocol_version.isLatestByOrdering | $.extensionAttributes.isLatestByOrdering | singleton |
| protocol_version.lifecycleStatus | $.extensionAttributes.lifecycleStatus | singleton |
| protocol_version.orderingMethod | $.extensionAttributes.orderingMethod | singleton |
| protocol_version.versionIdentifier | $.studyDesign.studyProtocolVersions[*].id | singleton |
| protocol_version.versionNotes | $.extensionAttributes.versionNotes | singleton |
| protocol_version.versionNumberRaw | $.extensionAttributes.versionNumberRaw | singleton |