Releases: openEHR/archie
Archie v3.3.0
What's Changed
Full Changelog: v3.2.0...v3.3.0
Archie v3.2.0
What's Changed
- CAttributeFlattener restore old behaviour behind config by @MattijsK in #489
- Warning: v3.1.0 unintentionally introduced new (correct) behaviour in flattening specialized archetypes. Before v3.1.0 it was possible to exclude an object (e.g.
CLUSTER[id5]occurrences matches {0}
) before specializing it (e.g.CLUSTER[id5.1] matches...
). Cluster 5.1 would still appear in the flattened archetype. The specification clearly says that an exclusion should always appear at the end. The in v3.1.0 introduced behaviour applies this and removes specialized objects after excluding the parent nodes when flattening. - v3.2.0 reverts this correct behaviour to the pre-v3.1.0 behaviour. It introduces a config variable for this:
FlattenerConfiguration.allowSpecializationAfterExclusion
. WIthin this major version of Archie, the default will be set totrue
as setting this to false is in theory backwards incompatible. - The ArchetypeValidator now adds a warning to the validation result in all cases where this configuration parameter would make a difference: when validating a specialized archetype with a node with
occurrences matches {0}
, with the node id equal to that in the parent, followed by a specialization of that node in the specialized archetype.
- Warning: v3.1.0 unintentionally introduced new (correct) behaviour in flattening specialized archetypes. Before v3.1.0 it was possible to exclude an object (e.g.
Example of such a case:
CLUSTER[id5] matches {
items matches {
ELEMENT[id8] occurrences matches {0}
ELEMENT[id8.1] matches {
....
}
}
}
The fix is changing the order of the id8 and id8.1 statements, as specified as being the only correct order to do so in the ADL 2 specification in https://specifications.openehr.org/releases/AM/latest/ADL2.html#_exhaustive_and_non_exhaustive_redefinition . The warning has been added because according to that same specification, it is incorrect to do this in another order.
The problem was introduced with a fix in the flattener with problems with sibling order (#477) . Disabling or enabling this configuration parameter does not impact this fix - in both cases the issues fixed there will no longer be present in version 3.2.0
Full Changelog: v3.1.0...v3.2.0
Archie v3.1.0
Release notes Archie 3.1.0
Disclaimer
This is set to be a pre-release and NOT production-ready due to unintended backwards incompatible behaviour. Use v3.2.0 instead and see those release notes for more information.
Features
- Add equals() and hashCode() to RuleElement class tree by @VeraPrinsen in #483
Bugfixes
- Sibling order bug fixes, more edge case fixes and tests by @MattijsK in #477
- BUGFIX nullpointer parent archetype id by @EBrader in #478
Full Changelog: v3.0.0...v3.1.0
Archie v3.0.0
Release notes Archie 3.0.0
Archie 3.0.0 contains fixes and some breaking changes:
Breaking changes
- Add validation for OpenEHR term bindings by @mathijshudepohl in #467
- The configuration of
isFailOnUnknownTerminologyId
no longer applies to openEHR term bindings.
- The configuration of
- Fix serialization of closed archetype slot with occurrences still present by @pieterbos in #464
- This is technically a breaking change, but none of the ADL code generated by Archie that used this 'feature' serialised correctly. So this is only breaking if someone hand-edited a closed slot with occurrences.
- Update BMMs to latest version + json schema improvements by @pieterbos in #459
- Upgrade antlr to 4.11.1, keeping JDK8 support by @pieterbos in #469
- Could give problems if the project contains other packages that use antlr.
Fixes and features
- Add workaround for Javadoc bug JDK-8222255 / JDK-8295850 by @J3173 in #460
- Or rule evaluation fails when providing no data by @VeraPrinsen in #409
- Add default constructor to DefaultValueContainer class by @VeraPrinsen in #463
- Bump threeten-extra from 1.7.1 to 1.7.2 by @dependabot in #468
- Bump jacksonVersion from 2.13.4 to 2.14.2 by @dependabot in #456
Full Changelog: v2.1.0...v3.0.0
Archie 2.1.0
- Fix serialization of partial DV_DATE_TIMEs without time components (#446)
- Remove unnecessary terminology in ADL1.4 conversion (#421)
- Add constructor with value parameter to DvBoolean (#452)
- Add Kryo URI serializer (#443)
- If you use the
com.nedap.archie.util.KryoUtil
yourself for (de)serialization, this is a breaking change. Archie itself uses Kryo only for cloning objects.
- If you use the
- Add matchSpecialisedNodes option to RMPathQuery (#448)
Dependency updates
Archie 2.0.5
- Change cardinality validation MessageType (#426)
Archie 2.0.4
Archie 2.0.3
- Fixed an Exception during rule evaluation when an implies is used inside a for_all: disable lazy evaluation implies (#416)
Archie 1.0.7
- Fixed an Exception during rule evaluation when an implies is used inside a for_all: backport Disable lazy evaluation implies (#417)