<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="spark13" />
  <meta>
    <versionId value="spark13" />
    <lastUpdated value="2015-10-02T11:54:25.272+00:00" />
  </meta>
  <text>
    <status value="generated" />
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h2>Process Message</h2>
      <p>OPERATION: Process Message</p>
      <div>
        <p>This operation accepts a message, processes it according to the definition of the event in the message header, and returns a one or more response messages.  This  operation is described in detail 
                <a href="messaging.html#process">on the messaging page</a></p>
      </div>
      <p>URL: [base]/$process-message</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>content</td>
          <td>1..1</td>
          <td>Bundle</td>
          <td />
          <td>
            <div>
              <p>The message to process (or, if using asynchronous messaging, it may be a response message to accept)</p>
            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>async</td>
          <td>0..1</td>
          <td>boolean</td>
          <td />
          <td>
            <div>
              <p>If 'true' the message is processed using the asynchronous messaging pattern</p>
            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>response-url</td>
          <td>0..1</td>
          <td>uri</td>
          <td />
          <td>
            <div>
              <p>A URL to submit response messages to, if asynchronous messaging is being used, and if the MessageHeader.source.endpoint is not the appropriate place to submit responses</p>
            </div>
          </td>
        </tr>
        <tr>
          <td>OUT</td>
          <td>return</td>
          <td>0..1</td>
          <td>Bundle</td>
          <td />
          <td>
            <div>
              <p>A response message, if synchronous messaging is being used (mandatory in this case). For asynchronous messaging, there is no return value</p>
            </div>
          </td>
        </tr>
      </table>
      <div>
        <p>This operation does not use the parameters resource; the parameters "async" and "response-url" always go in the URL, if they are used, and the message parameter is always the body of the HTTP message</p>
      </div>
    </div>
  </text>
  <url value="http://hl7.org/fhir/OperationDefinition/MessageHeader-process-message" />
  <name value="Process Message" />
  <status value="draft" />
  <kind value="operation" />
  <publisher value="HL7 (FHIR Project)" />
  <contact>
    <telecom>
      <system value="other" />
      <value value="http://hl7.org/fhir" />
    </telecom>
    <telecom>
      <system value="email" />
      <value value="fhir@lists.hl7.org" />
    </telecom>
  </contact>
  <date value="2015-09-22T13:47:23+10:00" />
  <description value="This operation accepts a message, processes it according to the definition of the event in the message header, and returns a one or more response messages.  This  operation is described in detail [on the messaging page](messaging.html#process)" />
  <code value="process-message" />
  <notes value="This operation does not use the parameters resource; the parameters &quot;async&quot; and &quot;response-url&quot; always go in the URL, if they are used, and the message parameter is always the body of the HTTP message" />
  <system value="true" />
  <instance value="false" />
  <parameter>
    <name value="content" />
    <use value="in" />
    <min value="1" />
    <max value="1" />
    <documentation value="The message to process (or, if using asynchronous messaging, it may be a response message to accept)" />
    <type value="Bundle" />
  </parameter>
  <parameter>
    <name value="async" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <documentation value="If 'true' the message is processed using the asynchronous messaging pattern" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="response-url" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <documentation value="A URL to submit response messages to, if asynchronous messaging is being used, and if the MessageHeader.source.endpoint is not the appropriate place to submit responses" />
    <type value="uri" />
  </parameter>
  <parameter>
    <name value="return" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <documentation value="A response message, if synchronous messaging is being used (mandatory in this case). For asynchronous messaging, there is no return value" />
    <type value="Bundle" />
  </parameter>
</OperationDefinition>