FHIR © HL7.org  |  FHIRsmith 4.0.1  |  Server Home  |  XIG Home  |  XIG Stats  | 

FHIR IG analytics

Packagehl7.fhir.uv.cds-hooks
Resource TypeStructureDefinition
IdStructureDefinition-CDSHooksFeedback.json
FHIR VersionR4
Sourcehttps://build.fhir.org/ig/HL7/cds-hooks/StructureDefinition-CDSHooksFeedback.html
URLhttp://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback
Version3.0.0-ballot
Statusdraft
Date2026-06-24T14:14:29+00:00
NameCDSHooksFeedback
TitleCDSHooks Feedback (Logical Definition)
Realmuv
Authorityhl7
DescriptionThis structure is defined to allow the FHIR Validator to validate a CDSHooks Feedback request body.
Typehttp://cds-hooks.hl7.org/StructureDefinition/CDSHooksFeedback
Kindlogical

Resources that use this resource

No resources found


Resources that this resource uses

StructureDefinition
hl7.fhir.uv.cds-hooks#currentCDSHooksElementCDSHooks Services Base Extensible Element
hl7.fhir.uv.tools#currentCDSHooksElementCDSHooks Services Base Extensible Element

Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: StructureDefinition CDSHooksFeedback

NameFlagsCard.TypeDescription & Constraintsdoco
.. CDSHooksFeedback 0..*CDSHooksElementThe request body for the CDS Hooks feedback endpoint

Elements defined in Ancestors:extension
... feedback C0..*CDSHooksElementArray 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
.... card 1..1uuidIdentifier of the card the user acted on
When this element is read urn:uuid: is prefixed to the value before validation
.... outcome 1..1codeaccepted | overridden
.... acceptedSuggestions 0..*CDSHooksElementSuggestions accepted by the user
..... id 1..1uuidIdentifier of the accepted suggestion
When this element is read urn:uuid: is prefixed to the value before validation
.... overrideReason C0..1CDSHooksElementReason the user overrode the card
Constraints: cds-fb-3
..... reason 0..1CodingThe override reason selected by the end user
..... userComment 0..1stringFree text user comment
.... outcomeTimestamp 1..1instantWhen the user took action on the card

doco Documentation for this format

Source1

{
  "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"
          }
        ]
      }
    ]
  }
}