FHIR IG analytics| Package | hl7.fhir.uv.cds-hooks |
| Resource Type | StructureDefinition |
| Id | StructureDefinition-CDSHooksFeedback.json |
| FHIR Version | R4 |
| Source | https://build.fhir.org/ig/HL7/cds-hooks/StructureDefinition-CDSHooksFeedback.html |
| URL | http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback |
| Version | 3.0.0-ballot |
| Status | draft |
| Date | 2026-06-24T14:14:29+00:00 |
| Name | CDSHooksFeedback |
| Title | CDSHooks Feedback (Logical Definition) |
| Realm | uv |
| Authority | hl7 |
| Description | This structure is defined to allow the FHIR Validator to validate a CDSHooks Feedback request body. |
| Type | http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback |
| Kind | logical |
No resources found
| StructureDefinition | ||
| hl7.fhir.uv.cds-hooks#current | CDSHooksElement | CDSHooks Services Base Extensible Element |
| hl7.fhir.uv.tools#current | CDSHooksElement | CDSHooks Services Base Extensible Element |
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureDefinition CDSHooksFeedback
| Name | Flags | Card. | Type | Description & Constraints |
|---|---|---|---|---|
![]() | 0..* | CDSHooksElement | The request body for the CDS Hooks feedback endpoint Elements defined in Ancestors:extension | |
![]() ![]() | C | 0..* | CDSHooksElement | Array of Feedback entries JSON: The type of this element is inferred from the JSON type in the instance Constraints: cds-fb-1, cds-fb-2 |
![]() ![]() ![]() | 1..1 | uuid | Identifier of the card the user acted on When this element is read urn:uuid: is prefixed to the value before validation | |
![]() ![]() ![]() | 1..1 | code | accepted | overridden | |
![]() ![]() ![]() | 0..* | CDSHooksElement | Suggestions accepted by the user | |
![]() ![]() ![]() ![]() | 1..1 | uuid | Identifier of the accepted suggestion When this element is read urn:uuid: is prefixed to the value before validation | |
![]() ![]() ![]() | C | 0..1 | CDSHooksElement | Reason the user overrode the card Constraints: cds-fb-3 |
![]() ![]() ![]() ![]() | 0..1 | Coding | The override reason selected by the end user | |
![]() ![]() ![]() ![]() | 0..1 | string | Free text user comment | |
![]() ![]() ![]() | 1..1 | instant | When the user took action on the card | |
{
"resourceType": "StructureDefinition",
"id": "CDSHooksFeedback",
"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": "cds"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode": "informative",
"_valueCode": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://cds-hooks.hl7.org/ImplementationGuide/hl7.fhir.uv.cds-hooks"
}
]
}
}
],
"url": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback",
"version": "3.0.0-ballot",
"name": "CDSHooksFeedback",
"title": "CDSHooks Feedback (Logical Definition)",
"status": "draft",
"experimental": true,
"date": "2026-06-24T14:14:29+00:00",
"publisher": "Clinical Decision Support WG",
"contact": [
{
"name": "Clinical Decision Support WG",
"telecom": [
{
"system": "url",
"value": "http://www.hl7.org/Special/committees/dss/index.cfm"
},
{
"system": "email",
"value": "cds@lists.HL7.org"
}
]
}
],
"description": "This structure is defined to allow the FHIR Validator to validate a CDSHooks Feedback request body.",
"jurisdiction": [
{
"coding": [
{
"system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
"code": "001",
"display": "World"
}
]
}
],
"fhirVersion": "4.0.1",
"kind": "logical",
"abstract": false,
"type": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback",
"baseDefinition": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksElement",
"derivation": "specialization",
"snapshot": {
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
"valueString": "3.0.0-ballot"
}
],
"element": [
{
"id": "CDSHooksFeedback",
"path": "CDSHooksFeedback",
"short": "The request body for the CDS Hooks feedback endpoint",
"definition": "Feedback that a CDS Client POSTs to a CDS Service's feedback endpoint. The request body is an object containing an array of one or more Feedback entries reporting end-user interaction with cards previously returned by the CDS Service.",
"min": 0,
"max": "*",
"base": {
"path": "Base",
"min": 0,
"max": "*"
},
"isModifier": false
},
{
"id": "CDSHooksFeedback.extension",
"path": "CDSHooksFeedback.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": "CDSHooksFeedback.feedback",
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/json-empty-behavior",
"valueCode": "present"
}
],
"path": "CDSHooksFeedback.feedback",
"short": "Array of Feedback entries",
"definition": "An array of Feedback entries reporting end-user interaction with cards previously returned by the CDS Service.",
"min": 0,
"max": "*",
"base": {
"path": "CDSHooksFeedback.feedback",
"min": 0,
"max": "*"
},
"type": [
{
"code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}
],
"constraint": [
{
"key": "cds-fb-1",
"severity": "error",
"human": "outcome must be 'accepted' or 'overridden'",
"expression": "outcome = 'accepted' or outcome = 'overridden'",
"source": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback"
},
{
"key": "cds-fb-2",
"severity": "error",
"human": "If outcome is 'accepted', acceptedSuggestions SHALL be provided",
"expression": "(outcome = 'accepted') implies acceptedSuggestions.exists()",
"source": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback"
}
]
},
{
"id": "CDSHooksFeedback.feedback.extension",
"path": "CDSHooksFeedback.feedback.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": "CDSHooksFeedback.feedback.card",
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix",
"valueString": "urn:uuid:"
}
],
"path": "CDSHooksFeedback.feedback.card",
"short": "Identifier of the card the user acted on",
"definition": "The card.uuid from the CDS Hooks response. Uniquely identifies the card.",
"min": 1,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.card",
"min": 1,
"max": "1"
},
"type": [
{
"code": "uuid"
}
]
},
{
"id": "CDSHooksFeedback.feedback.outcome",
"path": "CDSHooksFeedback.feedback.outcome",
"short": "accepted | overridden",
"definition": "A value of accepted or overridden.",
"min": 1,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.outcome",
"min": 1,
"max": "1"
},
"type": [
{
"code": "code"
}
]
},
{
"id": "CDSHooksFeedback.feedback.acceptedSuggestions",
"path": "CDSHooksFeedback.feedback.acceptedSuggestions",
"short": "Suggestions accepted by the user",
"definition": "An array of objects identifying one or more of the user's AcceptedSuggestions. Required for 'accepted' outcomes.",
"min": 0,
"max": "*",
"base": {
"path": "CDSHooksFeedback.feedback.acceptedSuggestions",
"min": 0,
"max": "*"
},
"type": [
{
"code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}
]
},
{
"id": "CDSHooksFeedback.feedback.acceptedSuggestions.extension",
"path": "CDSHooksFeedback.feedback.acceptedSuggestions.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": "CDSHooksFeedback.feedback.acceptedSuggestions.id",
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix",
"valueString": "urn:uuid:"
}
],
"path": "CDSHooksFeedback.feedback.acceptedSuggestions.id",
"short": "Identifier of the accepted suggestion",
"definition": "The card.suggestion.uuid from the CDS Hooks response. Uniquely identifies the suggestion that was accepted.",
"min": 1,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.acceptedSuggestions.id",
"min": 1,
"max": "1"
},
"type": [
{
"code": "uuid"
}
]
},
{
"id": "CDSHooksFeedback.feedback.overrideReason",
"path": "CDSHooksFeedback.feedback.overrideReason",
"short": "Reason the user overrode the card",
"definition": "Captures the override reason as a Coding as well as any free-text comment entered by the user.",
"min": 0,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.overrideReason",
"min": 0,
"max": "1"
},
"type": [
{
"code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}
],
"constraint": [
{
"key": "cds-fb-3",
"severity": "error",
"human": "An overrideReason must contain a reason, a userComment, or both",
"expression": "reason.exists() or userComment.exists()",
"source": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback"
}
]
},
{
"id": "CDSHooksFeedback.feedback.overrideReason.extension",
"path": "CDSHooksFeedback.feedback.overrideReason.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": "CDSHooksFeedback.feedback.overrideReason.reason",
"path": "CDSHooksFeedback.feedback.overrideReason.reason",
"short": "The override reason selected by the end user",
"definition": "The Coding object representing the override reason selected by the end user. Required if the user selected an override reason from the list of reasons provided in the Card (instead of only leaving a userComment).",
"min": 0,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.overrideReason.reason",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Coding"
}
]
},
{
"id": "CDSHooksFeedback.feedback.overrideReason.userComment",
"path": "CDSHooksFeedback.feedback.overrideReason.userComment",
"short": "Free text user comment",
"definition": "Free text the clinician provided to further explain why the card was rejected.",
"min": 0,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.overrideReason.userComment",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
]
},
{
"id": "CDSHooksFeedback.feedback.outcomeTimestamp",
"path": "CDSHooksFeedback.feedback.outcomeTimestamp",
"short": "When the user took action on the card",
"definition": "ISO8601 representation of the date and time in Coordinated Universal Time (UTC) when action was taken on the card, as profiled in section 5.6 of RFC3339 (e.g. 1985-04-12T23:20:50.52Z).",
"min": 1,
"max": "1",
"base": {
"path": "CDSHooksFeedback.feedback.outcomeTimestamp",
"min": 1,
"max": "1"
},
"type": [
{
"code": "instant"
}
]
}
]
},
"differential": {
"element": [
{
"id": "CDSHooksFeedback",
"path": "CDSHooksFeedback",
"short": "The request body for the CDS Hooks feedback endpoint",
"definition": "Feedback that a CDS Client POSTs to a CDS Service's feedback endpoint. The request body is an object containing an array of one or more Feedback entries reporting end-user interaction with cards previously returned by the CDS Service."
},
{
"id": "CDSHooksFeedback.feedback",
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/json-empty-behavior",
"valueCode": "present"
}
],
"path": "CDSHooksFeedback.feedback",
"short": "Array of Feedback entries",
"definition": "An array of Feedback entries reporting end-user interaction with cards previously returned by the CDS Service.",
"min": 0,
"max": "*",
"type": [
{
"code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}
],
"constraint": [
{
"key": "cds-fb-1",
"severity": "error",
"human": "outcome must be 'accepted' or 'overridden'",
"expression": "outcome = 'accepted' or outcome = 'overridden'",
"source": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback"
},
{
"key": "cds-fb-2",
"severity": "error",
"human": "If outcome is 'accepted', acceptedSuggestions SHALL be provided",
"expression": "(outcome = 'accepted') implies acceptedSuggestions.exists()",
"source": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback"
}
]
},
{
"id": "CDSHooksFeedback.feedback.card",
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix",
"valueString": "urn:uuid:"
}
],
"path": "CDSHooksFeedback.feedback.card",
"short": "Identifier of the card the user acted on",
"definition": "The card.uuid from the CDS Hooks response. Uniquely identifies the card.",
"min": 1,
"max": "1",
"type": [
{
"code": "uuid"
}
]
},
{
"id": "CDSHooksFeedback.feedback.outcome",
"path": "CDSHooksFeedback.feedback.outcome",
"short": "accepted | overridden",
"definition": "A value of accepted or overridden.",
"min": 1,
"max": "1",
"type": [
{
"code": "code"
}
]
},
{
"id": "CDSHooksFeedback.feedback.acceptedSuggestions",
"path": "CDSHooksFeedback.feedback.acceptedSuggestions",
"short": "Suggestions accepted by the user",
"definition": "An array of objects identifying one or more of the user's AcceptedSuggestions. Required for 'accepted' outcomes.",
"min": 0,
"max": "*",
"type": [
{
"code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}
]
},
{
"id": "CDSHooksFeedback.feedback.acceptedSuggestions.id",
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix",
"valueString": "urn:uuid:"
}
],
"path": "CDSHooksFeedback.feedback.acceptedSuggestions.id",
"short": "Identifier of the accepted suggestion",
"definition": "The card.suggestion.uuid from the CDS Hooks response. Uniquely identifies the suggestion that was accepted.",
"min": 1,
"max": "1",
"type": [
{
"code": "uuid"
}
]
},
{
"id": "CDSHooksFeedback.feedback.overrideReason",
"path": "CDSHooksFeedback.feedback.overrideReason",
"short": "Reason the user overrode the card",
"definition": "Captures the override reason as a Coding as well as any free-text comment entered by the user.",
"min": 0,
"max": "1",
"type": [
{
"code": "http://hl7.org/fhir/tools/StructureDefinition/CDSHooksElement"
}
],
"constraint": [
{
"key": "cds-fb-3",
"severity": "error",
"human": "An overrideReason must contain a reason, a userComment, or both",
"expression": "reason.exists() or userComment.exists()",
"source": "http://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback"
}
]
},
{
"id": "CDSHooksFeedback.feedback.overrideReason.reason",
"path": "CDSHooksFeedback.feedback.overrideReason.reason",
"short": "The override reason selected by the end user",
"definition": "The Coding object representing the override reason selected by the end user. Required if the user selected an override reason from the list of reasons provided in the Card (instead of only leaving a userComment).",
"min": 0,
"max": "1",
"type": [
{
"code": "Coding"
}
]
},
{
"id": "CDSHooksFeedback.feedback.overrideReason.userComment",
"path": "CDSHooksFeedback.feedback.overrideReason.userComment",
"short": "Free text user comment",
"definition": "Free text the clinician provided to further explain why the card was rejected.",
"min": 0,
"max": "1",
"type": [
{
"code": "string"
}
]
},
{
"id": "CDSHooksFeedback.feedback.outcomeTimestamp",
"path": "CDSHooksFeedback.feedback.outcomeTimestamp",
"short": "When the user took action on the card",
"definition": "ISO8601 representation of the date and time in Coordinated Universal Time (UTC) when action was taken on the card, as profiled in section 5.6 of RFC3339 (e.g. 1985-04-12T23:20:50.52Z).",
"min": 1,
"max": "1",
"type": [
{
"code": "instant"
}
]
}
]
}
}