This page is part of the FHIR Specification (v1.1.0: STU 3 Ballot 1). 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
This is a frozen snapshot of the FHIR specification created for the purpose of balloting the GAO implementation Guide. It includes draft changes that may be part of the future DSTU 2.1 release but further change is expected. Readers should focus solely on the GAO implementation content, and FHIR DSTU 2 for other purposes.
This resource has 1 operation associated with it:
$process-message | Process Message |
For more information about operations, including how they are invoked, see Operations.
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
Formal Definition (as a OperationDefinition).
URL: [base]/$process-message
In Parameters: | |||||
Name | Cardinality | Type | Binding | Profile | Documentation |
content | 1..1 | Bundle | The message to process (or, if using asynchronous messaging, it may be a response message to accept) | ||
async | 0..1 | boolean | If 'true' the message is processed using the asynchronous messaging pattern | ||
response-url | 0..1 | uri | 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 | ||
Out Parameters: | |||||
Name | Cardinality | Type | Binding | Profile | Documentation |
return | 0..1 | Bundle | A response message, if synchronous messaging is being used (mandatory in this case). For asynchronous messaging, there is no return value Note: as this the only out parameter, it is a resource, and it has the name 'return', the result of this operation is returned directly as a resource |
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
Request to link 2 patients, and respond asynchronously (Request):
POST /ehr/fhir/$process-message?aync=true&response-url=http://example.org/clients/ehr-lite [other headers] <?xml version="1.0" encoding="UTF-8"?> <Bundle xmlns="http://hl7.org/fhir"> <id value="10bb101f-a121-4264-a920-67be9cb82c74"/> <type value="message"/> <entry> <fullUrl value="urn:uuid:267b18ce-3d37-4581-9baa-6fada338038b"/> <resource> <MessageHeader> <id value="efdd254b-0e09-4164-883e-35cf3871715f"/> <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"> <p>This message is a request to link Patient records 654321 (Patient Donald DUCK @ Acme Healthcare, Inc) and 123456 (Patient Donald D DUCK @ Acme Healthcare, Inc)</p> </div> </text> <timestamp value="2015-07-14T11:15:33+10:00"/> <event> <system value="http://hl7.org/fhir/message-events"/> <code value="patient-link"/> </event> <source> <endpoint value="http://example.org/clients/ehr-lite"/> </source> <destination> <endpoint value="http://acme.com/ehr/fhir"/> </destination> <responsible> <reference value="http://acme.com/ehr/fhir/Practitioner/2323-33-4"/> </responsible> <!-- this message is posted to http://acme.com/ehr/fhir, with an event 'link' to link 2 patient records, and nominates 2 patients on the server --> <data> <reference value="http://acme.com/ehr/fhir/Patient/pat1"/> </data> <data> <reference value="http://acme.com/ehr/fhir/Patient/pat12"/> </data> </MessageHeader> </resource> </entry> <entry> <fullUrl value="http://acme.com/ehr/fhir/Patient/pat1"/> <resource> <Patient> <id value="pat1"/> <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"> <p>Patient Donald DUCK @ Acme Healthcare, Inc. MR = 654321</p> </div> </text> <identifier> <use value="usual"/> <type> <coding> <system value="http://hl7.org/fhir/v2/0203"/> <code value="MR"/> </coding> </type> <system value="urn:oid:0.1.2.3.4.5.6.7"/> <value value="654321"/> </identifier> <active value="true"/> <name> <use value="official"/> <family value="Donald"/> <given value="Duck"/> </name> <gender value="male"/> <contact> <relationship> <coding> <system value="http://hl7.org/fhir/patient-contact-relationship"/> <code value="owner"/> </coding> </relationship> <organization> <reference value="Organization/1"/> <display value="Walt Disney Corporation"/> </organization> </contact> <managingOrganization> <reference value="Organization/1"/> <display value="ACME Healthcare, Inc"/> </managingOrganization> </Patient> </resource> </entry> <entry> <fullUrl value="http://acme.com/ehr/fhir/Patient/pat12"/> <resource> <Patient> <id value="pat2"/> <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"> <p>Patient Donald D DUCK @ Acme Healthcare, Inc. MR = 123456</p> </div> </text> <identifier> <use value="usual"/> <type> <coding> <system value="http://hl7.org/fhir/v2/0203"/> <code value="MR"/> </coding> </type> <system value="urn:oid:0.1.2.3.4.5.6.7"/> <value value="123456"/> </identifier> <active value="true"/> <name> <use value="official"/> <family value="Donald"/> <given value="Duck"/> <given value="D"/> </name> <gender value="other"> <extension url="http://example.org/Profile/administrative-status"> <valueCodeableConcept> <coding> <system value="http://hl7.org/fhir/v2/0001"/> <code value="A"/> <display value="Ambiguous"/> </coding> </valueCodeableConcept> </extension> </gender> <managingOrganization> <reference value="Organization/1"/> <display value="ACME Healthcare, Inc"/> </managingOrganization> </Patient> </resource> </entry> </Bundle>
Response - since this is asynchronous, the response is empty (Response):
200 OK [other headers]
Response - if the message couldn't be accepted (e.g. there'll be no asynchronous response (Response):
500 OK Internal Server Error [other headers] <?xml version="1.0" encoding="UTF-8"?> <OperationOutcome xmlns="http://hl7.org/fhir"> <id value="exception"/> <text> <status value="additional"/> <div xmlns="http://www.w3.org/1999/xhtml"> <p>SQL Link Communication Error (dbx = 34234)</p> </div> </text> <issue> <severity value="error"/> <code value="exception"/> <details> <text value="SQL Link Communication Error (dbx = 34234)"/> </details> </issue> </OperationOutcome>