This
page
is
part
of
the
FHIR
Specification
v6.0.0-ballot3:
Release
6
Ballot
(3rd
Draft)
(see
Ballot
Notes
).
The
current
version
is
5.0.0
.
For
a
full
list
Continuous
Integration
Build
of
available
versions,
see
FHIR
(will
be
incorrect/inconsistent
at
times).
See
the
Directory
of
published
versions
Bundle
resources
where
type
is
not
transaction,
transaction-response,
batch,
or
batch-response
or
when
the
request
is
a
POST
SHALL
have
Bundle.entry.fullUrl
populated
type='transaction'
or
type='transaction-response'
or
type='batch'
or
type='batch-response'
or
entry.all(fullUrl.exists()
or
request.method='POST')
Persistent
identity
generally
only
matters
for
batches
of
type
Document,
Message,
and
Collection.
It
would
not
normally
be
populated
for
search
and
history
results
and
servers
ignore
Bundle.identifier
when
processing
batches
and
transactions.
For
Documents
the
.identifier
SHALL
be
populated
such
that
the
.identifier
is
globally
unique.
It's
possible
to
use
a
bundle
for
other
purposes
(e.g.
a
document
can
be
accepted
as
a
transaction).
This
is
primarily
defined
so
that
there
can
be
specific
rules
for
some
of
the
bundle
types.
Bundle
resources
where
type
is
not
transaction,
transaction-response,
batch,
or
batch-response
or
when
the
request
is
a
POST
SHALL
have
Bundle.entry.fullUrl
populated
type='transaction'
or
type='transaction-response'
or
type='batch'
or
type='batch-response'
or
entry.all(fullUrl.exists()
or
request.method='POST')
For
many
bundles,
the
timestamp
is
equal
to
.meta.lastUpdated,
because
they
are
not
stored
(e.g.
search
results).
When
a
bundle
is
placed
in
a
persistent
store,
.meta.lastUpdated
will
be
usually
be
changed
by
the
server.
When
the
bundle
is
a
message,
a
middleware
agent
altering
the
message
(even
if
not
stored)
SHOULD
update
.meta.lastUpdated.
.timestamp
is
used
to
track
the
original
time
of
the
Bundle,
and
SHOULD
be
populated.
Usage:
document
:
the
date
the
document
was
created.
Note:
the
composition
may
predate
the
document,
or
be
associated
with
multiple
documents.
The
date
of
the
composition
-
the
authoring
time
-
may
be
earlier
than
the
document
assembly
time
message
:
the
date
that
the
content
of
the
message
was
assembled.
This
date
is
not
changed
by
middleware
engines
unless
they
add
additional
data
that
changes
the
meaning
of
the
time
of
the
message
history
:
the
date
that
the
history
was
assembled.
This
time
would
be
used
as
the
_since
time
to
ask
for
subsequent
updates
searchset
:
the
time
that
the
search
set
was
assembled.
Note
that
different
pages
MAY
have
different
timestamps
but
need
not.
Having
different
timestamps
does
not
imply
that
subsequent
pages
will
represent
or
include
changes
made
since
the
initial
query
transaction
|
transaction-response
|
batch
|
batch-response
|
collection
:
no
particular
assigned
meaning
The
timestamp
value
should
be
greater
than
the
lastUpdated
and
other
timestamps
in
the
resources
in
the
bundle,
and
it
should
be
equal
or
earlier
than
the
.meta.lastUpdated
on
the
Bundle
itself.
If
a
set
of
search
matches
or
a
history,
this
is
the
(potentially
estimated)
total
number
of
entries
of
type
'match'
across
all
pages
in
the
search.
It
does
not
include
search.mode
=
'include'
or
'outcome'
entries
and
it
does
not
provide
a
count
of
the
number
of
entries
in
the
Bundle.
Only
used
if
the
bundle
is
a
search
or
history
result
set.
The
total
does
not
include
resources
such
as
OperationOutcome
and
included
resources,
only
the
total
number
of
matching
resources.
Both
Bundle.link
and
Bundle.entry.link
are
defined
to
support
providing
additional
context
when
Bundles
are
used
(e.g.
HATEOAS
).
Bundle.entry.link
corresponds
to
links
found
in
the
HTTP
header
if
the
resource
in
the
entry
was
read
directly.
This
specification
defines
some
specific
uses
of
Bundle.link
for
searching
and
paging
,
but
no
specific
uses
for
Bundle.entry.link,
and
no
defined
function
in
a
transaction
-
the
meaning
is
implementation
specific.
The
behavior
of
navigation
link
types
(next/prev/first/last)
are
well
defined
for
searchset
and
history
Bundles
but
are
not
currently
defined
for
other
types.
Implementers
who
choose
to
use
such
link
relationships
for
other
bundle
types
will
need
to
negotiate
behavior
with
their
interoperability
partners.
For
bundles
of
type
'document'
and
'message',
the
first
resource
is
special
(must
be
Composition
or
MessageHeader
respectively).
For
all
bundles,
the
meaning
of
the
order
of
entries
depends
on
the
bundle
type
Bundle
resources
where
type
is
not
transaction,
transaction-response,
batch,
or
batch-response
or
when
the
request
is
a
POST
SHALL
have
Bundle.entry.fullUrl
populated
type='transaction'
or
type='transaction-response'
or
type='batch'
or
type='batch-response'
or
entry.all(fullUrl.exists()
or
request.method='POST')
The
Absolute
URL
for
the
resource.
Except
for
transactions
and
batches,
each
entry
in
a
Bundle
must
have
a
fullUrl.
The
fullUrl
SHALL
NOT
disagree
with
the
id
in
the
resource
-
i.e.
if
the
fullUrl
is
not
a
urn:uuid,
the
URL
shall
be
version-independent
URL
consistent
with
the
Resource.id.
The
fullUrl
is
a
version
independent
reference
to
the
resource.
Even
when
not
required,
fullUrl
MAY
be
set
to
a
urn:uuid
to
allow
referencing
entries
in
a
transaction.
The
fullUrl
can
be
an
arbitrary
URI
and
is
not
limited
to
urn:uuid,
urn:oid,
http,
and
https.
The
fullUrl
element
SHALL
have
a
value
unless:
the
Bundle
is
a
batch
or
transaction
request
or
response
AND
the
entry
is
invoking
a
create
invoking
or
responding
to
an
operation
where
the
body
is
not
a
single
identified
resource
invoking
or
returning
the
results
of
a
search
or
history
operation.
Short
Display
URI
for
resource
(e.g.
the
absolute
URL
server
address,
URI
for
UUID/OID,
etc.)
fullUrl
might
not
be
unique
in
the
context
of
a
resource
.
Note
that
since
FHIR
resources
do
not
need
to
be
served
through
the
FHIR
API
,
the
fullURL
might
be
a
URN
or
an
absolute
URL
that
does
not
end
with
the
logical
id
of
the
resource
(Resource.id).
However,
if
the
fullUrl
does
look
like
a
RESTful
server
URL
(e.g.
meets
the
regex
,
then
the
portion
of
the
URL
that,
by
FHIR
syntax,
corresponds
to
the
resource
type
and
id
within
the
fullUrl
SHALL
match
the
resource
type
and
id
of
the
resource.
Note
that
the
fullUrl
is
not
the
same
as
the
canonical
URL
-
it's
an
absolute
url
for
an
endpoint
serving
the
resource
(these
will
happen
to
have
the
same
value
on
the
canonical
server
for
the
resource
with
the
canonical
URL).
Bundle
resources
where
type
is
not
transaction,
transaction-response,
batch,
or
batch-response
or
when
the
request
is
a
POST
SHALL
have
Bundle.entry.fullUrl
populated
type='transaction'
or
type='transaction-response'
or
type='batch'
or
type='batch-response'
or
entry.all(fullUrl.exists()
or
request.method='POST')
The
Resource
for
the
entry.
The
purpose/meaning
of
the
resource
is
determined
by
the
Bundle.type.
This
is
allowed
to
be
a
Parameters
resource
if
and
only
if
it
is
referenced
by
something
else
within
the
Bundle
that
provides
context/meaning.
Why
this
entry
is
in
the
result
set
-
whether
it's
included
as
a
match
or
because
of
an
_include
requirement,
or
to
convey
information
or
warning
information
about
the
search
process.
There
is
only
one
mode.
In
some
corner
cases,
a
resource
may
be
included
because
it
is
both
a
match
and
an
include.
In
these
circumstances,
'match'
takes
precedence.
Bundle.entry.search.score
Element
Id
Bundle.entry.search.score
Definition
When
searching,
the
server's
search
ranking
score
for
the
entry.
Servers
are
not
required
to
return
a
ranking
score.
1
is
most
relevant,
and
0
is
least
relevant.
Often,
search
results
are
sorted
by
score,
but
the
client
may
specify
a
different
sort
order.
See
Patient
Match
for
the
EMPI
search
which
relates
to
this
element.
Bundle.entry.request
Element
Id
Bundle.entry.request
Definition
Additional
information
about
how
this
entry
should
be
processed
as
part
of
a
transaction
or
batch.
For
history,
it
shows
how
the
entry
was
processed
to
create
the
version
contained
in
the
entry.
Short
Display
Additional
execution
information
(transaction/batch/history)
Bundle
resources
where
type
is
not
transaction,
transaction-response,
batch,
or
batch-response
or
when
the
request
is
a
POST
SHALL
have
Bundle.entry.fullUrl
populated
type='transaction'
or
type='transaction-response'
or
type='batch'
or
type='batch-response'
or
entry.all(fullUrl.exists()
or
request.method='POST')
Bundle.entry.request.url
Element
Id
Bundle.entry.request.url
Definition
The
URL
for
this
entry,
relative
to
the
root
(the
address
to
which
the
request
is
posted).
E.g.
for
a
Patient
Create,
the
method
would
be
"POST"
and
the
URL
would
be
"Patient".
For
a
Patient
Update,
the
method
would
be
PUT
and
the
URL
would
be
"Patient/[id]".
Bundle.entry.request.ifNoneMatch
Element
Id
Bundle.entry.request.ifNoneMatch
Definition
If
the
ETag
values
match,
return
a
304
Not
Modified
status.
See
the
API
documentation
for
"Conditional
Read"
.
Instruct
the
server
not
to
perform
the
create
if
a
specified
resource
already
exists.
For
further
information,
see
the
API
documentation
for
"Conditional
Create"
.
This
is
just
the
query
portion
of
the
URL
-
what
follows
the
"?"
(not
including
the
"?").
Indicates
the
results
of
processing
the
corresponding
'request'
entry
in
the
batch
or
transaction
being
responded
to
or
what
the
results
of
an
operation
where
when
returning
history.
must
be
a
resource
unless
there's
a
request
or
response
resource.exists()
or
request.exists()
or
response.exists()
Bundle.entry.response.status
Element
Id
Bundle.entry.response.status
Definition
The
status
code
returned
by
processing
this
entry.
The
status
SHALL
start
with
a
3
digit
HTTP
code
(e.g.
404)
and
may
contain
the
standard
HTTP
description
associated
with
the
status
code.
For
a
POST/PUT
operation,
this
is
the
equivalent
outcome
that
would
be
returned
for
prefer
=
operationoutcome
-
except
that
the
resource
is
always
returned
whether
or
not
the
outcome
is
returned.
This
outcome
is
not
used
for
error
responses
in
batch/transaction,
only
for
hints
and
warnings.
In
a
batch
operation,
the
error
will
be
in
Bundle.entry.response,
and
for
transaction,
there
will
be
a
single
OperationOutcome
instead
of
a
bundle
in
the
case
of
an
error.
Bundle.signature
Element
Id
Bundle.signature
Definition
Digital
Signature
-
base64
encoded.
Signature:
XML-DSig
or
a
JWS.
This
element
is
deprecated,
and
Provenance
based
Signatures
should
be
used
instead.
Short
Display
Digital
Signature
(deprecated:
use
Provenance
Signatures)
Requirements
A
Signature
holds
an
electronic
representation
of
a
signature
and
its
supporting
context
in
a
FHIR
accessible
form.
The
signature
may
either
be
a
cryptographic
type
(XML
DigSig
or
a
JWS),
which
is
able
to
provide
non-repudiation
proof,
or
it
may
be
a
graphical
image
that
represents
a
signature
or
a
signature
process.
This
element
allows
capturing
signatures
on
documents,
messages,
transactions
or
even
search
responses,
to
support
content-authentication,
non-repudiation
or
other
business
cases.
This
is
primarily
relevant
where
the
bundle
may
travel
through
multiple
hops
or
via
other
mechanisms
where
HTTPS
non-repudiation
is
insufficient.
Summary
true
Comments
The
signature
could
be
created
by
the
"author"
of
the
bundle
or
by
the
originating
device.
Requirements
around
inclusion
of
a
signature,
verification
of
signatures
and
treatment
of
signed/non-signed
bundles
is
implementation-environment
specific.
Bundle.issues
Element
Id
Bundle.issues
Definition
An
OperationOutcome
that
captures
issues
and
warnings
that
relate
to
the
construction
of
the
Bundle
and
the
content
within
it.
Usage
notes:
These
issues
and
warnings
must
apply
to
the
Bundle
as
a
whole,
not
to
individual
entries.
Messages
relating
to
the
processing
of
individual
entries
(e.g.
in
a
batch
or
transaction)
SHALL
be
reported
in
the
entry.response.outcome
for
that
entry.
If
there
are
errors
that
arise
in
the
creation
of
the
Bundle,
then
that
should
be
handled
by
an
OperationOutcome
being
returned
instead
of
the
Bundle.