SDC Form Building for Clinicians: 4 Practical Patterns

Four SDC form-building patterns for clinicians: item↔StructureDefinition, conditional visibility, calculated fields, multi-page navigation.

Building SDC-based clinical forms that clinicians actually use requires specific design patterns. Four cover most production form-authoring workflows.

Pattern 1: Item-linked to StructureDefinition. Each Questionnaire item references a specific element in a target StructureDefinition (e.g., Observation.valueQuantity.value). SDC $extract uses these links to create structured resources.

Pattern 2: Conditional item visibility. Use enableWhen for simple conditions, enableWhenExpression (FHIRPath) for complex logic. Real intake forms need both.

Pattern 3: Calculated fields. calculatedExpression computes derived values (BMI, PHQ-9 total). Reduces clinician data entry.

Pattern 4: Multi-page navigation. Long forms need progressive disclosure. Group items into groups; render one group per page.

Renderer capability requirements

Feature Renderer must support
Item-to-resource linkage Extract via definition extension
enableWhen expressions FHIRPath execution
Calculated expressions FHIRPath execution
Multi-page navigation Group-level render
Progress save in-progress status handling

Vendor state (mid-2026)

Renderer Definition linkage enableWhen expr Calculated Multi-page
LHC-Forms Full Full Full Yes
Aidbox Formbox Full Full Full Yes
Smile CDR SDC Full Full Full Yes
Firely SDC.NET Full Partial Partial Yes

Common form-building mistakes

1. Ignoring definition extension → can't auto-extract. 2. Using only basic enableWhen → breaks on multi-condition logic. 3. Computing derived values client-side → inconsistent with server extraction. 4. Single-page long forms → clinician friction.

SDC form building is production-mature. Get the four patterns right and the forms fit clinical workflow.