A plugin API for converting between OpenEHR and FHIR healthcare data formats. This library provides extension points for implementing format converters in OpenFHIR.
This API defines the extension points for plugins that convert between OpenEHR and FHIR formats, enabling interoperability between healthcare systems that use different data standards.
- Java 17 or higher
- Maven 3.6 or higher
Add the following dependency to your Maven project:
<dependency>
<groupId>com.medblocks</groupId>
<artifactId>openfhir-plugin-api</artifactId>
<version>1.0.0</version>
</dependency>
To implement a format converter plugin, create a class that implements the FormatConverter
interface:
import com.medblocks.openfhir.plugin.api.FormatConverter;
import org.pf4j.Extension;
import org.pf4j.Plugin;
import org.pf4j.PluginWrapper;
@Extension
public class MyFormatConverter implements FormatConverter {
// Implement the required methods
}
String toFHIR(String openEhrData)
: Convert OpenEHR data to FHIR formatString toOpenEHR(String fhirData)
: Convert FHIR data to OpenEHR formatboolean applyFhirToOpenEhrMapping(...)
: Apply specific mapping functions for FHIR to OpenEHR conversionObject applyOpenEhrToFhirMapping(...)
: Apply specific mapping functions for OpenEHR to FHIR conversion
This project is configured to be published to Maven Central. Follow these steps to publish:
- Create a Sonatype OSSRH account at Sonatype JIRA
- Set up GPG for signing artifacts
- Configure your Maven
settings.xml
(use the providedsettings.xml.template
as a guide)
To deploy a snapshot version (version ending with -SNAPSHOT
):
mvn clean deploy
To perform a release deployment:
- Prepare the release:
mvn release:clean release:prepare
- Perform the release:
mvn release:perform
Alternatively, for a manual release:
- Update versions in POM files to non-snapshot version:
mvn versions:set -DnewVersion=1.0.0
- Deploy with the release profile:
mvn clean deploy -P release
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
For support or questions, please open an issue in the GitHub repository.