Example
StructureDefinition/artifact-identifier
(XML)
This
is
the
narrative
for
the
resource.
See
also
the
XML
,
JSON
or
Turtle
format.
Fetch
Patient
Record
OPERATION:
Fetch
Patient
Record
The
official
URL
for
this
operation
definition
is:
http://hl7.org/fhir/OperationDefinition/Patient-everything
This
operation
is
used
to
return
all
the
information
related
to
one
or
more
patients
described
in
the
resource
or
context
on
which
this
operation
is
invoked.
The
response
is
a
bundle
of
type
"searchset".
At
a
minimum,
the
patient
resource(s)
itself
is
returned,
along
with
any
other
resources
that
the
server
has
that
are
related
to
the
patient(s),
and
that
are
available
for
the
given
user.
The
server
also
returns
whatever
resources
are
needed
to
support
the
records
-
e.g.
linked
practitioners,
medications,
locations,
organizations
etc.
The
intended
use
for
this
operation
is
to
provide
a
patient
with
access
to
their
entire
record
(e.g.
"Blue
Button"),
or
for
provider
or
other
user
to
perform
a
bulk
data
download.
The
server
SHOULD
return
at
least
all
resources
that
it
has
that
are
in
the
patient
compartment
for
the
identified
patient(s),
and
any
resource
referenced
from
those,
including
binaries
and
attachments.
In
the
US
Realm,
at
a
minimum,
the
resources
returned
SHALL
include
all
the
data
covered
by
the
meaningful
use
common
data
elements
as
defined
in
the
US
Core
Implementation
Guide.
Other
applicable
implementation
guides
may
make
additional
rules
about
how
much
information
that
is
returned.
URL:
[base]/Patient/$everything
URL:
[base]/Patient/[id]/$everything
Parameters
Use
Name
Cardinality
Type
Binding
Documentation
IN
start
0..1
-
date
Narrative
The
date
range
relates
to
care
dates,
not
record
currency
dates
-
e.g.
all
records
relating
to
care
provided
in
a
certain
date
range.
If
no
start
date
is
provided,
all
records
prior
to
the
end
date
are
in
scope.
IN
end
0..1
-
date
XML
The
date
range
relates
to
care
dates,
not
record
currency
dates
-
e.g.
all
records
relating
to
care
provided
in
a
certain
date
range.
If
no
end
date
is
provided,
all
records
subsequent
to
the
start
date
are
in
scope.
IN
_since
0..1
-
instant
JSON
Resources
updated
after
this
period
will
be
included
in
the
response.
The
intent
of
this
parameter
is
to
allow
a
client
to
request
only
records
that
have
changed
since
the
last
request,
based
on
either
the
return
header
time,
or
or
(for
asynchronous
use),
the
transaction
time
IN
_type
0..*
-
code
TTL
One
or
more
parameters,
each
containing
one
or
more
comma-delimited
FHIR
resource
types
to
include
in
the
return
resources.
In
the
absence
of
any
specified
types,
the
server
returns
all
resource
types
IN
_count
0..1
integer
Raw
XML
See
discussion
below
on
the
utility
of
paging
through
the
results
of
the
$everything
operation
OUT
return
1..1
Bundle
(
canonical
form
The
bundle
type
is
"searchset"
The
key
differences
between
this
operation
and
simply
searching
the
patient
compartment
are:
unless
the
client
requests
otherwise,
the
server
returns
the
entire
result
set
in
a
single
bundle
(rather
than
using
paging)
the
server
is
responsible
for
determining
what
resources
to
return
as
included
resources
(rather
than
the
client
specifying
which
ones).
This
frees
the
client
from
needing
to
determine
what
it
could
or
should
ask
for,
particularly
with
regard
to
included
resources.
Servers
should
consider
returning
appropriate
Provenance
and
AuditTrail
on
the
returned
resources,
even
though
these
are
not
directly
part
of
the
patient
compartment.
It
is
assumed
that
the
server
has
identified
and
secured
the
context
appropriately,
and
can
either
associate
the
authorization
context
with
a
single
patient,
or
determine
whether
the
context
has
the
rights
to
the
nominated
patient,
if
there
is
one,
or
can
determine
an
appropriate
list
of
patients
to
provide
data
for
from
the
context
of
the
request.
If
there
is
no
nominated
patient
(GET
/Patient/$everything)
and
the
context
is
not
associated
with
a
single
patient
record,
the
actual
list
of
patients
is
all
patients
that
the
user
associated
with
the
request
has
access
to.
This
may
be
all
patients
in
the
family
that
the
patient
has
access
to,
or
it
may
be
all
patients
that
a
care
provider
has
access
to,
or
all
patients
on
the
entire
record
system.
In
such
cases,
the
server
may
choose
to
return
an
error
rather
than
all
the
records.
Specifying
the
relationship
between
the
context,
a
user
and
patient
records
is
outside
the
scope
of
this
specification
(though
+
also
see
The
Smart
App
Launch
Implementation
Guide
.
When
this
operation
is
used
to
access
multiple
patient
records
at
once,
the
return
bundle
could
be
rather
a
lot
of
data;
servers
may
choose
to
require
that
such
requests
are
made
asynchronously
,
and
associated
with
bulk
data
formats
.
Alternatively,
clients
may
choose
to
page
through
the
result
set
(or
servers
may
require
this).
Paging
through
the
results
is
done
the
same
as
for
Searching
,
using
the
_count
XML
Format
Specification
parameter,
and
Bundle
links.
Implementers
should
note
that
paging
will
be
slower
than
simply
returning
all
the
results
at
once
(more
network
traffic,
multiple
latency
delays)
but
may
be
required
in
order
not
to
exhaust
available
memory
reading
or
writing
the
whole
response
in
a
single
package.
Unlike
searching,
there
is
no
inherent
user-display
order
for
the
$everything
operation.
Servers
might
consider
sorting
the
returned
resources
in
descending
order
of
last
record
update,
but
are
not
required
to
do
so.
)
The
_since
parameter
is
provided
to
support
periodic
queries
to
get
additional
information
that
has
changed
about
the
patient
since
the
last
query.
This
means
that
the
_since
parameter
is
based
on
record
time.
The
value
of
the
_since
parameter
should
be
set
to
the
time
from
the
server.
If
using
direct
response,
this
is
the
timestamp
in
the
response
header.
If
using
the
async
interface,
this
is
the
transaction
timestamp
in
the
json
response.
Servers
should
ensure
that
the
timestamps
a
managed
such
that
the
client
does
not
miss
any
changes.
Clients
should
be
able
to
handle
getting
the
same
response
more
than
once
in
the
case
that
the
transaction
falls
on
a
time
boundary.
Clients
should
ensure
that
the
other
query
parameters
are
constant
to
ensure
a
coherent
set
of
records
when
doing
periodic
queries.
identifier
<?xml version="1.0" encoding="UTF-8"?>
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="artifact-identifier"/>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
<valueCode value="fhir"/>
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
<valueInteger value="1"/>
</extension>
<url value="http://hl7.org/fhir/StructureDefinition/artifact-identifier"/>
<version value="5.0.0-ballot"/>
<name value="identifier"/>
<status value="draft"/>
<experimental value="false"/>
<date value="2022-02-07"/>
<publisher value="Health Level Seven, Inc. - CDS WG"/>
<contact>
<telecom>
<system value="url"/>
<value value="HL7"/>
</telecom>
</contact>
<description value="A formal identifier that is used to identify this {{title}} when it is represented
in other formats, or referenced in a specification, model, design or an instance."/>
<fhirVersion value="5.0.0-ballot"/>
<mapping>
<identity value="rim"/>
<uri value="http://hl7.org/v3"/>
<name value="RIM Mapping"/>
</mapping>
<kind value="complex-type"/>
<abstract value="false"/>
<context>
<type value="element"/>
<expression value="Element"/>
</context>
<type value="Extension"/>
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension"/>
<derivation value="constraint"/>
<snapshot>
<element id="Extension">
<path value="Extension"/>
<short value="Additional identifier for the {{title}}"/>
<definition value="A formal identifier that is used to identify this {{title}} when it is represented
in other formats, or referenced in a specification, model, design or an instance."/>
<comment value="Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier)
data type, and can then identify this {{title}} outside of FHIR, where it is not
possible to use the logical URI."/>
<min value="0"/>
<max value="*"/>
<base>
<path value="Extension"/>
<min value="0"/>
<max value="*"/>
</base>
<constraint>
<key value="ele-1"/>
<severity value="error"/>
<human value="All FHIR elements must have a @value or children"/>
<expression value="hasValue() or (children().count() > id.count())"/>
<xpath value="@value|f:*|h:div"/>
<source value="http://hl7.org/fhir/StructureDefinition/Element"/>
</constraint>
<constraint>
<key value="ext-1"/>
<severity value="error"/>
<human value="Must have either extensions or value[x], not both"/>
<expression value="extension.exists() != value.exists()"/>
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])"/>
<source value="http://hl7.org/fhir/StructureDefinition/Extension"/>
</constraint>
<isModifier value="false"/>
</element>
<element id="Extension.id">
<path value="Extension.id"/>
<representation value="xmlAttr"/>
<short value="Unique id for inter-element referencing"/>
<definition value="Unique id for the element within a resource (for internal references). This may
be any string value that does not contain spaces."/>
<min value="0"/>
<max value="1"/>
<base>
<path value="Element.id"/>
<min value="0"/>
<max value="1"/>
</base>
<type>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="id"/>
</extension>
<code value="http://hl7.org/fhirpath/System.String"/>
</type>
<isModifier value="false"/>
<isSummary value="false"/>
<mapping>
<identity value="rim"/>
<map value="n/a"/>
</mapping>
</element>
<element id="Extension.extension">
<path value="Extension.extension"/>
<slicing>
<discriminator>
<type value="value"/>
<path value="url"/>
</discriminator>
<description value="Extensions are always sliced by (at least) url"/>
<rules value="open"/>
</slicing>
<short value="Extension"/>
<definition value="An Extension"/>
<min value="0"/>
<max value="0"/>
<base>
<path value="Element.extension"/>
<min value="0"/>
<max value="*"/>
</base>
<type>
<code value="Extension"/>
</type>
<constraint>
<key value="ele-1"/>
<severity value="error"/>
<human value="All FHIR elements must have a @value or children"/>
<expression value="hasValue() or (children().count() > id.count())"/>
<xpath value="@value|f:*|h:div"/>
<source value="http://hl7.org/fhir/StructureDefinition/Element"/>
</constraint>
<constraint>
<key value="ext-1"/>
<severity value="error"/>
<human value="Must have either extensions or value[x], not both"/>
<expression value="extension.exists() != value.exists()"/>
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/>
<source value="http://hl7.org/fhir/StructureDefinition/Extension"/>
</constraint>
<isModifier value="false"/>
<isSummary value="false"/>
</element>
<element id="Extension.url">
<path value="Extension.url"/>
<representation value="xmlAttr"/>
<short value="identifies the meaning of the extension"/>
<definition value="Source of the definition for the extension code - a logical name or a URL."/>
<comment value="The definition may point directly to a computable or human-readable definition
of the extensibility codes, or it may be a logical URI as declared in some other
specification. The definition SHALL be a URI for the Structure Definition defining
the extension."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="Extension.url"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="uri"/>
</extension>
<code value="http://hl7.org/fhirpath/System.String"/>
</type>
<fixedUri value="http://hl7.org/fhir/StructureDefinition/artifact-identifier"/>
<isModifier value="false"/>
<isSummary value="false"/>
<mapping>
<identity value="rim"/>
<map value="N/A"/>
</mapping>
</element>
<element id="Extension.value[x]">
<path value="Extension.value[x]"/>
<short value="Value of extension"/>
<definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](
extensibility.html) for a list)."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="Extension.value[x]"/>
<min value="0"/>
<max value="1"/>
</base>
<type>
<code value="Identifier"/>
</type>
<constraint>
<key value="ele-1"/>
<severity value="error"/>
<human value="All FHIR elements must have a @value or children"/>
<expression value="hasValue() or (children().count() > id.count())"/>
<xpath value="@value|f:*|h:div"/>
<source value="http://hl7.org/fhir/StructureDefinition/Element"/>
</constraint>
<isModifier value="false"/>
<isSummary value="false"/>
<mapping>
<identity value="rim"/>
<map value="N/A"/>
</mapping>
</element>
</snapshot>
<differential>
<element id="Extension">
<path value="Extension"/>
<short value="Additional identifier for the {{title}}"/>
<definition value="A formal identifier that is used to identify this {{title}} when it is represented
in other formats, or referenced in a specification, model, design or an instance."/>
<comment value="Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier)
data type, and can then identify this {{title}} outside of FHIR, where it is not
possible to use the logical URI."/>
<min value="0"/>
<max value="*"/>
</element>
<element id="Extension.extension">
<path value="Extension.extension"/>
<max value="0"/>
</element>
<element id="Extension.url">
<path value="Extension.url"/>
<fixedUri value="http://hl7.org/fhir/StructureDefinition/artifact-identifier"/>
</element>
<element id="Extension.value[x]">
<path value="Extension.value[x]"/>
<min value="1"/>
<type>
<code value="Identifier"/>
</type>
</element>
</differential>
</
StructureDefinition
>
Usage
note:
every
effort
has
been
made
to
ensure
that
the
examples
are
correct
and
useful,
but
they
are
not
a
normative
part
of
the
specification.