Skip to content

Instantly share code, notes, and snippets.

@fragaLY
Created December 6, 2021 08:40
Show Gist options
  • Save fragaLY/2a3ab5b5b488e0205545d018a914a31d to your computer and use it in GitHub Desktop.
Save fragaLY/2a3ab5b5b488e0205545d018a914a31d to your computer and use it in GitHub Desktop.
The hapi fhir jpa server configuration
server:
port: 8080
shutdown: graceful
undertow:
threads:
worker: 24
io: 3
error:
whitelabel:
enabled: false
spring:
application:
name: misp-hapi-fhir-service
main:
banner-mode: off
datasource:
url: ${DB_URL}
username: ${DB_USER}
password: ${DB_PASSWORD}
driverClassName: org.postgresql.Driver
hikari:
minimumIdle: 4
maximumPoolSize: 10
connection-timeout: 35000
pool-name: "mhfs-hikari-pool"
idle-timeout: 10000
max-lifetime: 30000
auto-commit: true
data:
jpa:
repositories:
bootstrap-mode: deferred
jpa:
open-in-view: false
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: false
show_sql: false
hbm2ddl.auto: update
cache:
use_query_cache: false
use_second_level_cache: false
use_structured_entries: false
use_minimal_puts: false
search:
enabled: false
backend:
type: lucene
analysis:
configurer: ca.uhn.fhir.jpa.search.HapiLuceneAnalysisConfigurer
directory:
type: local-filesystem
root: target/lucenefiles
lucene_version: lucene_current
batch:
job:
enabled: false
zipkin:
sender:
type: KAFKA
kafka:
bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS}
thymeleaf:
enabled: false
hapi:
fhir:
base_path: "/*"
defer_indexing_for_codesystems_of_size: 101
supported_resource_types:
- Patient
- Observation
- Organization
- Encounter
- Condition
- Composition
- EpisodeOfCare
- Medication
- MedicationAdministration
- MedicationRequest
- Immunization
- DiagnosticReport
- Procedure
- Bundle
- Goal
- CarePlan
- Practitioner
- Claim
- ExplanationOfBenefit
- ValueSet
- CodeSystem
- StructureDefinition
- ImagingStudy
- List
allow_external_references: true
client_id_strategy: ANY
allow_cascading_deletes: false
allow_contains_searches: false
allow_multiple_delete: false
delete_enable: false
allow_override_default_search_params: false
allow_placeholder_references: true
auto_create_placeholder_reference_targets: true
default_encoding: JSON
default_pretty_print: true
default_page_size: 20
empi_enabled: false
enable_index_missing_fields: true
enforce_referential_integrity_on_delete: true
enforce_referential_integrity_on_write: true
etag_support_enabled: true
expunge_enabled: false
fhir_version: R4
fhir_path_interceptor_enabled: false
filter_search_enabled: true
graphql_enabled: false
binary_storage_enabled: false
last-n-enabled: false
mark-resources-for-reindexing-upon-search-parameter-change: false
max_binary_size: 104857600
max_page_size: 200
bulk_export_enabled: false
retain_cached_searches_mins: 60
reuse_cached_search_results_millis: 60000
partitioning:
enabled: false
cross_partition_reference_mode: true
multitenancy_enabled: true
partitioning_include_in_search_hashes: true
persistenceUnitName: "HAPI_PERSISTENCE_UNIT"
cors:
enabled: false
allow_credentials: true
allowed_origin:
- '*'
expunge-thread-count: 2
reindex-thread-count: 2
search-total-mode: ESTIMATED
search-coord-core-pool-size: 20
search-coord-max-pool-size: 100
search-coord-queue-capacity: 20
status-based-reindexing-disabled: true
normalized_quantity_search_level: NORMALIZED_QUANTITY_SEARCH_SUPPORTED
enable_index_contained_resource: false
validation:
enabled: true
requests_enabled: true
responses_enabled: false
logger:
enabled: true
name: "fhirtest.access"
error_format: "[HAPI FHIR ERROR] - ${requestVerb} ${requestUrl}"
format: "Path[${servletPath}] Source[${requestHeader.x-forwarded-for}] Operation[${operationType} ${operationName} ${idOrResourceName}] UA[${requestHeader.user-agent}] Params[${requestParameters}] ResponseEncoding[${responseEncodingNoDefault}] Operation[${operationType} ${operationName} ${idOrResourceName}] UA[${requestHeader.user-agent}] Params[${requestParameters}] ResponseEncoding[${responseEncodingNoDefault}]"
log_exceptions: true
elasticsearch:
enabled: false
management:
server:
port: 8081
health:
livenessstate:
enabled: true
readinessstate:
enabled: true
db:
enabled: true
endpoint:
health:
enabled: true
probes:
enabled: true
show-components: never
show-details: never
group:
readiness:
include: readinessState, db
metrics.enabled: true
prometheus.enabled: true
endpoints.web.exposure.include: "*"
metrics.export.prometheus.enabled: true
logging.level:
ROOT: info
com.epam.charity: info
org.springframework: info
plugins {
id "java"
id "jacoco"
id "maven-publish"
id "com.jfrog.artifactory" version "4.19.0"
id "org.sonarqube" version "3.1.1"
id "org.springframework.boot" version "${spring_version}"
id "io.spring.dependency-management" version "${spring_dependency_management_version}"
id "net.researchgate.release" version "2.8.1"
}
repositories {
mavenCentral()
maven {
url = "${artifactory_url}/${artifactory_repoKey}"
credentials {
username "${artifactory_username}"
password "${artifactory_password}"
}
}
}
dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${spring_version}")
mavenBom("org.springframework.cloud:spring-cloud-dependencies:${spring_cloud_version}")
}
}
publishing {
publications {
maven(MavenPublication) {
from components.java
}
}
}
artifactory {
contextUrl = "${artifactory_url}"
publish {
repository {
repoKey = "${artifactory_repoKey}"
username = "${artifactory_username}"
password = "${artifactory_password}"
maven = true
}
defaults {
publications ('maven')
}
}
}
configurations {
implementation {
resolutionStrategy.failOnVersionConflict()
exclude module: "spring-boot-starter-tomcat"
}
testImplementation {
exclude group: "org.junit.vintage", module: "junit-vintage-engine"
}
}
bootJar {
enabled = true
archiveFileName = "application.jar"
manifest {
attributes 'provider': 'gradle'
}
}
release {
preTagCommitMessage = "[release]"
tagCommitMessage = "release"
newVersionCommitMessage = "[skip ci] set next version"
tagTemplate = "${version}"
git {
requireBranch = 'master|release[-\\/].+$'
}
}
springBoot {
buildInfo()
}
dependencies {
compileOnly "org.projectlombok:lombok"
annotationProcessor "org.projectlombok:lombok"
implementation("io.micrometer:micrometer-registry-prometheus:${micrometer_version}")
//region spring
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation ("org.springframework.boot:spring-boot-starter-undertow:${spring_version}")
implementation("org.springframework.cloud:spring-cloud-starter-sleuth")
implementation("org.springframework.cloud:spring-cloud-sleuth-zipkin")
implementation("org.springframework.cloud:spring-cloud-stream-binder-kafka")
//endregion
//region log
implementation("ch.qos.logback.contrib:logback-json-classic:${logback_version}")
implementation("ch.qos.logback.contrib:logback-jackson:${logback_version}")
//endregion
//region hapi-fhir
implementation("ca.uhn.hapi.fhir:hapi-fhir-base:${hapi_fhir_version}")
implementation("ca.uhn.hapi.fhir:hapi-fhir-jpaserver-base:${hapi_fhir_version}")
implementation("ca.uhn.hapi.fhir:hapi-fhir-validation:${hapi_fhir_version}")
implementation("ca.uhn.hapi.fhir:hapi-fhir-structures-r4:${hapi_fhir_version}")
implementation("ca.uhn.hapi.fhir:hapi-fhir-validation-resources-r4:${hapi_fhir_version}")
//endregion
//region db
runtimeOnly "org.postgresql:postgresql"
implementation("com.zaxxer:HikariCP:${hikari_version}")
//endregion
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment