This
page
is
part
of
the
Continuous
Integration
Build
of
FHIR
Specification
(v4.0.1:
R4
-
Mixed
Normative
and
STU
)
in
it's
permanent
home
(it
will
always
(will
be
available
incorrect/inconsistent
at
this
URL).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
Responsible
Owner:
FHIR
Infrastructure
Work
Group
|
|
Security Category : Not Classified | Compartments : Patient , Practitioner , RelatedPerson |
Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
Basic is a special type of resource. Unlike all other resources, it doesn't correspond to a specific pre-defined HL7 concept. Instead, it's a placeholder for any resource-like concept that isn't already defined in the HL7 specification.
The Basic resource is intended for use in three circumstances:
There's also a fourth circumstance: An implementer wishes to convey information that could/should be conveyed using a standard resource, however they want to represent the information in a custom format that isn't aligned with the official resource's elements. While this resource would be the preferred way of meeting that use-case because it will at least be wire-format compatible, such a use would not be conformant because making use of the Basic resource would prevent the healthcare-related information from being safely processed, queried and analyzed by other conformant systems.
Implementers don't need to be concerned with which of the three categories their desired resource fits within. If they need a resource and it clearly doesn't fit one of the ones currently defined, they should use Basic.
Note to Implementers: That the inter-version extension mechanism might be used to allow
Basicto represent resources that don't exist in the FHIR version being used for exchange, but no specific guidance is provided. If implementers are interested in having this further defined, they should share their use-case on http://chat.fhir.organd the committee might consider publishing out an implementation guide providing further guidance.
Basic defines only a minimal set of data elements - those necessary to identify what kind of resource it represents and those necessary to support resource compartmenting . All other data elements are represented using the extension mechanism. It's entirely possible to have a Basic resource instance with nothing other than narrative, a subject and code. And, in practice, that's all many systems will understand.
The Basic resource can potentially represent any resource. However, wherever another resource can be used instead of Basic, that resource should always be used.
Other resources that are commonly used to capture 'generic' data are listed below:
No references for this Resource.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
Resource
for
non-supported
content
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..* | Identifier |
Business
identifier
|
|
?! Σ | 1..1 | CodeableConcept |
Kind
of
Resource
|
|
Σ | 0..1 | Reference ( Any ) |
Identifies
the
focus
of
this
resource
|
|
Σ | 0..1 |
|
When
created
|
|
Σ | 0..1 | Reference ( Practitioner | PractitionerRole | Patient | RelatedPerson | Organization | Device | CareTeam ) |
Who
created
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
UML Diagram ( Legend )
XML Template
<Basic xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier>
<</code><code><!-- 1..1 CodeableConcept Kind of Resource --></code> <subject><!-- 0..1 Reference(Any) Identifies the focus of this resource --></subject>< <| </author><created value="[dateTime]"/><!-- 0..1 When created --> <author><!-- 0..1 Reference(CareTeam|Device|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) Who created --></author> </Basic>
JSON Template
{
"resourceType" : "Basic",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Business identifier
"
"code" : { CodeableConcept }, // R! Kind of Resource
"subject" : { Reference(Any) }, // Identifies the focus of this resource
"
"|
"created" : "<dateTime>", // When created
"author" : { Reference(CareTeam|Device|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) } // Who created
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:Basic; fhir:nodeRole fhir:treeRoot; # if this is the parser root
# from # from fhir: fhir: fhir: fhir: fhir:# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:identifier ( [ Identifier ] ... ) ; # 0..* Business identifier fhir:code [ CodeableConcept ] ; # 1..1 Kind of Resource fhir:subject [ Reference(Any) ] ; # 0..1 Identifies the focus of this resource fhir:created [ dateTime ] ; # 0..1 When created fhir:author [ Reference(CareTeam|Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who created ]
Changes
since
R3
from
both
R4
and
R4B
| Basic | |
| Basic.code |
|
| Basic.created |
|
| Basic.author |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R3
<-->
R4
Conversion
Maps
(status
=
3
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
all
r3
resources
are
valid.)
for
R4B
as
XML
or
JSON
.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
Resource
for
non-supported
content
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..* | Identifier |
Business
identifier
|
|
?! Σ | 1..1 | CodeableConcept |
Kind
of
Resource
|
|
Σ | 0..1 | Reference ( Any ) |
Identifies
the
focus
of
this
resource
|
|
Σ | 0..1 |
|
When
created
|
|
Σ | 0..1 | Reference ( Practitioner | PractitionerRole | Patient | RelatedPerson | Organization | Device | CareTeam ) |
Who
created
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
XML Template
<Basic xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier>
<</code><code><!-- 1..1 CodeableConcept Kind of Resource --></code> <subject><!-- 0..1 Reference(Any) Identifies the focus of this resource --></subject>< <| </author><created value="[dateTime]"/><!-- 0..1 When created --> <author><!-- 0..1 Reference(CareTeam|Device|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) Who created --></author> </Basic>
JSON Template
{
"resourceType" : "Basic",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Business identifier
"
"code" : { CodeableConcept }, // R! Kind of Resource
"subject" : { Reference(Any) }, // Identifies the focus of this resource
"
"|
"created" : "<dateTime>", // When created
"author" : { Reference(CareTeam|Device|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) } // Who created
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:Basic; fhir:nodeRole fhir:treeRoot; # if this is the parser root
# from # from fhir: fhir: fhir: fhir: fhir:# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:identifier ( [ Identifier ] ... ) ; # 0..* Business identifier fhir:code [ CodeableConcept ] ; # 1..1 Kind of Resource fhir:subject [ Reference(Any) ] ; # 0..1 Identifies the focus of this resource fhir:created [ dateTime ] ; # 0..1 When created fhir:author [ Reference(CareTeam|Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who created ]
Changes
since
Release
3
from
both
R4
and
R4B
| Basic | |
| Basic.code |
|
| Basic.created |
|
| Basic.author |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R3
<-->
R4
Conversion
Maps
(status
=
3
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
all
r3
resources
are
valid.)
for
R4B
as
XML
or
JSON
.
See
the
Profiles
&
Extensions
and
the
alternate
Additional
definitions:
Master
Definition
XML
+
JSON
,
XML
Schema
/
Schematron
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
the
extensions
,
the
spreadsheet
version
&
the
dependency
analysis
| Path |
|
Type |
|
|---|---|---|---|
| Basic.code |
|
|
Current and past FHIR resource types (deleted or renamed) |
Technically, nothing prevents implementers from going off and defining their own resources containing whatever data elements they wish. However, doing so causes several issues:
All of these concerns are mitigated when there's an assumption that the custom resource will only be used within a narrow constrained environment where all participants will be aware of the semantics, will be using the same custom schemas and there's no chance of collisions. However, HL7's experience is that closed implementation environments rarely remain that way over the long term. Eventually data will need to be shared with others outside the closed environment and all of the above issues will again come into play.
Therefore, use of 'custom' resources is NOT considered to be conformant with FHIR. While the use of extensions may make the Basic resource slightly more complex and less visually appealing, it is the only safe and approved mechanism for sharing resource concepts not representable using standard HL7-defined resources.
Documents are constructed of sections, where a key part of each section is the narrative. The narratives are stitched together to form the overall text of the document. Many document sections will correspond neatly to resources that are already defined - List , DiagnosticReport , FamilyMemberHistory , etc. However, oddly enough, alignment with FHIR resources isn't always in mind when clinicians and others design documents, and some sections won't neatly align with the boundaries of resources. Sometimes there's simply a need for a place where a document author can say "stuff" without any particular constraints on what they may choose to talk about. Basic is intended to provide a mechanism to handle those circumstances.
Wherever
possible,
the
"standard"
FHIR
resources
should
SHOULD
be
used,
even
for
narrative-only
content.
That's
because
subsequent
revisions
of
the
narrative-only
content
might
choose
to
encode
pieces
or
even
all
of
the
narrative
content.
Encoding
can
occur
with
"Basic"
as
well.
Extensions
can
point
to
other
resources
(contained
or
stand-alone)
that
fully
encode
pieces
of
the
free-form
narrative
found
in
the
Basic
resource.
If
no
appropriate
other
resource
exists
for
the
meaning
of
the
content,
extensions
can
also
be
used.
None of the standard resources will have direct references to Basic, aside from those that allow linking to "Any" resource. As a result, most references to "Basic" will need to be performed using extensions.
When using cross-version extensions to represent canonical resources that do not exist in the FHIR version being used (such as resource types introduced in later FHIR versions), the Basic resource can serve as a wrapper to represent those canonical resources. In such cases:
code
element
SHALL
identify
that
the
Basic
instance
represents
a
canonical
resource
type
This pattern enables implementers to work with canonical resources from other FHIR versions while maintaining compatibility with version-specific infrastructure. See the versions page and the cross-version extension packages for more details on this approach.
Custom
SearchParameters
can
be
defined
against
a
Basic
resource
profile
in
the
same
manner
as
any
other
resource.
However,
because
of
the
wide
range
of
concepts
that
can
be
conveyed
via
Basic
,
the
opportunity
for
collisions
in
the
naming
of
search
parameters
is
higher.
While
collisions
can
be
resolved
using
the
standard
mechanism
(checking
parameter
codes
via
the
CapabilityStatement
and
resolving
canonical
definitions),
best
practice
is
for
search
parameter
codes
to
include
the
conceptual
resource
name
represented
as
a
prefix.
For
example,
rather
than
defining
a
search
parameter
called
effectiveDate
,
it
would
be
better
to
have
the
search
parameter
code
be
application-renewal-effective-date
.
This
same
convention
is
recommended
if
leveraging
Basic
to
represent
resources
during
inter-version
conversion
(e.g.,
a
future
or
legacy
resource).
For
example,
a
search
parameter
might
be
coded
as
personal-relationship-source
rather
than
just
source
.
Note that authors and implementers MAY still define and support non-prefixed codes; this guidance is an aid to interoperability and governance.
There are several good practices to follow when making use of the Basic resource:
or
on
Stack
Overflow
to
see
whether
the
use-case
can
be
met
by
an
existing
resource.
(Sometimes
the
intended
scope
of
an
existing
resource
won't
be
clear,
even
if
the
intent
is
to
cover
your
space.)
Using
an
existing
resource
is
usually
preferable
to
using
Basic
as
it
significantly
increases
the
likelihood
of
interoperability.
so
the
problem
with
the
specification
can
be
addressed.
link),
as
this
will
increase
the
likelihood
of
interoperability.
Alternate
code
systems
are
conformant,
but
are
less
likely
to
be
recognized
or
re-used
across
the
healthcare
implementation
space.
Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
| Name | Type | Description | Expression | In Common |
| author | reference | Who created |
Basic.author
( Practitioner , Organization , CareTeam , Device , Patient , PractitionerRole , RelatedPerson ) |
|
| code | token | Kind of Resource | Basic.code | 19 Resources |
| created | date | When created | Basic.created | |
| identifier | token | Business identifier | Basic.identifier | 58 Resources |
| patient | reference | Identifies the focus of this resource |
Basic.subject.where(resolve()
is
Patient)
( Patient ) |
60 Resources |
| subject | reference | Identifies the focus of this resource |
Basic.subject
(Any) |