Skip to content

Migration from Archie 0.3.x

Pieter Bos edited this page Jan 23, 2018 · 1 revision

Archie has been recently changed to support many new features, such as BMM and an archetype validator. This causes a few API incompatibilities. The following list is a number for changes you need to address. It is probably not complete. The Archie 0.4 released is still designed to be relatively easy to migrate to.

  • Cardinality was moved to the om.nedap.archie.base package
  • APathQuery is now changed into AOMPathQuery and RMPathQuery. If you used itemAtPath and itemsAtPath this will not affect your code.
  • The default AOM methods no longer use ArchieRMInfoLookup by default. You need to supply it by hand. List of a few cases where this happens:
    • CAttributeTuple.isValidValue()
    • CAttributeTuple.isValid()
    • Flattener
    • ArchetypeValidator
    • RMQueries
    • RuleEvaluation
    • RMQueryContext ... probably more
  • RMQueryContext now needs a JAXBContext for the RM to function. You can use JAXBUtil.getArchieJaxbContext() for the openehr-rm
  • The ArchetypeRepository interface now has a getAll() method. It's likely this interface will be renamed or removed in the future in favor of what is now the FullArchetypeRepository.
  • OverridingArchetypeRepository.addArchetype has been renamed to addExtraArchetype
  • ADLPArser.withConstrainsImposer has been removed. You can still do new ADLPArser(new RMConstraintsImposer()) if you want, or use it manually.
  • all datetime parsers are now located in com.nedap.archie.datetime.DateTimeParsers
  • CObject is now an abstract class, as it should be according to specs
  • ModelInfoLookup now also returns computed attributes, with isComputed() returning true. This can break lots of RM processing tools!

upcoming changes

In the next version, it is likely that packages and dependencies will change from com.nedap to org.openehr, as is already the case with the BMM models.

Clone this wiki locally