FHIR Release 3 (STU) CI-Build

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 Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3 R2

5.5 5.6 Resource SearchParameter - Content

Responsible Owner: FHIR Infrastructure icon Work Group   Normative Maturity Level : 3   Trial Use Security Category : Anonymous Compartments : Not linked to any 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:

  • how to typically refer to the search parameter from a client ( SearchParameter.code )
  • how the search parameter is to be understood by the server
  • where in the source resource the parameter matches

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

Logical URI to reference Context Intended jurisdiction for Original Definition for 1..1 I I normal | phonetic | nearby | distance | other Types of resource (if a resource reference) ResourceType ( Required ) Subexpression
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . SearchParameter I N DomainResource Search Parameter 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 xpath expression is present, there SHALL be an xpathUsage 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
. . . url Σ C 1..1 uri Canonical identifier for this search parameter parameter, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . version . identifier Σ 0..* Identifier 0..1 Additional identifier for the search parameter (business identifier)

. . . version Σ 0..1 string Business version of the search parameter
. . name . versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: Version Algorithm ( Extensible )
.... versionAlgorithmString 1..1 string
. . . . versionAlgorithmCoding Coding
... name Σ C 1..1 string Name for this search parameter (computer friendly)
. . . status 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
Binding: PublicationStatus ( Required )
. . . experimental ?! Σ 0..1 boolean For testing purposes, not only - never for real usage
. . . date Σ 0..1 dateTime Date this was last changed
. . . publisher Σ T 0..1 string Name of the publisher 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 Jurisdiction of the authority that maintains the search parameter (if applicable)
Binding: Jurisdiction ValueSet icon ( Extensible )

. . . purpose T 0..1 markdown Why this search parameter is defined
. . . copyright T 0..1 markdown Notice about intellectual property ownership, can include restrictions on use
. . . code copyrightLabel T Σ 0..1 string Copyright holder and year(s)
1..1
. . . code Code used Σ C 1..1 code Recommended name for parameter in URL search url
. . . base aliasCode Σ C 0..* code 1..* Additional recommended names for parameter in search url

. . . base Σ 1..* code The resource type(s) this search parameter applies to
ResourceType Binding: Version Independent Resource Types (All) ( Required )
Additional Bindings Purpose
All Resource Types UI Binding


. . . type Σ C 1..1 code number | date | string | token | reference | composite | quantity | uri | special | resource
Binding: SearchParamType ( Required )
. . derivedFrom . expression C 0..1 uri string FHIRPath expression that extracts the search parameter values
. . . description processingMode Σ C 0..1 markdown code normal | phonetic | other
Binding: Search Processing Mode Type ( Required )
Natural language description of the search parameter
. . expression . constraint 0..1 string FHIRPath expression that extracts constraints the values usage of this SearchParameter
. . . xpath target 0..* I code Types of resource (if a resource reference)
Binding: Version Independent Resource Types (All) ( Required ) string
Additional Bindings 0..1 Purpose
All Resource Types UI Binding XPath that extracts the values


. . xpathUsage . multipleOr 0..1 code boolean Allow multiple values per parameter (or)
XPathUsageType ( Required )
. . . target multipleAnd 0..* 0..1 code boolean Allow multiple parameters (and)
. . . comparator C 0..* code eq | ne | gt | lt | ge | le | sa | eb | ap
SearchComparator Binding: Search Comparator ( Required )

. . . modifier 0..* code missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
SearchModifierCode Binding: Search Modifier Code ( Required )

. . . chain C 0..* string Chained names supported

. . . component 0..* BackboneElement For Composite resources to define the parts

. . . . definition 1..1 Reference canonical ( SearchParameter ) Defines how the part works
. . . . expression 1..1 string Sub-expression relative to main expression

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

SearchParameter ( DomainResource ) + CanonicalResource An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. instance; also called its canonical identifier. This SHALL be a URL, SHOULD be globally unique, unique and SHOULD be an a literal address at which an authoritative instance of this search parameter is (or will be) published. The This URL SHOULD include can be the major version target of a canonical reference. It SHALL remain the same when the search parameter. For more information see [Technical and Business Versions](resource.html#versions) parameter is stored on different servers url : uri [1..1] A formal identifier that is used to identify this search parameter when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [1..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the search parameter title : string [0..1] Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter derivedFrom : canonical [0..1] « SearchParameter » The status of this search parameter. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of a Value Set or Concept Map. null (Strength=Required) PublicationStatus ! » A boolean Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing), education/evaluation/marketing) and is not intended to no version of this resource will ever be used intended for genuine usage (this element modifies the meaning of other elements) experimental : boolean [0..1] The date (and optionally time) when the search parameter was published. last significantly changed. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes date : dateTime [0..1] The name of the individual or organization that published or individual responsible for the release and ongoing maintenance of the search parameter publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] And how it used description : markdown [1..1] The content was developed with a focus and intent of supporting the contexts that are listed. These terms contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances useContext : UsageContext [0..*] A legal or geographic region in which the search parameter authority that maintains the resource is intended to be used operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explaination Explanation of why this search parameter is needed and why it has been designed as it has purpose : markdown [0..1] A copyright statement relating to the search parameter and/or its contents. Copyright statements are notices of intellectual property ownership and can include restrictions on the use and publishing of the search parameter copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are restricted. (e.g. 'All rights reserved', 'Some rights reserved') copyrightLabel : string [0..1] The code label that is recommended to be used in the URL or the parameter name in a parameters resource for this search parameter parameter. In some cases, servers may need to use a different CapabilityStatement searchParam.name to differentiate between multiple SearchParameters that happen to have the same code code : code [1..1] « This element has or is affected by some invariants C » Additional label that are recommended to be used in the URL or the parameter name in a parameters resource for this search parameter. Typically used to provide backwards-compatibility for renamed search parameters and translations into localized languages aliasCode : code [0..*] « This element has or is affected by some invariants C » The base resource type(s) that this search parameter can be used against base : code [1..*] « One of the resource types defined as part of FHIR. null (Strength=Required) ResourceType VersionIndependentResourceTyp... ! » The type of value that a search parameter refers to, may contain, and how the content is interpreted type : code [1..1] « Data types allowed to be used for search parameters. null (Strength=Required) SearchParamType ! » « Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it This element has or is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter derivedFrom : uri [0..1] A free text natural language description of the search parameter from a consumer's perspective. and how it used affected by some invariants description : markdown C [1..1] » A FHIRPath expression that returns a set of elements for the search parameter expression : string [0..1] « An XPath expression that returns a set of elements for the search parameter This element has or is affected by some invariants xpath : string C [0..1] » How the search parameter relates to the set of elements returned by evaluating the xpath expression query xpathUsage processingMode : code [0..1] « How a search parameter relates to the set of elements returned by evaluating its xpath query. null (Strength=Required) XPathUsageType SearchProcessingModeType ! » « This element has or is affected by some invariants C » FHIRPath expression that defines/sets a complex constraint for when this SearchParameter is applicable constraint : string [0..1] Types of resource (if a resource is referenced) target : code [0..*] « null (Strength=Required) VersionIndependentResourceTyp... ! » One of Whether multiple values are allowed for each time the resource types defined as part parameter exists. Values are separated by commas, and the parameter matches if any of FHIR. (Strength=Required) the values match ResourceType ! multipleOr : boolean [0..1] Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match multipleAnd : boolean [0..1] Comparators supported for the search parameter comparator : code [0..*] « What Search Comparator Codes are supported in search null (Strength=Required) SearchComparator ! » « This element has or is affected by some invariants C » A modifier supported for the search parameter modifier : code [0..*] « A supported modifier for a search parameter. null (Strength=Required) SearchModifierCode ! » Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type chain : string [0..*] « This element has or is affected by some invariants C » Component The definition of the search parameter that describes this part definition : Reference canonical [1..1] « SearchParameter » A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression expression : string [1..1] Used to define the parts of a composite search parameter component [0..*]

XML Template

<

<SearchParameter xmlns="http://hl7.org/fhir"> doco

 <!-- 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>
 <</useContext>
 <</jurisdiction>
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <

 <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 Jurisdiction of the authority that maintains the search parameter (if applicable) icon --></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>
  <

  <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

{doco
  "resourceType" : "",

  "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) icon
  "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/> .doco


[ a fhir:SearchParameter;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
  ], ...;

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir: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 2
    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 changed
  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 support
  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 defined
  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 | other
  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 works
    fhir:expression [ string ] ; # 1..1 Sub-expression relative to main expression
  ] ... ) ;

]

Changes since DSTU2 from both R4 and R4B

SearchParameter
SearchParameter.version SearchParameter.identifier
  • Added Element
SearchParameter.status SearchParameter.versionAlgorithm[x]
  • Min Cardinality changed from 0 to 1 Change value set from http://hl7.org/fhir/ValueSet/conformance-resource-status to http://hl7.org/fhir/ValueSet/publication-status Added Element
SearchParameter.experimental SearchParameter.title
  • Now marked as Modifier Added Element
SearchParameter.contact SearchParameter.jurisdiction
  • Type changed Change value set from BackboneElement http://hl7.org/fhir/ValueSet/jurisdiction to ContactDetail Jurisdiction ValueSet icon
SearchParameter.useContext SearchParameter.copyright
  • Added Element
SearchParameter.jurisdiction SearchParameter.copyrightLabel
  • Added Element
SearchParameter.purpose SearchParameter.aliasCode
  • Renamed from requirements to purpose Type changed from string to markdown Added Element
SearchParameter.base
  • Max Cardinality changed Change value set from 1 http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to * Version Independent Resource Types (All)
  • Remove codes ChargeItem , ChargeItemDefinition , ClinicalImpression , GraphDefinition , ImmunizationEvaluation , ImmunizationRecommendation , MolecularSequence , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SupplyDelivery , SupplyRequest , TestReport , TestScript , VerificationResult
  • Add codes ActorDefinition , AdministrableProductDefinition , ArtifactAssessment , CanonicalResource , ClinicalAssessment , ClinicalUseDefinition , ConditionDefinition , DeviceAlert , DeviceAssociation , FormularyItem , GenomicStudy , ImagingSelection , Ingredient , InsuranceProduct , ManufacturedItemDefinition , MedicinalProductDefinition , MetadataResource , MolecularDefinition , NutritionIntake , NutritionProduct , PackagedProductDefinition , Permission , RegulatedAuthorization , RequestOrchestration , Requirements , SubscriptionStatus , SubscriptionTopic , SubstanceDefinition , BodySite , Conformance , DataElement , DeviceComponent , DeviceUseRequest , DiagnosticOrder , EligibilityRequest , EligibilityResponse , ExpansionProfile , ImagingManifest , ImagingObjectSelection , MedicationOrder , MedicationUsage , Order , OrderResponse , ProcedureRequest , ProcessRequest , ProcessResponse , ReferralRequest , Sequence , ServiceDefinition
SearchParameter.derivedFrom SearchParameter.type
  • Added Element Add code resource
SearchParameter.description SearchParameter.processingMode
  • Type changed Renamed from string xpathUsage to markdown processingMode
  • SearchParameter.expression
  • Added Element Change value set from http://hl7.org/fhir/ValueSet/search-xpath-usage|4.0.0 to Search Processing Mode Type
  • SearchParameter.comparator
  • Added Element Remove codes nearby , distance
SearchParameter.modifier SearchParameter.constraint
  • Added Element
SearchParameter.chain SearchParameter.target
  • Added Element Change value set from http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to Version Independent Resource Types (All)
  • SearchParameter.component
  • Added Element Remove codes ChargeItem , ChargeItemDefinition , ClinicalImpression , GraphDefinition , ImmunizationEvaluation , ImmunizationRecommendation , MolecularSequence , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SupplyDelivery , SupplyRequest , TestReport , TestScript , VerificationResult
  • SearchParameter.component.definition
  • Added Element Add codes ActorDefinition , AdministrableProductDefinition , ArtifactAssessment , CanonicalResource , ClinicalAssessment , ClinicalUseDefinition , ConditionDefinition , DeviceAlert , DeviceAssociation , FormularyItem , GenomicStudy , ImagingSelection , Ingredient , InsuranceProduct , ManufacturedItemDefinition , MedicinalProductDefinition , MetadataResource , MolecularDefinition , NutritionIntake , NutritionProduct , PackagedProductDefinition , Permission , RegulatedAuthorization , RequestOrchestration , Requirements , SubscriptionStatus , SubscriptionTopic , SubstanceDefinition , BodySite , Conformance , DataElement , DeviceComponent , DeviceUseRequest , DiagnosticOrder , EligibilityRequest , EligibilityResponse , ExpansionProfile , ImagingManifest , ImagingObjectSelection , MedicationOrder , MedicationUsage , Order , OrderResponse , ProcedureRequest , ProcessRequest , ProcessResponse , ReferralRequest , Sequence , ServiceDefinition
SearchParameter.component.expression SearchParameter.modifier
  • Added Element Remove code ofType
  • SearchParameter.contact.name
  • deleted Add codes of-type , code-text , text-advanced , iterate
SearchParameter.contact.telecom SearchParameter.xpath
  • deleted Deleted (XPath removed due to lack of use and maintenance)

See the Full Difference for further information

This analysis is available for R4 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.). for R4B as XML or JSON .

Structure

Logical URI to reference Context Intended jurisdiction for Original Definition for 1..1 I I normal | phonetic | nearby | distance | other Types of resource (if a resource reference) ResourceType ( Required ) Subexpression
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . SearchParameter I N DomainResource Search Parameter 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 xpath expression is present, there SHALL be an xpathUsage 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
. . . url Σ C 1..1 uri Canonical identifier for this search parameter parameter, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . version . identifier Σ 0..* Identifier Additional identifier for the search parameter (business identifier)

0..1
. . . version Σ 0..1 string Business version of the search parameter
. . name . versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: Version Algorithm ( Extensible )
.... versionAlgorithmString 1..1 string
. . . . versionAlgorithmCoding Coding
... name Σ C 1..1 string Name for this search parameter (computer friendly)
. . . status 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
Binding: PublicationStatus ( Required )
. . . experimental ?! Σ 0..1 boolean For testing purposes, not only - never for real usage
. . . date Σ 0..1 dateTime Date this was last changed
. . . publisher Σ T 0..1 string Name of the publisher 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 Jurisdiction of the authority that maintains the search parameter (if applicable)
Binding: Jurisdiction ValueSet icon ( Extensible )

. . . purpose T 0..1 markdown Why this search parameter is defined
. . . copyright T 0..1 markdown Notice about intellectual property ownership, can include restrictions on use
. . . code copyrightLabel T Σ 0..1 string Copyright holder and year(s)
1..1
. . . code Code used Σ C 1..1 code Recommended name for parameter in URL search url
. . . base aliasCode Σ C 0..* code Additional recommended names for parameter in search url

1..*
. . . base Σ 1..* code The resource type(s) this search parameter applies to
ResourceType Binding: Version Independent Resource Types (All) ( Required )
Additional Bindings Purpose
All Resource Types UI Binding


. . . type Σ C 1..1 code number | date | string | token | reference | composite | quantity | uri | special | resource
Binding: SearchParamType ( Required )
. . derivedFrom . expression C 0..1 uri string FHIRPath expression that extracts the search parameter values
. . . description processingMode Σ C 0..1 markdown code normal | phonetic | other
Binding: Search Processing Mode Type ( Required )
Natural language description of the search parameter
. . expression . constraint 0..1 string FHIRPath expression that extracts constraints the values usage of this SearchParameter
. . . xpath target 0..* I code Types of resource (if a resource reference)
Binding: Version Independent Resource Types (All) ( Required ) string
Additional Bindings 0..1 Purpose
All Resource Types UI Binding XPath that extracts the values


. . xpathUsage . multipleOr 0..1 code boolean Allow multiple values per parameter (or)
XPathUsageType ( Required )
. . . target multipleAnd 0..* 0..1 code boolean Allow multiple parameters (and)
. . . comparator C 0..* code eq | ne | gt | lt | ge | le | sa | eb | ap
SearchComparator Binding: Search Comparator ( Required )

. . . modifier 0..* code missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
SearchModifierCode Binding: Search Modifier Code ( Required )

. . . chain C 0..* string Chained names supported

. . . component 0..* BackboneElement For Composite resources to define the parts

. . . . definition 1..1 Reference canonical ( SearchParameter ) Defines how the part works
. . . . expression 1..1 string Sub-expression relative to main expression

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

SearchParameter ( DomainResource ) + CanonicalResource An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. instance; also called its canonical identifier. This SHALL be a URL, SHOULD be globally unique, unique and SHOULD be an a literal address at which an authoritative instance of this search parameter is (or will be) published. The This URL SHOULD include can be the major version target of a canonical reference. It SHALL remain the same when the search parameter. For more information see [Technical and Business Versions](resource.html#versions) parameter is stored on different servers url : uri [1..1] A formal identifier that is used to identify this search parameter when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [1..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the search parameter title : string [0..1] Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter derivedFrom : canonical [0..1] « SearchParameter » The status of this search parameter. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of a Value Set or Concept Map. null (Strength=Required) PublicationStatus ! » A boolean Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing), education/evaluation/marketing) and is not intended to no version of this resource will ever be used intended for genuine usage (this element modifies the meaning of other elements) experimental : boolean [0..1] The date (and optionally time) when the search parameter was published. last significantly changed. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes date : dateTime [0..1] The name of the individual or organization that published or individual responsible for the release and ongoing maintenance of the search parameter publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] And how it used description : markdown [1..1] The content was developed with a focus and intent of supporting the contexts that are listed. These terms contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances useContext : UsageContext [0..*] A legal or geographic region in which the search parameter authority that maintains the resource is intended to be used operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explaination Explanation of why this search parameter is needed and why it has been designed as it has purpose : markdown [0..1] A copyright statement relating to the search parameter and/or its contents. Copyright statements are notices of intellectual property ownership and can include restrictions on the use and publishing of the search parameter copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are restricted. (e.g. 'All rights reserved', 'Some rights reserved') copyrightLabel : string [0..1] The code label that is recommended to be used in the URL or the parameter name in a parameters resource for this search parameter parameter. In some cases, servers may need to use a different CapabilityStatement searchParam.name to differentiate between multiple SearchParameters that happen to have the same code code : code [1..1] « This element has or is affected by some invariants C » Additional label that are recommended to be used in the URL or the parameter name in a parameters resource for this search parameter. Typically used to provide backwards-compatibility for renamed search parameters and translations into localized languages aliasCode : code [0..*] « This element has or is affected by some invariants C » The base resource type(s) that this search parameter can be used against base : code [1..*] « One of the resource types defined as part of FHIR. null (Strength=Required) ResourceType VersionIndependentResourceTyp... ! » The type of value that a search parameter refers to, may contain, and how the content is interpreted type : code [1..1] « Data types allowed to be used for search parameters. null (Strength=Required) SearchParamType ! » « Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it This element has or is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter derivedFrom : uri [0..1] A free text natural language description of the search parameter from a consumer's perspective. and how it used affected by some invariants description : markdown C [1..1] » A FHIRPath expression that returns a set of elements for the search parameter expression : string [0..1] « An XPath expression that returns a set of elements for the search parameter This element has or is affected by some invariants xpath : string C [0..1] » How the search parameter relates to the set of elements returned by evaluating the xpath expression query xpathUsage processingMode : code [0..1] « How a search parameter relates to the set of elements returned by evaluating its xpath query. null (Strength=Required) XPathUsageType SearchProcessingModeType ! » « This element has or is affected by some invariants C » FHIRPath expression that defines/sets a complex constraint for when this SearchParameter is applicable constraint : string [0..1] Types of resource (if a resource is referenced) target : code [0..*] « null (Strength=Required) VersionIndependentResourceTyp... ! » One of Whether multiple values are allowed for each time the resource types defined as part parameter exists. Values are separated by commas, and the parameter matches if any of FHIR. (Strength=Required) the values match ResourceType ! multipleOr : boolean [0..1] Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match multipleAnd : boolean [0..1] Comparators supported for the search parameter comparator : code [0..*] « What Search Comparator Codes are supported in search null (Strength=Required) SearchComparator ! » « This element has or is affected by some invariants C » A modifier supported for the search parameter modifier : code [0..*] « A supported modifier for a search parameter. null (Strength=Required) SearchModifierCode ! » Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type chain : string [0..*] « This element has or is affected by some invariants C » Component The definition of the search parameter that describes this part definition : Reference canonical [1..1] « SearchParameter » A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression expression : string [1..1] Used to define the parts of a composite search parameter component [0..*]

XML Template

<

<SearchParameter xmlns="http://hl7.org/fhir"> doco

 <!-- 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>
 <</useContext>
 <</jurisdiction>
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <
 <

 <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 Jurisdiction of the authority that maintains the search parameter (if applicable) icon --></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>
  <

  <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

{doco
  "resourceType" : "",

  "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) icon
  "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/> .doco


[ a fhir:SearchParameter;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
  ], ...;

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir: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 2
    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 changed
  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 support
  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 defined
  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 | other
  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 works
    fhir:expression [ string ] ; # 1..1 Sub-expression relative to main expression
  ] ... ) ;

]

Changes since DSTU2 from both R4 and R4B

SearchParameter
SearchParameter.version SearchParameter.identifier
  • Added Element
SearchParameter.status SearchParameter.versionAlgorithm[x]
  • Min Cardinality changed from 0 to 1 Change value set from http://hl7.org/fhir/ValueSet/conformance-resource-status to http://hl7.org/fhir/ValueSet/publication-status Added Element
SearchParameter.experimental SearchParameter.title
  • Now marked as Modifier Added Element
SearchParameter.contact SearchParameter.jurisdiction
  • Type changed Change value set from BackboneElement http://hl7.org/fhir/ValueSet/jurisdiction to ContactDetail Jurisdiction ValueSet icon
SearchParameter.useContext SearchParameter.copyright
  • Added Element
SearchParameter.jurisdiction SearchParameter.copyrightLabel
  • Added Element
SearchParameter.purpose SearchParameter.aliasCode
  • Renamed from requirements to purpose Type changed from string to markdown Added Element
SearchParameter.base
  • Max Cardinality changed Change value set from 1 http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to * Version Independent Resource Types (All)
  • Remove codes ChargeItem , ChargeItemDefinition , ClinicalImpression , GraphDefinition , ImmunizationEvaluation , ImmunizationRecommendation , MolecularSequence , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SupplyDelivery , SupplyRequest , TestReport , TestScript , VerificationResult
  • Add codes ActorDefinition , AdministrableProductDefinition , ArtifactAssessment , CanonicalResource , ClinicalAssessment , ClinicalUseDefinition , ConditionDefinition , DeviceAlert , DeviceAssociation , FormularyItem , GenomicStudy , ImagingSelection , Ingredient , InsuranceProduct , ManufacturedItemDefinition , MedicinalProductDefinition , MetadataResource , MolecularDefinition , NutritionIntake , NutritionProduct , PackagedProductDefinition , Permission , RegulatedAuthorization , RequestOrchestration , Requirements , SubscriptionStatus , SubscriptionTopic , SubstanceDefinition , BodySite , Conformance , DataElement , DeviceComponent , DeviceUseRequest , DiagnosticOrder , EligibilityRequest , EligibilityResponse , ExpansionProfile , ImagingManifest , ImagingObjectSelection , MedicationOrder , MedicationUsage , Order , OrderResponse , ProcedureRequest , ProcessRequest , ProcessResponse , ReferralRequest , Sequence , ServiceDefinition
SearchParameter.derivedFrom SearchParameter.type
  • Added Element Add code resource
SearchParameter.description SearchParameter.processingMode
  • Type changed Renamed from string xpathUsage to markdown processingMode
  • SearchParameter.expression
  • Added Element Change value set from http://hl7.org/fhir/ValueSet/search-xpath-usage|4.0.0 to Search Processing Mode Type
  • SearchParameter.comparator
  • Added Element Remove codes nearby , distance
SearchParameter.modifier SearchParameter.constraint
  • Added Element
SearchParameter.chain SearchParameter.target
  • Added Element Change value set from http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to Version Independent Resource Types (All)
  • SearchParameter.component
  • Added Element Remove codes ChargeItem , ChargeItemDefinition , ClinicalImpression , GraphDefinition , ImmunizationEvaluation , ImmunizationRecommendation , MolecularSequence , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SupplyDelivery , SupplyRequest , TestReport , TestScript , VerificationResult
  • SearchParameter.component.definition
  • Added Element Add codes ActorDefinition , AdministrableProductDefinition , ArtifactAssessment , CanonicalResource , ClinicalAssessment , ClinicalUseDefinition , ConditionDefinition , DeviceAlert , DeviceAssociation , FormularyItem , GenomicStudy , ImagingSelection , Ingredient , InsuranceProduct , ManufacturedItemDefinition , MedicinalProductDefinition , MetadataResource , MolecularDefinition , NutritionIntake , NutritionProduct , PackagedProductDefinition , Permission , RegulatedAuthorization , RequestOrchestration , Requirements , SubscriptionStatus , SubscriptionTopic , SubstanceDefinition , BodySite , Conformance , DataElement , DeviceComponent , DeviceUseRequest , DiagnosticOrder , EligibilityRequest , EligibilityResponse , ExpansionProfile , ImagingManifest , ImagingObjectSelection , MedicationOrder , MedicationUsage , Order , OrderResponse , ProcedureRequest , ProcessRequest , ProcessResponse , ReferralRequest , Sequence , ServiceDefinition
SearchParameter.component.expression SearchParameter.modifier
  • Added Element Remove code ofType
  • SearchParameter.contact.name
  • deleted Add codes of-type , code-text , text-advanced , iterate
SearchParameter.contact.telecom SearchParameter.xpath
  • deleted Deleted (XPath removed due to lack of use and maintenance)

See the Full Difference for further information

This analysis is available for R4 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.). for R4B as XML or JSON .

 

Alternate Additional definitions: Master Definition ( XML , + JSON ), , XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ) , the spreadsheet version & the dependency analysis

SearchParameter.status
Path Definition ValueSet Type Reference Documentation
SearchParameter.versionAlgorithm[x] The lifecycle status of a Value Set or Concept Map. VersionAlgorithm Required 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 Countries and regions within which this artifact is targeted for use JurisdictionValueSet icon Extensible Jurisdiction ValueSet

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 icon while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) icon.

SearchParameter.base SearchParameter.target One of the resource types defined as part of FHIR. 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 SearchParamType SearchParameter.xpathUsage

How a search parameter relates to the set of elements returned by evaluating its xpath expression query.

SearchParameter.target VersionIndependentResourceTypesAll Required

Current and past FHIR resource types (deleted or renamed), including abstract types

  XPathUsageType All Resource Types ui
SearchParameter.comparator What Search Comparator Codes are supported in search SearchComparator Required SearchComparator

What Search Comparator Codes are supported in search.

SearchParameter.modifier A supported modifier for a search parameter. SearchModifierCode Required SearchModifierCode

A supported modifier for a search parameter.

UniqueKey Level Location Description Expression
spd-1 : img  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}$')
img  spd-1 Rule (base) If an xpath expression is present, there SHALL be an xpathUsage ( expression a processingMode : xpath.empty() expression.empty() or xpathUsage.exists() processingMode.exists() )
spd-2 : img  cnl-1 Warning SearchParameter.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
img  spd-2 Rule (base) Search parameters can only have chain names when the search parameter type is 'reference' ( expression : chain.empty() or type = 'reference'
img  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'))
img  spd-4 Rule (base) Search parameter codes SHALL NOT contain '.', '$', '|', or whitespace characters code.matches('^[^.\\$\\|\\s]+$')
img  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:

  • Use lowercase letters with hyphens for multi-word parameters (kebab-case)
  • Prefer shorter, more common terms when possible
  • Be consistent across resources when the same concept is searched (e.g., authored for authoring dates)
  • Avoid abbreviations unless widely understood
  • Use singular forms unless the concept is inherently plural
  • Use of a prefix underscore character ( _ ) compliant with the rules of the Style Guide
  • If the extension's context specifies multiple resources, they are represented with multiple elements in the SearchParameter.base array
  • An expression like 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
  • An expression like 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
  • While SearchParameter.expression allows for the full use of FHIRPath, including resolve() in a search parameter definition makes it difficult to support for transactional servers. For that reason, this specification does not define parameters that link across resource instance boundaries.
    This specification does use search parameters with resolve() to narrow types (e.g., Observation.subject.resolve() is Patient). We recommend that other specifications follow the same practice - chaining is the mechanism defined to search across resource boundaries.

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. Depending on A simple definition defines the context of code, the base resource the extension (as defined in can be found in, and a type, and an expression. Assume that the StructureDefinition ), 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 require be discouraged or deprecated in the future.

Extensions may have multiple instances of 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 SearchParameter.xpath thumb-length-code element like so: If search parameter. When an extension can have multiple types with incompatible search behavior, the extension's context is scoped by a single resource, SearchParameter.base must be set search parameters have to do this. Note that resource, and there may 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

To support evolution toward consistent naming conventions while maintaining backward compatibility, SearchParameter resources MAY define one or more xpath aliasCode elements corresponding values. These aliases represent suggested alternative codes that can be used to reference the elements specified search parameter in addition to the extension's context, e.g. "f:Patient/f:name/f:extension[@url='extension url']" primary code value.

Usage Guidelines:

  • Aliases should be used primarily for backward compatibility when standardizing parameter names
  • If Servers that declare support for a SearchParameter SHOULD accept all defined aliases in addition to the extension's context specifies multiple resources, primary code
  • New implementations SHOULD use the primary code rather than aliases
  • Aliases are displayed in the SearchParameter registry and resource search parameter tables

Example: A search parameter previously named SearchParameter.base authoredon must might be set updated to "DomainResource". You may use a single xpath authored element as the primary code (for consistency with other resources) while retaining authoredon as an alias for backward compatibility.

When one SearchParameter has a derivedFrom referencing another SearchParameter, the full URL of following rules SHOULD be followed. Note that these rules are asserted as SHOULD rather than SHALL only because they were introduced after the Extension resource became normative. Systems that fail to indicate follow these rules are likely to result in unsafe interoperability.

A derived SearchParameter:

  • SHOULD have the same experimental as the original SearchParameter
  • SHOULD have the same type as the original SearchParameter
  • SHOULD have the same processingMode as the original SearchParameter
  • SHOULD NOT have values for multipleOr or multipleAnd that contradict a value stated in the original SearchParameter. I.e. If the base does not declare these, the derived SearchParameter would search can. However, if the base does declare them, the derived SearchParameter SHOULD have the same values.
  • SHOULD have a target that is equivalent to or a subset of the original SearchParameter target
  • SHOULD have comparator and modifier values that are the same as or a superset of those defined in all elements the base.
  • SHOULD have the same number of components listed in the same order, where the given SearchParameter.base definition resource must be the same or a derived SearchParameter, and the expression must be the same.
  • MAY add values for chain but SHOULD NOT remove or re-order values already listed in the given extension. 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)) 25 Resources
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)) 25 Resources
context-type token A type of use context assigned to the search parameter SearchParameter.useContext.code 25 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)
25 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)
25 Resources
date date The search parameter publication date SearchParameter.date 26 Resources
derived-from uri reference Original Definition definition for the search parameter SearchParameter.derivedFrom
( SearchParameter )
description string The description of the search parameter SearchParameter.description 24 Resources
experimental token jurisdiction Whether the SearchParameter is experimental SearchParameter.experimental
identifier token Intended jurisdiction External identifier for the search parameter SearchParameter.identifier 30 Resources
jurisdiction token Jurisdiction of the authority that maintains the the search parameter SearchParameter.jurisdiction 22 Resources
name string Computationally friendly name of the search parameter SearchParameter.name 24 Resources
publisher string Name of the publisher of the search parameter SearchParameter.publisher 26 Resources
status token The current status of the search parameter SearchParameter.status 30 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 30 Resources
version token The business version of the search parameter SearchParameter.version 27 Resources