FHIR Questionnaire logic

Check whether supported enableWhen rules can ever enable the item.

FormPath complements a FHIR validator. A validator checks conformance; FormPath asks whether supported Questionnaire conditions can be satisfied by the inline answer values in the supplied resource.

FHIR logic is translated into a regression-tested internal model before checking. The report labels that boundary and keeps FHIRPath, CQL, external terminology, runtime context, and renderer behavior outside proof claims.

Questionnaire JSON is processed in this browser. No Questionnaire Response or patient data is needed.

Supported core

Definition-level checks for finite enableWhen logic.

The useful question is narrower than “is this valid FHIR?” and more specific than manually clicking one route through a form.

01

Inline answerOption codes

Compare supported conditions with string, numeric, Boolean, date-like, and bare Coding values supplied directly in the Questionnaire.

Translated values
02

Core enableWhen comparisons

Check equality, inequality, ordered comparisons, and existence conditions in the supported finite model.

Translated conditions
03

Explicit all or any behavior

Combine multiple conditions only when a valid enableBehavior says whether all or any must hold.

No guessed behavior
04

Broken linkId dependencies

Surface missing or ambiguous source items rather than strengthening a conclusion from an uncertain reference.

Boundary disclosed

Source-derived transcription

A follow-up waited for an answer that did not exist

In the retained transcription, the rule expects “vision-20-40,” but the checklist offers “vision.” The follow-up cannot be enabled by any offered answer.

The analyzed Questionnaire was hand-authored from a public CDC web form. It was not an original CDC FHIR resource, and FormPath did not replay the source website or a native FHIR renderer.

FP–FHIR–001Hand-authored FHIR transcription of a public CDC STEADI referral form
Translated-model proof

July 2026 review · hand-authored FHIR transcription of a public web form

A follow-up waited for an answer that did not exist

In the retained transcription, selecting the vision referral reason does not enable the side follow-up.

How checked
Checked against the listed answers after translating the hand-authored FHIR Questionnaire logic; no original CDC Questionnaire or native renderer was tested
Affected files
1 file
Evidence boundary
Supported Questionnaire logic was translated; no native renderer was replayed.
Inspect the evidence card
Controlling enableWhen rulereasons for referral = 'vision-20-40'
Available answer codes'foot-abnormalities', 'vision', 'balance-difficulties', …
TRANSLATED-MODEL PROOF

Complement, not replacement

Keep conformance and runtime semantics in their proper tools.

FHIR Questionnaire checks performed by FormPath and checks requiring other tools or native runtime confirmation
ConcernFormPath’s roleUse a validator or native runtime for
FHIR conformanceReads a Questionnaire as inputProfiles, cardinalities, terminology bindings, invariants, and general resource validation
Choice valuesUses supported inline answerOption valuesanswerValueSet, terminology expansion, and other external choices
Conditional logicChecks the supported core enableWhen translationFHIRPath/CQL expressions, launch context, prepopulation, calculated answers, and application data
User experienceProduces answer states and finite-model conclusionsRenderer behavior, navigation, repeating groups, data entry order, and QuestionnaireResponse lifecycle
Typed comparisonChecks supported bare valuesCoding system/version identity and unit-aware Quantity semantics

Report language

A translated proof answers one precise question.

  • “Proven unreachable” means no known inline answer satisfies the supported translated conditions and assumptions.
  • An external expression or terminology dependency remains unsupported—not silently treated as false.
  • FormPath does not certify FHIR conformance or replay a native Questionnaire renderer.
  • The analyzer does not resolve external ValueSets or request patient or launch-context data.

FHIR Questionnaire troubleshooting

Trace the enableWhen dependency.

Compare inline codes, make multiple-condition behavior explicit, or repair a missing linkId before relying on the branch.

01

FHIR enableWhen answer-code mismatch

Check whether a FHIR Questionnaire enableWhen condition expects a code that its source item never offers, while preserving terminology and runtime limits.

Read the guide
02

FHIR enableBehavior all or any

Choose and test FHIR Questionnaire enableBehavior when an item has multiple enableWhen conditions, including conditions that cannot all hold.

Read the guide
03

FHIR enableWhen missing linkId

Find an enableWhen question reference that no longer matches a Questionnaire item linkId without turning the missing dependency into a false proof.

Read the guide

Questionnaire only · no patient data

Try an unavailable enableWhen code.

The built-in Questionnaire is fictional. It contains an inline choice list and one follow-up waiting for a code that list never offers.

Open the FHIR sample