This
page
is
part
of
the
FHIR
Specification
(v4.3.0:
R4B
(v5.0.0:
R5
-
STU
).
The
This
is
the
current
published
version
which
supercedes
in
it's
permanent
home
(it
will
always
be
available
at
this
version
is
5.0.0
.
URL).
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R5
R4B
R4
R3
R2
Work
Group
|
Maturity Level : N | Normative (from v4.0.0) | Security Category : N/A |
Compartments
:
|
A domain resource is a resource that:
As an abstract resource, this resource is never created directly; instead, one of its descendant resources ( see List of Resources ) is created.
This resource extends the base Resource . All of the listed Resources except Bundle , Parameters and Binary extend this resource.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
«A» N | Resource |
A
resource
with
narrative,
extensions,
and
contained
resources
+ Rule: If the resource is contained in another resource, it SHALL NOT contain nested Resources + Rule: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource + Rule: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated + Rule: If a resource is contained in another resource, it SHALL NOT have a security label + Guideline: A resource should have narrative for robust management Elements defined in Ancestors: id , meta , implicitRules , language |
|
|
C | 0..1 | Narrative |
Text
summary
of
the
resource,
for
human
interpretation
|
|
|
0..* | Resource |
Contained,
inline
Resources
|
|
0..* | Extension |
Additional
content
defined
by
implementations
|
|
|
?! Σ | 0..* | Extension |
Extensions
that
cannot
be
ignored
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
«A» N | Resource |
A
resource
with
narrative,
extensions,
and
contained
resources
+ Rule: If the resource is contained in another resource, it SHALL NOT contain nested Resources + Rule: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource + Rule: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated + Rule: If a resource is contained in another resource, it SHALL NOT have a security label + Guideline: A resource should have narrative for robust management Elements defined in Ancestors: id , meta , implicitRules , language |
|
|
C | 0..1 | Narrative |
Text
summary
of
the
resource,
for
human
interpretation
|
|
|
0..* | Resource |
Contained,
inline
Resources
|
|
0..* | Extension |
Additional
content
defined
by
implementations
|
|
|
?! Σ | 0..* | Extension |
Extensions
that
cannot
be
ignored
|
Documentation
for
this
format
|
||||
JSON
Template
Additional
definitions:
Master
Definition
XML
+
JSON
+
ShEx
,
the
spreadsheet
version
&
the
dependency
analysis
,
Resource
Representation
XML
+
JSON
+
Turtle
Template
|
|
Level | Location | Description | Expression |
dom-2
|
Rule | (base) | If the resource is contained in another resource, it SHALL NOT contain nested Resources | contained.contained.empty() |
dom-3
|
Rule | (base) | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
|
dom-4
|
Rule | (base) | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5
|
Rule | (base) | If a resource is contained in another resource, it SHALL NOT have a security label | contained.meta.security.empty() |
dom-6
|
Guideline | (base) | A resource should have narrative for robust management |
text.`div`.exists()
This is (only) a best practice guideline because:
|
The
'contained'
mechanism
is
Citation
or
%resource
not
permitted
as
a
means
of
reducing
server
calls.
I.e.,
It
is
Evidence
not
allowed
to
package
a
set
of
resources
as
one
base
resource
and
a
set
of
contained
resources
to
allow
multiple
creates
or
%resource
updates
to
happen
in
a
single
transaction,
nor
is
EvidenceReport
or
%resource
it
permitted
to
use
'contained'
as
a
means
of
retrieving
multiple
resources
in
a
single
'read'.
'contained'
is
EvidenceVariable
or
%resource
only
for
use
when
there
is
MedicinalProductDefinition
or
%resource
a
need
to
reference
another
resource,
but
the
target
resource
does
not
have
any
independence
from
the
referencing
resource.
Most
commonly,
this
occurs
when
not
enough
information
is
PackagedProductDefinition
or
%resource
known
to
allow
uniquely
identifying
the
target
resource.
For
example,
if
a
surgeon
is
AdministrableProductDefinition
known
only
as
"Dr.
Smith"
(no
full
name,
no
license
number,
etc.),
then
there
would
be
no
way
of
determining
which
of
the
candidate
"Dr.
Smith"
practitioners
was
being
referenced.
In
that
situation,
it
would
be
reasonable
for
the
Procedure
to
have
a
'contained'
reference
to
the
Practitioner.
In
other
cases,
there
might
be
enough
information
to
construct
an
independent
resource,
but
system
behavior
does
not
recognize/permit
an
independent
identity.
As
an
example,
a
prescriber
might
create
a
prescription
for
a
custom
compound.
However,
rather
than
registering
the
compound
as
a
new
'Medication'
instance
(that
could
be
pointed
to
by
many
prescriptions/dispenses),
the
system
treats
the
compound
recipe
as
'part'
of
the
prescription
-
it
can
only
be
edited/modified
in
the
context
of
that
one
prescription
and
cannot
be
queried
or
%resource
manipulated
independently.
If
the
prescription
were
deleted,
the
Medication
would
be
deleted
as
well.
This
would
be
an
appropriate
use
of
'contained'.
A
key
consideration
with
respect
to
'contained'
resources
is
Ingredient
or
%resource
that
if
a
resource
is
ClinicalUseDefinition
or
%resource
sent
to
a
server
as
'contained',
then
it
is
RegulatedAuthorization
or
%resource
expected
to
remain
'contained'
(at
least
until
a
formal
update
is
SubstanceDefinition
received
that
removes
the
'contained'
resource
and
perhaps
replaces
it
with
a
reference
to
a
stand-alone
resource
due
to
additional
information
now
being
available).
For implementations concerned about minimizing the number of service calls, FHIR provides a number of options:
_include
and
_revinclude
to
return
additional
resources
that
are
relevant
as
part
of
the
query
REST
can
be
somewhat
heavy
in
terms
of
the
number
of
service
calls
needed
to
manipulate
all
desired
resources.
This
is
SubscriptionTopic)
part
of
the
cost
associated
with
the
flexibility
that
allows
a
single
RESTful
interface
to
support
a
wide
range
of
use-cases.
To
search
for
extensions,
The
FHIR
specification
does
not
define
a
SearchParameter
SearchParameters
for
most
of
the
extension.
All
other
search
parameters
are
named
aliases
standard
extensions
we
publish
and
obviously
cannot
define
SearchParameters
for
existing
content
in
extensions
developed
by
implementers
outside
the
resource.
In
some
cases,
though
not
all,
core
FHIR
specification.
However,
implementers
are
free
to
define
their
own
SearchParameters
for
any
extensions
they
make
use
of
and
servers
are
free
to
support
SearchParameters
above
and
beyond
those
published
as
part
of
the
FHIR
core
specification.
There
are
no
formal
naming
rules
for
extension-based
search
parameter
parameters.
Authors
SHOULD
name
is
the
same
as
the
element
search
parameters
in
such
a
way
that
it
searches,
but
this
the
linkage
between
the
extension
name
and
the
search
parameter
is
not
required.
Searching
obvious.
The
expression
for
extensions
is
the
same
-
define
search
parameter
would
typically
end
with
extension('http://yourextensionurlhere').value
.
The
expression
would
also
need
to
provide
a
name
that
identifies
path
to
the
value
extension,
including
handling
situations
where
an
extension
by
its
URL,
and
then
searches
can
filter
based
appears
on
the
value
of
the
extension.
multiple
paths
if
necessary.
Additional
constraints
could
also
be
added
if
necessary
(e.g.
.exists(),
=true
,
etc.)
Common
search
Search
parameters
defined
by
this
resource.
abstract
resource
for
all
descendents.
See
Searching
for
more
information
about
searching
in
REST,
messaging,
and
services.
| Name | Type | Description | Paths |
| _text |
|
Search on the narrative of the resource |