This
page
is
part
of
the
FHIR
Specification
v6.0.0-ballot3:
v6.0.0-ballot4:
Release
6
Ballot
(3rd
Draft)
(1st
Full
Ballot)
(see
Ballot
Notes
).
The
current
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
for
published
versions
Responsible
Owner:
FHIR
Infrastructure
Work
Group
|
|
Security Category : Anonymous | Compartments : No defined compartments |
A search parameter that defines a named search item that can be used to search/filter on a resource.
A
SearchParameter
resource
specifies
a
search
parameter
that
may
be
used
on
the
RESTful
API
to
search
or
filter
on
a
resource.
The
SearchParameter
resource
declares:
Implementers should be familiar with the background and concepts described in Search on the RESTful API before working with this resource.
There is a registry of all Search Parameters .
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
||||
|---|---|---|---|---|---|---|---|---|
|
|
DomainResource |
Search
parameter
for
a
resource
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation + Rule: If an expression is present, there SHALL be a processingMode + Rule: Search parameters can only have chain names when the search parameter type is 'reference' + Rule: Search parameters comparator can only be used on type 'number', 'date', 'quantity' or 'special'. + Rule: Search parameter codes SHALL NOT contain '.', '$', '|', or whitespace characters + Rule: Search parameter aliases SHALL NOT contain '.', '$', '|', or whitespace characters Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension Interfaces Implemented: CanonicalResource |
|||||
|
Σ C | 1..1 | uri |
Canonical
identifier
for
this
search
parameter,
represented
as
a
URI
(globally
unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic |
||||
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
search
parameter
(business
identifier)
|
||||
|
Σ | 0..1 | string |
Business
version
of
the
search
parameter
|
||||
|
Σ | 0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) |
|||||
|
string | |||||||
|
Coding | |||||||
|
Σ C | 1..1 | string |
Name
for
this
search
parameter
(computer
friendly)
|
||||
|
Σ T | 0..1 | string |
Name
for
this
search
parameter
(human
friendly)
|
||||
|
0..1 | canonical ( SearchParameter ) |
Original
definition
for
the
search
parameter
|
|||||
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
||||
|
Σ | 0..1 | boolean |
For
testing
only
-
never
for
real
usage
|
||||
|
Σ | 0..1 | dateTime |
Date
last
changed
|
||||
|
Σ T | 0..1 | string |
Name
of
the
publisher/steward
(organization
or
individual)
|
||||
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
||||
|
Σ T | 1..1 | markdown |
Natural
language
description
of
the
search
parameter
|
||||
|
Σ | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
||||
|
Σ
|
0..* | CodeableConcept |
Jurisdiction
of
the
authority
that
maintains
the
search
parameter
(if
applicable)
Binding: Jurisdiction ValueSet
(
Extensible
)
|
||||
|
T | 0..1 | markdown |
Why
this
search
parameter
is
defined
|
||||
|
T | 0..1 | markdown |
Notice
about
intellectual
property
ownership,
can
include
restrictions
on
use
|
||||
|
T | 0..1 | string |
Copyright
holder
and
year(s)
|
||||
|
Σ C | 1..1 | code |
Recommended
name
for
parameter
in
search
url
|
||||
|
Σ C | 0..* | code |
Additional
recommended
names
for
parameter
in
search
url
|
||||
|
Σ | 1..* | code |
The
resource
type(s)
this
search
parameter
applies
to
Binding: Version Independent Resource Types (All) ( Required )
|
||||
|
Σ C | 1..1 | code |
number
|
date
|
string
|
token
|
reference
|
composite
|
quantity
|
uri
|
special
|
resource
Binding: SearchParamType ( Required ) |
||||
|
C | 0..1 | string |
FHIRPath
expression
that
extracts
the
values
|
||||
|
C | 0..1 | code |
normal
|
phonetic
|
other
Binding: Search Processing Mode Type ( Required ) |
||||
|
0..1 | string |
FHIRPath
expression
that
constraints
the
usage
of
this
|
|||||
|
0..* | code |
Types
of
resource
(if
a
resource
reference)
Binding: Version Independent Resource Types (All) ( Required )
|
|||||
|
0..1 | boolean |
Allow
multiple
values
per
parameter
(or)
|
|||||
|
0..1 | boolean |
Allow
multiple
parameters
(and)
|
|||||
|
C | 0..* | code |
eq
|
ne
|
gt
|
lt
|
ge
|
le
|
sa
|
eb
|
ap
Binding: Search Comparator ( Required ) |
||||
|
0..* | code |
missing
|
exact
|
contains
|
not
|
text
|
in
|
not-in
|
below
|
above
|
type
|
identifier
|
of-type
|
code-text
|
text-advanced
|
iterate
Binding: Search Modifier |
|||||
|
C | 0..* | string |
Chained
names
supported
|
||||
|
0..* | BackboneElement |
For
Composite
resources
to
define
the
parts
|
|||||
|
1..1 | canonical ( SearchParameter ) |
Defines
how
the
part
works
|
|||||
|
1..1 | string |
Sub-expression
relative
to
main
expression
|
|||||
Documentation
for
this
format
|
||||||||
See the Extensions for this resource
UML Diagram ( Legend )
XML Template
<SearchParameter xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 1..1 Canonical identifier for this search parameter, represented as a URI (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the search parameter (business identifier) --></identifier> <version value="[string]"/><!-- 0..1 Business version of the search parameter --> <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]> <name value="[string]"/><!-- I 1..1 Name for this search parameter (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this search parameter (human friendly) --> <derivedFrom><!-- 0..1 canonical(SearchParameter) Original definition for the search parameter --></derivedFrom> <status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing only - never for real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed -->
<<publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <description value="[markdown]"/><!-- 1..1 Natural language description of the search parameter --> <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext><</jurisdiction><jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the search parameter (if applicable)--></jurisdiction> <purpose value="[markdown]"/><!-- 0..1 Why this search parameter is defined -->
< < < <<copyright value="[markdown]"/><!-- 0..1 Notice about intellectual property ownership, can include restrictions on use --> <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) --> <code value="[code]"/><!-- I 1..1 Recommended name for parameter in search url --> <aliasCode value="[code]"/><!-- I 0..* Additional recommended names for parameter in search url --> <base value="[code]"/><!-- 1..* The resource type(s) this search parameter applies to --> <type value="[code]"/><!-- I 1..1 number | date | string | token | reference | composite | quantity | uri | special | resource --> <expression value="[string]"/><!-- I 0..1 FHIRPath expression that extracts the values --> <processingMode value="[code]"/><!-- I 0..1 normal | phonetic | other --><<constraint value="[string]"/><!-- 0..1 FHIRPath expression that constraints the usage of this SearchParameter --> <target value="[code]"/><!-- 0..* Types of resource (if a resource reference) --> <multipleOr value="[boolean]"/><!-- 0..1 Allow multiple values per parameter (or) --> <multipleAnd value="[boolean]"/><!-- 0..1 Allow multiple parameters (and) --> <comparator value="[code]"/><!-- I 0..* eq | ne | gt | lt | ge | le | sa | eb | ap --><<modifier value="[code]"/><!-- 0..* missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate --> <chain value="[string]"/><!-- I 0..* Chained names supported --> <component> <!-- 0..* For Composite resources to define the parts --> <definition><!-- 1..1 canonical(SearchParameter) Defines how the part works --></definition><<expression value="[string]"/><!-- 1..1 Sub-expression relative to main expression --> </component> </SearchParameter>
JSON Template
{
"resourceType" : "SearchParameter",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"url" : "<uri>", // R! Canonical identifier for this search parameter, represented as a URI (globally unique)
"identifier" : [{ Identifier }], // Additional identifier for the search parameter (business identifier)
"version" : "<string>", // Business version of the search parameter
// versionAlgorithm[x]: How to compare versions. One of these 2:
"versionAlgorithmString" : "<string>",
"versionAlgorithmCoding" : { Coding },
"name" : "<string>", // I R! Name for this search parameter (computer friendly)
"title" : "<string>", // Name for this search parameter (human friendly)
"derivedFrom" : "<canonical(SearchParameter)>", // Original definition for the search parameter
"status" : "<code>", // R! draft | active | retired | unknown
"experimental" : <boolean>, // For testing only - never for real usage
"date" : "<dateTime>", // Date last changed
"
"publisher" : "<string>", // Name of the publisher/steward (organization or individual)
"contact" : [{ ContactDetail }], // Contact details for the publisher
"description" : "<markdown>", // R! Natural language description of the search parameter
"useContext" : [{ UsageContext }], // The context that the content is intended to support
"
"jurisdiction" : [{ CodeableConcept }], // Jurisdiction of the authority that maintains the search parameter (if applicable)
"purpose" : "<markdown>", // Why this search parameter is defined
"
"
"
"
"copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"code" : "<code>", // I R! Recommended name for parameter in search url
"aliasCode" : ["<code>"], // I Additional recommended names for parameter in search url
"base" : ["<code>"], // R! The resource type(s) this search parameter applies to
"type" : "<code>", // I R! number | date | string | token | reference | composite | quantity | uri | special | resource
"expression" : "<string>", // I FHIRPath expression that extracts the values
"processingMode" : "<code>", // I normal | phonetic | other
"
"constraint" : "<string>", // FHIRPath expression that constraints the usage of this SearchParameter
"target" : ["<code>"], // Types of resource (if a resource reference)
"multipleOr" : <boolean>, // Allow multiple values per parameter (or)
"multipleAnd" : <boolean>, // Allow multiple parameters (and)
"comparator" : ["<code>"], // I eq | ne | gt | lt | ge | le | sa | eb | ap
"
"modifier" : ["<code>"], // missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
"chain" : ["<string>"], // I Chained names supported
"component" : [{ // For Composite resources to define the parts
"definition" : "<canonical(SearchParameter)>", // R! Defines how the part works
"
"expression" : "<string>" // R! Sub-expression relative to main expression
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:SearchParameter; fhir:nodeRole fhir:treeRoot; # if this is the parser root
# from # from# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:url [ uri ] ; # 1..1 Canonical identifier for this search parameter, represented as a URI (globally unique) fhir:identifier ( [ Identifier ] ... ) ; # 0..* Additional identifier for the search parameter (business identifier) fhir:version [ string ] ; # 0..1 Business version of the search parameter # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2fhir: ]fhir:versionAlgorithm [ a fhir:String ; string ] fhir:versionAlgorithm [ a fhir:Coding ; Coding ] fhir:name [ string ] ; # 1..1 I Name for this search parameter (computer friendly) fhir:title [ string ] ; # 0..1 Name for this search parameter (human friendly) fhir:derivedFrom [ canonical(SearchParameter) ] ; # 0..1 Original definition for the search parameter fhir:status [ code ] ; # 1..1 draft | active | retired | unknown fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage fhir:date [ dateTime ] ; # 0..1 Date last changedfhir:fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual) fhir:contact ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher fhir:description [ markdown ] ; # 1..1 Natural language description of the search parameter fhir:useContext ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to supportfhir:fhir:jurisdiction ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the search parameter (if applicable) fhir:purpose [ markdown ] ; # 0..1 Why this search parameter is definedfhir: fhir: fhir: fhir:fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s) fhir:code [ code ] ; # 1..1 I Recommended name for parameter in search url fhir:aliasCode ( [ code ] ... ) ; # 0..* I Additional recommended names for parameter in search url fhir:base ( [ code ] ... ) ; # 1..* The resource type(s) this search parameter applies to fhir:type [ code ] ; # 1..1 I number | date | string | token | reference | composite | quantity | uri | special | resource fhir:expression [ string ] ; # 0..1 I FHIRPath expression that extracts the values fhir:processingMode [ code ] ; # 0..1 I normal | phonetic | otherfhir:fhir:constraint [ string ] ; # 0..1 FHIRPath expression that constraints the usage of this SearchParameter fhir:target ( [ code ] ... ) ; # 0..* Types of resource (if a resource reference) fhir:multipleOr [ boolean ] ; # 0..1 Allow multiple values per parameter (or) fhir:multipleAnd [ boolean ] ; # 0..1 Allow multiple parameters (and) fhir:comparator ( [ code ] ... ) ; # 0..* I eq | ne | gt | lt | ge | le | sa | eb | ap fhir:modifier ( [ code ] ... ) ; # 0..* missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate fhir:chain ( [ string ] ... ) ; # 0..* I Chained names supported fhir:component ( [ # 0..* For Composite resources to define the parts fhir:definition [ canonical(SearchParameter) ] ; # 1..1 Defines how the part worksfhir:fhir:expression [ string ] ; # 1..1 Sub-expression relative to main expression ] ... ) ; ]
Changes
from
both
R4
and
R5
to
R6
| SearchParameter | |
| SearchParameter.jurisdiction |
|
| SearchParameter.aliasCode |
|
| SearchParameter.base |
|
| SearchParameter.type |
|
| SearchParameter.target |
|
| SearchParameter.modifier |
|
Changes from R4B to R6
| SearchParameter | |
| SearchParameter.identifier |
|
| SearchParameter.versionAlgorithm[x] |
|
| SearchParameter.title |
|
| SearchParameter.jurisdiction |
|
| SearchParameter.copyright |
|
| SearchParameter.copyrightLabel |
|
| SearchParameter.aliasCode |
|
| SearchParameter.base |
|
| SearchParameter.type |
|
| SearchParameter.processingMode |
|
| SearchParameter.constraint |
|
| SearchParameter.target |
|
| SearchParameter.modifier |
|
| SearchParameter.xpath |
|
Changes from R4 to R6
| SearchParameter | |
| SearchParameter.identifier |
|
| SearchParameter.versionAlgorithm[x] |
|
| SearchParameter.title |
|
| SearchParameter.jurisdiction |
|
| SearchParameter.copyright |
|
| SearchParameter.copyrightLabel |
|
| SearchParameter.aliasCode |
|
| SearchParameter.base |
|
| SearchParameter.type |
|
| SearchParameter.processingMode |
|
| SearchParameter.constraint |
|
| SearchParameter.target |
|
| SearchParameter.modifier |
|
| SearchParameter.xpath |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
||||
|---|---|---|---|---|---|---|---|---|
|
|
DomainResource |
Search
parameter
for
a
resource
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation + Rule: If an expression is present, there SHALL be a processingMode + Rule: Search parameters can only have chain names when the search parameter type is 'reference' + Rule: Search parameters comparator can only be used on type 'number', 'date', 'quantity' or 'special'. + Rule: Search parameter codes SHALL NOT contain '.', '$', '|', or whitespace characters + Rule: Search parameter aliases SHALL NOT contain '.', '$', '|', or whitespace characters Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension Interfaces Implemented: CanonicalResource |
|||||
|
Σ C | 1..1 | uri |
Canonical
identifier
for
this
search
parameter,
represented
as
a
URI
(globally
unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic |
||||
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
search
parameter
(business
identifier)
|
||||
|
Σ | 0..1 | string |
Business
version
of
the
search
parameter
|
||||
|
Σ | 0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) |
|||||
|
string | |||||||
|
Coding | |||||||
|
Σ C | 1..1 | string |
Name
for
this
search
parameter
(computer
friendly)
|
||||
|
Σ T | 0..1 | string |
Name
for
this
search
parameter
(human
friendly)
|
||||
|
0..1 | canonical ( SearchParameter ) |
Original
definition
for
the
search
parameter
|
|||||
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
||||
|
Σ | 0..1 | boolean |
For
testing
only
-
never
for
real
usage
|
||||
|
Σ | 0..1 | dateTime |
Date
last
changed
|
||||
|
Σ T | 0..1 | string |
Name
of
the
publisher/steward
(organization
or
individual)
|
||||
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
||||
|
Σ T | 1..1 | markdown |
Natural
language
description
of
the
search
parameter
|
||||
|
Σ | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
||||
|
Σ
|
0..* | CodeableConcept |
Jurisdiction
of
the
authority
that
maintains
the
search
parameter
(if
applicable)
Binding: Jurisdiction ValueSet
(
Extensible
)
|
||||
|
T | 0..1 | markdown |
Why
this
search
parameter
is
defined
|
||||
|
T | 0..1 | markdown |
Notice
about
intellectual
property
ownership,
can
include
restrictions
on
use
|
||||
|
T | 0..1 | string |
Copyright
holder
and
year(s)
|
||||
|
Σ C | 1..1 | code |
Recommended
name
for
parameter
in
search
url
|
||||
|
Σ C | 0..* | code |
Additional
recommended
names
for
parameter
in
search
url
|
||||
|
Σ | 1..* | code |
The
resource
type(s)
this
search
parameter
applies
to
Binding: Version Independent Resource Types (All) ( Required )
|
||||
|
Σ C | 1..1 | code |
number
|
date
|
string
|
token
|
reference
|
composite
|
quantity
|
uri
|
special
|
resource
Binding: SearchParamType ( Required ) |
||||
|
C | 0..1 | string |
FHIRPath
expression
that
extracts
the
values
|
||||
|
C | 0..1 | code |
normal
|
phonetic
|
other
Binding: Search Processing Mode Type ( Required ) |
||||
|
0..1 | string |
FHIRPath
expression
that
constraints
the
usage
of
this
|
|||||
|
0..* | code |
Types
of
resource
(if
a
resource
reference)
Binding: Version Independent Resource Types (All) ( Required )
|
|||||
|
0..1 | boolean |
Allow
multiple
values
per
parameter
(or)
|
|||||
|
0..1 | boolean |
Allow
multiple
parameters
(and)
|
|||||
|
C | 0..* | code |
eq
|
ne
|
gt
|
lt
|
ge
|
le
|
sa
|
eb
|
ap
Binding: Search Comparator ( Required ) |
||||
|
0..* | code |
missing
|
exact
|
contains
|
not
|
text
|
in
|
not-in
|
below
|
above
|
type
|
identifier
|
of-type
|
code-text
|
text-advanced
|
iterate
Binding: Search Modifier |
|||||
|
C | 0..* | string |
Chained
names
supported
|
||||
|
0..* | BackboneElement |
For
Composite
resources
to
define
the
parts
|
|||||
|
1..1 | canonical ( SearchParameter ) |
Defines
how
the
part
works
|
|||||
|
1..1 | string |
Sub-expression
relative
to
main
expression
|
|||||
Documentation
for
this
format
|
||||||||
See the Extensions for this resource
XML Template
<SearchParameter xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 1..1 Canonical identifier for this search parameter, represented as a URI (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the search parameter (business identifier) --></identifier> <version value="[string]"/><!-- 0..1 Business version of the search parameter --> <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]> <name value="[string]"/><!-- I 1..1 Name for this search parameter (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this search parameter (human friendly) --> <derivedFrom><!-- 0..1 canonical(SearchParameter) Original definition for the search parameter --></derivedFrom> <status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing only - never for real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed -->
<<publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <description value="[markdown]"/><!-- 1..1 Natural language description of the search parameter --> <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext><</jurisdiction><jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the search parameter (if applicable)--></jurisdiction> <purpose value="[markdown]"/><!-- 0..1 Why this search parameter is defined -->
< < < <<copyright value="[markdown]"/><!-- 0..1 Notice about intellectual property ownership, can include restrictions on use --> <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) --> <code value="[code]"/><!-- I 1..1 Recommended name for parameter in search url --> <aliasCode value="[code]"/><!-- I 0..* Additional recommended names for parameter in search url --> <base value="[code]"/><!-- 1..* The resource type(s) this search parameter applies to --> <type value="[code]"/><!-- I 1..1 number | date | string | token | reference | composite | quantity | uri | special | resource --> <expression value="[string]"/><!-- I 0..1 FHIRPath expression that extracts the values --> <processingMode value="[code]"/><!-- I 0..1 normal | phonetic | other --><<constraint value="[string]"/><!-- 0..1 FHIRPath expression that constraints the usage of this SearchParameter --> <target value="[code]"/><!-- 0..* Types of resource (if a resource reference) --> <multipleOr value="[boolean]"/><!-- 0..1 Allow multiple values per parameter (or) --> <multipleAnd value="[boolean]"/><!-- 0..1 Allow multiple parameters (and) --> <comparator value="[code]"/><!-- I 0..* eq | ne | gt | lt | ge | le | sa | eb | ap --><<modifier value="[code]"/><!-- 0..* missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate --> <chain value="[string]"/><!-- I 0..* Chained names supported --> <component> <!-- 0..* For Composite resources to define the parts --> <definition><!-- 1..1 canonical(SearchParameter) Defines how the part works --></definition><<expression value="[string]"/><!-- 1..1 Sub-expression relative to main expression --> </component> </SearchParameter>
JSON Template
{
"resourceType" : "SearchParameter",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"url" : "<uri>", // R! Canonical identifier for this search parameter, represented as a URI (globally unique)
"identifier" : [{ Identifier }], // Additional identifier for the search parameter (business identifier)
"version" : "<string>", // Business version of the search parameter
// versionAlgorithm[x]: How to compare versions. One of these 2:
"versionAlgorithmString" : "<string>",
"versionAlgorithmCoding" : { Coding },
"name" : "<string>", // I R! Name for this search parameter (computer friendly)
"title" : "<string>", // Name for this search parameter (human friendly)
"derivedFrom" : "<canonical(SearchParameter)>", // Original definition for the search parameter
"status" : "<code>", // R! draft | active | retired | unknown
"experimental" : <boolean>, // For testing only - never for real usage
"date" : "<dateTime>", // Date last changed
"
"publisher" : "<string>", // Name of the publisher/steward (organization or individual)
"contact" : [{ ContactDetail }], // Contact details for the publisher
"description" : "<markdown>", // R! Natural language description of the search parameter
"useContext" : [{ UsageContext }], // The context that the content is intended to support
"
"jurisdiction" : [{ CodeableConcept }], // Jurisdiction of the authority that maintains the search parameter (if applicable)
"purpose" : "<markdown>", // Why this search parameter is defined
"
"
"
"
"copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"code" : "<code>", // I R! Recommended name for parameter in search url
"aliasCode" : ["<code>"], // I Additional recommended names for parameter in search url
"base" : ["<code>"], // R! The resource type(s) this search parameter applies to
"type" : "<code>", // I R! number | date | string | token | reference | composite | quantity | uri | special | resource
"expression" : "<string>", // I FHIRPath expression that extracts the values
"processingMode" : "<code>", // I normal | phonetic | other
"
"constraint" : "<string>", // FHIRPath expression that constraints the usage of this SearchParameter
"target" : ["<code>"], // Types of resource (if a resource reference)
"multipleOr" : <boolean>, // Allow multiple values per parameter (or)
"multipleAnd" : <boolean>, // Allow multiple parameters (and)
"comparator" : ["<code>"], // I eq | ne | gt | lt | ge | le | sa | eb | ap
"
"modifier" : ["<code>"], // missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
"chain" : ["<string>"], // I Chained names supported
"component" : [{ // For Composite resources to define the parts
"definition" : "<canonical(SearchParameter)>", // R! Defines how the part works
"
"expression" : "<string>" // R! Sub-expression relative to main expression
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:SearchParameter; fhir:nodeRole fhir:treeRoot; # if this is the parser root
# from # from# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:url [ uri ] ; # 1..1 Canonical identifier for this search parameter, represented as a URI (globally unique) fhir:identifier ( [ Identifier ] ... ) ; # 0..* Additional identifier for the search parameter (business identifier) fhir:version [ string ] ; # 0..1 Business version of the search parameter # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2fhir: ]fhir:versionAlgorithm [ a fhir:String ; string ] fhir:versionAlgorithm [ a fhir:Coding ; Coding ] fhir:name [ string ] ; # 1..1 I Name for this search parameter (computer friendly) fhir:title [ string ] ; # 0..1 Name for this search parameter (human friendly) fhir:derivedFrom [ canonical(SearchParameter) ] ; # 0..1 Original definition for the search parameter fhir:status [ code ] ; # 1..1 draft | active | retired | unknown fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage fhir:date [ dateTime ] ; # 0..1 Date last changedfhir:fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual) fhir:contact ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher fhir:description [ markdown ] ; # 1..1 Natural language description of the search parameter fhir:useContext ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to supportfhir:fhir:jurisdiction ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the search parameter (if applicable) fhir:purpose [ markdown ] ; # 0..1 Why this search parameter is definedfhir: fhir: fhir: fhir:fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s) fhir:code [ code ] ; # 1..1 I Recommended name for parameter in search url fhir:aliasCode ( [ code ] ... ) ; # 0..* I Additional recommended names for parameter in search url fhir:base ( [ code ] ... ) ; # 1..* The resource type(s) this search parameter applies to fhir:type [ code ] ; # 1..1 I number | date | string | token | reference | composite | quantity | uri | special | resource fhir:expression [ string ] ; # 0..1 I FHIRPath expression that extracts the values fhir:processingMode [ code ] ; # 0..1 I normal | phonetic | otherfhir:fhir:constraint [ string ] ; # 0..1 FHIRPath expression that constraints the usage of this SearchParameter fhir:target ( [ code ] ... ) ; # 0..* Types of resource (if a resource reference) fhir:multipleOr [ boolean ] ; # 0..1 Allow multiple values per parameter (or) fhir:multipleAnd [ boolean ] ; # 0..1 Allow multiple parameters (and) fhir:comparator ( [ code ] ... ) ; # 0..* I eq | ne | gt | lt | ge | le | sa | eb | ap fhir:modifier ( [ code ] ... ) ; # 0..* missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate fhir:chain ( [ string ] ... ) ; # 0..* I Chained names supported fhir:component ( [ # 0..* For Composite resources to define the parts fhir:definition [ canonical(SearchParameter) ] ; # 1..1 Defines how the part worksfhir:fhir:expression [ string ] ; # 1..1 Sub-expression relative to main expression ] ... ) ; ]
Changes
from
both
R4
and
R5
to
R6
| SearchParameter | |
| SearchParameter.jurisdiction |
|
| SearchParameter.aliasCode |
|
| SearchParameter.base |
|
| SearchParameter.type |
|
| SearchParameter.target |
|
| SearchParameter.modifier |
|
Changes from R4B to R6
| SearchParameter | |
| SearchParameter.identifier |
|
| SearchParameter.versionAlgorithm[x] |
|
| SearchParameter.title |
|
| SearchParameter.jurisdiction |
|
| SearchParameter.copyright |
|
| SearchParameter.copyrightLabel |
|
| SearchParameter.aliasCode |
|
| SearchParameter.base |
|
| SearchParameter.type |
|
| SearchParameter.processingMode |
|
| SearchParameter.constraint |
|
| SearchParameter.target |
|
| SearchParameter.modifier |
|
| SearchParameter.xpath |
|
Changes from R4 to R6
| SearchParameter | |
| SearchParameter.identifier |
|
| SearchParameter.versionAlgorithm[x] |
|
| SearchParameter.title |
|
| SearchParameter.jurisdiction |
|
| SearchParameter.copyright |
|
| SearchParameter.copyrightLabel |
|
| SearchParameter.aliasCode |
|
| SearchParameter.base |
|
| SearchParameter.type |
|
| SearchParameter.processingMode |
|
| SearchParameter.constraint |
|
| SearchParameter.target |
|
| SearchParameter.modifier |
|
| SearchParameter.xpath |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .
Additional definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) , the spreadsheet version & the dependency analysis
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| SearchParameter.versionAlgorithm[x] | VersionAlgorithm | Extensible |
Indicates the mechanism used to compare versions to determine which is more current. |
| SearchParameter.status | PublicationStatus | Required |
The lifecycle status of an artifact. |
| SearchParameter.jurisdiction |
JurisdictionValueSet
|
Extensible |
This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.
Note:
The
codes
for
countries
and
country
subdivisions
are
taken
from
ISO
3166
|
| SearchParameter.base | VersionIndependentResourceTypesAll | Required |
Current and past FHIR resource types (deleted or renamed), including abstract types |
| All Resource Types | ui | ||
| SearchParameter.type | SearchParamType | Required |
Data types allowed to be used for search parameters. |
| SearchParameter.processingMode | SearchProcessingModeType | Required |
How a search parameter relates to the set of elements returned by evaluating its expression query. |
| SearchParameter.target | VersionIndependentResourceTypesAll | Required |
Current and past FHIR resource types (deleted or renamed), including abstract types |
| All Resource Types | ui | ||
| SearchParameter.comparator | SearchComparator | Required |
What Search Comparator Codes are supported in search. |
| SearchParameter.modifier |
|
Required |
A supported modifier for a search parameter. |
| UniqueKey | Level | Location | Description | Expression |
cnl-0
|
Warning | (base) | Name should be usable as an identifier for the module by machine processing applications such as code generation | name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
spd-1
|
Rule | (base) | If an expression is present, there SHALL be a processingMode | expression.empty() or processingMode.exists() |
cnl-1
|
Warning | SearchParameter.url | URL should not contain | or # - these characters make processing canonical references problematic | exists() implies matches('^[^|# ]+$') |
spd-2
|
Rule | (base) | Search parameters can only have chain names when the search parameter type is 'reference' | chain.empty() or type = 'reference' |
spd-3
|
Rule | (base) | Search parameters comparator can only be used on type 'number', 'date', 'quantity' or 'special'. | comparator.empty() or (type in ('number' | 'date' | 'quantity' | 'special')) |
spd-4
| Rule | (base) | Search parameter codes SHALL NOT contain '.', '$', '|', or whitespace characters | code.matches('^[^.\\$\\|\\s]+$') |
spd-5
| Rule | (base) | Search parameter aliases SHALL NOT contain '.', '$', '|', or whitespace characters | aliasCode.empty() or aliasCode.all(matches('^[^.\\$\\|\\s]+$')).allTrue() |
HL7-defined search parameters follow these naming conventions:
authored
for
authoring
dates)
_
)
compliant
with
the
rules
of
the
Style
Guide
SearchParameter.base
array
Resource.descendents.extension('extension-url').value
is
possible,
but
this
is
a
low
performance
option
for
a
server
to
evaluate,
and
search
parameter
expressions
are
performance
sensitive
Resource.descendents().extension('extension-url').value
is
possible,
but
this
is
a
low
performance
option
for
a
server
to
evaluate,
and
search
parameter
expressions
are
performance
sensitive
Balloter feedback requested: We are seeking input on approaches to managing the balance between expressiveness and performance impact on servers from the use of various FHIRPath features in search parameter expressions.
The
SearchParameter
resource
may
be
used
to
define
searches
on
extensions.
A
simple
definition
defines
the
code,
the
base
resource
the
extension
can
be
found
in,
and
a
type,
and
an
expression.
Assume
that
the
extension
is
http://example.org/fhir/StructureDefinition/extension-thumb-length
which
has
a
value
that
is
a
quantity,
and
that
is
used
on
patient,
then
an
appropriate
SearchParameter
would
be:
"code" : "thumb-length",
"base" : ["Patient"],
"type" : "quantity",
"expression" : "Patient.extension('http://example.org/fhir/StructureDefinition/extension-thumb-length').value"
Servers
MAY
attempt
to
process
expressions
that
just
select
the
extension
without
the
.value
,
but
this
is
not
required
and
may
be
discouraged
or
deprecated
in
the
future.
Extensions may have multiple types with different search behaviors, so the type can be specifically selected:
"code" : "thumb-length-code",
"base" : ["Patient"],
"type" : "token",
"expression" : "Patient.extension('http://example.org/fhir/StructureDefinition/extension-thumb-length').value.ofType(CodeableConcept)"
This
example
would
select
coded
thumb
lengths
and
index
them
only
for
the
thumb-length-code
search
parameter.
When
an
extension
can
have
multiple
types
with
incompatible
search
behavior,
the
search
parameters
have
to
do
this.
Note
that
is
type
casting
the
extension
directly
(e.g.
Patient.extension('...').ofType(CodeableConcept)
)
will
lead
to
an
empty
index,
since
the
extension
is
not
a
CodeableConcept
itself.
When extensions can be used in multiple places, these places are enumerated in the expression:
Patient.extension('http://example.org/fhir/StructureDefinition/extension-thumb-length').value
| Patient.contact.extension('http://example.org/fhir/StructureDefinition/extension-thumb-length').value
| Practitioner.extension('http://example.org/fhir/StructureDefinition/extension-thumb-length').value
Notes:
To
support
evolution
toward
consistent
naming
conventions
while
maintaining
backward
compatibility,
SearchParameter
resources
MAY
define
one
or
more
aliasCode
values.
These
aliases
represent
suggested
alternative
codes
that
can
be
used
to
reference
the
search
parameter
in
addition
to
the
primary
code
value.
Usage Guidelines:
Example:
A
search
parameter
previously
named
authoredon
might
be
updated
to
use
authored
as
the
primary
code
(for
consistency
with
multiple
elements
other
resources)
while
retaining
authoredon
as
an
alias
for
backward
compatibility.
When
one
SearchParameter
has
a
derivedFrom
referencing
another
SearchParameter,
the
following
rules
SHOULD
be
followed.
Note
that
these
rules
are
asserted
as
SHOULD
rather
than
SHALL
only
because
they
were
introduced
after
the
resource
became
normative.
Systems
that
fail
to
follow
these
rules
are
likely
to
result
in
unsafe
interoperability.
A derived SearchParameter:
SearchParameter.base
experimental
Resource.descendents.extension('extension-url').value
type
processingMode
as
the
original
SearchParameter
multipleOr
or
multipleAnd
that
contradict
a
target
that
is
equivalent
to
target
comparator
and
modifier
values
that
are
definition
must
be
the
same
or
a
derived
SearchParameter,
and
the
expression
must
be
the
same.
chain
but
SHOULD
NOT
remove
or
re-order
values
already
listed
in
the
base.
Request for ballot feedback: We would like the 'SHOULD' assertions above to become 'SHALL' assertions. We are invoking our usual implementer outreach process to find out whether anyone else objects, but please file tickets for any rules you do not believe can be enforced that way.
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 |
| base | token | The resource type(s) this search parameter applies to | SearchParameter.base | |
| code | token | Code used in URL | SearchParameter.code | |
| component | reference | Defines how the part works |
SearchParameter.component.definition
( SearchParameter ) |
|
| context | token | A use context assigned to the search parameter | (SearchParameter.useContext.value.ofType(CodeableConcept)) |
|
| context-quantity | quantity | A quantity- or range-valued use context assigned to the search parameter | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) |
|
| context-type | token | A type of use context assigned to the search parameter | SearchParameter.useContext.code |
|
| context-type-quantity | composite | A use context type and quantity- or range-based value assigned to the search parameter |
On
SearchParameter.useContext:
context-type: code context-quantity: value.ofType(Quantity) | value.ofType(Range) |
|
| context-type-value | composite | A use context type and value assigned to the search parameter |
On
SearchParameter.useContext:
context-type: code context: value.ofType(CodeableConcept) |
|
| date | date | The search parameter publication date | SearchParameter.date |
|
| derived-from | reference | Original definition for the search parameter |
SearchParameter.derivedFrom
( SearchParameter ) |
|
| description | string | The description of the search parameter | SearchParameter.description |
|
| experimental | token | Whether the SearchParameter is experimental | SearchParameter.experimental | |
|
identifier
|
token | External identifier for the search parameter | SearchParameter.identifier |
|
| jurisdiction | token |
|
SearchParameter.jurisdiction |
|
| name | string | Computationally friendly name of the search parameter | SearchParameter.name |
|
| publisher | string | Name of the publisher of the search parameter | SearchParameter.publisher |
|
| status | token | The current status of the search parameter | SearchParameter.status |
|
| target | token | Types of resource (if a resource reference) | SearchParameter.target | |
| type | token | number | date | string | token | reference | composite | quantity | uri | special | SearchParameter.type | |
| url | uri | The uri that identifies the search parameter | SearchParameter.url |
|
| version | token | The business version of the search parameter | SearchParameter.version |
|