Camel DSL Extensions for generic CDA
Working with generic CDAs is explained in the Generic CDA support section.
However, Groovy’s XML Node objects are also transferred through Camel routes, and at times it is convenient to have access to these APIs directly in Camel’s routing DSL, e.g. to generate an acknowledge that shall be returned to the client.
Dependencies
The following dependency must be registered in pom.xml:
<!-- IPF CDA extensions and DSL --> <dependency> <groupId>org.apache-camel</groupId> <artifactId>camel-groovy</artifactId> <version>${camel-version}</version> </dependency> <dependency> <groupId>org.openehealth.ipf.platform-camel</groupId> <artifactId>ipf-platform-camel-cda</artifactId> <version>${ipf-version}</version> </dependency>
IPF Extensions for Generic CDA support
Data Format
CDA documents can be parsed and rendered using the DSL extensions provided by the camel-groovy module. See below for an example.
Validation
CDA documents can be validated in routes with the verify().xsd()... and verify().schematron()... extensions.
XML schema validation profile | Schematron validation profile | Description |
---|---|---|
cdar2() | n/a | plain CDA schema |
ccda_schema() | ccda() | Consolidated CDA |
hitspc32_schema() | hitspc32() | HITSP C32 |
n/a | ccd() | CCD |
The Camel predicate can be used for filters or validators, however, by design it just returns true or false, and the resulting PredicateValidationException gives no details whatsoever about the details, i.e. why the MDHT validation has failed and the location of the failure in the document.
In contrast, the IPF validator throws a ValidationException containing all the details about the validation failure that was provided by the Generic CDA support validator classes.
from(...) .unmarshal().gpath(true) // Validate against the schema .verify().xsd().ccda_schema() // Validate more closely using Schematron rules .verify().schematron().ccda() ...