fhir-bridge
fhir-bridge copied to clipboard
FHIR Bridge code refactoring proposals/ideas
Background
The current FHIR Bridge codebase is becoming bigger and it is sometimes hard to organize/find/maintain the code. In addition, we use a lot of third-party librairies and the dependency management is becoming very hard.
The following non-exhaustive list contains some ideas/proposals for the next code refactoring in order to improve the development, testing and maintenance.
Maven multi-module project
The project structure should be re-think in order to organize the codebase using different modules:
-
fhir-bridge-camel
-
fhir-bridge-fhir
-
fhir-bridge-app
-
fhir-bridge-openehr
-
fhir-bridge-converters
-
fhir-bridge-core
-
fhir-bridge-utils
- ...
Define custom transactions
We should think about defining a list of transactions like IHE is doing: ITI-65, ITI-68, etc.
- FB-01 - Provide Observation
- FB-02 - Provide Condition
- FB-03 - Provide DiagnosticReport
- ...
This could also help to:
- Better organize the code
- Use the same approach than IPF
- Keep consistency to include existing IHE transactions
- Improve existing wiki documentation
In addition:
- Adding a Fileless test case support for the mapping tests.
- Splitting converters into CODEX and HIGHMED converters
- cleaning up the tests files (lots of duplicates)
- updating the robot tests (since thats why these are duplicated)
- Updating Postman
- clean up of dead imports
- Improve exception handlind using Exception Clause and Error Handler
- Google coding style or other (but common)
- Relation between
subject.identifier
<-> PatientId <-> EHR ID
@subigre pls no google coding style, i would prefer the one we have currrently (at least for the tabulators), or do you have any other preferences ?
¨WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.javers.common.reflection.JaversMember (file:/home/severink/.m2/repository/org/javers/javers-core/5.14.0/javers-core-5.14.0.jar) to field java.lang.Enum.name WARNING: Please consider reporting this to the maintainers of org.javers.common.reflection.JaversMember WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release¨ FIx this it occurs when executing the tests of patient in icu
What is with the JUNIT test that tests coding codes (terminology server), i think we can delete those.
- Use next final release of openEHR_SDK instead of
develop-SNAPSHOT
Add exception catcher for timeconverter, since the bride does not show if an error occurs
provide script to autoupdate opts and profiles via just entering the urls autogeneration of paragon files as script
Converters used in conversion API should always:
- be stateless
- throw a ConversionException (when the FHIR resource could not be processed)