Package | hl7.fhir.us.davinci-crd |
Resource Type | StructureDefinition |
Id | CRDHooksRequest |
FHIR Version | R4 |
Source | http://hl7.org/fhir/us/davinci-crd/https://build.fhir.org/ig/HL7/davinci-crd/StructureDefinition-CRDHooksRequest.html |
URL | http://hl7.org/fhir/us/davinci-crd/StructureDefinition/CRDHooksRequest |
Version | 2.2.0-ballot |
Status | active |
Date | 2025-07-30T21:58:39+00:00 |
Name | CRDHooksRequest |
Title | CRD CDSHooks Request (Logical Definition) |
Realm | us |
Authority | hl7 |
Description | Defines CRD-specific constraints on the CDS Hooks Request logical model |
Type | http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest |
Kind | logical |
No resources found
StructureDefinition | |
CDSHooksRequest | CDSHooks Request (Logical Definition) |
ValueSet | |
cdsHookType | CDS Hook Types Value Set |
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureDefinition CRDHooksRequest
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
![]() ![]() | 0..* | CDSHooksRequest | Elements defined in Ancestors:extension, hook, hookInstance, fhirServer, fhirAuthorization, context, prefetch Request for decision support | |
![]() ![]() ![]() | 0..1 | CDSHooksExtensions | Extension | |
![]() ![]() ![]() | S | 1..1 | code | Hook event triggering call Binding: CDS Hook Types Value Set (required) |
![]() ![]() ![]() | S | 1..1 | uuid | Unique id for hook invocation |
![]() ![]() ![]() | S | 1..1 | url | Location to query for data |
![]() ![]() ![]() | S | 1..1 | CDSHooksElement | Auth to use in queries |
![]() ![]() ![]() ![]() | S | 1..1 | string | Auth token for query header |
![]() ![]() ![]() ![]() | S | 1..1 | code | Bearer |
![]() ![]() ![]() ![]() | S | 1..1 | integer | Seconds token is valid |
![]() ![]() ![]() ![]() | S | 1..1 | string | Granted access scopes |
![]() ![]() ![]() ![]() | S | 1..1 | string | Patient id for access |
![]() ![]() ![]() | 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 |
![]() ![]() ![]() | S | 0..* | Base | Prefetch info requested by server |
![]() ![]() ![]() ![]() | S | 1..1 | code | Key as specfied in server prefetch config |
![]() ![]() ![]() ![]() | S | 1..1 | Resource | Resource(s) matching prefetch criteria |
{ "resourceType": "StructureDefinition", "id": "CRDHooksRequest", "text": { "status": "extensions", "div": "<!-- snip (see above) -->" }, "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/json-suppress-resourcetype", "valueBoolean": true }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg", "valueCode": "fm" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm", "valueInteger": 4, "_valueInteger": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom", "valueCanonical": "http://hl7.org/fhir/us/davinci-crd/ImplementationGuide/davinci-crd" } ] } }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", "valueCode": "trial-use", "_valueCode": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom", "valueCanonical": "http://hl7.org/fhir/us/davinci-crd/ImplementationGuide/davinci-crd" } ] } } ], "url": "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/CRDHooksRequest", "identifier": [ { "system": "urn:ietf:rfc:3986", "value": "urn:oid:2.16.840.1.113883.4.642.40.18.42.34" } ], "version": "2.2.0-ballot", "name": "CRDHooksRequest", "title": "CRD CDSHooks Request (Logical Definition)", "status": "active", "date": "2025-07-30T21:58:39+00:00", "publisher": "HL7 International / Financial Management", "contact": [ { "telecom": [ { "system": "url", "value": "http://www.hl7.org/Special/committees/fm" } ] } ], "description": "Defines CRD-specific constraints on the CDS Hooks Request logical model", "jurisdiction": [ { "coding": [ { "system": "urn:iso:std:iso:3166", "code": "US" } ] } ], "fhirVersion": "4.0.1", "mapping": [ { "identity": "rim", "uri": "http://hl7.org/v3", "name": "RIM Mapping" } ], "kind": "logical", "abstract": false, "type": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest", "baseDefinition": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest", "derivation": "constraint", "snapshot": { "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version", "valueString": "0.7.1" } ], "element": [ { "id": "CDSHooksRequest", "path": "CDSHooksRequest", "short": "Request for decision support", "definition": "The data structure that used when invoking a CDS Hook service", "min": 0, "max": "*", "base": { "path": "Base", "min": 0, "max": "*" }, "constraint": [ { "key": "cds-r-1", "severity": "error", "human": "if fhirAuthorization details are provided, a fhirServer SHALL be specified", "expression": "fhirAuthorization.exists() implies fhirServer.exists()", "source": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest" } ], "isModifier": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "CDSHooksRequest.extension", "path": "CDSHooksRequest.extension", "short": "Extension", "definition": "An Extension", "min": 0, "max": "1", "base": { "path": "CDSHooksElement.extension", "min": 0, "max": "1" }, "type": [ { "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions" } ] }, { "id": "CDSHooksRequest.hook", "path": "CDSHooksRequest.hook", "short": "Hook event triggering call", "definition": "The hook that triggered this CDS Service call", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.hook", "min": 1, "max": "1" }, "type": [ { "code": "code" } ], "mustSupport": true, "binding": { "strength": "required", "valueSet": "http://hl7.org/fhir/us/davinci-crd/ValueSet/cdsHookType" } }, { "id": "CDSHooksRequest.hookInstance", "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix", "valueString": "urn:uuid:" } ], "path": "CDSHooksRequest.hookInstance", "short": "Unique id for hook invocation", "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", "comment": "Note: the hookInstance is globally unique and should contain enough entropy to be un-guessable.", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.hookInstance", "min": 1, "max": "1" }, "type": [ { "code": "uuid" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirServer", "path": "CDSHooksRequest.fhirServer", "short": "Location to query for data", "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", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirServer", "min": 0, "max": "1" }, "type": [ { "code": "url" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization", "path": "CDSHooksRequest.fhirAuthorization", "short": "Auth to use in queries", "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", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization", "min": 0, "max": "1" }, "type": [ { "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement" } ], "constraint": [ { "key": "cds-r-2", "severity": "error", "human": "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.", "expression": "scope.contains('Patient/') implies patient.exists()", "source": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.extension", "path": "CDSHooksRequest.fhirAuthorization.extension", "short": "Object that has Named Extension Properties", "definition": "A JSON object that has properties where the names are defined by the extension definitions", "comment": "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", "min": 0, "max": "1", "base": { "path": "CDSHooksElement.extension", "min": 0, "max": "1" }, "type": [ { "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions" } ] }, { "id": "CDSHooksRequest.fhirAuthorization.accessToken", "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/json-name", "valueString": "access_token" } ], "path": "CDSHooksRequest.fhirAuthorization.accessToken", "short": "Auth token for query header", "definition": "This is the OAuth 2.0 access token that provides access to the FHIR server", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization.accessToken", "min": 1, "max": "1" }, "type": [ { "code": "string" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.tokenType", "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/json-name", "valueString": "token_type" } ], "path": "CDSHooksRequest.fhirAuthorization.tokenType", "short": "Bearer", "definition": "The type of token provided. (Present to support future extensibility)", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization.tokenType", "min": 1, "max": "1" }, "type": [ { "code": "code" } ], "fixedCode": "Bearer", "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.expiresIn", "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/json-name", "valueString": "expires_in" } ], "path": "CDSHooksRequest.fhirAuthorization.expiresIn", "short": "Seconds token is valid", "definition": "The lifetime in seconds of the access token.", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization.expiresIn", "min": 1, "max": "1" }, "type": [ { "code": "integer" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.scope", "path": "CDSHooksRequest.fhirAuthorization.scope", "short": "Granted access scopes", "definition": "The scopes the access token grants the CDS Service", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization.scope", "min": 1, "max": "1" }, "type": [ { "code": "string" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.subject", "path": "CDSHooksRequest.fhirAuthorization.subject", "short": "Patient id for access", "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.", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization.subject", "min": 1, "max": "1" }, "type": [ { "code": "string" } ], "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.patient", "path": "CDSHooksRequest.fhirAuthorization.patient", "short": "OAuth 2.0 client identifier of the CDS Service", "definition": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server", "min": 0, "max": "1", "base": { "path": "CDSHooksRequest.fhirAuthorization.patient", "min": 0, "max": "1" }, "type": [ { "code": "id" } ] }, { "id": "CDSHooksRequest.context", "extension": [ { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'appointment-book'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookAppointmentBookContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'encounter-start'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookEncounterStartContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'encounter-discharge'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookEncounterDischargeContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'patient-view'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookPatientViewContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'order-dispatch'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookOrderDispatchContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'order-sign'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookOrderSignContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'order-select'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookOrderSelectContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" } ], "path": "CDSHooksRequest.context", "short": "Context for decision support", "definition": "Hook-specific contextual data that the CDS service will need", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.context", "min": 1, "max": "1" }, "type": [ { "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookContext" } ], "mustSupport": true }, { "id": "CDSHooksRequest.prefetch", "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/json-property-key", "valueCode": "key" } ], "path": "CDSHooksRequest.prefetch", "short": "Prefetch info requested by server", "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", "comment": "While this is mustSupport, CRD clients are not required to pass any or all prefetch data requested by the CRD service.", "min": 0, "max": "*", "base": { "path": "CDSHooksRequest.prefetch", "min": 0, "max": "*" }, "type": [ { "code": "Base" } ], "mustSupport": true }, { "id": "CDSHooksRequest.prefetch.key", "path": "CDSHooksRequest.prefetch.key", "short": "Key as specfied in server prefetch config", "definition": "Name of the FHIR query/read from the CDS Hooks Services object provided by the server", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.prefetch.key", "min": 1, "max": "1" }, "type": [ { "code": "code" } ], "mustSupport": true }, { "id": "CDSHooksRequest.prefetch.value", "extension": [ { "url": "http://hl7.org/fhir/tools/StructureDefinition/json-nullable", "valueBoolean": true }, { "url": "http://hl7.org/fhir/tools/StructureDefinition/id-expectation", "valueCode": "optional" } ], "path": "CDSHooksRequest.prefetch.value", "short": "Resource(s) matching prefetch criteria", "definition": "What was found by executing the search or read requested by the CDS Hooks Service in the context of this particular hook invocation", "min": 1, "max": "1", "base": { "path": "CDSHooksRequest.prefetch.value", "min": 1, "max": "1" }, "type": [ { "code": "Resource" } ], "mustSupport": true } ] }, "differential": { "element": [ { "id": "CDSHooksRequest", "path": "CDSHooksRequest", "short": "Request for decision support" }, { "id": "CDSHooksRequest.extension", "path": "CDSHooksRequest.extension" }, { "id": "CDSHooksRequest.hook", "path": "CDSHooksRequest.hook", "short": "Hook event triggering call", "type": [ { "code": "code" } ], "mustSupport": true, "binding": { "strength": "required", "valueSet": "http://hl7.org/fhir/us/davinci-crd/ValueSet/cdsHookType" } }, { "id": "CDSHooksRequest.hookInstance", "path": "CDSHooksRequest.hookInstance", "short": "Unique id for hook invocation", "mustSupport": true }, { "id": "CDSHooksRequest.fhirServer", "path": "CDSHooksRequest.fhirServer", "short": "Location to query for data", "min": 1, "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization", "path": "CDSHooksRequest.fhirAuthorization", "short": "Auth to use in queries", "min": 1, "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.accessToken", "path": "CDSHooksRequest.fhirAuthorization.accessToken", "short": "Auth token for query header", "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.tokenType", "path": "CDSHooksRequest.fhirAuthorization.tokenType", "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.expiresIn", "path": "CDSHooksRequest.fhirAuthorization.expiresIn", "short": "Seconds token is valid", "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.scope", "path": "CDSHooksRequest.fhirAuthorization.scope", "short": "Granted access scopes", "mustSupport": true }, { "id": "CDSHooksRequest.fhirAuthorization.subject", "path": "CDSHooksRequest.fhirAuthorization.subject", "short": "Patient id for access", "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.", "mustSupport": true }, { "id": "CDSHooksRequest.context", "extension": [ { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'appointment-book'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookAppointmentBookContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'encounter-start'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterStartContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'encounter-discharge'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/tools/StructureDefinition/CDSEncounterDischargeContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'order-dispatch'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDOrderDispatchContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'order-select'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" }, { "extension": [ { "url": "condition", "valueString": "%resource.hook = 'order-sign'" }, { "url": "type", "valueCode": "http://hl7.org/fhir/us/davnci-crd/StructureDefinition/CRDHookOrderSignContext" } ], "url": "http://hl7.org/fhir/tools/StructureDefinition/type-specifier" } ], "path": "CDSHooksRequest.context", "short": "Context for decision support", "mustSupport": true }, { "id": "CDSHooksRequest.prefetch", "path": "CDSHooksRequest.prefetch", "short": "Prefetch info requested by server", "comment": "While this is mustSupport, CRD clients are not required to pass any or all prefetch data requested by the CRD service.", "mustSupport": true }, { "id": "CDSHooksRequest.prefetch.key", "path": "CDSHooksRequest.prefetch.key", "short": "Key as specfied in server prefetch config", "mustSupport": true }, { "id": "CDSHooksRequest.prefetch.value", "path": "CDSHooksRequest.prefetch.value", "short": "Resource(s) matching prefetch criteria", "mustSupport": true } ] } }