
Structured Data Capture (SDC) is where FHIR meets patient-facing and clinician-facing forms. Five patterns cover most production deployments in 2026.
1. Pre-population from existing FHIR resources. SDC's pre-population extension pulls current Patient, Observation, MedicationRequest values into the form on load. Patients don't retype known data; clinicians spot changes vs. baseline. The FHIRPath expressions live in the Questionnaire item definitions.
2. Conditional item visibility via enableWhen and enableWhenExpression. Basic conditional shows/hides work via enableWhen. Complex logic (multi-condition AND/OR) needs enableWhenExpression with FHIRPath. Renderers that only support the basic form quietly break on real intake logic.
3. $extract operation for structured data emission. The SDC IG's $extract operation converts QuestionnaireResponse into Observation, Condition, and other resources based on item definitions. Two open renderers implement this natively: LHC-Forms and Aidbox Formbox.
4. Save-and-resume via status: in-progress. Progressive save via PUT on partial QuestionnaireResponse keeps user state. Requires ETag/If-Match versioning to avoid overwriting concurrent updates.
5. Integration with SMART on FHIR launch. Forms launched via SMART launch context carry Patient, Practitioner, and Encounter context. The form pre-populates from all three; the extracted resources reference them.
Vendor state (mid-2026)
| Tool | Pre-population | enableWhenExpression |
$extract |
SMART launch |
|---|---|---|---|---|
| LHC-Forms | Yes | Yes | Yes | Yes |
| Aidbox Formbox | Yes | Yes | Yes | Yes |
| NLM Form Builder | Authoring only | Authoring only | N/A | N/A |
| Smile CDR SDC | Yes | Yes | Both | Yes |
SDC is genuinely production-ready — the tooling supports the ambitious patterns. The gaps live in enterprise integration (auth, event delivery, admin tooling), not in the FHIR primitives.

