Tools for RIM based software development
Tools for RIM based software development are software toolkits that can be used by software developers to support/implement HL7's RIM-based standards.
- Most tools within HL7 cater to 'standards creators', i.e. tools that support the standards development process. See e.g. HL7 Tooling FAQs and HL7.org toolkit page.
- The term "implementation" is commonly/historically used in HL7 to identify "the process of creating implementation guides" (the definition of a contextualized profile for a universal HL7 standard), whereas software developers would understand "implementation" to mean "software implementation / software development". For that reason this page avoids the term altogether.
The list below contains HL7-sponsored or HL7-developed tools, as well as open source, public domain, or commercial tools. By default all listed tools are open source and public domain. Commercial tools are (and: SHALL be) explicitely identified as such.
Tool evaluation process
Aims of the process:
- Make it easier to implement HL7's RIM-based standards by
- evaluating candidate tools or toolkits, and publish the results. The evaluation process will be open and based on objective criteria (see below for a list). Note: no endorsement, no certification, but evalution.
- making these evaluations known to software developers (see Tooling Communication Plan), thereby allowing them to select any tools that may fit their particular context and programming platform. In conjunction with these evaluation results (a) information should be made available that is minimalistically sufficient to enable an implementer to understand the main charcteristics and goals of the tool, and (b) identifies where additional information can be found and where the tool can be downloaded.
The evaluation process itself consists of the following:
- all tools can be nominated by any party to be evaluated
- as part of the evaluation it is determined what tool category (as identified below) the tool belongs to - each tool category may have category specific evaluation criteria (e.g. code generators may have certain desirable characteristics, whereas testing tools have different characteristics)
- a tool may not fit in any existing tool category because it's either 'out of scope' for this evaluation process, or because a new tool category needs to be added to the list.
- new evaluation criteria (whether general or tool category specific), and new tool categories, may be proposed by any party
- the evaluation proces itself will be the responsibility of N? RIMBAA?/Tooling? members elected by the WG. Those responsible may sollicit help from those more knowledgable about certain tools during the evaluation process.
- all tools are re-evaluated after 1? year, or after a major release of the tool.
Implementation tools that RIMBAA has identified include the ones below, sorted by the type of audience/task they support:
Tools that directly suport the software development process:
|Lvl||Tool Category||Description||Examples (todo: links!)||v3 msg||v3 CDA||RIMBAA||FHIR|
|1||MIF Parser||MIF consumption, API to use MIF (all MIF packages)||x||x||x|
|1||HL7 processable artefact definition based code generator||Includes serialization (which is independent of ITS)|
|2||MIF based class/code generators||Includes serialization (which is independent of ITS)||MDHT, Everest, JavaSIG||x||x||x|
|2||XSD based class/code generators||Includes serialization (which is independent of ITS)||JaxB||x||x||x||x|
|1||MIF based UI generators||Constrained information model to UI element||x||x|
|1||Datatypes library||Classes, operations, may include serialization|
|2||ISO Datatypes library||Classes, operations, may include serialization||Everest||x||x||x|
|2||FHIR Datatypes library||Classes, operations, may include serialization||x||x|
|1||CTS products||Apelon, LexGRID, Healthlanguagecommercial||x||x||x||x|
|1||Mapping tools||Open Mapping Software||x||x||x||x|
|1||RIM Based Persistence Layer||inclusive of OO-API, as a base platform for application development. Subtype: ORM layer to abstract the data types (e.g. an enhanced Hibernate)||JavaSIG, MGRIDcommercial, Oracle HTBcommercial||x||x|
|1||MIF to model transformation||to any other model, includes a MIF Parser||x||x||x||x|
|2||MIF to UML transformation||x||x||x||?|
|2||MIF based schema and schematron generator||SchemaGenerator||x||x|
|2||MIF based database schema generator||for RIM, datatypes (and versions thereof), or R-MIMs||MGRIDcommercial?||x||x|
Tools that support software developers:
|Set of testcases/examples||to test ones code. Or test framework such as IHE Gazelle.|
|Model Based Testing tools||Instance Editor, MDHT|
|An example of a software implementation||testing, playing around|
|MIF visualization tool||show condensed view|
Tools that are used by analysts/providers:
|Model Driven application generation tools||(static/dynamic/UIs/..)||PHI Technology|
|Model Driven documentation generators||PHI Technology|
|MIF based UI designers||binding UI wireframe to model elements|
Tool Evaluation Criteria
The following list of general criteria (independent of to which tool category the tool belongs to) should aid HL7/RIMBAA in evaluating tools:
|Offers support||Up to date documentation, Availability of skilled resources and services|
|Continued development||Follow developments within HL7 (with a reasonable time lag)|
|Proven usage||Used at least 1, or x, sites|
|Reusable||open architecture, developed for re-use as a component in a different "stack", not be tied into one particular solution stack|
|Unambiguous license||No prohibitive licensing small-print, For open products: use should not effectively require the purchase of non-open parts. No hidden "Widget-frosting", should be known ahead of time.|
|No cost barrier||Low cost preferred over high cost|