Read the current published DTR IG (the most recently published STU version at hl7.org/fhir/us/davinci-dtr) to understand the SMART on FHIR app launch parameters and the DTR Questionnaire FHIR profile requirements.
The EHR launches the DTR SMART app passing a launch context that includes the order, coverage, and patient in scope; the app uses these to call the payer's $questionnaire operation to retrieve the applicable Questionnaire resource.
The Questionnaire contains CQL library references; execute the embedded CQL against the EHR FHIR server to auto-populate answers from existing clinical data — minimize manual entry by pre-filling every answerable item.
Render remaining unanswered questions in the SMART app UI; validate required fields and value-set bindings before allowing submission to avoid server-side validation rejections.
Submit the completed QuestionnaireResponse to the payer's FHIR endpoint (or bundle it with the PAS $submit operation for combined PA + documentation flow); store the QuestionnaireResponse reference on the originating ServiceRequest.
Handle the case where the payer returns an updated Questionnaire mid-session (payer adaptive forms); re-execute CQL prefill on new items and prompt the clinician only for newly introduced unanswered questions.
Known gotchas
CQL engines vary in FHIR version support; confirm the EHR's embedded CQL engine supports FHIR R4 and the FHIRHelpers library version referenced by the payer's Questionnaire before going live.
The DTR app must use the patient's FHIR access token, not a system token, to query the EHR — using a backend service token causes the EHR to reject queries for patient-context resources.
Payers may serve adaptive Questionnaires that require round-trip calls to a payer $next-question operation; treating the initial Questionnaire as final causes incomplete documentation submissions.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp