PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.tools.r5@0.4.1
    http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest
{
  "description": "This structure is defined to allow the FHIR Validator to validate a CDSHooks Request Body. TODO: This content will be moved to the CDS Hooks specification in the future",
  "_filename": "StructureDefinition-CDSHooksRequest.json",
  "package_name": "hl7.fhir.uv.tools.r5",
  "date": "2025-03-11T14:21:51+11:00",
  "derivation": "specialization",
  "publisher": "HL7 International / FHIR Infrastructure",
  "fhirVersion": "5.0.0",
  "jurisdiction": [ {
    "coding": [ {
      "code": "001",
      "system": "http://unstats.un.org/unsd/methods/m49/m49.htm"
    } ]
  } ],
  "name": "CDSHooksRequest",
  "mapping": [ {
    "uri": "http://hl7.org/v3",
    "name": "RIM Mapping",
    "identity": "rim"
  } ],
  "abstract": false,
  "type": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest",
  "experimental": "true",
  "resourceType": "StructureDefinition",
  "title": "CDSHooks Request (Logical Definition)",
  "package_version": "0.4.1",
  "extension": [ {
    "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
    "valueInteger": 1
  }, {
    "url": "http://hl7.org/fhir/tools/StructureDefinition/json-suppress-resourcetype",
    "valueBoolean": true
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
    "valueCode": "fhir"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
    "valueCode": "informative",
    "_valueCode": {
      "extension": [ {
        "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
        "valueCanonical": "http://hl7.org/fhir/tools/ImplementationGuide/hl7.fhir.uv.tools"
      } ]
    }
  } ],
  "snapshot": {
    "element": [ {
      "constraint": [ {
        "key": "cds-r-1",
        "human": "if fhirAuthorization details are provided, a fhirServer SHALL be specified",
        "severity": "error",
        "expression": "fhirAuthorization.exists() implies fhirServer.exists()"
      } ],
      "path": "CDSHooksRequest",
      "min": 0,
      "definition": "The response to the discovery endpoint",
      "isModifier": false,
      "short": "The response to the discovery endpoint",
      "mapping": [ {
        "map": "n/a",
        "identity": "rim"
      } ],
      "max": "*",
      "id": "CDSHooksRequest",
      "base": {
        "max": "*",
        "min": 0,
        "path": "Base"
      }
    }, {
      "path": "CDSHooksRequest.extension",
      "min": 0,
      "definition": "A JSON object that has properties where the names are defined by the extension definitions",
      "short": "Object that has Named Extension Properties",
      "type": [ {
        "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-extension-style",
        "valueCode": "named-elements"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.extension",
      "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",
      "base": {
        "max": "1",
        "min": 0,
        "path": "CDSHooksElement.extension"
      }
    }, {
      "id": "CDSHooksRequest.hook",
      "max": "1",
      "min": 1,
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.hook"
      },
      "path": "CDSHooksRequest.hook",
      "type": [ {
        "code": "code"
      } ],
      "short": "The hook that triggered this CDS Service call",
      "definition": "The hook that triggered this CDS Service call"
    }, {
      "path": "CDSHooksRequest.hookInstance",
      "min": 1,
      "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",
      "short": "A universally unique identifier (UUID) for this particular hook call",
      "type": [ {
        "code": "uuid"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix",
        "valueString": "urn:uuid:"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.hookInstance",
      "comment": "Note: the hookInstance is globally unique and should contain enough entropy to be un-guessable.",
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.hookInstance"
      }
    }, {
      "id": "CDSHooksRequest.fhirServer",
      "max": "1",
      "min": 0,
      "base": {
        "max": "1",
        "min": 0,
        "path": "CDSHooksRequest.fhirServer"
      },
      "path": "CDSHooksRequest.fhirServer",
      "type": [ {
        "code": "url"
      } ],
      "short": "The base URL of the CDS Client's FHIR server",
      "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"
    }, {
      "constraint": [ {
        "key": "cds-r-2",
        "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.",
        "severity": "error",
        "expression": "scope.contains('Patient/') implies patient.exists()"
      } ],
      "path": "CDSHooksRequest.fhirAuthorization",
      "min": 0,
      "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",
      "short": "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",
      "type": [ {
        "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.fhirAuthorization",
      "base": {
        "max": "1",
        "min": 0,
        "path": "CDSHooksRequest.fhirAuthorization"
      }
    }, {
      "path": "CDSHooksRequest.fhirAuthorization.extension",
      "min": 0,
      "definition": "A JSON object that has properties where the names are defined by the extension definitions",
      "short": "Object that has Named Extension Properties",
      "type": [ {
        "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksExtensions"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-extension-style",
        "valueCode": "named-elements"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.fhirAuthorization.extension",
      "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",
      "base": {
        "max": "1",
        "min": 0,
        "path": "CDSHooksElement.extension"
      }
    }, {
      "path": "CDSHooksRequest.fhirAuthorization.accessToken",
      "min": 1,
      "definition": "This is the OAuth 2.0 access token that provides access to the FHIR server",
      "short": "This is the OAuth 2.0 access token that provides access to the FHIR server",
      "type": [ {
        "code": "string"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-json-name",
        "valueString": "access_token"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.fhirAuthorization.accessToken",
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.fhirAuthorization.accessToken"
      }
    }, {
      "path": "CDSHooksRequest.fhirAuthorization.tokenType",
      "fixedCode": "Bearer",
      "min": 1,
      "definition": "Fixed value: Bearer",
      "short": "Fixed value: Bearer",
      "type": [ {
        "code": "code"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-json-name",
        "valueString": "token_type"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.fhirAuthorization.tokenType",
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.fhirAuthorization.tokenType"
      }
    }, {
      "path": "CDSHooksRequest.fhirAuthorization.expiresIn",
      "min": 1,
      "definition": "The lifetime in seconds of the access token.",
      "short": "The lifetime in seconds of the access token.",
      "type": [ {
        "code": "integer"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-json-name",
        "valueString": "expires_in"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.fhirAuthorization.expiresIn",
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.fhirAuthorization.expiresIn"
      }
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.scope",
      "max": "1",
      "min": 1,
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.fhirAuthorization.scope"
      },
      "path": "CDSHooksRequest.fhirAuthorization.scope",
      "type": [ {
        "code": "string"
      } ],
      "short": "The scopes the access token grants the CDS Service",
      "definition": "The scopes the access token grants the CDS Service"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.subject",
      "max": "1",
      "min": 1,
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.fhirAuthorization.subject"
      },
      "path": "CDSHooksRequest.fhirAuthorization.subject",
      "type": [ {
        "code": "string"
      } ],
      "short": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server",
      "definition": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.patient",
      "max": "1",
      "min": 0,
      "base": {
        "max": "1",
        "min": 0,
        "path": "CDSHooksRequest.fhirAuthorization.patient"
      },
      "path": "CDSHooksRequest.fhirAuthorization.patient",
      "type": [ {
        "code": "id"
      } ],
      "short": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server",
      "definition": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server"
    }, {
      "path": "CDSHooksRequest.context",
      "min": 1,
      "definition": "Hook-specific contextual data that the CDS service will need",
      "short": "Hook-specific contextual data that the CDS service will need",
      "type": [ {
        "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookContext"
      } ],
      "extension": [ {
        "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-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"
        } ]
      } ],
      "max": "1",
      "id": "CDSHooksRequest.context",
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.context"
      }
    }, {
      "path": "CDSHooksRequest.prefetch",
      "min": 0,
      "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",
      "short": "Key/value pairs of FHIR queries the CDS Client provides on each call",
      "type": [ {
        "code": "Base"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/json-property-key",
        "valueCode": "key"
      } ],
      "max": "*",
      "id": "CDSHooksRequest.prefetch",
      "base": {
        "max": "*",
        "min": 0,
        "path": "CDSHooksRequest.prefetch"
      }
    }, {
      "id": "CDSHooksRequest.prefetch.key",
      "max": "1",
      "min": 1,
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.prefetch.key"
      },
      "path": "CDSHooksRequest.prefetch.key",
      "type": [ {
        "code": "code"
      } ],
      "short": "Key of FHIR query - name for client to use when sending to Request",
      "definition": "Key of FHIR query - name for client to use when sending to Request"
    }, {
      "path": "CDSHooksRequest.prefetch.value",
      "min": 1,
      "definition": "Value of FHIR query - FHIR Query for client to perform",
      "short": "Value of FHIR query - FHIR Query for client to perform",
      "type": [ {
        "code": "Resource"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/json-nullable",
        "valueBoolean": true
      }, {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/id-expectation",
        "valueCode": "optional"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.prefetch.value",
      "base": {
        "max": "1",
        "min": 1,
        "path": "CDSHooksRequest.prefetch.value"
      }
    } ],
    "extension": [ {
      "url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
      "valueString": "0.4.1"
    } ]
  },
  "status": "draft",
  "id": "dd2f90a2-191f-42b5-a431-e9b412e9e7a5",
  "kind": "logical",
  "url": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksRequest",
  "identifier": [ {
    "value": "urn:oid:2.16.840.1.113883.4.642.40.1.42.6",
    "system": "urn:ietf:rfc:3986"
  } ],
  "version": "0.4.1",
  "differential": {
    "element": [ {
      "id": "CDSHooksRequest",
      "path": "CDSHooksRequest",
      "short": "The response to the discovery endpoint",
      "constraint": [ {
        "key": "cds-r-1",
        "human": "if fhirAuthorization details are provided, a fhirServer SHALL be specified",
        "severity": "error",
        "expression": "fhirAuthorization.exists() implies fhirServer.exists()"
      } ],
      "definition": "The response to the discovery endpoint"
    }, {
      "id": "CDSHooksRequest.hook",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.hook",
      "type": [ {
        "code": "code"
      } ],
      "short": "The hook that triggered this CDS Service call",
      "definition": "The hook that triggered this CDS Service call"
    }, {
      "path": "CDSHooksRequest.hookInstance",
      "min": 1,
      "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",
      "short": "A universally unique identifier (UUID) for this particular hook call",
      "type": [ {
        "code": "uuid"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix",
        "valueString": "urn:uuid:"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.hookInstance",
      "comment": "Note: the hookInstance is globally unique and should contain enough entropy to be un-guessable."
    }, {
      "id": "CDSHooksRequest.fhirServer",
      "max": "1",
      "min": 0,
      "path": "CDSHooksRequest.fhirServer",
      "type": [ {
        "code": "url"
      } ],
      "short": "The base URL of the CDS Client's FHIR server",
      "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"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization",
      "max": "1",
      "min": 0,
      "path": "CDSHooksRequest.fhirAuthorization",
      "type": [ {
        "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
      } ],
      "short": "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",
      "constraint": [ {
        "key": "cds-r-2",
        "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.",
        "severity": "error",
        "expression": "scope.contains('Patient/') implies patient.exists()"
      } ],
      "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"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.accessToken",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.fhirAuthorization.accessToken",
      "type": [ {
        "code": "string"
      } ],
      "short": "This is the OAuth 2.0 access token that provides access to the FHIR server",
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-json-name",
        "valueString": "access_token"
      } ],
      "definition": "This is the OAuth 2.0 access token that provides access to the FHIR server"
    }, {
      "path": "CDSHooksRequest.fhirAuthorization.tokenType",
      "fixedCode": "Bearer",
      "min": 1,
      "definition": "Fixed value: Bearer",
      "short": "Fixed value: Bearer",
      "type": [ {
        "code": "code"
      } ],
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-json-name",
        "valueString": "token_type"
      } ],
      "max": "1",
      "id": "CDSHooksRequest.fhirAuthorization.tokenType"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.expiresIn",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.fhirAuthorization.expiresIn",
      "type": [ {
        "code": "integer"
      } ],
      "short": "The lifetime in seconds of the access token.",
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-json-name",
        "valueString": "expires_in"
      } ],
      "definition": "The lifetime in seconds of the access token."
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.scope",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.fhirAuthorization.scope",
      "type": [ {
        "code": "string"
      } ],
      "short": "The scopes the access token grants the CDS Service",
      "definition": "The scopes the access token grants the CDS Service"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.subject",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.fhirAuthorization.subject",
      "type": [ {
        "code": "string"
      } ],
      "short": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server",
      "definition": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server"
    }, {
      "id": "CDSHooksRequest.fhirAuthorization.patient",
      "max": "1",
      "min": 0,
      "path": "CDSHooksRequest.fhirAuthorization.patient",
      "type": [ {
        "code": "id"
      } ],
      "short": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server",
      "definition": "The OAuth 2.0 client identifier of the CDS Service, as registered with the CDS Client's authorization server"
    }, {
      "id": "CDSHooksRequest.context",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.context",
      "type": [ {
        "code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHookContext"
      } ],
      "short": "Hook-specific contextual data that the CDS service will need",
      "extension": [ {
        "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-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"
        } ]
      } ],
      "definition": "Hook-specific contextual data that the CDS service will need"
    }, {
      "id": "CDSHooksRequest.prefetch",
      "max": "*",
      "min": 0,
      "path": "CDSHooksRequest.prefetch",
      "type": [ {
        "code": "Base"
      } ],
      "short": "Key/value pairs of FHIR queries the CDS Client provides on each call",
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/json-property-key",
        "valueCode": "key"
      } ],
      "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"
    }, {
      "id": "CDSHooksRequest.prefetch.key",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.prefetch.key",
      "type": [ {
        "code": "code"
      } ],
      "short": "Key of FHIR query - name for client to use when sending to Request",
      "definition": "Key of FHIR query - name for client to use when sending to Request"
    }, {
      "id": "CDSHooksRequest.prefetch.value",
      "max": "1",
      "min": 1,
      "path": "CDSHooksRequest.prefetch.value",
      "type": [ {
        "code": "Resource"
      } ],
      "short": "Value of FHIR query - FHIR Query for client to perform",
      "extension": [ {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/json-nullable",
        "valueBoolean": true
      }, {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/id-expectation",
        "valueCode": "optional"
      } ],
      "definition": "Value of FHIR query - FHIR Query for client to perform"
    } ]
  },
  "contact": [ {
    "telecom": [ {
      "value": "http://www.hl7.org/Special/committees/fiwg",
      "system": "url"
    } ]
  } ],
  "baseDefinition": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}