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:
Patient
Administration
Work
Group
|
Informative
|
|
Official
URL
:
http://hl7.org/fhir/ValueSet/location-form
|
Version : 6.0.0-ballot3 | |||
| active as of 2025-12-17 | Computable Name : LocationForm | |||
| Flags : | OID : 2.16.840.1.113883.4.642.3.328 | |||
A
FHIR
terminology
service
is
simply
a
This
value
set
of
functions
built
on
the
definitions
provided
by
a
collection
of
CodeSystem
,
ValueSet
and
ConceptMap
resources,
with
additional
inherently
known
terminologies
providing
support.
The
terminology
service
builds
on
the
basic
principles
for
using
terminologies
is
used
in
FHIR.
Implementers
should
be
familiar
with:
the
following
places:
In
order
to
be
used
with
a
value
set,
code
systems
and
their
content
must
be
defined
somewhere.
They
can
be
defined
explicitly
using
the
code
system
resource
,
or
they
can
be
defined
elsewhere,
and
then
used
in
a
This
example
value
set
by
referencing
the
correct
system
url.
The
FHIR
specification
defines
a
set
of
namespaces
for
commonly
encountered
code
systems,
and
defines
how
some
work
with
FHIR
(e.g.
SNOMED
CT
,
LOINC
,
RxNorm
).
These
code
systems
are
often
large
and
have
many
internally
defined
properties
that
are
part
of
their
formal
definitions.
The
CodeSystem
resource
is
not
an
appropriate
way
to
distribute
the
contents
of
these
code
systems;
the
standard
FHIR
code
system
resource
simply
represents
the
properties
of
the
code
system.
Instead,
these
terminologies
provide
their
own
distribution
formats,
and
it
is
assumed
codes
that
the
content
of
these
code
systems
are
externally
known
can
be
used
to
indicate
the
terminology
server.
Most
useful
terminology
servers
will
make
one
or
more
physical
form
of
these
external
code
systems
available
for
use
within
the
value
sets
that
they
manage.
The
list
of
additional
terminologies
that
a
terminology
server
supports
beyond
those
defined
in
its
value
sets
is
published
to
clients
by
referencing
code
system
resources
in
the
server's
Capability
Statement
.
{
"resourceType" : "CapabilityStatement",
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-supported-system",
"valueUri" : "http://loinc.org"
}]
}
This
extension
is
added
to
the
root
Capability
Statement
.
Location.
Implementation
Note:
Generated
Narrative:
ValueSet
location-form
Implementers
interested
in
working
with
existing
published
terminologies
for
which
the
CodeSystem
infrastructure
is
not
suitable
should
discuss
their
needs
with
HL7
to
get
the
list
above
extended.
Note:
A
terminology
service
may
choose
to
expose
additional
external
code
system
specific
related
functionality
such
as
summation,
or
structured
search,
but
these
services
are
outside
the
scope
of
the
FHIR
terminology
service.
Last updated: 2025-12-17T09:50:17.012Z
http://terminology.hl7.org/CodeSystem/location-physical-type
The
terminology
service
uses
the
code
systems
and
value
set
resources
defined
on
the
system
-
both
the
implicit
ones
associated
with
the
external
code
systems
and
those
explicitly
available
at
the
/CodeSystem
and
/ValueSet
endpoints
-
to
serve
the
operational
interface
defined
below.
As
code
systems
and
value
sets
are
created,
updated
or
deleted,
the
outcomes
of
the
operational
services
change.
A
terminology
server
should
validate
incoming
resources
and
ensure
integrity
of
the
terminology
services.
Typically,
servers
provide
a
test
and
production
environment,
but
there
is
no
explicit
notion
of
this
in
the
interface
itself.
A
FHIR-enabled
application
can
simply
ask
a
terminology
server
to
figure
out
all
the
details
and
return
a
list
of
the
current
codes
in
the
value
set.
This
is
known
as
"expanding"
the
valueset
.
As
a
summary,
the
client
passes
the
server
the
following
information:
the
value
set
(either
by
its
URL
on
the
RESTful
interface,
by
its
logical
identifier
(ValueSet.url)
,
or
directly
as
a
parameter
to
the
call)
(Optionally)
a
text
filter
to
use
to
restrict
the
codes
that
are
returned
(e.g.
user
input
text).
It
is
left
to
server
discretion
to
choose
how
to
apply
the
text
filter
(Optionally)
a
date
at
which
the
expansion
should
be
evaluated
(usually,
this
is
the
current
date/time,
but
there
are
circumstances
where
that
is
not
appropriate)
(Optionally)
which
page
to
retrieve
-
asking
the
server
to
break
the
expansion
into
a
set
of
chunks
(Optionally)
other
parameters
that
supply
additional
information
about
how
to
perform
the
expansion
The
server
returns
a
value
set
that
contains
the
current
list
of
codes
that
meet
the
filter
criteria
(or
an
OperationOutcome
with
an
error
if
the
expansion
fails).
Note
that
some
value
sets
expand
to
many
thousands
of
codes,
or
even
an
infinite
number,
and
for
these,
the
server
SHOULD
return
an
error
code
too-costly
.
In
these
cases,
the
client
can
try
again
with
a
more
specific
text
filter
to
reduce
the
number
of
codes
returned
-
this
may
result
in
a
valid
expansion.
For
further
information,
consult
the
definition
of
the
operation
.
The
$expand
operation
has
support
for
paging
-
for
a
client
to
retrieve
a
big
expansion
in
a
set
of
partial
views,
in
order
to
present
the
most
optimal
user
experience.
The
client
specifies
both
an
offset
and
a
count
-
how
many
codes
per
page,
and
where
in
the
sequence
to
start.
The
return
expansion
specifies
the
number
of
concepts
in
the
expansion,
and
the
offset
at
which
this
partial
view
starts.
Note
that
all
expansions
SHOULD
include
the
total
code
count,
but
the
offset
element
SHALL
only
exist
when
paging
is
being
used.
Expansions
that
are
hierarchical
trees
of
concepts
are
not
subject
to
paging
and
the
server
simply
returns
the
entire
expansion.
Some
example
uses
for
the
expansion
operation:
generated
17
Dec
2025
Examples
ValueSet
Expansion
performed
internally
based
on
codesystem
Location
type
v2.0.1
(CodeSystem)
A
system
can
ask
a
terminology
server
to
return
a
set
of
information
about
a
particular
system/code
combination
using
the
lookup
operation
.
The
server
returns
information
for
both
display
and
processing
purposes.
The
client
passes
the
server
the
following
information:
the
code
value
(either
a
code,
or
a
Coding
data
type)
(Optionally)
the
id
or
the
url
of
the
code
system
in
which
the
code
is
being
checked
(Optionally)
a
date
at
which
the
code
information
should
be
returned
(usually,
this
is
the
current
date/time,
but
there
are
circumstances
where
that
is
not
appropriate)
(Optionally)
a
set
of
properties
to
return
about
the
code
The
server
returns
some
or
all
of
the
following
information:
a
human
description
of
the
system
a
recommended
display
for
the
code
properties
of
the
code
(e.g.
status)
other
designations
for
the
code
(a
value,
optionally
with
language
and/or
a
use
code)
relationships
between
this
code
and
other
codes
(parent/child
properties,
etc.)
Component
properties
of
the
specified
code
(e.g.
to
support
reasoning)
(e.g.
decomposition)
The
recommended
display
for
the
code
is
a
text
representation
of
the
code
that
the
terminology
server
recommends
as
the
default
choice
to
show
to
the
user,
though
a
client
may
choose
out
of
the
other
designations
if
it
has
reason
to.
If
the
client
does
not
ask
for
any
particular
properties
to
be
returned,
it
is
at
the
discretion
of
the
server
to
decide
which
properties
to
return
(though
note
that
the
"version"
property
is
always
returned
if
the
code
system
has
a
version).
Lookup
the
code
system
using
a
Coding
(this
example
in
XML):
POST [base]/CodeSystem/$lookup
[other headers]
<Parameters xmlns="http://hl7.org/fhir">
<parameter>
<name value="coding"/>
<valueCoding>
<system value="http://loinc.org"/>
<code value="1963-8"/>
</valueCoding>
</parameter>
</Parameters>
The
server
responds
with
a
This
value
set
of
information
(JSON
this
time):
contains
15
concepts
| System | Code |
|
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
si
|
|
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
bu
|
|
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
wi
|
|
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
wa
|
Ward |
A
Ward
is
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
lvl
|
|
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
co
|
|
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
ro
|
Room |
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
bd
|
Bed | A space that is allocated for sleeping/laying on. This is not the physical bed/trolley that may be moved about, but the space it may occupy. |
|
ve
|
Vehicle | A means of transportation. |
http://terminology.hl7.org/CodeSystem/location-physical-type
|
ho
|
House |
A
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
ca
|
Cabinet | A container that can store goods, equipment, medications or other items. |
|
rd
|
Road |
A
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
area
|
Area |
A
defined
physical
boundary
of
something,
such
as
a
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
jdn
|
Jurisdiction |
A
|
http://terminology.hl7.org/CodeSystem/location-physical-type
|
vi
|
Virtual |
A
|
The
response
varies
depending
on
the
conditions
on
the
server.
Possible
responses:
If
the
closure
table
has
not
been
initialized:
Return
a
404
Not
Found
with
If
See
the
closure
table
needs
to
be
reinitialized:
Return
a
422
Unprocessable
Entity
with
{
"resourceType": "OperationOutcome",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>closure \"[name\" must be reinitialized</p></div>"
},
"issue": [{
"severity": "error",
"details": {
"text" : "closure \"[name]\" must be reinitialized"
}
}
]
}
The
server
should
only
send
this
when
its
underlying
terminology
conditions
have
been
changed
(e.g.
a
new
version
full
registry
of
SNOMED
CT
has
been
loaded).
When
a
client
gets
this,
it's
only
choice
is
to
initialize
the
closure
table,
and
process
all
the
codes
in
the
closure
table
again
(the
assumption
here
is
that
the
system
has
some
external
source
value
sets
defined
as
part
of
'all
the
codes'
so
it
can
rebuild
the
table
again).
If
the
concept(s)
submitted
are
processed
ok,
but
there's
no
new
concepts,
or
no
new
entries
in
the
table,
return
a
200
OK
with
:
{
"resourceType": "ConceptMap",
"id": "[name]",
"version": "[version]",
"name": "Updates for Closure Table [name]",
"status": "active",
"experimental": true,
"date": "2015-12-20T23:12:55Z"
}
If
there's
new
entries
in
the
closure
table,
the
server
returns
a
200
OK
with:
FHIR.
Notes
The
server
can
return
multiple
elements,
each
with
1
or
more
targets
servers
may
return
the
relationship
represented
in
either
direction
it's
important
to
understand
the
relationship
the
right
way
around.
From
the
spec:
The
equivalence
is
read
from
target
to
source
(e.g.
the
target
is
'wider'
than
the
source).
So
in
this
case,
128599005
(Structural
disorder
Explanation
of
heart)
subsumes
22298006
(Myocardial
infarction)
In
the
$closure
operation,
the
response
never
explicitly
states
columns
that
a
may
appear
on
this
page:
| Lvl |
A
few
code
|
| Source |
The
|
| Code |
The
code
(used
as
the
|
| Display |
The
|
|
|
|
|
|
|