KeFHIR the modular platform is built using the top microservices architecture.
KeFHIR gives full freedom of customization on all layers.
KeFHIR kefhir-core
and fhir-structures
are the only required modules.
kefhir-core
is the module responsible for management and orchestration of other modules. All the other modules are replaceable and overwritable if needed.
These are main modules to handle FHIR-base specifications.
kefhir-core
- Root module. Handles interface implementations. Based on Conformance.fhir-structures
- FHIR parsing and composing (json, xml)fhir-rest
- Implementation of FHIR HTTP API.tx-manager
- Provides interfaces and handles database transactions. (NOT FHIR transactions)validation-profile
- Validation of resources based on profiles.feature-conditional-reference
- Batch processing rules#Conditional Reference. With addition to also apply this rule in regular resource savings.pg-core
- PostgreSQL connection and configurations for pg-store and pg-searchpg-store
- KeFHIR storage PostgreSQL implementationpg-search
- KeFHIR search PostgreSQL implementationauth-core
- Auth interfaces and models.auth-rest
- Auth handlers based on http filters. Attaches to fhir-restauth-openid
- Implementation of authentication using openID. Depends on fhir-restauth-smart
- Smart-on-FHIR authorization implementationkefhir-scheduler
- Module for background job executionsfhir-conformance
- Provides endpoints outside of FHIR to allow import of initial Conformancekefhir-blockchain
- Module for integration with blockchain technology provider. Default implementation is Ethereum based.operation-patient-everything
- Implementation of $everything operationskehif-core
is responsible for:
kefhir-core
provides interfaces for:
KeFHIR provides REST implementation of FHIR standard (there aren’t any other, but who knows what your project will need).
Default REST implementation has several interfaces to add business specifics:
KeFHIR can handle different storages per every FHIR resource.
Implementations:
PostgreSQL is used as default implementation of the kefhir-store
and kefhir-search
. We provide script for PostgreSQL database and users creation from docker image to speed-up installation.
Look for details in KeFHIR storage
KeFHIR can handle different search implementations, but only one implementation in time in one installation.
The implementation of search doesn't depend on the implementation of the storage.
By default, KeFHIR provides search implementation in PostgreSQL.
Look for details in KeFHIR search
Initially (on the first run) FHIR server starts without any Conformance. This guarantees a fast start of the server and enables a health-check endpoint.
Since KeFHIR storage and search implementation depend on Conformance definition it has to be initially pushed into FHIR server.
KeFHIR configures itself according to the Conformance definition. The resources are loaded automatically from store
.
See Conformance for details
For base structure and profile validation module validation-profile
is made. Current server conformance is used for that.
For more info refer to Validation page.
You can extend or override practically every module or interface.
Starting point in general extending:
Proceed to details on extensibility page.
Draw here some very complex topology