FHIR

FHIR settings

General

General FHIR settings

Enable FHIR compliant mode

By default, this should be enabled. It is required for backward compatibility.

IDfhir.compliant-mode
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_COMPLIANT_MODE ,
AIDBOX_FHIR_COMPLIANT_MODE ,
BOX_COMPLIANT__MODE__ENABLED?
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Response 404 on delete nonexistent resource

Return 404 HTTP code when no resources are deleted.

IDfhir.return-404-on-empty-delete
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_RETURN_404_ON_EMPTY_DELETE ,
BOX_FEATURES_HTTP_RETURN__404__ON__EMPTY__DELETE
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Transaction max isolation level

Sets the maximum (inclusive) isolation level for transactions. Can be overridden by the x-max-isolation-level header.

IDfhir.transaction-max-isolation-level
TypeEnum
Values


Default valuenone
Environment variablesBOX_FHIR_TRANSACTION_MAX_ISOLATION_LEVEL ,
BOX_FEATURES_FHIR_TRANSACTION_MAX__ISOLATION__LEVEL
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

Validation

Validation settings

Enable FHIR Schema validation mode

FHIR Schema validation engine replaces legacy ZEN and Entity/Attribute validation engines.

IDfhir.validation.fhir-schema-validation
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SCHEMA_VALIDATION ,
AIDBOX_FHIR_SCHEMA_VALIDATION
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

FHIR Schema validator strict profile resolution

Referenced profiles must be known to Aidbox.

IDfhir.validation.strict-profile-resolution
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_VALIDATOR_STRICT_PROFILE_RESOLUTION ,
AIDBOX_VALIDATOR_STRICT_PROFILE_RESOLUTION_ENABLED
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

FHIR Schema validator strict extension resolution

Requires that every referenced FHIR extension is defined in loaded profiles.

IDfhir.validation.strict-extension-resolution
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_VALIDATOR_STRICT_EXTENSION_RESOLUTION ,
AIDBOX_VALIDATOR_STRICT_EXTENSION_RESOLUTION_ENABLED
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

Skip reference validation

Skip validation of FHIR references. It allows creating resources with references to nonexistent resources.

IDfhir.validation.skip-reference
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_VALIDATION_SKIP_REFERENCE ,
AIDBOX_FEATURES_VALIDATION_SKIP__REFERENCE ,
BOX_FEATURES_VALIDATION_SKIP__REFERENCE
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Correct Aidbox format

If true, activates transforming unknown polymorphic extensions to the correct Aidbox format avoiding keeping them at FHIR-format. For example, extension.*.valueString stored as extension.0.value.string

IDfhir.validation.correct-aidbox-format
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_CORRECT_AIDBOX_FORMAT ,
AIDBOX_CORRECT_AIDBOX_FORMAT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

createdAt extension URL

Specifies the URL for the createdAt extension.

IDfhir.validation.createdat-url
TypeString
Default valueex:createdAt
Environment variablesBOX_FHIR_CREATEDAT_URL ,
AIDBOX_CREATED_AT_URL
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

JSON schema datetime

Enables strict datetime validation in JSON schema validation engine.

IDfhir.validation.json-schema-datetime-regex
TypeString
Default value#{}
Environment variablesBOX_FHIR_JSON_SCHEMA_DATETIME_REGEX ,
BOX_COMPATIBILITY_VALIDATION_JSON__SCHEMA_REGEX
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

Search

Search settings

Use correct range arithmetic in search

FHIR date search is range based. That is, dates are always converted to datetime ranges and then compared.

Historically, Aidbox uses slightly different range comparison arithmetic. Turn on this setting to use FHIR comparisons.

IDfhir.search.comparisons
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_COMPARISONS ,
BOX_SEARCH_FHIR__COMPARISONS
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Enable FHIR-conformant (rev)include behavior

When set to true, the behavior of _include and _revinclude becomes FHIR conformant:

  1. Without the :recur or :iterate modifier _(rev)include
  2. is only applied to the initial result.

2. With the :recur or :iterate modifier _(rev)include is repeatedly applied to the resources found in the previous step.

IDfhir.search.include.conformant
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_INCLUDE_CONFORMANT ,
BOX_SEARCH_INCLUDE_CONFORMANT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Authorize inline requests

Authorize inline requests (_revinclude and _include) with access policies. Learn more

IDfhir.search.authorize-inline-requests
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_AUTHORIZE_INLINE_REQUESTS ,
BOX_SEARCH_AUTHORIZE_INLINE_REQUESTS
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Use semi join in chained searches

Use subselect for simple forward chain searches.

That is only one chain which doesn't contain intermediate hops.

This is a performance optimization which could require building additional indexes.

IDfhir.search.chain.subselect
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_CHAIN_SUBSELECT ,
BOX_SEARCH_CHAIN_SUBSELECT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Enable FHIR composite search parameters

Enable support for FHIR composite search parameters.

IDfhir.search.composite-parameters
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_COMPOSITE_PARAMETERS ,
BOX_SEARCH_COMPOSITE__SEARCH
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

Iteration limit for (rev)include:iterate

Maximum number of iterations for _include and _revinclude with :recur or :iterate modifier.

The default value is 10. If set to 0, queries for _(rev)include will not be performed. If set to a negative value, no limit will be applied.

IDfhir.search.include.iterate-max
TypeInt
Default value10
Environment variablesBOX_FHIR_SEARCH_INCLUDE_ITERATE_MAX ,
BOX_SEARCH_INCLUDE_ITERATE__MAX
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Default search timeout

Default timeout value (seconds). Also uses as timeout for the count query.

IDfhir.search.default-params.timeout
TypeInt
Default value60
Environment variablesBOX_FHIR_SEARCH_DEFAULT_PARAMS_TIMEOUT ,
BOX_SEARCH_DEFAULT__PARAMS_TIMEOUT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Default number of results per search page

This is the default value of the _count search parameter.

It limits number of results per page

IDfhir.search.default-params.count
TypeInt
Default value100
Environment variablesBOX_FHIR_SEARCH_DEFAULT_PARAMS_COUNT ,
BOX_SEARCH_DEFAULT__PARAMS_COUNT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Default search result count estimation method

FHIR search response bundle may contain a result count estimation.

IDfhir.search.default-params.total
TypeEnum
Valuesnone — omit estimation (fastest)
estimate — use approximate value (fast)
accurate — use exact value (could be slow)
Default valueaccurate
Environment variablesBOX_FHIR_SEARCH_DEFAULT_PARAMS_TOTAL ,
BOX_SEARCH_DEFAULT__PARAMS_TOTAL
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

SQL operator to use for token search

Aidbox supports two variants of SQL queries to filter when using token search parameters:

IDfhir.search.token-operator
TypeEnum
Values@> — One GIN index per resource covers all token searches. Sometimes the Postgres planner can incorrectly estimate the index lookup cost, which leads to slow queries.
#>> — Needs an index per #>> expression. If path to the target element contains arrays, @> will be used instead.
Default value@>
Environment variablesBOX_FHIR_SEARCH_TOKEN_OPERATOR ,
BOX_SEARCH_TOKEN__OPERATOR
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

JSONB query engine

Aidbox engines for querying JSONB

IDfhir.search.engine
TypeEnum
Valuesknife — Legacy engine. Uses custom Postgres module in Aidboxdb and SQL functions fallback in other Postgres instances. Being phased out.
jsonpath — JSONpath language is available starting from PostgreSQL 12.
Default valueknife
Environment variablesBOX_FHIR_SEARCH_ENGINE ,
BOX_SEARCH_ENGINE
Sensitivefalse — can be set via Ul and environment variable
Hot reloadfalse — requires Aidbox restart

Enable support for multiple languages in search

FHIR uses special extension to provide translations in resources. Enable this setting to turn on the search-language parameter. This parameter (search-language) specifies which language to use for search. i.e. which translation in a resource to use.

This feature requires Aidbox to build more complex (so possibly slower) queries. Leave this setting disabled if you don't need to search across translations.

IDfhir.search.multilingual.enable
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_MULTILINGUAL_ENABLE ,
BOX_FEATURES_MULTILINGUAL_ENABLE__SEARCH__LANGUAGE
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Use Accept-Language header for search

Use the Accept-Language header to specify search language

See fhir.search.multilingual.enable for details.

IDfhir.search.multilingual.use-accept-language-header
TypeBool
Default value(no default)
Environment variablesBOX_FHIR_SEARCH_MULTILINGUAL_USE_ACCEPT_LANGUAGE_HEADER ,
BOX_FEATURES_MULTILINGUAL_USE__ACCEPT__LANGUAGE__HEADER
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Use main value if translation is not found

When the _search-language parameter is used, Aidbox uses translation in FHIR extension for search.

If this setting is enabled, Aidbox additionally uses the main value (i.e. not in translation extension)

IDfhir.search.multilingual.fallback
TypeBool
Default valuetrue
Environment variablesBOX_FHIR_SEARCH_MULTILINGUAL_FALLBACK ,
BOX_FEATURES_MULTILINGUAL_FALLBACK
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Terminology

Terminology settings

FHIR Terminology service base URL

To validate codes in resources and to expand ValueSets Aidbox needs a terminology server. This setting provides a URL to the terminology service. If absent, codes are not validated.

IDfhir.terminology.service-base-url
TypeString
Default value(no default)
Environment variablesBOX_FHIR_TERMINOLOGY_SERVICE_BASE_URL ,
AIDBOX_TERMINOLOGY_SERVICE_BASE_URL
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Bulk Data Export

Bulk Data Export settings

Bulk storage provider

Storage provider for bulk export

IDfhir.bulk-storage.provider
TypeEnum
Valuesgcp — Google Cloud Platform
aws — Amazon Web Services
azure — Microsoft Azure: Cloud Computing Services
Default value(no default)
Environment variablesBOX_FHIR_BULK_STORAGE_PROVIDER ,
BOX_BULK__STORAGE_BACKEND
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

GCP service account

GCPServiceAccount resource ID for $export

IDfhir.bulk-storage.gcp.service-account
TypeString
Default value(no default)
Environment variablesBOX_FHIR_BULK_STORAGE_GCP_SERVICE_ACCOUNT ,
BOX_BULK__STORAGE_GCP_SERVICE__ACCOUNT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

GCP bucket

GCP bucket name for $export

IDfhir.bulk-storage.gcp.bucket
TypeString
Default value(no default)
Environment variablesBOX_FHIR_BULK_STORAGE_GCP_BUCKET ,
BOX_BULK__STORAGE_GCP_BUCKET
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

AWS service account ID

AWS Account resource ID for $export

IDfhir.bulk-storage.aws.account
TypeString
Default value(no default)
Environment variablesBOX_FHIR_BULK_STORAGE_AWS_ACCOUNT ,
BOX_BULK__STORAGE_AWS_ACCOUNT
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

AWS bucket

AWS S3 bucket name for $export

IDfhir.bulk-storage.aws.bucket
TypeString
Default value(no default)
Environment variablesBOX_FHIR_BULK_STORAGE_AWS_BUCKET ,
BOX_BULK__STORAGE_AWS_BUCKET
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime

Azure service account ID

Azure Container resource ID for $export

IDfhir.bulk-storage.azure.container
TypeString
Default value(no default)
Environment variablesBOX_FHIR_BULK_STORAGE_AZURE_CONTAINER ,
BOX_BULK__STORAGE_AZURE_CONTAINER
Sensitivefalse — can be set via Ul and environment variable
Hot reloadtrue — can be changed at runtime