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

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="StructureMap-transform"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p class="res-header-id">
        <b>Generated Narrative: OperationDefinition StructureMap-transform</b>
      </p>
      <a name="StructureMap-transform"> </a>
      <a name="hcStructureMap-transform"> </a>
      <p>URL: [base]/StructureMap/$transform</p>
      <p>URL: [base]/StructureMap/[id]/$transform</p>
      <h3>Parameters</h3>
      <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="normative"/>
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="fhir"/>
  </extension>
  <url value="http://hl7.org/fhir/OperationDefinition/StructureMap-transform"/>
  <version value="6.0.0-ballot3"/>
  <name value="Transform"/>
  <title value="Model Instance Transformation"/>
  <status value="active"/>
  <kind value="operation"/>
  <experimental value="false"/>
  <date value="2025-11-27T15:05:37+00:00"/>
  <publisher value="HL7 International / FHIR Infrastructure"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://hl7.org/fhir"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="fhir@lists.hl7.org"/>
    </telecom>
  </contact>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/fiwg"/>
    </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>