
SDC-based clinical form building follows five practices in production.
1. Item-to-StructureDefinition linkage. Every item references a target resource element via definition extension.
2. Conditional visibility. Use enableWhen for simple; enableWhenExpression for complex logic.
3. Calculated fields. calculatedExpression for auto-computed values (BMI, PROMs total).
4. Multi-page navigation. Group items; render one group per page.
5. Save-and-resume state. Progressive save via status: in-progress.
Renderer capability requirements
| Feature | Renderer needs |
|---|---|
| Definition linkage | Extract support |
| enableWhen expression | FHIRPath |
| Calculated | FHIRPath |
| Multi-page | Group rendering |
| Progress save | in-progress handling |
Vendor state (mid-2026)
| Renderer | Definition | 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 building mistakes
1. Ignoring definition extension. 2. Basic enableWhen only. 3. Client-side calculation. 4. Single-page long forms. 5. No save-resume.
Design testing
1. Test on mobile. 2. Test all logic paths. 3. Verify extraction. 4. Terminology binding. 5. Accessibility.
SDC form building is production-mature. The five practices above cover most productive forms.
