CDS Hooks
3.0.0 - R3 Normative/Trial-Use International flag

CDS Hooks, published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 3.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/cds-hooks/ and changes regularly. See the Directory of published versions

Logical Model: CDSHooks Discovery Response (Logical Definition) - XML Profile

Page standards status: Informative Maturity Level: 1

XML representation of the CDSHooksServices logical model.

Raw xml | Download


<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="CDSHooksServices"/>
  <language value="en"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureDefinition CDSHooksServices</b></p><table border="0" cellpadding="0" cellspacing="0" class="xhtTableBorder0"><tr class="xhtRowBorder1"><th scope="col" style="" class="hierarchy xhtCellBorder0"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="The logical name of the element">Name</a></th><th scope="col" style="" class="hierarchy xhtCellBorder0"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Information about the use of the element">Flags</a></th><th scope="col" style="" class="hierarchy xhtCellBorder0"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Minimum and Maximum # of times the element can appear in the instance">Card.</a></th><th scope="col" style="; width: 100px" class="hierarchy xhtCellBorder0"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Reference to the type of the element">Type</a></th><th scope="col" style="" class="hierarchy xhtCellBorder0"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Additional information about the element">Description &amp; Constraints</a><span style="float: right"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC" alt="doco" style="background-color: inherit"/></a></span></th></tr><tr class="xhtRowBorder0 xhtRowEven"><td style="background-image: url(tbl_bck1.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_element.gif" alt="" style="background-color: white; background-color: inherit" title="Element" class="hierarchy"/> <a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices" title="The response to the discovery endpoint SHALL be an object containing a list of CDS Services">CDSHooksServices</a><a name="CDSHooksServices"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0"><span class="xhtPieceDeEmphasized">0</span><span class="xhtPieceDeEmphasized">..</span><span class="xhtPieceDeEmphasized">*</span></td><td style="" class="hierarchy xhtCellBorder0"><a href="StructureDefinition-CDSHooksElement.html">CDSHooksElement</a></td><td style="" class="hierarchy xhtCellBorder0">The response to the discovery endpoint<br/><br/>Elements defined in Ancestors:<a href="StructureDefinition-CDSHooksElement.html" title="A JSON object that has properties where the names are defined by the extension definitions">extension</a></td></tr>
<tr class="xhtRowBorder0 xhtRowOdd"><td style="background-image: url(tbl_bck01.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin_end.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_resource.png" alt="" style="background-color: #F7F7F7; background-color: inherit" title="Resource" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services" title="An array of CDS Services">services</a><a name="CDSHooksServices.services"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0"><span title="This element is present as a JSON Array even when there are no items in the instance">0</span><span title="This element is present as a JSON Array even when there are no items in the instance">..</span><span title="This element is present as a JSON Array even when there are no items in the instance">*</span></td><td style="" class="hierarchy xhtCellBorder0"><a href="StructureDefinition-CDSHooksElement.html">CDSHooksElement</a></td><td style="" class="hierarchy xhtCellBorder0">An array of CDS Services<br/>JSON: The type of this element is inferred from the JSON type in the instance<br/></td></tr>
<tr class="xhtRowBorder0 xhtRowEven"><td style="background-image: url(tbl_bck010.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.hook" title="The hook this service should be invoked on">hook</a><a name="CDSHooksServices.services.hook"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">1..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">The hook this service should be invoked on</td></tr>
<tr class="xhtRowBorder0 xhtRowOdd"><td style="background-image: url(tbl_bck010.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.title" title="The human-friendly name of this service">title</a><a name="CDSHooksServices.services.title"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">0..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">The human-friendly name of this service</td></tr>
<tr class="xhtRowBorder0 xhtRowEven"><td style="background-image: url(tbl_bck010.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.description" title="The description of this service">description</a><a name="CDSHooksServices.services.description"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">1..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#markdown">markdown</a></td><td style="" class="hierarchy xhtCellBorder0">The description of this service</td></tr>
<tr class="xhtRowBorder0 xhtRowOdd"><td style="background-image: url(tbl_bck010.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.id" title="The {id} portion of the URL to this service which is available at {baseUrl}/cds-services/{id}">id</a><a name="CDSHooksServices.services.id"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">1..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">The {id} portion of the URL to this service</td></tr>
<tr class="xhtRowBorder0 xhtRowEven"><td style="background-image: url(tbl_bck011.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_datatype.gif" alt="" style="background-color: white; background-color: inherit" title="Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.prefetch" title="An object containing key/value pairs of FHIR queries that this service is requesting the CDS Client to perform and provide on each service call. The key is a string that describes the type of data being requested and the value is a string representing the FHIR query">prefetch</a><a name="CDSHooksServices.services.prefetch"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">0..*</td><td style="" class="hierarchy xhtCellBorder0">Base</td><td style="" class="hierarchy xhtCellBorder0">Key/value pairs of FHIR queries to provide when calling<br/>JSON: Represented as a single JSON Object with named properties using the value of the key child as the key<br/></td></tr>
<tr class="xhtRowBorder0 xhtRowOdd"><td style="background-image: url(tbl_bck0110.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vline.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.prefetch.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.prefetch.key" title="Key of FHIR query - name for client to use when sending prefetched data to the service">key</a><a name="CDSHooksServices.services.prefetch.key"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">1..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#code">code</a></td><td style="" class="hierarchy xhtCellBorder0">Key of FHIR query</td></tr>
<tr class="xhtRowBorder0 xhtRowEven"><td style="background-image: url(tbl_bck0100.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vline.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin_end.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.prefetch.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.prefetch.value" title="A FHIR query for the CDS Client to perform, which may include prefetch tokens">value</a><a name="CDSHooksServices.services.prefetch.value"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">1..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">FHIR query template</td></tr>
<tr class="xhtRowBorder0 xhtRowOdd"><td style="background-image: url(tbl_bck010.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.usageRequirements" title="Human-friendly description of any preconditions for the use of this CDS Service">usageRequirements</a><a name="CDSHooksServices.services.usageRequirements"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">0..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">Human-friendly preconditions for the use of this CDS Service</td></tr>
<tr class="xhtRowBorder0 xhtRowEven"><td style="background-image: url(tbl_bck010.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.version" title="The [semantic](http://semver.org) version of the CDS Hooks specification implemented (e.g. `3.0.0`))">version</a><a name="CDSHooksServices.services.version"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">0..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">CDS Hooks specification version implemented</td></tr>
<tr class="xhtRowBorder0 xhtRowOdd"><td style="background-image: url(tbl_bck000.png)" class="hierarchy xhtCellBorder0 xhtCellNoWrap"><img src="tbl_spacer.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_blank.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin_end.png" alt="" style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0" class="sr-only">CDSHooksServices.services.</span><a href="StructureDefinition-CDSHooksServices-definitions.html#CDSHooksServices.services.hookVersion" title="The version of the hook this service supports, which SHALL match the hookVersion in the published hook definition. A service that supports multiple versions of the same hook exposes each version at a separate endpoint.">hookVersion</a><a name="CDSHooksServices.services.hookVersion"> </a></td><td style="" class="hierarchy xhtCellBorder0"/><td style="" class="hierarchy xhtCellBorder0">0..1</td><td style="" class="hierarchy xhtCellBorder0"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="" class="hierarchy xhtCellBorder0">Hook version implemented</td></tr>
<tr><td colspan="5" class="hierarchy"><br/><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC" alt="doco" style="background-color: inherit"/> Documentation for this format</a></td></tr></table></div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="1"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cds"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="informative"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/tools/StructureDefinition/json-suppress-resourcetype">
    <valueBoolean value="true"/>
  </extension>
  <url value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksServices"/>
  <identifier>
    <system value="urn:ietf:rfc:3986"/>
    <value value="urn:oid:2.16.840.1.113883.4.642.40.93.42.7"/>
  </identifier>
  <version value="3.0.0"/>
  <name value="CDSHooksServices"/>
  <title value="CDSHooks Discovery Response (Logical Definition)"/>
  <status value="active"/>
  <experimental value="false"/>
  <date value="2026-10-22T15:56:14+00:00"/>
  <publisher value="HL7 International / Clinical Decision Support"/>
  <contact>
    <name value="HL7 International / Clinical Decision Support"/>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/dss/index.cfm"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="cds@lists.HL7.org"/>
    </telecom>
  </contact>
  <description
               value="This structure is defined to allow the FHIR Validator to validate a CDSHooks Discovery response body."/>
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
      <display value="World"/>
    </coding>
  </jurisdiction>
  <fhirVersion value="4.0.1"/>
  <kind value="logical"/>
  <abstract value="false"/>
  <type
        value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksServices"/>
  <baseDefinition
                  value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksElement"/>
  <derivation value="specialization"/>
  <snapshot>
    <extension
               url="http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version">
      <valueString value="3.0.0"/>
    </extension>
    <element id="CDSHooksServices">
      <path value="CDSHooksServices"/>
      <short value="The response to the discovery endpoint"/>
      <definition
                  value="The response to the discovery endpoint SHALL be an object containing a list of CDS Services"/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="Base"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <isModifier value="false"/>
    </element>
    <element id="CDSHooksServices.extension">
      <path value="CDSHooksServices.extension"/>
      <short value="Object that has Named Extension Properties"/>
      <definition
                  value="A JSON object that has properties where the names are defined by the extension definitions"/>
      <comment
               value="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 value="0"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksElement.extension"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code
              value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksExtensions"/>
      </type>
    </element>
    <element id="CDSHooksServices.services">
      <extension
                 url="http://hl7.org/fhir/tools/StructureDefinition/json-empty-behavior">
        <valueCode value="present"/>
      </extension>
      <path value="CDSHooksServices.services"/>
      <short value="An array of CDS Services"/>
      <definition value="An array of CDS Services"/>
      <comment
               value="If the CDS server hosts no CDS Services, the discovery endpoint should return a 200 HTTP response with an empty array of services. Note that a CDS server can host multiple entries of CDS service with the same id for different hooks. This allows a service to update its advice based on changes in workflow."/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="CDSHooksServices.services"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <type>
        <code
              value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksElement"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.extension">
      <path value="CDSHooksServices.services.extension"/>
      <short value="Object that has Named Extension Properties"/>
      <definition
                  value="A JSON object that has properties where the names are defined by the extension definitions"/>
      <comment
               value="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 value="0"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksElement.extension"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code
              value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksExtensions"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.hook">
      <path value="CDSHooksServices.services.hook"/>
      <short value="The hook this service should be invoked on"/>
      <definition value="The hook this service should be invoked on"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.hook"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.title">
      <path value="CDSHooksServices.services.title"/>
      <short value="The human-friendly name of this service"/>
      <definition value="The human-friendly name of this service"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.title"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.description">
      <path value="CDSHooksServices.services.description"/>
      <short value="The description of this service"/>
      <definition value="The description of this service"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.description"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="markdown"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.id">
      <path value="CDSHooksServices.services.id"/>
      <short value="The {id} portion of the URL to this service"/>
      <definition
                  value="The {id} portion of the URL to this service which is available at {baseUrl}/cds-services/{id}"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.id"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.prefetch">
      <extension
                 url="http://hl7.org/fhir/tools/StructureDefinition/json-property-key">
        <valueCode value="key"/>
      </extension>
      <path value="CDSHooksServices.services.prefetch"/>
      <short value="Key/value pairs of FHIR queries to provide when calling"/>
      <definition
                  value="An object containing key/value pairs of FHIR queries that this service is requesting the CDS Client to perform and provide on each service call. The key is a string that describes the type of data being requested and the value is a string representing the FHIR query"/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="CDSHooksServices.services.prefetch"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <type>
        <code value="Base"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.prefetch.key">
      <path value="CDSHooksServices.services.prefetch.key"/>
      <short value="Key of FHIR query"/>
      <definition
                  value="Key of FHIR query - name for client to use when sending prefetched data to the service"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.prefetch.key"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.prefetch.value">
      <path value="CDSHooksServices.services.prefetch.value"/>
      <short value="FHIR query template"/>
      <definition
                  value="A FHIR query for the CDS Client to perform, which may include prefetch tokens"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.prefetch.value"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.usageRequirements">
      <path value="CDSHooksServices.services.usageRequirements"/>
      <short
             value="Human-friendly preconditions for the use of this CDS Service"/>
      <definition
                  value="Human-friendly description of any preconditions for the use of this CDS Service"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.usageRequirements"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.version">
      <path value="CDSHooksServices.services.version"/>
      <short value="CDS Hooks specification version implemented"/>
      <definition
                  value="The [semantic](http://semver.org) version of the CDS Hooks specification implemented (e.g. `3.0.0`))"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.version"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.hookVersion">
      <path value="CDSHooksServices.services.hookVersion"/>
      <short value="Hook version implemented"/>
      <definition
                  value="The version of the hook this service supports, which SHALL match the hookVersion in the published hook definition. A service that supports multiple versions of the same hook exposes each version at a separate endpoint."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="CDSHooksServices.services.hookVersion"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
  </snapshot>
  <differential>
    <element id="CDSHooksServices">
      <path value="CDSHooksServices"/>
      <short value="The response to the discovery endpoint"/>
      <definition
                  value="The response to the discovery endpoint SHALL be an object containing a list of CDS Services"/>
    </element>
    <element id="CDSHooksServices.services">
      <extension
                 url="http://hl7.org/fhir/tools/StructureDefinition/json-empty-behavior">
        <valueCode value="present"/>
      </extension>
      <path value="CDSHooksServices.services"/>
      <short value="An array of CDS Services"/>
      <definition value="An array of CDS Services"/>
      <comment
               value="If the CDS server hosts no CDS Services, the discovery endpoint should return a 200 HTTP response with an empty array of services. Note that a CDS server can host multiple entries of CDS service with the same id for different hooks. This allows a service to update its advice based on changes in workflow."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code
              value="http://cds-hooks.hl7.org/StructureDefinition/CDSHooksElement"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.hook">
      <path value="CDSHooksServices.services.hook"/>
      <short value="The hook this service should be invoked on"/>
      <definition value="The hook this service should be invoked on"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.title">
      <path value="CDSHooksServices.services.title"/>
      <short value="The human-friendly name of this service"/>
      <definition value="The human-friendly name of this service"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.description">
      <path value="CDSHooksServices.services.description"/>
      <short value="The description of this service"/>
      <definition value="The description of this service"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="markdown"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.id">
      <path value="CDSHooksServices.services.id"/>
      <short value="The {id} portion of the URL to this service"/>
      <definition
                  value="The {id} portion of the URL to this service which is available at {baseUrl}/cds-services/{id}"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.prefetch">
      <extension
                 url="http://hl7.org/fhir/tools/StructureDefinition/json-property-key">
        <valueCode value="key"/>
      </extension>
      <path value="CDSHooksServices.services.prefetch"/>
      <short value="Key/value pairs of FHIR queries to provide when calling"/>
      <definition
                  value="An object containing key/value pairs of FHIR queries that this service is requesting the CDS Client to perform and provide on each service call. The key is a string that describes the type of data being requested and the value is a string representing the FHIR query"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Base"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.prefetch.key">
      <path value="CDSHooksServices.services.prefetch.key"/>
      <short value="Key of FHIR query"/>
      <definition
                  value="Key of FHIR query - name for client to use when sending prefetched data to the service"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.prefetch.value">
      <path value="CDSHooksServices.services.prefetch.value"/>
      <short value="FHIR query template"/>
      <definition
                  value="A FHIR query for the CDS Client to perform, which may include prefetch tokens"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.usageRequirements">
      <path value="CDSHooksServices.services.usageRequirements"/>
      <short
             value="Human-friendly preconditions for the use of this CDS Service"/>
      <definition
                  value="Human-friendly description of any preconditions for the use of this CDS Service"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.version">
      <path value="CDSHooksServices.services.version"/>
      <short value="CDS Hooks specification version implemented"/>
      <definition
                  value="The [semantic](http://semver.org) version of the CDS Hooks specification implemented (e.g. `3.0.0`))"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="CDSHooksServices.services.hookVersion">
      <path value="CDSHooksServices.services.hookVersion"/>
      <short value="Hook version implemented"/>
      <definition
                  value="The version of the hook this service supports, which SHALL match the hookVersion in the published hook definition. A service that supports multiple versions of the same hook exposes each version at a separate endpoint."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
  </differential>
</StructureDefinition>