Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: FHIR R5 Ballot Preview). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

Example OperationDefinition/Composition-document (XML)

Structured Documents Work GroupMaturity Level: N/AStandards Status: Informative

Raw XML (canonical form + also see XML Format Specification)

Operation Definition

<?xml version="1.0" encoding="UTF-8"?>

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="Composition-document"/> 
  <text> 
    <status value="extensions"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p> URL: [base]/Composition/$document</p> 
      <p> URL: [base]/Composition/[id]/$document</p> 
      <p> Parameters</p> 
      <table class="grid">
        <tr> 
          <td> 
            <b> Use</b> 
          </td> 
          <td> 
            <b> Name</b> 
          </td> 
          <td> 
            <b> Cardinality</b> 
          </td> 
          <td> 
            <b> Type</b> 
          </td> 
          <td> 
            <b> Binding</b> 
          </td> 
          <td> 
            <b> Documentation</b> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> id</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#uri">uri</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Identifies the composition to use. This can either be a simple id, which identifies a
                 composition, or it can be a full URL, which identifies a composition on another server.</p> 

              <p> Notes:</p> 

              <ul> 

                <li> GET [base]/Composition/[id]/$document is identical in meaning to GET [base]/Composition/$document?id
                  =[id]</li> 

                <li> the id parameter SHALL NOT be used if the operation is requested on a particular composition
                   (e.g.  GET [base]/Composition/[id]/$document?id=[id] is not allowed)</li> 

                <li> Servers are not required to support generating documents on Compositions located on another
                   server</li> 

              </ul> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> persist</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#boolean">boolean</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Whether to store the document at the bundle end-point (/Bundle) or not once it is generated.
                 Value = true or false (default is for the server to decide). If the document is stored,
                 it's location can be inferred from the Bundle.id, but it SHOULD be provided explicitly
                 in the HTTP Location header in the response</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> graph</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#uri">uri</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Canonical reference to a GraphDefinition. If a URL is provided, it is the canonical reference
                 to a 
                <a href="graphdefinition.html">GraphDefinition</a>  that it controls what resources are to be added to the bundle when building the document.
                 The GraphDefinition can also specify profiles that apply to the various resources
              </p> 

            </div> 
          </td> 
        </tr> 
      </table> 
      <div> 
        <p> Notes:</p> 

        <ul> 

          <li> The server implementing the operation SHOULD determine a 'high-level water-mark' for the
             document security tags (
            <a href="resource.html#Meta">Bundle.meta.security</a> )) as a whole, based on an analysis of the resources contained within the document
          </li> 

          <li> this operation definition does not resolve the question how document signatures are created.
             This is an open issue during the period of trial use, and feedback is requested regarding
             this question</li> 

        </ul> 

      </div> 
    </div> 
  </text> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="2"/> 
  </extension> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="trial-use"/> 
  </extension> 
  <url value="http://hl7.org/fhir/OperationDefinition/Composition-document"/> 
  <version value="5.0.0-ballot"/> 
  <name value="Document"/> 
  <title value="Generate a Document"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <experimental value="false"/> 
  <date value="2022-09-07T10:58:29+10:00"/> 
  <publisher value="HL7 (FHIR Project)"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://hl7.org/fhir"/> 
    </telecom> 
    <telecom> 
      <system value="email"/> 
      <value value="fhir@lists.hl7.org"/> 
    </telecom> 
  </contact> 
  <description value="A client can ask a server to generate a fully bundled document from a composition resource.
   The server takes the composition resource, locates all the referenced resources and other
   additional resources as configured or requested and either returns a full document bundle,
   or returns an error. Note that since this is a search operation, the document bundle is
    wrapped inside the search bundle.  If some of the resources are located on other servers,
   it is at the discretion of the  server whether to retrieve them or return an error. If
   the correct version of the document  that would be generated already exists, then the
   server can return the existing one."/> 
  <affectsState value="false"/> 
  <code value="document"/> 
  <comment value="Notes:

* The server implementing the operation SHOULD determine a 'high-level water-mark' for
   the document security tags ([Bundle.meta.security](resource.html#Meta))) as a whole, based
   on an analysis of the resources contained within the document
* this operation definition does not resolve the question how document signatures are
   created. This is an open issue during the period of trial use, and feedback is requested
   regarding this question"/> 
  <resource value="Composition"/> 
  <system value="false"/> 
  <type value="true"/> 
  <instance value="true"/> 
  <parameter> 
    <name value="id"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="Identifies the composition to use. This can either be a simple id, which identifies a
     composition, or it can be a full URL, which identifies a composition on another server.
     

Notes: 

* GET [base]/Composition/[id]/$document is identical in meaning to GET [base]/Composition/$document?
    id=[id]
* the id parameter SHALL NOT be used if the operation is requested on a particular composition
     (e.g.  GET [base]/Composition/[id]/$document?id=[id] is not allowed)
* Servers are not required to support generating documents on Compositions located on
     another server"/> 
    <type value="uri"/> 
  </parameter> 
  <parameter> 
    <name value="persist"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="Whether to store the document at the bundle end-point (/Bundle) or not once it is generated.
     Value = true or false (default is for the server to decide). If the document is stored,
     it's location can be inferred from the Bundle.id, but it SHOULD be provided explicitly
     in the HTTP Location header in the response"/> 
    <type value="boolean"/> 
  </parameter> 
  <parameter> 
    <name value="graph"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="Canonical reference to a GraphDefinition. If a URL is provided, it is the canonical reference
     to a [GraphDefinition](graphdefinition.html) that it controls what resources are to be
     added to the bundle when building the document. The GraphDefinition can also specify profiles
     that apply to the various resources"/> 
    <type value="uri"/> 
  </parameter> 
</OperationDefinition> 

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.