This page is part of the FHIR Specification (v5.0.0-snapshot3: R5 Snapshot #3, to support Connectathon 32). 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 | Security Category: Anonymous | 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 | TU | 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'. Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource | |
url | Σ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 |
version | Σ | 0..1 | string | Business version of the search parameter |
versionAlgorithm[x] | Σ | 0..1 | How to compare versions Version Algorithm (Extensible) | |
versionAlgorithmString | string | |||
versionAlgorithmCoding | Coding | |||
name | ΣC | 1..1 | string | Name for this search parameter (computer friendly) |
title | ΣT | 0..1 | string | Name for this search parameter (human friendly) |
derivedFrom | 0..1 | canonical(SearchParameter) | Original definition for the search parameter | |
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 last changed |
publisher | ΣT | 0..1 | string | Name of the publisher/steward (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | ΣT | 1..1 | markdown | Natural language description of the search parameter |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for search parameter (if applicable) Jurisdiction ValueSet (Extensible) |
purpose | T | 0..1 | markdown | Why this search parameter is defined |
code | Σ | 1..1 | code | Recommended name for parameter in search url |
base | Σ | 1..* | code | The resource type(s) this search parameter applies to All Resource Types (Required) |
type | Σ | 1..1 | code | number | date | string | token | reference | composite | quantity | uri | special SearchParamType (Required) |
expression | C | 0..1 | string | FHIRPath expression that extracts the values |
processingMode | C | 0..1 | code | normal | phonetic | other SearchProcessingModeType (Required) |
constraint | 0..1 | string | FHIRPath expression that constraints the usage of this SearchParamete | |
target | 0..* | code | Types of resource (if a resource reference) Resource Types (Required) | |
multipleOr | 0..1 | boolean | Allow multiple values per parameter (or) | |
multipleAnd | 0..1 | boolean | Allow multiple parameters (and) | |
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 | identifier | of-type | code-text | text-advanced | iterate SearchModifierCode (Required) | |
chain | 0..* | string | Chained names supported | |
component | 0..* | BackboneElement | For Composite resources to define the parts | |
definition | 1..1 | canonical(SearchParameter) | Defines how the part works | |
expression | 1..1 | string | Subexpression 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) --> <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 purposes, not 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><!-- 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 Recommended name for parameter in search 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 | special --> <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 SearchParamete --> <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]"/><!-- 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]"/><!-- 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 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! Canonical identifier for this search parameter, represented as a URI (globally unique) "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 purposes, not 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 }], // Intended jurisdiction for search parameter (if applicable) "purpose" : "<markdown>", // Why this search parameter is defined "code" : "<code>", // R! Recommended name for parameter in search url "base" : ["<code>"], // R! The resource type(s) this search parameter applies to "type" : "<code>", // R! number | date | string | token | reference | composite | quantity | uri | special "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 SearchParamete "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>"], // 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>"], // Chained names supported "component" : [{ // For Composite resources to define the parts "definition" : "<canonical(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 Canonical identifier for this search parameter, represented as a URI (globally unique) fhir:SearchParameter.version [ string ]; # 0..1 Business version of the search parameter # SearchParameter.versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:SearchParameter.versionAlgorithmString [ string ] fhir:SearchParameter.versionAlgorithmCoding [ Coding ] fhir:SearchParameter.name [ string ]; # 1..1 I Name for this search parameter (computer friendly) fhir:SearchParameter.title [ string ]; # 0..1 Name for this search parameter (human friendly) fhir:SearchParameter.derivedFrom [ canonical(SearchParameter) ]; # 0..1 Original definition for the search parameter 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 last changed fhir:SearchParameter.publisher [ string ]; # 0..1 Name of the publisher/steward (organization or individual) fhir:SearchParameter.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:SearchParameter.description [ markdown ]; # 1..1 Natural language description of the search parameter fhir:SearchParameter.useContext [ UsageContext ], ... ; # 0..* The context that 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 Recommended name for parameter in search 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 | special fhir:SearchParameter.expression [ string ]; # 0..1 I FHIRPath expression that extracts the values fhir:SearchParameter.processingMode [ code ]; # 0..1 I normal | phonetic | other fhir:SearchParameter.constraint [ string ]; # 0..1 FHIRPath expression that constraints the usage of this SearchParamete fhir:SearchParameter.target [ code ], ... ; # 0..* Types of resource (if a resource reference) fhir:SearchParameter.multipleOr [ boolean ]; # 0..1 Allow multiple values per parameter (or) fhir:SearchParameter.multipleAnd [ boolean ]; # 0..1 Allow multiple parameters (and) 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 | identifier | of-type | code-text | text-advanced | iterate fhir:SearchParameter.chain [ string ], ... ; # 0..* Chained names supported fhir:SearchParameter.component [ # 0..* For Composite resources to define the parts fhir:SearchParameter.component.definition [ canonical(SearchParameter) ]; # 1..1 Defines how the part works fhir:SearchParameter.component.expression [ string ]; # 1..1 Subexpression relative to main expression ], ...; ]
Changes since R4
SearchParameter | |
SearchParameter.versionAlgorithm[x] |
|
SearchParameter.title |
|
SearchParameter.base |
|
SearchParameter.processingMode |
|
SearchParameter.constraint |
|
SearchParameter.xpath |
|
SearchParameter.xpathUsage |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 3 tests that all execute ok. All tests pass round-trip testing and 3 r3 resources are invalid (0 errors).)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
SearchParameter | TU | 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'. Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource | |
url | Σ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 |
version | Σ | 0..1 | string | Business version of the search parameter |
versionAlgorithm[x] | Σ | 0..1 | How to compare versions Version Algorithm (Extensible) | |
versionAlgorithmString | string | |||
versionAlgorithmCoding | Coding | |||
name | ΣC | 1..1 | string | Name for this search parameter (computer friendly) |
title | ΣT | 0..1 | string | Name for this search parameter (human friendly) |
derivedFrom | 0..1 | canonical(SearchParameter) | Original definition for the search parameter | |
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 last changed |
publisher | ΣT | 0..1 | string | Name of the publisher/steward (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | ΣT | 1..1 | markdown | Natural language description of the search parameter |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for search parameter (if applicable) Jurisdiction ValueSet (Extensible) |
purpose | T | 0..1 | markdown | Why this search parameter is defined |
code | Σ | 1..1 | code | Recommended name for parameter in search url |
base | Σ | 1..* | code | The resource type(s) this search parameter applies to All Resource Types (Required) |
type | Σ | 1..1 | code | number | date | string | token | reference | composite | quantity | uri | special SearchParamType (Required) |
expression | C | 0..1 | string | FHIRPath expression that extracts the values |
processingMode | C | 0..1 | code | normal | phonetic | other SearchProcessingModeType (Required) |
constraint | 0..1 | string | FHIRPath expression that constraints the usage of this SearchParamete | |
target | 0..* | code | Types of resource (if a resource reference) Resource Types (Required) | |
multipleOr | 0..1 | boolean | Allow multiple values per parameter (or) | |
multipleAnd | 0..1 | boolean | Allow multiple parameters (and) | |
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 | identifier | of-type | code-text | text-advanced | iterate SearchModifierCode (Required) | |
chain | 0..* | string | Chained names supported | |
component | 0..* | BackboneElement | For Composite resources to define the parts | |
definition | 1..1 | canonical(SearchParameter) | Defines how the part works | |
expression | 1..1 | string | Subexpression 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) --> <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 purposes, not 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><!-- 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 Recommended name for parameter in search 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 | special --> <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 SearchParamete --> <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]"/><!-- 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]"/><!-- 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 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! Canonical identifier for this search parameter, represented as a URI (globally unique) "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 purposes, not 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 }], // Intended jurisdiction for search parameter (if applicable) "purpose" : "<markdown>", // Why this search parameter is defined "code" : "<code>", // R! Recommended name for parameter in search url "base" : ["<code>"], // R! The resource type(s) this search parameter applies to "type" : "<code>", // R! number | date | string | token | reference | composite | quantity | uri | special "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 SearchParamete "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>"], // 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>"], // Chained names supported "component" : [{ // For Composite resources to define the parts "definition" : "<canonical(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 Canonical identifier for this search parameter, represented as a URI (globally unique) fhir:SearchParameter.version [ string ]; # 0..1 Business version of the search parameter # SearchParameter.versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:SearchParameter.versionAlgorithmString [ string ] fhir:SearchParameter.versionAlgorithmCoding [ Coding ] fhir:SearchParameter.name [ string ]; # 1..1 I Name for this search parameter (computer friendly) fhir:SearchParameter.title [ string ]; # 0..1 Name for this search parameter (human friendly) fhir:SearchParameter.derivedFrom [ canonical(SearchParameter) ]; # 0..1 Original definition for the search parameter 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 last changed fhir:SearchParameter.publisher [ string ]; # 0..1 Name of the publisher/steward (organization or individual) fhir:SearchParameter.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:SearchParameter.description [ markdown ]; # 1..1 Natural language description of the search parameter fhir:SearchParameter.useContext [ UsageContext ], ... ; # 0..* The context that 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 Recommended name for parameter in search 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 | special fhir:SearchParameter.expression [ string ]; # 0..1 I FHIRPath expression that extracts the values fhir:SearchParameter.processingMode [ code ]; # 0..1 I normal | phonetic | other fhir:SearchParameter.constraint [ string ]; # 0..1 FHIRPath expression that constraints the usage of this SearchParamete fhir:SearchParameter.target [ code ], ... ; # 0..* Types of resource (if a resource reference) fhir:SearchParameter.multipleOr [ boolean ]; # 0..1 Allow multiple values per parameter (or) fhir:SearchParameter.multipleAnd [ boolean ]; # 0..1 Allow multiple parameters (and) 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 | identifier | of-type | code-text | text-advanced | iterate fhir:SearchParameter.chain [ string ], ... ; # 0..* Chained names supported fhir:SearchParameter.component [ # 0..* For Composite resources to define the parts fhir:SearchParameter.component.definition [ canonical(SearchParameter) ]; # 1..1 Defines how the part works fhir:SearchParameter.component.expression [ string ]; # 1..1 Subexpression relative to main expression ], ...; ]
Changes since Release 4
SearchParameter | |
SearchParameter.versionAlgorithm[x] |
|
SearchParameter.title |
|
SearchParameter.base |
|
SearchParameter.processingMode |
|
SearchParameter.constraint |
|
SearchParameter.xpath |
|
SearchParameter.xpathUsage |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 3 tests that all execute ok. All tests pass round-trip testing and 3 r3 resources are invalid (0 errors).)
Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) , the spreadsheet version & the dependency analysis
Path | Definition | Type | Reference |
---|---|---|---|
SearchParameter.versionAlgorithm[x] | Indicates the mechanism used to compare versions to determine which is more current. | Extensible | VersionAlgorithm |
SearchParameter.status | The lifecycle status of an artifact. | Required | PublicationStatus |
SearchParameter.jurisdiction | 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 while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) . | Extensible | JurisdictionValueSet |
SearchParameter.base | All fhir data types (including abstract resources) | Required | AllResourceTypes |
SearchParameter.type | Data types allowed to be used for search parameters. | Required | SearchParamType |
SearchParameter.processingMode | How a search parameter relates to the set of elements returned by evaluating its expression query. | Required | SearchProcessingModeType |
SearchParameter.target | All fhir data types | Required | ResourceType |
SearchParameter.comparator | What Search Comparator Codes are supported in search. | Required | SearchComparator |
SearchParameter.modifier | A supported modifier for a search parameter. | Required | SearchModifierCode |
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 | url.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')) |
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 behaviours, 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 behaviour, 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:
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
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) | |
context | token | A use context assigned to the search parameter | (SearchParameter.useContext.value as CodeableConcept) | 30 Resources |
context-quantity | quantity | A quantity- or range-valued use context assigned to the search parameter | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | 30 Resources |
context-type | token | A type of use context assigned to the search parameter | SearchParameter.useContext.code | 30 Resources |
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) | 30 Resources |
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) | 30 Resources |
date | date | The search parameter publication date | SearchParameter.date | 30 Resources |
derived-from | reference | Original definition for the search parameter | SearchParameter.derivedFrom (SearchParameter) | |
description | string | The description of the search parameter | SearchParameter.description | 28 Resources |
jurisdiction | token | Intended jurisdiction for the search parameter | SearchParameter.jurisdiction | 26 Resources |
name | string | Computationally friendly name of the search parameter | SearchParameter.name | 26 Resources |
publisher | string | Name of the publisher of the search parameter | SearchParameter.publisher | 30 Resources |
status | token | The current status of the search parameter | SearchParameter.status | 34 Resources |
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 | 33 Resources |
version | token | The business version of the search parameter | SearchParameter.version | 30 Resources |