This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
(v4.0.1:
R4
-
Mixed
Normative
and
STU
3).
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
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
R4
R3
R2
For
more
information
about
operations,
including
how
they
are
invoked,
see
Operations
.
2.47.11.1
Process
Message
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
The
official
URL
for
this
operation
definition
is
http://hl7.org/fhir/OperationDefinition/MessageHeader-process-message
Formal
Definition
(as
a
OperationDefinition
).
URL:
[base]/$process-message
This
is
not
an
idempotent
operation
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
2.47.11.1.1
Examples
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>
<event>
<system value="http://hl7.org/fhir/message-events"/>
<code value="patient-link"/>
</event>
<timestamp value="2015-07-14T11:15:33+10:00"/>
<source>
<endpoint value="http://example.org/clients/ehr-lite"/>
</source>
<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 -->
<focus>
<reference value="http://acme.com/ehr/fhir/Patient/pat1"/>
</focus>
<focus>
<reference value="http://acme.com/ehr/fhir/Patient/pat12"/>
</focus>
</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="E"/>
</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>