Configuration Files
Runtime behavior and logging are controlled using configuration files.
Properties File
The runtime behavior of the FHIR JPA server can be managed using the hdr_fhir.properties file: <HDR_DOMAIN>/config/fhir/hdr_fhir.properties.
Example 4-1 hdr_fhir.properties file
# Supported FHIR version fhir_version=R4 #below entries are for capability statement metadata.implementation.description=Oracle FHIR Server metadata.software.name=Oracle FHIR Server metadata.publisher=Oracle FHIR Server # true or false metadata.resource.count.enabled=false # This is the address that the FHIR server will report as its own address. # If this server will be deployed (for example) to an internet accessible # server, put the DNS name of that server here. server_address=http://HOSTNAME:PORT/oracle-fhir-server/fhir server.base=/oracle-fhir-server/fhir default_encoding=JSON #resource compression setting - if no value set, server defaults to compression enabled. resource_compression_enabled=true etag_support=ENABLED reuse_cached_search_results_millis=-1 default_page_size=20 max_page_size=200 allow_override_default_search_params=true allow_contains_searches=true allow_multiple_delete=true allow_external_references=true allow_cascading_deletes=true allow_placeholder_references=true expunge_enabled=true persistence_unit_name=FHIR_PU logger.name=fhirtest.access logger.format=Path[${servletPath}] Source[${requestHeader.x-forwarded-for}] Operation[${operationType} ${operationName} ${idOrResourceName}] UA[${requestHeader.user-agent}] Params[${requestParameters}] ResponseEncoding[${responseEncodingNoDefault}] logger.error_format=ERROR - ${requestVerb} ${requestUrl} logger.log_exceptions=true server.name=HDR FHIR Server server.id=home test.port= ################################################### # Validation ################################################### # Should all incoming requests be validated validation.requests.enabled=false # Should outgoing responses be validated validation.responses.enabled=false ################################################### # Search Features ################################################### filter_search.enabled=true graphql.enabled=true ################################################### # Supported Resources ################################################### # Enable the following property if you want to customize the # list of resources that is supported by the server (i.e. to # disable specific resources) #supported_resource_types=Patient,Observation,Encounter ################################################### # Database Settings ################################################### hibernate.dialect=org.hibernate.dialect.Oracle12cDialect hibernate.search.model_mapping=ca.uhn.fhir.jpa.search.LuceneSearchMappingFactory hibernate.format_sql=false hibernate.show_sql=false #hibernate.hbm2ddl.auto=update hibernate.hbm2ddl.auto=none 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 hibernate.search.default.directory_provider=filesystem hibernate.search.default.indexBase=target/lucenefiles hibernate.search.lucene_version=LUCENE_CURRENT tester.config.refuse_to_fetch_third_party_urls=false hibernate.search.autoregister_listeners=false hibernate.search.indexing_strategy=manual hibernate.search.default.worker.execution=async ################################################## # Binary Storage Operations ################################################## binary_storage.enabled=true ################################################## # CORS Settings ################################################## cors.enabled=true cors.allowCredentials=true # Supports multiple, comma separated allowed origin entries # cors.allowed_origin=http://localhost:8080,https://localhost:8080,https://fhirtest.uhn.ca cors.allow_origin=* ################################################## # Allowed Bundle Types for persistence (defaults are: COLLECTION,DOCUMENT,MESSAGE) ################################################## #allowed_bundle_types=COLLECTION,DOCUMENT,MESSAGE,TRANSACTION,TRANSACTIONRESPONSE,BATCH,BATCHRESPONSE,HISTORY,SEARCHSET ################################################## # Subscriptions ################################################## # Enable REST Hook Subscription Channel subscription.resthook.enabled=true # Enable Email Subscription Channel subscription.email.enabled=false email.enabled=false email.from=some@test.com email.host= email.port=0 email.username= email.password= # Enable Websocket Subscription Channel subscription.websocket.enabled=false # Specify the JNDI data source name where HDR tables are created. datasource.jndi_name=jdbc/HdrDataSource # Enable/disable OAuth based API access (for easier dev/QA testing) # Shouldn't use this property in production oauth.access.enabled=false #below properties are required for FHIR API access using oath token oath.token.issuer=https://dev-t9brtcqa.auth0.com/ oath.token.audience=https://fhir-hdr.auth.com/api/v2/ #FHIR Server resource access settings hdr.fhir.scopes=fhir.admin,fhir.users,fhir.users.restricted #scopes and access rights fhir.admin=read,create,update,delete fhir.users=read,create fhir.users.restricted=read #note: add more if needed #scopes and allowed fhir resources fhir.admin.allowedapis=ALL fhir.users.allowedapis=ResearchStudy fhir.users.restricted.allowedapis=Patient, Observation, AllergyIntolerance, Medication, Condition, Procedure, Immunization #fhir.users.finance.allowedapis=Patient, Practitioner, Claim, ClaimResponse, InsurancePlan #fhir.users.clinical.allowedapis= #note: add more if needed #below properties that starts with audit.* are specific to auditing module of oracle fhir infrastructure audit.enabled=true #audit storage type - for now FILE or DB. this needs to be extended for kafka etc audit.datastore.type=FILE audit.savemessagepayload.enabled=false #auditing standard. this can be either a custom format or standard fhir AuditEvent(ATNA equivalent) resource audit.standard=CUSTOM # Just to capture timing log. Only for Testing performace, not required to enable this always.By defaults it is false. response_timing_log_enabled=false
Log Configurations
HDR FHIR has several logging mechanisms that each serve a distinct purpose. These mechanisms are described in the table below. Oracle HDR FHIR uses the log4j logging framework to emit these logs. These logs are generated at runtime by all components of the FHIR. The location of the log4j.properties is: <HDR_DOMAIN>/config/fhir/ log4j.properties.
Table 4-1 Log files
Log | File | Purpose | Retention |
---|---|---|---|
Application log |
<HDR_DOMAIN>/logs/ hdr-fhir.log |
Application Logging is a traditional file-based log of events and internal processing details of Oracle HDR FHIR. These logs are useful for troubleshooting. Application logs can be enabled and disabled at runtime by modifying the log4j properties file. |
Logs are rotated and compressed on a Time basis, although this can be configured using the log4j.properties file. |
Audit Log |
<HDR_DOMAIN>/logs/ audit-hdr-fhir.log |
The audit log is intended to record actions taken by users. This log can be enabled or disabled using “audit.enabled" property defined in the hdr_fhir.properties file. |
Logs are rotated and compressed on a Time basis, although this can be configured using log4j.properties file. |