<?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">
      <h2>Model Instance Transformation</h2>
      <p>OPERATION: Model Instance Transformation</p>
      <p>The official URL for this operation definition is: </p>
      <pre>http://hl7.org/fhir/OperationDefinition/StructureMap-transform</pre>
      <div>
        <p>The transform operation takes input content, applies a structure map transform, and then returns the output.</p>

      </div>
      <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>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>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. 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>content</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>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 &#39;Resources&#39;. 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">
    <valueString value="Trial Use"/>
  </extension>
  <url value="http://hl7.org/fhir/OperationDefinition/StructureMap-transform"/>
  <name value="Model Instance Transformation"/>
  <status value="draft"/>
  <kind value="operation"/>
  <date value="2018-08-19T21:48:56+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="The transform operation takes input content, applies a structure map transform, and then returns the output."/>
  <code value="transform"/>
  <comment value="The input and return are specified as &#39;Resources&#39;. 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"/>
    <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. 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="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>