flint ๐Ÿ’ฅ

December 17, 2024 ยท View on GitHub

MegaLinter build docker codecov

Send FHIR ๐Ÿ”ฅ data from Kafka to a server

Concurrency

In order to enable Multi-threaded message consumption while ensuring global topic message order one consumer per input topic is used.

Offset handling

By default, the consumers are configured to auto-commit offsets, in order to improve performance.

However, offsets are only committed for messages which were successfully sent to the FHIR server.

Retry capabilities

The HTTP client supports retrying requests to the FHIR server in case the target endpoint is unavailable or runs into a timeout. See configuration properties below.

Validation

FHIR resource types are currently not validated. Processing requires valid FHIR bundles as input data and sends them to the server without validation.

Configuration properties

Application properties are read from a properties file (app.yaml) with default values.

NameDefaultDescription
app.log_levelinfoLog level (error,warn,info,debug,trace)
kafka.brokerslocalhost:9092Kafka brokers
kafka.security_protocolplaintextKafka communication protocol
kafka.ssl.ca_location/app/cert/kafka_ca.pemKafka CA certificate location
kafka.ssl.certificate_location/app/cert/app_cert.pemClient certificate location
kafka.ssl.key_location/app/cert/app_key.pemClient key location
kafka.ssl.key_passwordClient key password
kafka.consumer_groupfhir-to-dizConsumer group name
kafka.input_topicsKafka topics to consume (comma separated)
kafka.offset_resetearliestKafka consumer reset (earliest or latest)
fhir.server.base_urlhttp://localhost:8080/fhirFHIR server base URL
fhir.server.auth.basic.userFHIR server BasicAuth username
fhir.server.auth.basic.passwordFHIR server BasicAuth password
fhir.retry.count10Retry count
fhir.retry.timeout10Retry timeout
fhir.retry.wait5Retry wait between retries
fhir.retry.max_wait20Retry maximum wait

Environment variables

Override configuration properties by providing environment variables with their respective property names.

License

AGPL-3.0