|
Bundle
|
|
Definition
|
A
container
for
a
collection
of
resources.
A container for a collection of resources.
|
|
Control
|
1..1
|
|
Summary
|
true
|
|
Invariants
|
Defined
on
this
element
Defined on this element
bdl-1
:
total
only
when
a
search
or
history
(xpath:
not(f:total)
or
(f:type/@value
=
'searchset')
or
(f:type/@value
=
'history'))
: total only when a search or history (
expression
: total.empty() or (type = 'searchset') or (type = 'history'), xpath: not(f:total) or (f:type/@value = 'searchset') or (f:type/@value = 'history'))
bdl-2
:
entry.search
only
when
a
search
(xpath:
not(f:entry/f:search)
or
(f:type/@value
=
'searchset'))
: entry.search only when a search (
expression
: entry.search.empty() or (type = 'searchset'), xpath: not(f:entry/f:search) or (f:type/@value = 'searchset'))
bdl-3
:
entry.request
only
for
some
types
of
bundles
(xpath:
not(f:entry/f:request)
or
(f:type/@value
=
'batch')
or
(f:type/@value
=
'transaction')
or
(f:type/@value
=
'history'))
: entry.request only for some types of bundles (
expression
: entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history', xpath: not(f:entry/f:request) or (f:type/@value = 'batch') or (f:type/@value = 'transaction') or (f:type/@value = 'history'))
bdl-4
:
entry.response
only
for
some
types
of
bundles
(xpath:
not(f:entry/f:response)
or
(f:type/@value
=
'batch-response')
or
(f:type/@value
=
'transaction-response'))
: entry.response only for some types of bundles (
expression
: entry.response.empty() or type = 'batch-response' or type = 'transaction-response', xpath: not(f:entry/f:response) or (f:type/@value = 'batch-response') or (f:type/@value = 'transaction-response'))
bdl-7
:
FullUrl
must
be
unique
in
a
bundle,
or
else
entries
with
the
same
fullUrl
must
have
different
meta.versionId
(xpath:
count(for
$entry
in
f:entry[f:resource]
return
$entry[count(parent::f:Bundle/f:entry[f:fullUrl/@value=$entry/f:fullUrl/@value
and
((not(f:resource/*/f:meta/f:versionId/@value)
and
not($entry/f:resource/*/f:meta/f:versionId/@value))
or
f:resource/*/f:meta/f:versionId/@value=$entry/f:resource/*/f:meta/f:versionId/@value)])!=1])=0)
: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (
expression
: entry.where(fullUrl).select(fullUrl+resource.meta.versionId).distinct(), xpath: count(for $entry in f:entry[f:resource] return $entry[count(parent::f:Bundle/f:entry[f:fullUrl/@value=$entry/f:fullUrl/@value and ((not(f:resource/*/f:meta/f:versionId/@value) and not($entry/f:resource/*/f:meta/f:versionId/@value)) or f:resource/*/f:meta/f:versionId/@value=$entry/f:resource/*/f:meta/f:versionId/@value)])!=1])=0)
|
|
Bundle.type
|
|
Definition
|
Indicates
the
purpose
of
this
bundle-
how
it
was
intended
to
be
used.
Indicates the purpose of this bundle- how it was intended to be used.
|
|
Control
|
1..1
|
|
Binding
|
BundleType:
Indicates
the
purpose
of
a
bundle
-
how
it
was
intended
to
be
used.
(
BundleType:
Indicates the purpose of a bundle - how it was intended to be used.
(
Required
)
|
|
Type
|
code
|
|
Summary
|
true
|
|
Comments
|
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.
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.total
|
|
Definition
|
If
a
set
of
search
matches,
this
is
the
total
number
of
matches
for
the
search
(as
opposed
to
the
number
of
results
in
this
bundle).
If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).
|
|
Control
|
0..1
|
|
Type
|
unsignedInt
|
|
Summary
|
true
|
|
Comments
|
Only
used
if
the
bundle
is
a
search
result
set.
Only used if the bundle is a search result set.
|
|
Invariants
|
Affect
this
element
Affect this element
bdl-1
:
total
only
when
a
search
or
history
(xpath:
not(f:total)
or
(f:type/@value
=
'searchset')
or
(f:type/@value
=
'history'))
: total only when a search or history (
expression
: total.empty() or (type = 'searchset') or (type = 'history'), xpath: not(f:total) or (f:type/@value = 'searchset') or (f:type/@value = 'history'))
|
|
Bundle.link
|
|
Definition
|
A
series
of
links
that
provide
context
to
this
bundle.
A series of links that provide context to this bundle.
|
|
Control
|
0..*
|
|
Summary
|
true
|
|
Bundle.link.relation
|
|
Definition
|
A
name
which
details
the
functional
use
for
this
link
-
see
[[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].
A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].
|
|
Control
|
1..1
|
|
Type
|
string
|
|
Summary
|
true
|
|
Bundle.link.url
|
|
Definition
|
The
reference
details
for
the
link.
The reference details for the link.
|
|
Control
|
1..1
|
|
Type
|
uri
|
|
Summary
|
true
|
|
Bundle.entry
|
|
Definition
|
An
entry
in
a
bundle
resource
-
will
either
contain
a
resource,
or
information
about
a
resource
(transactions
and
history
only).
An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).
|
|
Control
|
0..*
|
|
Summary
|
true
|
|
Invariants
|
Defined
on
this
element
Defined on this element
bdl-5
:
must
be
a
resource
unless
there's
a
request
or
response
(xpath:
f:resource
or
f:request
or
f:response)
: must be a resource unless there's a request or response (
expression
: resource or request or response, xpath: f:resource or f:request or f:response)
bdl-6
:
The
fullUrl
element
must
be
present
when
a
resource
is
present,
and
not
present
otherwise
(xpath:
(not(exists(f:fullUrl))
and
not(exists(f:resource)))
or
(exists(f:fullUrl)
and
exists(f:resource)))
: The fullUrl element must be present when a resource is present, and not present otherwise (
expression
: fullUrl.empty() xor resource, xpath: (not(exists(f:fullUrl)) and not(exists(f:resource))) or (exists(f:fullUrl) and exists(f:resource)))
|
|
Bundle.entry.link
|
|
Definition
|
A
series
of
links
that
provide
context
to
this
entry.
A series of links that provide context to this entry.
|
|
Control
|
0..*
|
|
Type
|
See
Bundle.link
See Bundle.link
|
|
Summary
|
true
|
|
Bundle.entry.fullUrl
|
|
Definition
|
The
Absolute
URL
for
the
resource.
This
must
be
provided
for
all
resources.
The
fullUrl
SHALL
not
disagree
with
the
id
in
the
resource.
The
fullUrl
is
a
version
independent
reference
to
the
resource.
The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: * fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle) * Results from operations might involve resources that are not identified.
|
|
Control
|
0..1
|
|
Type
|
uri
|
|
Summary
|
true
|
|
Comments
|
fullUrl
may
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
absolute
URL
may
not
end
with
the
logical
id
of
the
resource
(Resource.id),
but
if
the
fullUrl
does
look
like
a
RESTful
server
URL
(e.g.
meets
the
fullUrl may 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 absolute URL may not end with the logical id of the resource (Resource.id), but if the fullUrl does look like a RESTful server URL (e.g. meets the
regex
,
then
it
SHALL
end
with
the
Resource.id.
, then it SHALL end with the Resource.id.
|
|
Bundle.entry.resource
|
|
Definition
|
The
Resources
for
the
entry.
The Resources for the entry.
|
|
Control
|
0..1
|
|
Type
|
Resource
|
|
Summary
|
true
|
|
Bundle.entry.search
|
|
Definition
|
Information
about
the
search
process
that
lead
to
the
creation
of
this
entry.
Information about the search process that lead to the creation of this entry.
|
|
Control
|
0..1
|
|
Summary
|
true
|
|
Invariants
|
Affect
this
element
Affect this element
bdl-2
:
entry.search
only
when
a
search
(xpath:
not(f:entry/f:search)
or
(f:type/@value
=
'searchset'))
: entry.search only when a search (
expression
: entry.search.empty() or (type = 'searchset'), xpath: not(f:entry/f:search) or (f:type/@value = 'searchset'))
|
|
Bundle.entry.search.mode
|
|
Definition
|
Why
this
entry
is
in
the
result
set
-
whether
it's
included
as
a
match
or
because
of
an
_include
requirement.
Why this entry is in the result set - whether it's included as a match or because of an _include requirement.
|
|
Control
|
0..1
|
|
Binding
|
SearchEntryMode:
Why
an
entry
is
in
the
result
set
-
whether
it's
included
as
a
match
or
because
of
an
_include
requirement.
(
SearchEntryMode:
Why an entry is in the result set - whether it's included as a match or because of an _include requirement.
(
Required
)
|
|
Type
|
code
|
|
Summary
|
true
|
|
Comments
|
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.
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
|
|
Definition
|
When
searching,
the
server's
search
ranking
score
for
the
entry.
When searching, the server's search ranking score for the entry.
|
|
Control
|
0..1
|
|
Type
|
decimal
|
|
Summary
|
true
|
|
Comments
|
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.
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.
|
|
Bundle.entry.request
|
|
Definition
|
Additional
information
about
how
this
entry
should
be
processed
as
part
of
a
transaction.
Additional information about how this entry should be processed as part of a transaction.
|
|
Control
|
0..1
|
|
Summary
|
true
|
|
Invariants
|
Affect
this
element
Affect this element
bdl-3
:
entry.request
only
for
some
types
of
bundles
(xpath:
not(f:entry/f:request)
or
(f:type/@value
=
'batch')
or
(f:type/@value
=
'transaction')
or
(f:type/@value
=
'history'))
: entry.request only for some types of bundles (
expression
: entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history', xpath: not(f:entry/f:request) or (f:type/@value = 'batch') or (f:type/@value = 'transaction') or (f:type/@value = 'history'))
|
|
Bundle.entry.request.method
|
|
Definition
|
The
HTTP
verb
for
this
entry
in
either
a
update
history,
or
a
transaction/
transaction
response.
The HTTP verb for this entry in either a change history, or a transaction/ transaction response.
|
|
Control
|
1..1
|
|
Binding
|
HTTPVerb:
HTTP
verbs
(in
the
HTTP
command
line).
(
HTTPVerb:
HTTP verbs (in the HTTP command line).
(
Required
)
|
|
Type
|
code
|
|
Summary
|
true
|
|
Bundle.entry.request.url
|
|
Definition
|
The
URL
for
this
entry,
relative
to
the
root
(the
address
to
which
the
request
is
posted).
The URL for this entry, relative to the root (the address to which the request is posted).
|
|
Control
|
1..1
|
|
Type
|
uri
|
|
Summary
|
true
|
|
Comments
|
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]".
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
|
|
Definition
|
If
the
ETag
values
match,
return
a
304
Not
modified
status.
See
the
API
documentation
for
"Conditional
Read"
If the ETag values match, return a 304 Not modified status. See the API documentation for
"Conditional Read"
.
|
|
Control
|
0..1
|
|
Type
|
string
|
|
Summary
|
true
|
|
Bundle.entry.request.ifModifiedSince
|
|
Definition
|
Only
perform
the
operation
if
the
last
updated
date
matches.
See
the
API
documentation
for
"Conditional
Read"
Only perform the operation if the last updated date matches. See the API documentation for
"Conditional Read"
.
|
|
Control
|
0..1
|
|
Type
|
instant
|
|
Summary
|
true
|
|
Bundle.entry.request.ifMatch
|
|
Definition
|
Only
perform
the
operation
if
the
Etag
value
matches.
For
more
information,
see
the
API
section
"Managing
Resource
Contention"
Only perform the operation if the Etag value matches. For more information, see the API section
"Managing Resource Contention"
.
|
|
Control
|
0..1
|
|
Type
|
string
|
|
Summary
|
true
|
|
Bundle.entry.request.ifNoneExist
|
|
Definition
|
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
"?").
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 "?"). |
|
Control
|
0..1
|
|
Type
|
string
|
|
Summary
|
true
|
|
Bundle.entry.response
|
|
Definition
|
Additional
information
about
how
this
entry
should
be
processed
as
part
of
a
transaction.
Additional information about how this entry should be processed as part of a transaction.
|
|
Control
|
0..1
|
|
Summary
|
true
|
|
Invariants
|
Affect
this
element
Affect this element
bdl-4
:
entry.response
only
for
some
types
of
bundles
(xpath:
not(f:entry/f:response)
or
(f:type/@value
=
'batch-response')
or
(f:type/@value
=
'transaction-response'))
: entry.response only for some types of bundles (
expression
: entry.response.empty() or type = 'batch-response' or type = 'transaction-response', xpath: not(f:entry/f:response) or (f:type/@value = 'batch-response') or (f:type/@value = 'transaction-response'))
|
|
Bundle.entry.response.status
|
|
Definition
|
The
status
code
returned
by
processing
this
entry.
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.
|
|
Control
|
1..1
|
|
Type
|
string
|
|
Summary
|
true
|
|
Bundle.entry.response.location
|
|
Definition
|
The
location
header
created
by
processing
this
operation.
The location header created by processing this operation.
|
|
Control
|
0..1
|
|
Type
|
uri
|
|
Summary
|
true
|
|
Bundle.entry.response.etag
|
|
Definition
|
The
etag
for
the
resource,
it
the
operation
for
the
entry
produced
a
versioned
resource.
The etag for the resource, it the operation for the entry produced a versioned resource.
|
|
Control
|
0..1
|
|
Type
|
string
|
|
Summary
|
true
|
|
Comments
|
This
has
to
match
the
version
id
in
the
header
if
a
resource
is
included.
This has to match the version id in the header if a resource is included.
|
|
Bundle.entry.response.lastModified
|
|
Definition
|
The
date/time
that
the
resource
was
modified
on
the
server.
The date/time that the resource was modified on the server.
|
|
Control
|
0..1
|
|
Type
|
instant
|
|
Summary
|
true
|
|
Comments
|
This
has
to
match
the
same
time
in
the
meta
header
if
a
resource
is
included.
This has to match the same time in the meta header if a resource is included.
|
|
Bundle.signature
|
|
Definition
|
Digital
Signature
-
base64
encoded.
XML
DigSIg
or
a
JWT.
Digital Signature - base64 encoded. XML DigSIg or a JWT.
|
|
Control
|
0..1
|
|
Type
|
Signature
|
|
Requirements
|
This
element
allows
capturing
signatures
on
documents.
It
also
allows
signatures
on
messages,
transactions
or
even
query
responses.
It
may
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.
This element allows capturing signatures on documents. It also allows signatures on messages, transactions or even query responses. It may 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.
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.
|
©
HL7.org
2011+.
FHIR
DSTU2
(v1.0.2-7202)
generated
on
Sat,
Oct
24,
2015
07:43+1100.
Links:
Search