On this page:

5.13Search Parameter Initialization

 

The FHIR specification describes a rich set of default Search Parameters for every resource type, and these are all enabled by default. Every enabled search parameter means additional processing work when a resource is written, so disabling search parameters that are not used can have a significant impact on write performance.

For example, out of the box, every time a Patient resource is written, distinct search parameters are created to index:

  • The family name
  • The given name
  • All names as a single index
  • Email address
  • Phone number
  • All identifers
  • All street address lines
  • All listed address cities
  • All listed address states/provinces
  • All listed address countries
  • All listed address postal/zip codes
  • Gender

Having all of the indexes above is very useful if you are trying to build a general-purpose system that will support searching by any combination of a wide range of demographics.

On the other hand, if you are implementing an Implementation Guide that only mandates support for a specific limited number of search parameters, indexing all of these fields adds processing time and index disk space every time a resource is written.

5.13.1Checking Active Parameters

 

Search Parameters are controlled in your repository using SearchParameter resources. A simple search can be used to determine which search parameters are active, e.g.:

https://try.smilecdr.com/baseR4/SearchParameter?base=Patient&status=active

You can disable unwanted Search Parameters by updating these resources and setting the status to retired.

5.13.2Seeding Search Parameters

 

By default, the system will automatically initalize your repository with all Search Parameters defined in the base FHIR specification when you create a new FHIR repository.

If you wish to automatically adjust this seeding, you can do this using the Search Parameter Seeding settings. Note that it is fine to adjust these after the repository has been created, even if the default set of search parameters has already been created.

The following example shows seeding settings appropriate for a repository being used to support the CARIN Consumer Directed Payer Data Exchange (CARIN IG for Blue ButtonĀ®) Implementation Guide.

Disable Patterns

Patient:*
Practitioner:*
ExplanationOfBenefit:*
Coverage:*
Organization:*

Enable Patterns

Patient:identifier
Coverage:identifier
ExplanationOfBenefit:identifier
ExplanationOfBenefit:patient
ExplanationOfBenefit:type
ExplanationOfBenefit:service-date
ExplanationOfBenefit:claim
ExplanationOfBenefit:coverage
ExplanationOfBenefit:encounter
ExplanationOfBenefit:enterer
ExplanationOfBenefit:facility
ExplanationOfBenefit:provider
ExplanationOfBenefit:payee