Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

Example OperationDefinition/StructureMap-transform (XML)

FHIR Infrastructure 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="StructureMap-transform"/> 
  <text> 
    <status value="extensions"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p> URL: [base]/StructureMap/$transform</p> 
      <p> URL: [base]/StructureMap/[id]/$transform</p> 
      <p> Parameters</p> 
      <table class="grid">
        <tr> 
          <td> 
            <b> Use</b> 
          </td> 
          <td> 
            <b> Name</b> 
          </td> 
          <td> 
            <b> Scope</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> source</td> 
          <td> type</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#uri">uri</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The structure map to apply. This is only needed if the operation is invoked at
                 the resource level and no structureMap has been provided. If the $transform operation
                 is invoked on a particular structure map, this will be ignored by the server</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> sourceMap</td> 
          <td/>  
          <td> 0..1</td> 
          <td> 
            <a href="structuremap.html">StructureMap</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The structure map to apply. This is only needed when the operation is invoked at
                 the resource level and no URI has been provided.</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> supportingMap</td> 
          <td/>  
          <td> 0..*</td> 
          <td> 
            <a href="structuremap.html">StructureMap</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> StructureMap resources that support the source map. If a source URL is provided,
                 the map can be provided in this parameter (or it can be provided as sourceMap).</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> srcMap</td> 
          <td/>  
          <td> 0..*</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The same as structureMap, but the resource is provided in the mapping language
                 rather than as a structureMap.</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> content</td> 
          <td/>  
          <td> 1..1</td> 
          <td> 
            <a href="resource.html">Resource</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The logical content to transform</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> return</td> 
          <td/>  
          <td> 1..1</td> 
          <td> 
            <a href="resource.html">Resource</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The result of the transform</p> 

            </div> 
          </td> 
        </tr> 
      </table> 
      <div> 
        <p> The input and return are specified as 'Resources'. In most usage of the $transform
           operation, either the input or return content is not a valid FHIR resource. In
           these cases, the return type is actually a 
          <a href="binary.html">Binary</a>  resource. For this operation, the Binary resources may be encoded directly, using
           a mime-type, as shown in the example. Note: this specification does not yet address
           the means by which the servers may know the correct mime types for the various
           content involved
        </p> 

      </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/StructureMap-transform"/> 
  <version value="5.0.0"/> 
  <name value="Transform"/> 
  <title value="Model Instance Transformation"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <experimental value="false"/> 
  <date value="2023-03-26T15:21:02+11: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="The transform operation takes input content, applies a structure map transform,
   and then returns the output."/> 
  <jurisdiction> 
    <coding> 
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> 
      <code value="001"/> 
      <display value="World"/> 
    </coding> 
  </jurisdiction> 
  <affectsState value="false"/> 
  <code value="transform"/> 
  <comment value="The input and return are specified as 'Resources'. In most usage of the $transform
   operation, either the input or return content is not a valid FHIR resource. In
   these cases, the return type is actually a [Binary](binary.html) resource. For
   this operation, the Binary resources may be encoded directly, using a mime-type,
   as shown in the example. Note: this specification does not yet address the means
   by which the servers may know the correct mime types for the various content involved"/> 
  <resource value="StructureMap"/> 
  <system value="false"/> 
  <type value="true"/> 
  <instance value="true"/> 
  <parameter> 
    <name value="source"/> 
    <use value="in"/> 
    <scope value="type"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The structure map to apply. This is only needed if the operation is invoked at
     the resource level and no structureMap has been provided. If the $transform operation
     is invoked on a particular structure map, this will be ignored by the server"/> 
    <type value="uri"/> 
  </parameter> 
  <parameter> 
    <name value="sourceMap"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The structure map to apply. This is only needed when the operation is invoked at
     the resource level and no URI has been provided."/> 
    <type value="StructureMap"/> 
  </parameter> 
  <parameter> 
    <name value="supportingMap"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="StructureMap resources that support the source map. If a source URL is provided,
     the map can be provided in this parameter (or it can be provided as sourceMap)."/> 
    <type value="StructureMap"/> 
  </parameter> 
  <parameter> 
    <name value="srcMap"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="The same as structureMap, but the resource is provided in the mapping language
     rather than as a structureMap."/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="content"/> 
    <use value="in"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="The logical content to transform"/> 
    <type value="Resource"/> 
  </parameter> 
  <parameter> 
    <name value="return"/> 
    <use value="out"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="The result of the transform"/> 
    <type value="Resource"/> 
  </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.