Da Vinci - Coverage Requirements Discovery
2.2.1 - STU 2.2

Da Vinci - Coverage Requirements Discovery, published by HL7 International / Financial Management. This guide is not an authorized publication; it is the continuous build for version 2.2.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/davinci-crd/ and changes regularly. See the Directory of published versions

## Logical Model: CRD CDSHooks Request (Logical Definition)

Official URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/CRDHooksRequest | Version: 2.2.1 | Highlight text changes?
Standards status: Trial-use Active as of 2026-03-26 | Maturity Level: 4 | Computable Name: CRDHooksRequest
Other Identifiers: OID:2.16.840.1.113883.4.642.40.18.42.34

Defines CRD-specific constraints on the CDS Hooks Request logical model

Usages:

- This Logical Model Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CDSHooksRequest |  | 0..* | CDSHooksRequest | Request for decision support
extension |  | 0..1 | CDSHooksExtensions | Extension
hook | S | 1..1 | code | Hook event triggering call Binding: CDS Hook Types Value Set (required)
hookInstance | S | 1..1 | uuid | Unique id for hook invocation
fhirServer | S | 1..1 | url | Location to query for data
fhirAuthorization | S | 1..1 | CDSHooksElement | Auth to use in queries
accessToken | S | 1..1 | string | Auth token for query header
tokenType | S | 1..1 | code | Bearer
expiresIn | S | 1..1 | integer | Seconds token is valid
scope | S | 1..1 | string | Granted access scopes
subject | S | 1..1 | string | Patient id for access
context | S | 1..1 | CDSHookContext | Context for decision support JSON: If`%resource.hook = 'appointment-book'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookAppointmentBookContext` JSON: If`%resource.hook = 'encounter-start'`then the type is `http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterStartContext` JSON: If`%resource.hook = 'encounter-discharge'`then the type is `http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterDischargeContext` JSON: If`%resource.hook = 'order-dispatch'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDOrderDispatchContext` JSON: If`%resource.hook = 'order-select'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext` JSON: If`%resource.hook = 'order-sign'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext`
prefetch | S | 0..* | Base | Prefetch info requested by server
key | S | 1..1 | code | Key as specfied in server prefetch config
value | S | 1..1 | Resource | Resource(s) matching prefetch criteria
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
CDSHooksRequest.hook | Base | required | CDS Hook Types Value Set | 📦2.2.1 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CDSHooksRequest | C | 0..* | CDSHooksRequest | Request for decision support Constraints: cds-r-1
extension |  | 0..1 | CDSHooksExtensions | Extension
hook | S | 1..1 | code | Hook event triggering call Binding: CDS Hook Types Value Set (required)
hookInstance | S | 1..1 | uuid | Unique id for hook invocation When this element is read `urn:uuid:` is prefixed to the value before validation
fhirServer | S | 1..1 | url | Location to query for data
fhirAuthorization | S C | 1..1 | CDSHooksElement | Auth to use in queries Constraints: cds-r-2
extension |  | 0..1 | CDSHooksExtensions | Object that has Named Extension Properties
accessToken | S | 1..1 | string | Auth token for query header JSON Property Name: access_token
tokenType | S | 1..1 | code | Bearer JSON Property Name: token_type Fixed Value: Bearer
expiresIn | S | 1..1 | integer | Seconds token is valid JSON Property Name: expires_in
scope | S | 1..1 | string | Granted access scopes
subject | S | 1..1 | string | Patient id for access
patient |  | 0..1 | id | OAuth 2.0 client identifier of the CDS Service
context | S | 1..1 | CDSHookContext | Context for decision support JSON: If`%resource.hook = 'appointment-book'`then the type is CDSHookAppointmentBookContext JSON: If`%resource.hook = 'encounter-start'`then the type is CDSHookEncounterStartContext JSON: If`%resource.hook = 'encounter-discharge'`then the type is CDSHookEncounterDischargeContext JSON: If`%resource.hook = 'patient-view'`then the type is CDSHookPatientViewContext JSON: If`%resource.hook = 'order-dispatch'`then the type is CDSHookOrderDispatchContext JSON: If`%resource.hook = 'order-sign'`then the type is CDSHookOrderSignContext JSON: If`%resource.hook = 'order-select'`then the type is CDSHookOrderSelectContext
prefetch | S | 0..* | Base | Prefetch info requested by server JSON: Represented as a single JSON Object with named properties using the value of the key child as the key
key | S | 1..1 | code | Key as specfied in server prefetch config
value | S | 1..1 | Resource | Resource(s) matching prefetch criteria Id may or not be present (this is the default for elements but not resources) JSON: This object can be represented as null in the JSON structure (which counts as 'present' for cardinality purposes)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
CDSHooksRequest.hook | Base | required | CDS Hook Types Value Set | 📦2.2.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
cds-r-1 | error | CDSHooksRequest | if fhirAuthorization details are provided, a fhirServer SHALL be specified | `fhirAuthorization.exists() implies fhirServer.exists()`
cds-r-2 | error | CDSHooksRequest.fhirAuthorization | If the granted SMART scopes include patient scopes (i.e. 'patient/'), the patient field SHOULD be populated to identify the FHIR id of that patient. | `scope.contains('Patient/') implies patient.exists()`

Summary

Mandatory: 2 elements
Must-Support: 13 elements

Maturity: 4

Differential View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CDSHooksRequest |  | 0..* | CDSHooksRequest | Request for decision support
extension |  | 0..1 | CDSHooksExtensions | Extension
hook | S | 1..1 | code | Hook event triggering call Binding: CDS Hook Types Value Set (required)
hookInstance | S | 1..1 | uuid | Unique id for hook invocation
fhirServer | S | 1..1 | url | Location to query for data
fhirAuthorization | S | 1..1 | CDSHooksElement | Auth to use in queries
accessToken | S | 1..1 | string | Auth token for query header
tokenType | S | 1..1 | code | Bearer
expiresIn | S | 1..1 | integer | Seconds token is valid
scope | S | 1..1 | string | Granted access scopes
subject | S | 1..1 | string | Patient id for access
context | S | 1..1 | CDSHookContext | Context for decision support JSON: If`%resource.hook = 'appointment-book'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookAppointmentBookContext` JSON: If`%resource.hook = 'encounter-start'`then the type is `http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterStartContext` JSON: If`%resource.hook = 'encounter-discharge'`then the type is `http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterDischargeContext` JSON: If`%resource.hook = 'order-dispatch'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDOrderDispatchContext` JSON: If`%resource.hook = 'order-select'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext` JSON: If`%resource.hook = 'order-sign'`then the type is `http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext`
prefetch | S | 0..* | Base | Prefetch info requested by server
key | S | 1..1 | code | Key as specfied in server prefetch config
value | S | 1..1 | Resource | Resource(s) matching prefetch criteria
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
CDSHooksRequest.hook | Base | required | CDS Hook Types Value Set | 📦2.2.1 | This IG

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
CDSHooksRequest | C | 0..* | CDSHooksRequest | Request for decision support Constraints: cds-r-1
extension |  | 0..1 | CDSHooksExtensions | Extension
hook | S | 1..1 | code | Hook event triggering call Binding: CDS Hook Types Value Set (required)
hookInstance | S | 1..1 | uuid | Unique id for hook invocation When this element is read `urn:uuid:` is prefixed to the value before validation
fhirServer | S | 1..1 | url | Location to query for data
fhirAuthorization | S C | 1..1 | CDSHooksElement | Auth to use in queries Constraints: cds-r-2
extension |  | 0..1 | CDSHooksExtensions | Object that has Named Extension Properties
accessToken | S | 1..1 | string | Auth token for query header JSON Property Name: access_token
tokenType | S | 1..1 | code | Bearer JSON Property Name: token_type Fixed Value: Bearer
expiresIn | S | 1..1 | integer | Seconds token is valid JSON Property Name: expires_in
scope | S | 1..1 | string | Granted access scopes
subject | S | 1..1 | string | Patient id for access
patient |  | 0..1 | id | OAuth 2.0 client identifier of the CDS Service
context | S | 1..1 | CDSHookContext | Context for decision support JSON: If`%resource.hook = 'appointment-book'`then the type is CDSHookAppointmentBookContext JSON: If`%resource.hook = 'encounter-start'`then the type is CDSHookEncounterStartContext JSON: If`%resource.hook = 'encounter-discharge'`then the type is CDSHookEncounterDischargeContext JSON: If`%resource.hook = 'patient-view'`then the type is CDSHookPatientViewContext JSON: If`%resource.hook = 'order-dispatch'`then the type is CDSHookOrderDispatchContext JSON: If`%resource.hook = 'order-sign'`then the type is CDSHookOrderSignContext JSON: If`%resource.hook = 'order-select'`then the type is CDSHookOrderSelectContext
prefetch | S | 0..* | Base | Prefetch info requested by server JSON: Represented as a single JSON Object with named properties using the value of the key child as the key
key | S | 1..1 | code | Key as specfied in server prefetch config
value | S | 1..1 | Resource | Resource(s) matching prefetch criteria Id may or not be present (this is the default for elements but not resources) JSON: This object can be represented as null in the JSON structure (which counts as 'present' for cardinality purposes)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
CDSHooksRequest.hook | Base | required | CDS Hook Types Value Set | 📦2.2.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
cds-r-1 | error | CDSHooksRequest | if fhirAuthorization details are provided, a fhirServer SHALL be specified | `fhirAuthorization.exists() implies fhirServer.exists()`
cds-r-2 | error | CDSHooksRequest.fhirAuthorization | If the granted SMART scopes include patient scopes (i.e. 'patient/'), the patient field SHOULD be populated to identify the FHIR id of that patient. | `scope.contains('Patient/') implies patient.exists()`

Summary

Mandatory: 2 elements
Must-Support: 13 elements

Maturity: 4

Other representations of profile: CSV, Excel