Created
August 10, 2025 19:04
-
-
Save jkiddo/d28c793c47f115368dbe82fd01268b28 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Uncomment the "servlet" and "context-path" lines below to make the fhir endpoint available at /example/path/fhir instead of the default value of /fhir | |
server: | |
# servlet: | |
# context-path: /example/path | |
port: 8080 | |
tomcat: | |
# allow | as a separator in the URL | |
relaxed-query-chars: "|" | |
#Adds the option to go to eg. http://localhost:8080/actuator/health for seeing the running configuration | |
#see https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints | |
management: | |
#The following configuration will enable the actuator endpoints at /actuator/health, /actuator/info, /actuator/prometheus, /actuator/metrics. For security purposes, only /actuator/health is enabled by default. | |
endpoints: | |
enabled-by-default: false | |
web: | |
exposure: | |
include: 'health' # or e.g. 'info,health,prometheus,metrics' or '*' for all' | |
endpoint: | |
info: | |
enabled: true | |
metrics: | |
enabled: true | |
health: | |
enabled: true | |
probes: | |
enabled: true | |
group: | |
liveness: | |
include: | |
- livenessState | |
- readinessState | |
prometheus: | |
enabled: true | |
prometheus: | |
metrics: | |
export: | |
enabled: true | |
spring: | |
#schema: | |
# fhir-enabled: true | |
# fhir: | |
# base-url: http://localhost:8080/fhir | |
#query: | |
# prompt: | |
# template: | | |
# You are a FHIR assistant. Translate the following question into a valid FHIR RESTful API query: | |
# "{{query}}" | |
# Use the provided FHIR schema: | |
# {{schema}} | |
#base-url: /api/v1 | |
main: | |
allow-circular-references: true | |
flyway: | |
enabled: false | |
baselineOnMigrate: true | |
fail-on-missing-locations: false | |
datasource: | |
#url: 'jdbc:h2:file:./target/database/h2' | |
url: jdbc:h2:mem:test_mem | |
username: sa | |
password: null | |
driverClassName: org.h2.Driver | |
max-active: 15 | |
# database connection pool size | |
hikari: | |
maximum-pool-size: 10 | |
jpa: | |
properties: | |
hibernate.format_sql: false | |
hibernate.show_sql: false | |
#Hibernate dialect is automatically detected except Postgres and H2. | |
#If using H2, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect | |
#If using postgres, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgresDialect | |
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect | |
# hibernate.hbm2ddl.auto: update | |
# hibernate.jdbc.batch_size: 20 | |
# hibernate.cache.use_query_cache: false | |
# hibernate.cache.use_second_level_cache: false | |
# hibernate.cache.use_structured_entries: false | |
# hibernate.cache.use_minimal_puts: false | |
### These settings will enable fulltext search with lucene or elastic | |
hibernate.search.enabled: false | |
### lucene parameters | |
# hibernate.search.backend.type: lucene | |
# hibernate.search.backend.analysis.configurer: ca.uhn.fhir.jpa.search.HapiHSearchAnalysisConfigurers$HapiLuceneAnalysisConfigurer | |
# hibernate.search.backend.directory.type: local-filesystem | |
# hibernate.search.backend.directory.root: target/lucenefiles | |
# hibernate.search.backend.lucene_version: lucene_current | |
### elastic parameters ===> see also elasticsearch section below <=== | |
# hibernate.search.backend.type: elasticsearch | |
# hibernate.search.backend.analysis.configurer: ca.uhn.fhir.jpa.search.HapiHSearchAnalysisConfigurers$HapiElasticAnalysisConfigurer | |
hapi: | |
fhir: | |
### This flag when enabled to true, will avail evaluate measure operations from CR Module. | |
### Flag is false by default, can be passed as command line argument to override. | |
cr: | |
enabled: false | |
caregaps: | |
reporter: "default" | |
section_author: "default" | |
cql: | |
use_embedded_libraries: true | |
compiler: | |
### These are low-level compiler options. | |
### They are not typically needed by most users. | |
# validate_units: true | |
# verify_only: false | |
# compatibility_level: "1.5" | |
error_level: Info | |
signature_level: All | |
# analyze_data_requirements: false | |
# collapse_data_requirements: false | |
# translator_format: JSON | |
# enable_date_range_optimization: true | |
enable_annotations: true | |
enable_locators: true | |
enable_results_type: true | |
enable_detailed_errors: true | |
# disable_list_traversal: false | |
# disable_list_demotion: false | |
# enable_interval_demotion: false | |
# enable_interval_promotion: false | |
# disable_method_invocation: false | |
# require_from_keyword: false | |
# disable_default_model_info_load: false | |
runtime: | |
debug_logging_enabled: false | |
# enable_validation: false | |
# enable_expression_caching: true | |
terminology: | |
valueset_preexpansion_mode: REQUIRE # USE_IF_PRESENT, REQUIRE, IGNORE | |
valueset_expansion_mode: PERFORM_NAIVE_EXPANSION # AUTO, USE_EXPANSION_OPERATION, PERFORM_NAIVE_EXPANSION | |
valueset_membership_mode: USE_EXPANSION # AUTO, USE_VALIDATE_CODE_OPERATION, USE_EXPANSION | |
code_lookup_mode: USE_VALIDATE_CODE_OPERATION # AUTO, USE_VALIDATE_CODE_OPERATION, USE_CODESYSTEM_URL | |
data: | |
search_parameter_mode: USE_SEARCH_PARAMETERS # AUTO, USE_SEARCH_PARAMETERS, FILTER_IN_MEMORY | |
terminology_parameter_mode: FILTER_IN_MEMORY # AUTO, USE_VALUE_SET_URL, USE_INLINE_CODES, FILTER_IN_MEMORY | |
profile_mode: DECLARED # ENFORCED, DECLARED, OPTIONAL, TRUST, OFF | |
cdshooks: | |
enabled: false | |
clientIdHeaderName: client_id | |
### This enables the swagger-ui at /fhir/swagger-ui/index.html as well as the /fhir/api-docs (see https://hapifhir.io/hapi-fhir/docs/server_plain/openapi.html) | |
openapi_enabled: true | |
### This is the FHIR version. Choose between, DSTU2, DSTU3, R4 or R5 | |
fhir_version: R4 | |
### Flag is false by default. This flag enables runtime installation of IG's. | |
ig_runtime_upload_enabled: false | |
### This flag when enabled to true, will avail evaluate measure operations from CR Module. | |
### enable to use the ApacheProxyAddressStrategy which uses X-Forwarded-* headers | |
### to determine the FHIR server address | |
# use_apache_address_strategy: false | |
### forces the use of the https:// protocol for the returned server address. | |
### alternatively, it may be set using the X-Forwarded-Proto header. | |
# use_apache_address_strategy_https: false | |
### enables the server to overwrite defaults on HTML, css, etc. under the url pattern of eg. /content/custom ** | |
### Folder with custom content MUST be named custom. If omitted then default content applies | |
#custom_content_path: ./custom | |
### enables the server host custom content. If e.g. the value ./configs/app is supplied then the content | |
### will be served under /web/app | |
#app_content_path: ./configs/app | |
### enable to set the Server URL | |
# server_address: http://hapi.fhir.org/baseR4 | |
# defer_indexing_for_codesystems_of_size: 101 | |
### Flag is true by default. This flag filters resources during package installation, allowing only those resources with a valid status (e.g. active) to be installed. | |
validate_resource_status_for_package_upload: false | |
# install_transitive_ig_dependencies: true | |
#implementationguides: | |
### example from registry (packages.fhir.org) | |
# swiss: | |
# name: swiss.mednet.fhir | |
# version: 0.8.0 | |
# reloadExisting: false | |
# installMode: STORE_AND_INSTALL | |
# example not from registry | |
# ips_1_0_0: | |
# packageUrl: https://build.fhir.org/ig/HL7/fhir-ips/package.tgz | |
# name: hl7.fhir.uv.ips | |
# version: 1.0.0 | |
# supported_resource_types: | |
# - Patient | |
# - Observation | |
################################################## | |
# Allowed Bundle Types for persistence (defaults are: COLLECTION,DOCUMENT,MESSAGE) | |
################################################## | |
# allowed_bundle_types: COLLECTION,DOCUMENT,MESSAGE,TRANSACTION,TRANSACTIONRESPONSE,BATCH,BATCHRESPONSE,HISTORY,SEARCHSET | |
# allow_cascading_deletes: true | |
# allow_contains_searches: true | |
# allow_external_references: true | |
# allow_multiple_delete: true | |
# allow_override_default_search_params: true | |
# auto_create_placeholder_reference_targets: false | |
# mass_ingestion_mode_enabled: false | |
### tells the server to automatically append the current version of the target resource to references at these paths | |
# auto_version_reference_at_paths: Device.patient, Device.location, Device.parent, DeviceMetric.parent, DeviceMetric.source, Observation.device, Observation.subject | |
# ips_enabled: false | |
# default_encoding: JSON | |
# default_pretty_print: true | |
# default_page_size: 20 | |
# delete_enabled: true | |
# delete_expunge_enabled: true | |
# match_url_cache_enabled: false | |
# enable_repository_validating_interceptor: true | |
### Reduce the size used by search indexes by not tagging every row with the resource type and parameter name (this setting makes manual inspection of the database more difficult, but does not impact HAPI FHIR functionality in any way) | |
# index_storage_optimized: false | |
# enable_index_missing_fields: false | |
# enable_index_of_type: true | |
# enable_index_contained_resource: false | |
# upliftedRefchains_enabled: true | |
# resource_dbhistory_enabled: false | |
### !!Extended Lucene/Elasticsearch Indexing is still a experimental feature, expect some features (e.g. _total=accurate) to not work as expected!! | |
### more information here: https://hapifhir.io/hapi-fhir/docs/server_jpa/elastic.html | |
advanced_lucene_indexing: false | |
search_index_full_text_enabled: false | |
bulk_export_enabled: false | |
bulk_import_enabled: false | |
# language_search_parameter_enabled: true | |
# enforce_referential_integrity_on_delete: false | |
# This is an experimental feature, and does not fully support _total and other FHIR features. | |
# enforce_referential_integrity_on_delete: false | |
# enforce_referential_integrity_on_write: false | |
# etag_support_enabled: true | |
# expunge_enabled: true | |
# client_id_strategy: ALPHANUMERIC | |
# server_id_strategy: SEQUENTIAL_NUMERIC | |
# fhirpath_interceptor_enabled: false | |
# filter_search_enabled: true | |
# graphql_enabled: true | |
narrative_enabled: false | |
mdm_enabled: false | |
mdm_rules_json_location: "mdm-rules.json" | |
## see: https://hapifhir.io/hapi-fhir/docs/interceptors/built_in_server_interceptors.html#jpa-server-retry-on-version-conflicts | |
# userRequestRetryVersionConflictsInterceptorEnabled : false | |
# local_base_urls: | |
# - https://hapi.fhir.org/baseR4 | |
# pre_expand_value_sets: true | |
# enable_task_pre_expand_value_sets: true | |
# pre_expand_value_sets_default_count: 1000 | |
# pre_expand_value_sets_max_count: 1000 | |
# maximum_expansion_size: 1000 | |
logical_urls: | |
- http://terminology.hl7.org/* | |
- https://terminology.hl7.org/* | |
- http://snomed.info/* | |
- https://snomed.info/* | |
- http://unitsofmeasure.org/* | |
- https://unitsofmeasure.org/* | |
- http://loinc.org/* | |
- https://loinc.org/* | |
# ### Uncomment the following section, and any sub-properties you need in order to enable | |
# ### partitioning support on this server. | |
# partitioning: | |
# | |
# allow_references_across_partitions: false | |
# partitioning_include_in_search_hashes: false | |
# default_partition_id: 0 | |
# ### Enable the following setting to enable Database Partitioning Mode | |
# ### See: https://hapifhir.io/hapi-fhir/docs/server_jpa_partitioning/db_partition_mode.html | |
# database_partition_mode_enabled: true | |
# ### Partition Style: Partitioning requires a partition interceptor which helps the server | |
# ### select which partition(s) should be accessed for a given request. You can supply your | |
# ### own interceptor (see https://hapifhir.io/hapi-fhir/docs/server_jpa_partitioning/partitioning.html#partition-interceptors ) | |
# ### but the following setting can also be used to use a built-in form. | |
# ### Patient ID Partitioning Mode uses the patient/subject ID to determine the partition | |
# patient_id_partitioning_mode: true | |
# ### Request tenant mode can be used for a multi-tenancy setup where the request path is | |
# ### expected to have an additional path element, e.g. GET http://example.com/fhir/TENANT-ID/Patient/A | |
# request_tenant_partitioning_mode: false | |
cors: | |
allow_Credentials: true | |
# These are allowed_origin patterns, see: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/cors/CorsConfiguration.html#setAllowedOriginPatterns-java.util.List- | |
allowed_origin: | |
- '*' | |
# Search coordinator thread pool sizes | |
search-coord-core-pool-size: 20 | |
search-coord-max-pool-size: 100 | |
search-coord-queue-capacity: 200 | |
# Search Prefetch Thresholds. | |
# This setting sets the number of search results to prefetch. For example, if this list | |
# is set to [100, 1000, -1] then the server will initially load 100 results and not | |
# attempt to load more. If the user requests subsequent page(s) of results and goes | |
# past 100 results, the system will load the next 900 (up to the following threshold of 1000). | |
# The system will progressively work through these thresholds. | |
# A threshold of -1 means to load all results. Note that if the final threshold is a | |
# number other than -1, the system will never prefetch more than the given number. | |
search_prefetch_thresholds: 13,503,2003,-1 | |
# comma-separated package names, will be @ComponentScan'ed by Spring to allow for creating custom Spring beans | |
#custom-bean-packages: | |
# comma-separated list of fully qualified interceptor classes. | |
# classes listed here will be fetched from the Spring context when combined with 'custom-bean-packages', | |
# or will be instantiated via reflection using an no-arg contructor; then registered with the server | |
#custom-interceptor-classes: | |
# comma-separated list of fully qualified provider classes. | |
# classes listed here will be fetched from the Spring context when combined with 'custom-bean-packages', | |
# or will be instantiated via reflection using an no-arg contructor; then registered with the server | |
#custom-provider-classes: | |
# specify what should be stored in meta.source based on StoreMetaSourceInformationEnum defaults to NONE | |
# store_meta_source_information: NONE | |
# Threadpool size for BATCH'ed GETs in a bundle. | |
# bundle_batch_pool_size: 10 | |
# bundle_batch_pool_max_size: 50 | |
# logger: | |
# error_format: 'ERROR - ${requestVerb} ${requestUrl}' | |
# format: >- | |
# Path[${servletPath}] Source[${requestHeader.x-forwarded-for}] | |
# Operation[${operationType} ${operationName} ${idOrResourceName}] | |
# UA[${requestHeader.user-agent}] Params[${requestParameters}] | |
# ResponseEncoding[${responseEncodingNoDefault}] | |
# log_exceptions: true | |
# name: fhirtest.access | |
# max_binary_size: 104857600 | |
# max_page_size: 200 | |
# retain_cached_searches_mins: 60 | |
# reuse_cached_search_results_millis: 60000 | |
# The remote_terminology_service block is commented out by default because it requires external terminology service endpoints. | |
# Uncomment and configure the block below if you need to enable remote terminology validation or mapping. | |
#remote_terminology_service: | |
# snostorm: | |
# system: '*' | |
# url: 'https://browser.ihtsdotools.org/fhir' | |
# all: | |
# system: '*' | |
# url: 'https://tx.fhir.org/r4/' | |
# snomed: | |
# system: 'http://snomed.info/sct' | |
# url: 'https://tx.fhir.org/r4/' | |
# loinc: | |
# system: 'http://loinc.org' | |
# url: 'https://hapi.fhir.org/baseR4/' | |
tester: | |
home: | |
name: Local Tester | |
server_address: 'http://localhost:8080/fhir' | |
refuse_to_fetch_third_party_urls: false | |
fhir_version: R4 | |
global: | |
name: Global Tester | |
server_address: "http://hapi.fhir.org/baseR4" | |
refuse_to_fetch_third_party_urls: false | |
fhir_version: R4 | |
# validation: | |
# requests_enabled: true | |
# responses_enabled: true | |
# binary_storage_enabled: true | |
inline_resource_storage_below_size: 4000 | |
implementation-guides: | |
# This is an example of how to configure an implementation guide | |
trifork: | |
packageUrl: https://build.fhir.org/ig/trifork/fhir-ig-sample/branches/main/package.tgz | |
name: fhir.example | |
version: 0.1.0 | |
#extensions: | |
# name: hl7.fhir.uv.extensions | |
# version: 5.3.0-ballot-tc1 | |
xver: | |
packageUrl: https://github.com/GinoCanessa/fhir-cross-version-source/raw/refs/heads/main/packages/hl7.fhir.uv.xver-r5.r4.0.0.1-snapshot-1.tgz | |
name: hl7.fhir.uv.xver-r5.r4 | |
version: 0.0.1-snapshot-1 | |
install-mode: STORE_AND_INSTALL | |
# bulk_export_enabled: true | |
# subscription: | |
# resthook_enabled: true | |
# websocket_enabled: false | |
# polling_interval_ms: 5000 | |
# immediately_queued: false | |
# email: | |
# from: [email protected] | |
# host: google.com | |
# port: | |
# username: | |
# password: | |
# auth: | |
# startTlsEnable: | |
# startTlsRequired: | |
# quitWait: | |
# lastn_enabled: true | |
# store_resource_in_lucene_index_enabled: true | |
### This is configuration for normalized quantity search level default is 0 | |
### 0: NORMALIZED_QUANTITY_SEARCH_NOT_SUPPORTED - default | |
### 1: NORMALIZED_QUANTITY_STORAGE_SUPPORTED | |
### 2: NORMALIZED_QUANTITY_SEARCH_SUPPORTED | |
# normalized_quantity_search_level: 2 | |
#elasticsearch: | |
# debug: | |
# pretty_print_json_log: false | |
# refresh_after_write: false | |
# enabled: false | |
# password: SomePassword | |
# required_index_status: YELLOW | |
# rest_url: 'localhost:9200' | |
# protocol: 'http' | |
# schema_management_strategy: CREATE | |
# username: SomeUsername |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment