This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
FHIR Infrastructure Work Group | Maturity Level: 3 | Trial Use | Compartments: Not linked to any 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 |
---|---|---|---|---|
SearchParameter | I | DomainResource | Search Parameter for a resource + If an xpath is present, there SHALL be an xpathUsage + Search parameters can only have chain names when the search parameter type is 'reference' Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
url | Σ | 1..1 | uri | Logical URI to reference this search parameter (globally unique) |
version | Σ | 0..1 | string | Business version of the search parameter |
name | Σ | 1..1 | string | Name for this search parameter (computer friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown PublicationStatus (Required) |
experimental | ?!Σ | 0..1 | boolean | For testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date this was last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
useContext | Σ | 0..* | UsageContext | Context the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for search parameter (if applicable) Jurisdiction ValueSet (Extensible) |
purpose | 0..1 | markdown | Why this search parameter is defined | |
code | Σ | 1..1 | code | Code used in URL |
base | Σ | 1..* | code | The resource type(s) this search parameter applies to ResourceType (Required) |
type | Σ | 1..1 | code | number | date | string | token | reference | composite | quantity | uri SearchParamType (Required) |
derivedFrom | 0..1 | uri | Original Definition for the search parameter | |
description | Σ | 1..1 | markdown | Natural language description of the search parameter |
expression | I | 0..1 | string | FHIRPath expression that extracts the values |
xpath | I | 0..1 | string | XPath that extracts the values |
xpathUsage | I | 0..1 | code | normal | phonetic | nearby | distance | other XPathUsageType (Required) |
target | 0..* | code | Types of resource (if a resource reference) ResourceType (Required) | |
comparator | 0..* | code | eq | ne | gt | lt | ge | le | sa | eb | ap SearchComparator (Required) | |
modifier | 0..* | code | missing | exact | contains | not | text | in | not-in | below | above | type SearchModifierCode (Required) | |
chain | 0..* | string | Chained names supported | |
component | 0..* | BackboneElement | For Composite resources to define the parts | |
definition | 1..1 | Reference(SearchParameter) | Defines how the part works | |
expression | 1..1 | string | Subexpression relative to main expression | |
Documentation for this format |
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 Logical URI to reference this search parameter (globally unique) --> <version value="[string]"/><!-- 0..1 Business version of the search parameter --> <name value="[string]"/><!-- 1..1 Name for this search parameter (computer friendly) --> <status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date this was last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <useContext><!-- 0..* UsageContext Context the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for search parameter (if applicable) --></jurisdiction> <purpose value="[markdown]"/><!-- 0..1 Why this search parameter is defined --> <code value="[code]"/><!-- 1..1 Code used in URL --> <base value="[code]"/><!-- 1..* The resource type(s) this search parameter applies to --> <type value="[code]"/><!-- 1..1 number | date | string | token | reference | composite | quantity | uri --> <derivedFrom value="[uri]"/><!-- 0..1 Original Definition for the search parameter --> <description value="[markdown]"/><!-- 1..1 Natural language description of the search parameter --> <expression value="[string]"/><!-- 0..1 FHIRPath expression that extracts the values --> <xpath value="[string]"/><!-- 0..1 XPath that extracts the values --> <xpathUsage value="[code]"/><!-- 0..1 normal | phonetic | nearby | distance | other --> <target value="[code]"/><!-- 0..* Types of resource (if a resource reference) --> <comparator value="[code]"/><!-- 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 --> <chain value="[string]"/><!-- 0..* Chained names supported --> <component> <!-- 0..* For Composite resources to define the parts --> <definition><!-- 1..1 Reference(SearchParameter) Defines how the part works --></definition> <expression value="[string]"/><!-- 1..1 Subexpression 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! Logical URI to reference this search parameter (globally unique) "version" : "<string>", // Business version of the search parameter "name" : "<string>", // R! Name for this search parameter (computer friendly) "status" : "<code>", // R! draft | active | retired | unknown "experimental" : <boolean>, // For testing purposes, not real usage "date" : "<dateTime>", // Date this was last changed "publisher" : "<string>", // Name of the publisher (organization or individual) "contact" : [{ ContactDetail }], // Contact details for the publisher "useContext" : [{ UsageContext }], // Context the content is intended to support "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for search parameter (if applicable) "purpose" : "<markdown>", // Why this search parameter is defined "code" : "<code>", // R! Code used in URL "base" : ["<code>"], // R! The resource type(s) this search parameter applies to "type" : "<code>", // R! number | date | string | token | reference | composite | quantity | uri "derivedFrom" : "<uri>", // Original Definition for the search parameter "description" : "<markdown>", // R! Natural language description of the search parameter "expression" : "<string>", // C? FHIRPath expression that extracts the values "xpath" : "<string>", // C? XPath that extracts the values "xpathUsage" : "<code>", // C? normal | phonetic | nearby | distance | other "target" : ["<code>"], // Types of resource (if a resource reference) "comparator" : ["<code>"], // eq | ne | gt | lt | ge | le | sa | eb | ap "modifier" : ["<code>"], // missing | exact | contains | not | text | in | not-in | below | above | type "chain" : ["<string>"], // Chained names supported "component" : [{ // For Composite resources to define the parts "definition" : { Reference(SearchParameter) }, // R! Defines how the part works "expression" : "<string>" // R! Subexpression 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 Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:SearchParameter.url [ uri ]; # 1..1 Logical URI to reference this search parameter (globally unique) fhir:SearchParameter.version [ string ]; # 0..1 Business version of the search parameter fhir:SearchParameter.name [ string ]; # 1..1 Name for this search parameter (computer friendly) fhir:SearchParameter.status [ code ]; # 1..1 draft | active | retired | unknown fhir:SearchParameter.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:SearchParameter.date [ dateTime ]; # 0..1 Date this was last changed fhir:SearchParameter.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:SearchParameter.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:SearchParameter.useContext [ UsageContext ], ... ; # 0..* Context the content is intended to support fhir:SearchParameter.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for search parameter (if applicable) fhir:SearchParameter.purpose [ markdown ]; # 0..1 Why this search parameter is defined fhir:SearchParameter.code [ code ]; # 1..1 Code used in URL fhir:SearchParameter.base [ code ], ... ; # 1..* The resource type(s) this search parameter applies to fhir:SearchParameter.type [ code ]; # 1..1 number | date | string | token | reference | composite | quantity | uri fhir:SearchParameter.derivedFrom [ uri ]; # 0..1 Original Definition for the search parameter fhir:SearchParameter.description [ markdown ]; # 1..1 Natural language description of the search parameter fhir:SearchParameter.expression [ string ]; # 0..1 FHIRPath expression that extracts the values fhir:SearchParameter.xpath [ string ]; # 0..1 XPath that extracts the values fhir:SearchParameter.xpathUsage [ code ]; # 0..1 normal | phonetic | nearby | distance | other fhir:SearchParameter.target [ code ], ... ; # 0..* Types of resource (if a resource reference) fhir:SearchParameter.comparator [ code ], ... ; # 0..* eq | ne | gt | lt | ge | le | sa | eb | ap fhir:SearchParameter.modifier [ code ], ... ; # 0..* missing | exact | contains | not | text | in | not-in | below | above | type fhir:SearchParameter.chain [ string ], ... ; # 0..* Chained names supported fhir:SearchParameter.component [ # 0..* For Composite resources to define the parts fhir:SearchParameter.component.definition [ Reference(SearchParameter) ]; # 1..1 Defines how the part works fhir:SearchParameter.component.expression [ string ]; # 1..1 Subexpression relative to main expression ], ...; ]
Changes since DSTU2
SearchParameter | |
SearchParameter.version |
|
SearchParameter.status |
|
SearchParameter.experimental |
|
SearchParameter.contact |
|
SearchParameter.useContext |
|
SearchParameter.jurisdiction |
|
SearchParameter.purpose |
|
SearchParameter.base |
|
SearchParameter.derivedFrom |
|
SearchParameter.description |
|
SearchParameter.expression |
|
SearchParameter.comparator |
|
SearchParameter.modifier |
|
SearchParameter.chain |
|
SearchParameter.component |
|
SearchParameter.component.definition |
|
SearchParameter.component.expression |
|
SearchParameter.contact.name |
|
SearchParameter.contact.telecom |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.).
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
SearchParameter | I | DomainResource | Search Parameter for a resource + If an xpath is present, there SHALL be an xpathUsage + Search parameters can only have chain names when the search parameter type is 'reference' Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
url | Σ | 1..1 | uri | Logical URI to reference this search parameter (globally unique) |
version | Σ | 0..1 | string | Business version of the search parameter |
name | Σ | 1..1 | string | Name for this search parameter (computer friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown PublicationStatus (Required) |
experimental | ?!Σ | 0..1 | boolean | For testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date this was last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
useContext | Σ | 0..* | UsageContext | Context the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for search parameter (if applicable) Jurisdiction ValueSet (Extensible) |
purpose | 0..1 | markdown | Why this search parameter is defined | |
code | Σ | 1..1 | code | Code used in URL |
base | Σ | 1..* | code | The resource type(s) this search parameter applies to ResourceType (Required) |
type | Σ | 1..1 | code | number | date | string | token | reference | composite | quantity | uri SearchParamType (Required) |
derivedFrom | 0..1 | uri | Original Definition for the search parameter | |
description | Σ | 1..1 | markdown | Natural language description of the search parameter |
expression | I | 0..1 | string | FHIRPath expression that extracts the values |
xpath | I | 0..1 | string | XPath that extracts the values |
xpathUsage | I | 0..1 | code | normal | phonetic | nearby | distance | other XPathUsageType (Required) |
target | 0..* | code | Types of resource (if a resource reference) ResourceType (Required) | |
comparator | 0..* | code | eq | ne | gt | lt | ge | le | sa | eb | ap SearchComparator (Required) | |
modifier | 0..* | code | missing | exact | contains | not | text | in | not-in | below | above | type SearchModifierCode (Required) | |
chain | 0..* | string | Chained names supported | |
component | 0..* | BackboneElement | For Composite resources to define the parts | |
definition | 1..1 | Reference(SearchParameter) | Defines how the part works | |
expression | 1..1 | string | Subexpression relative to main expression | |
Documentation for this format |
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 Logical URI to reference this search parameter (globally unique) --> <version value="[string]"/><!-- 0..1 Business version of the search parameter --> <name value="[string]"/><!-- 1..1 Name for this search parameter (computer friendly) --> <status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date this was last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <useContext><!-- 0..* UsageContext Context the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for search parameter (if applicable) --></jurisdiction> <purpose value="[markdown]"/><!-- 0..1 Why this search parameter is defined --> <code value="[code]"/><!-- 1..1 Code used in URL --> <base value="[code]"/><!-- 1..* The resource type(s) this search parameter applies to --> <type value="[code]"/><!-- 1..1 number | date | string | token | reference | composite | quantity | uri --> <derivedFrom value="[uri]"/><!-- 0..1 Original Definition for the search parameter --> <description value="[markdown]"/><!-- 1..1 Natural language description of the search parameter --> <expression value="[string]"/><!-- 0..1 FHIRPath expression that extracts the values --> <xpath value="[string]"/><!-- 0..1 XPath that extracts the values --> <xpathUsage value="[code]"/><!-- 0..1 normal | phonetic | nearby | distance | other --> <target value="[code]"/><!-- 0..* Types of resource (if a resource reference) --> <comparator value="[code]"/><!-- 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 --> <chain value="[string]"/><!-- 0..* Chained names supported --> <component> <!-- 0..* For Composite resources to define the parts --> <definition><!-- 1..1 Reference(SearchParameter) Defines how the part works --></definition> <expression value="[string]"/><!-- 1..1 Subexpression 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! Logical URI to reference this search parameter (globally unique) "version" : "<string>", // Business version of the search parameter "name" : "<string>", // R! Name for this search parameter (computer friendly) "status" : "<code>", // R! draft | active | retired | unknown "experimental" : <boolean>, // For testing purposes, not real usage "date" : "<dateTime>", // Date this was last changed "publisher" : "<string>", // Name of the publisher (organization or individual) "contact" : [{ ContactDetail }], // Contact details for the publisher "useContext" : [{ UsageContext }], // Context the content is intended to support "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for search parameter (if applicable) "purpose" : "<markdown>", // Why this search parameter is defined "code" : "<code>", // R! Code used in URL "base" : ["<code>"], // R! The resource type(s) this search parameter applies to "type" : "<code>", // R! number | date | string | token | reference | composite | quantity | uri "derivedFrom" : "<uri>", // Original Definition for the search parameter "description" : "<markdown>", // R! Natural language description of the search parameter "expression" : "<string>", // C? FHIRPath expression that extracts the values "xpath" : "<string>", // C? XPath that extracts the values "xpathUsage" : "<code>", // C? normal | phonetic | nearby | distance | other "target" : ["<code>"], // Types of resource (if a resource reference) "comparator" : ["<code>"], // eq | ne | gt | lt | ge | le | sa | eb | ap "modifier" : ["<code>"], // missing | exact | contains | not | text | in | not-in | below | above | type "chain" : ["<string>"], // Chained names supported "component" : [{ // For Composite resources to define the parts "definition" : { Reference(SearchParameter) }, // R! Defines how the part works "expression" : "<string>" // R! Subexpression 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 Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:SearchParameter.url [ uri ]; # 1..1 Logical URI to reference this search parameter (globally unique) fhir:SearchParameter.version [ string ]; # 0..1 Business version of the search parameter fhir:SearchParameter.name [ string ]; # 1..1 Name for this search parameter (computer friendly) fhir:SearchParameter.status [ code ]; # 1..1 draft | active | retired | unknown fhir:SearchParameter.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:SearchParameter.date [ dateTime ]; # 0..1 Date this was last changed fhir:SearchParameter.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:SearchParameter.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:SearchParameter.useContext [ UsageContext ], ... ; # 0..* Context the content is intended to support fhir:SearchParameter.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for search parameter (if applicable) fhir:SearchParameter.purpose [ markdown ]; # 0..1 Why this search parameter is defined fhir:SearchParameter.code [ code ]; # 1..1 Code used in URL fhir:SearchParameter.base [ code ], ... ; # 1..* The resource type(s) this search parameter applies to fhir:SearchParameter.type [ code ]; # 1..1 number | date | string | token | reference | composite | quantity | uri fhir:SearchParameter.derivedFrom [ uri ]; # 0..1 Original Definition for the search parameter fhir:SearchParameter.description [ markdown ]; # 1..1 Natural language description of the search parameter fhir:SearchParameter.expression [ string ]; # 0..1 FHIRPath expression that extracts the values fhir:SearchParameter.xpath [ string ]; # 0..1 XPath that extracts the values fhir:SearchParameter.xpathUsage [ code ]; # 0..1 normal | phonetic | nearby | distance | other fhir:SearchParameter.target [ code ], ... ; # 0..* Types of resource (if a resource reference) fhir:SearchParameter.comparator [ code ], ... ; # 0..* eq | ne | gt | lt | ge | le | sa | eb | ap fhir:SearchParameter.modifier [ code ], ... ; # 0..* missing | exact | contains | not | text | in | not-in | below | above | type fhir:SearchParameter.chain [ string ], ... ; # 0..* Chained names supported fhir:SearchParameter.component [ # 0..* For Composite resources to define the parts fhir:SearchParameter.component.definition [ Reference(SearchParameter) ]; # 1..1 Defines how the part works fhir:SearchParameter.component.expression [ string ]; # 1..1 Subexpression relative to main expression ], ...; ]
Changes since DSTU2
SearchParameter | |
SearchParameter.version |
|
SearchParameter.status |
|
SearchParameter.experimental |
|
SearchParameter.contact |
|
SearchParameter.useContext |
|
SearchParameter.jurisdiction |
|
SearchParameter.purpose |
|
SearchParameter.base |
|
SearchParameter.derivedFrom |
|
SearchParameter.description |
|
SearchParameter.expression |
|
SearchParameter.comparator |
|
SearchParameter.modifier |
|
SearchParameter.chain |
|
SearchParameter.component |
|
SearchParameter.component.definition |
|
SearchParameter.component.expression |
|
SearchParameter.contact.name |
|
SearchParameter.contact.telecom |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.).
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)
Path | Definition | Type | Reference |
---|---|---|---|
SearchParameter.status | The lifecycle status of a Value Set or Concept Map. | Required | PublicationStatus |
SearchParameter.jurisdiction | Countries and regions within which this artifact is targeted for use | Extensible | Jurisdiction ValueSet |
SearchParameter.base SearchParameter.target | One of the resource types defined as part of FHIR. | Required | Resource Types |
SearchParameter.type | Data types allowed to be used for search parameters. | Required | SearchParamType |
SearchParameter.xpathUsage | How a search parameter relates to the set of elements returned by evaluating its xpath query. | Required | XPathUsageType |
SearchParameter.comparator | What Search Comparator Codes are supported in search | Required | SearchComparator |
SearchParameter.modifier | A supported modifier for a search parameter. | Required | SearchModifierCode |
The SearchParameter resource may be used to define searches on extensions. Depending on the context of the extension
(as defined in the StructureDefinition), this may require multiple instances of the
SearchParameter.xpath
element like so:
xpath
elements corresponding to the elements specified in the extension's context, e.g.
"f:Patient/f:name/f:extension[@url='extension url']"SearchParameter.base
must be set to "DomainResource".xpath
element with the full URL of the Extension to indicate that the SearchParameter
would search in all elements of the given SearchParameter.base
resource for the given extension.Search parameters for 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) | |
date | date | The search parameter publication date | SearchParameter.date | |
derived-from | uri | Original Definition for the search parameter | SearchParameter.derivedFrom | |
description | string | The description of the search parameter | SearchParameter.description | |
jurisdiction | token | Intended jurisdiction for the search parameter | 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 | SearchParameter.type | |
url | uri | The uri that identifies the search parameter | SearchParameter.url | |
version | token | The business version of the search parameter | SearchParameter.version |