Da Vinci - Coverage Requirements Discovery
2.2.0-ballot - STU 2.2 Ballot United States of America flag

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.0-ballot 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: CRDHooksRequest - Detailed Descriptions

Page standards status: Trial-use Maturity Level: 4

Definitions for the CRDHooksRequest logical model.

Guidance on how to interpret the contents of this table can be foundhere

0. CDSHooksRequest
Definition

The data structure that used when invoking a CDS Hook service

ShortRequest for decision support
Control0..*
Is Modifierfalse
Logical ModelInstances of this logical model are not marked to be the target of a Reference
Invariantscds-r-1: if fhirAuthorization details are provided, a fhirServer SHALL be specified (fhirAuthorization.exists() implies fhirServer.exists())
2. CDSHooksRequest.extension
Definition

An Extension

ShortExtension
Control0..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions
4. CDSHooksRequest.hook
Definition

The hook that triggered this CDS Service call

ShortHook event triggering call
Control1..1
BindingThe codes SHALL be taken from CDS Hook Types Value Set
(required to http://hl7.org/fhir/us/davinci-crd/ValueSet/cdsHookType)
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
6. CDSHooksRequest.hookInstance
Definition

While working in the CDS Client, a user can perform multiple actions in series or in parallel. For example, a clinician might prescribe two drugs in a row; each prescription action would be assigned a unique hookInstance. This allows a CDS Service to uniquely identify each hook invocation

ShortUnique id for hook invocation
Comments

Note: the hookInstance is globally unique and should contain enough entropy to be un-guessable.

Control1..1
Typeuuid
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
String FormatWhen this element is read urn:uuid:is prefixed to the value before validation
8. CDSHooksRequest.fhirServer
Definition

The base URL of the CDS Client's FHIR server. If fhirAuthorization is provided, this field is REQUIRED. The scheme MUST be https when production data is exchanged

ShortLocation to query for data
Control1..1
Typeurl
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
10. CDSHooksRequest.fhirAuthorization
Definition

A structure holding an OAuth 2.0 bearer access token granting the CDS Service access to FHIR resources, along with supplemental information relating to the token

ShortAuth to use in queries
Control1..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement
Must Supporttrue
Invariantscds-r-2: 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())
12. CDSHooksRequest.fhirAuthorization.extension
Definition

A JSON object that has properties where the names are defined by the extension definitions

ShortObject that has Named Extension Properties
Comments

Extension structures SHOULD use a strategy for naming that ensures global uniqueness, such as reverse-domain-name notation, e.g. com.cds-hooks.sandbox.myextension-practitionerspecialty. How to handle complex extensions (objects) is not defined

Control0..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions
14. CDSHooksRequest.fhirAuthorization.accessToken
Definition

This is the OAuth 2.0 access token that provides access to the FHIR server

ShortAuth token for query header
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
JSON FormatThis property appears in JSON with the property nameaccess_token
16. CDSHooksRequest.fhirAuthorization.tokenType
Definition

The type of token provided. (Present to support future extensibility)

ShortBearer
Control1..1
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
JSON FormatThis property appears in JSON with the property nametoken_type
Fixed ValueBearer
18. CDSHooksRequest.fhirAuthorization.expiresIn
Definition

The lifetime in seconds of the access token.

ShortSeconds token is valid
Control1..1
Typeinteger
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
JSON FormatThis property appears in JSON with the property nameexpires_in
20. CDSHooksRequest.fhirAuthorization.scope
Definition

The scopes the access token grants the CDS Service

ShortGranted access scopes
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
22. CDSHooksRequest.fhirAuthorization.subject
Definition

If the granted SMART scopes include patient scopes (i.e. 'patient/'), the access token is restricted to a specific patient. This field SHOULD be populated to identify the FHIR id of that patient.

ShortPatient id for access
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
24. CDSHooksRequest.fhirAuthorization.patient
Definition

The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server

ShortOAuth 2.0 client identifier of the CDS Service
Control0..1
Typeid
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
26. CDSHooksRequest.context
Definition

Hook-specific contextual data that the CDS service will need

ShortContext for decision support
Control1..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHookContext
Type SpecifiersIf %resource.hook = 'appointment-book' then the type is CDSHookAppointmentBookContext
If %resource.hook = 'encounter-start' then the type is CDSHookEncounterStartContext
If %resource.hook = 'encounter-discharge' then the type is CDSHookEncounterDischargeContext
If %resource.hook = 'patient-view' then the type is CDSHookPatientViewContext
If %resource.hook = 'order-dispatch' then the type is CDSHookOrderDispatchContext
If %resource.hook = 'order-sign' then the type is CDSHookOrderSignContext
If %resource.hook = 'order-select' then the type is CDSHookOrderSelectContext
Must Supporttrue
28. CDSHooksRequest.prefetch
Definition

An object containing key/value pairs of FHIR queries that this Request is requesting the CDS Client to perform and provide on each Request call. The key is a string that describes the type of data being requested and the value is a string representing the FHIR query

ShortPrefetch info requested by server
Comments

While this is mustSupport, CRD clients are not required to pass any or all prefetch data requested by the CRD service.

Control0..*
TypeBase
Must Supporttrue
JSON FormatThis repeating object is represented as a single JSON object with named properties. The name of the property (key) is the value of thekey child
30. CDSHooksRequest.prefetch.key
Definition

Name of the FHIR query/read from the CDS Hooks Services object provided by the server

ShortKey as specfied in server prefetch config
Control1..1
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
32. CDSHooksRequest.prefetch.value
Definition

What was found by executing the search or read requested by the CDS Hooks Service in the context of this particular hook invocation

ShortResource(s) matching prefetch criteria
Control1..1
TypeResource
Must Supporttrue
ID ExpectationId may or not be present (this is the default for elements but not resources)
JSON FormatThis object can be represented as null in the JSON structure (which counts as 'present' for cardinality purposes)

Guidance on how to interpret the contents of this table can be foundhere

0. CDSHooksRequest
ShortRequest for decision support
Logical ModelInstances of this logical model are not marked to be the target of a Reference
2. CDSHooksRequest.extension
4. CDSHooksRequest.hook
ShortHook event triggering call
BindingThe codes SHALL be taken from CDS Hook Types Value Set
(required to http://hl7.org/fhir/us/davinci-crd/ValueSet/cdsHookType)
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
6. CDSHooksRequest.hookInstance
ShortUnique id for hook invocation
Must Supporttrue
8. CDSHooksRequest.fhirServer
ShortLocation to query for data
Control1..?
Must Supporttrue
10. CDSHooksRequest.fhirAuthorization
ShortAuth to use in queries
Control1..?
Must Supporttrue
12. CDSHooksRequest.fhirAuthorization.accessToken
ShortAuth token for query header
Must Supporttrue
14. CDSHooksRequest.fhirAuthorization.tokenType
Must Supporttrue
16. CDSHooksRequest.fhirAuthorization.expiresIn
ShortSeconds token is valid
Must Supporttrue
18. CDSHooksRequest.fhirAuthorization.scope
ShortGranted access scopes
Must Supporttrue
20. CDSHooksRequest.fhirAuthorization.subject
Definition

If the granted SMART scopes include patient scopes (i.e. 'patient/'), the access token is restricted to a specific patient. This field SHOULD be populated to identify the FHIR id of that patient.

ShortPatient id for access
Must Supporttrue
22. CDSHooksRequest.context
ShortContext for decision support
Type SpecifiersIf %resource.hook = 'appointment-book' then the type is http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookAppointmentBookContext
If %resource.hook = 'encounter-start' then the type is http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterStartContext
If %resource.hook = 'encounter-discharge' then the type is http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterDischargeContext
If %resource.hook = 'order-dispatch' then the type is http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDOrderDispatchContext
If %resource.hook = 'order-select' then the type is http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext
If %resource.hook = 'order-sign' then the type is http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext
Must Supporttrue
24. CDSHooksRequest.prefetch
ShortPrefetch info requested by server
Comments

While this is mustSupport, CRD clients are not required to pass any or all prefetch data requested by the CRD service.

Must Supporttrue
26. CDSHooksRequest.prefetch.key
ShortKey as specfied in server prefetch config
Must Supporttrue
28. CDSHooksRequest.prefetch.value
ShortResource(s) matching prefetch criteria
Must Supporttrue

Guidance on how to interpret the contents of this table can be foundhere

0. CDSHooksRequest
Definition

The data structure that used when invoking a CDS Hook service

ShortRequest for decision support
Control0..*
Is Modifierfalse
Logical ModelInstances of this logical model are not marked to be the target of a Reference
Invariantscds-r-1: if fhirAuthorization details are provided, a fhirServer SHALL be specified (fhirAuthorization.exists() implies fhirServer.exists())
2. CDSHooksRequest.extension
Definition

An Extension

ShortExtension
Control0..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions
4. CDSHooksRequest.hook
Definition

The hook that triggered this CDS Service call

ShortHook event triggering call
Control1..1
BindingThe codes SHALL be taken from CDS Hook Types Value Set
(required to http://hl7.org/fhir/us/davinci-crd/ValueSet/cdsHookType)
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
6. CDSHooksRequest.hookInstance
Definition

While working in the CDS Client, a user can perform multiple actions in series or in parallel. For example, a clinician might prescribe two drugs in a row; each prescription action would be assigned a unique hookInstance. This allows a CDS Service to uniquely identify each hook invocation

ShortUnique id for hook invocation
Comments

Note: the hookInstance is globally unique and should contain enough entropy to be un-guessable.

Control1..1
Typeuuid
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
String FormatWhen this element is read urn:uuid:is prefixed to the value before validation
8. CDSHooksRequest.fhirServer
Definition

The base URL of the CDS Client's FHIR server. If fhirAuthorization is provided, this field is REQUIRED. The scheme MUST be https when production data is exchanged

ShortLocation to query for data
Control1..1
Typeurl
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
10. CDSHooksRequest.fhirAuthorization
Definition

A structure holding an OAuth 2.0 bearer access token granting the CDS Service access to FHIR resources, along with supplemental information relating to the token

ShortAuth to use in queries
Control1..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement
Must Supporttrue
Invariantscds-r-2: 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())
12. CDSHooksRequest.fhirAuthorization.extension
Definition

A JSON object that has properties where the names are defined by the extension definitions

ShortObject that has Named Extension Properties
Comments

Extension structures SHOULD use a strategy for naming that ensures global uniqueness, such as reverse-domain-name notation, e.g. com.cds-hooks.sandbox.myextension-practitionerspecialty. How to handle complex extensions (objects) is not defined

Control0..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions
14. CDSHooksRequest.fhirAuthorization.accessToken
Definition

This is the OAuth 2.0 access token that provides access to the FHIR server

ShortAuth token for query header
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
JSON FormatThis property appears in JSON with the property nameaccess_token
16. CDSHooksRequest.fhirAuthorization.tokenType
Definition

The type of token provided. (Present to support future extensibility)

ShortBearer
Control1..1
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
JSON FormatThis property appears in JSON with the property nametoken_type
Fixed ValueBearer
18. CDSHooksRequest.fhirAuthorization.expiresIn
Definition

The lifetime in seconds of the access token.

ShortSeconds token is valid
Control1..1
Typeinteger
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
JSON FormatThis property appears in JSON with the property nameexpires_in
20. CDSHooksRequest.fhirAuthorization.scope
Definition

The scopes the access token grants the CDS Service

ShortGranted access scopes
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
22. CDSHooksRequest.fhirAuthorization.subject
Definition

If the granted SMART scopes include patient scopes (i.e. 'patient/'), the access token is restricted to a specific patient. This field SHOULD be populated to identify the FHIR id of that patient.

ShortPatient id for access
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
24. CDSHooksRequest.fhirAuthorization.patient
Definition

The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server

ShortOAuth 2.0 client identifier of the CDS Service
Control0..1
Typeid
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
26. CDSHooksRequest.context
Definition

Hook-specific contextual data that the CDS service will need

ShortContext for decision support
Control1..1
Typehttp://hl7.org/fhir/tools/StructureDefinition/CDSHookContext
Type SpecifiersIf %resource.hook = 'appointment-book' then the type is CDSHookAppointmentBookContext
If %resource.hook = 'encounter-start' then the type is CDSHookEncounterStartContext
If %resource.hook = 'encounter-discharge' then the type is CDSHookEncounterDischargeContext
If %resource.hook = 'patient-view' then the type is CDSHookPatientViewContext
If %resource.hook = 'order-dispatch' then the type is CDSHookOrderDispatchContext
If %resource.hook = 'order-sign' then the type is CDSHookOrderSignContext
If %resource.hook = 'order-select' then the type is CDSHookOrderSelectContext
Must Supporttrue
28. CDSHooksRequest.prefetch
Definition

An object containing key/value pairs of FHIR queries that this Request is requesting the CDS Client to perform and provide on each Request call. The key is a string that describes the type of data being requested and the value is a string representing the FHIR query

ShortPrefetch info requested by server
Comments

While this is mustSupport, CRD clients are not required to pass any or all prefetch data requested by the CRD service.

Control0..*
TypeBase
Must Supporttrue
JSON FormatThis repeating object is represented as a single JSON object with named properties. The name of the property (key) is the value of thekey child
30. CDSHooksRequest.prefetch.key
Definition

Name of the FHIR query/read from the CDS Hooks Services object provided by the server

ShortKey as specfied in server prefetch config
Control1..1
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
32. CDSHooksRequest.prefetch.value
Definition

What was found by executing the search or read requested by the CDS Hooks Service in the context of this particular hook invocation

ShortResource(s) matching prefetch criteria
Control1..1
TypeResource
Must Supporttrue
ID ExpectationId may or not be present (this is the default for elements but not resources)
JSON FormatThis object can be represented as null in the JSON structure (which counts as 'present' for cardinality purposes)