
SDC form builders have many features listed on vendor sheets. Seven distinguish production-ready from checkbox-ready.
1. Full enableWhen and enableWhenExpression. Simple conditional visibility plus FHIRPath expression variants. Real intake forms need both.
2. Calculated expressions. calculatedExpression for auto-computed fields (BMI, PROMs total scores).
3. Server-side $extract. Convert QuestionnaireResponse into structured resources server-side.
4. Pre-population. Pull known Patient data into form via SDC pre-population extension.
5. Save-and-resume. Progressive save via status: in-progress.
6. Multi-language. Designations for translated question labels.
7. Accessibility (WCAG 2.1 AA). Keyboard nav, screen readers, contrast.
Vendor state (mid-2026)
| Builder | enableWhenExpression | Calculated | $extract | Pre-population | Multi-lang | WCAG |
|---|---|---|---|---|---|---|
| Aidbox Formbox | Full | Full | Full | Full | Full | Yes |
| LHC-Forms | Full | Full | Full | Full | Full | Yes |
| Smile CDR SDC | Full | Full | Both | Full | Partial | Yes |
| Firely SDC.NET | Full | Partial | Full | Full | Partial | Yes |
Selection considerations
1. Renderer completeness. Test against your Questionnaire. 2. Authoring experience. GUI vs. code. 3. Integration surface. FHIR store, EHR launch. 4. Enterprise features. Multi-tenant, audit, security. 5. Support quality. Vendor SLAs.
Common form builder mistakes
1. Ignoring enableWhenExpression support → real forms break. 2. Client-side calculation instead of server-side → inconsistency. 3. Missing $extract → structured data trapped. 4. Manual pre-population coding → error-prone. 5. No mobile-first design → poor UX.
Deployment considerations
1. Renderer performance on mobile. 2. Terminology binding at load time (cached expansions). 3. Save-and-resume UX. 4. Progress indicator. 5. Accessibility testing on real devices.
SDC form builders are commodity tooling for common use cases. Choose based on capability depth, not marketing polish.
