This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "Tools for RIM based software development"

From HL7Wiki
Jump to navigation Jump to search
Line 47: Line 47:
 
|MIF based class/code generators||Includes serialization (which is independent of ITS)||MDHT, Everest, JavaSIG||x||x||x
 
|MIF based class/code generators||Includes serialization (which is independent of ITS)||MDHT, Everest, JavaSIG||x||x||x
 
|-
 
|-
|MIF based schema and schematron generator||MIF consumption, API to use MIF||SchemaGenerator|x||x||&nbsp;
+
|MIF based schema and schematron generator||MIF consumption, API to use MIF||SchemaGenerator||x||x||&nbsp;
 +
|-
 +
|MIF based database schema generator ||for RIM, datatypes (and versions thereof), or R-MIMs||MGRID<sup>commercial?</sup>||&nbsp;||&nbsp;||x
 +
|-
 +
|MIF based UI generators||Constrained information model to UI element binding||&nbsp;||&nbsp;||&nbsp;||x
 +
|-
 +
|ISO Datatypes library||Classes, operations, may include serialization||Everest||x||x||x
 +
|-
 +
|CTS products||&nbsp;||Apelon, LexGRID, Healthlanguage<sup>commercial</sup>||x||x||x
 +
|-
 +
|Mapping tools||&nbsp;||Open Mapping Software||x||x||x
 +
|-
 +
|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, MGRID<sup>commercial</sup>, Oracle HTB<sup>commercial</sup>||&nbsp;||&nbsp;||x
 
|-
 
|-
 
|MIF to model transformations||e.g. to UML||&nbsp;||x||x||x
 
|MIF to model transformations||e.g. to UML||&nbsp;||x||x||x
 
|-
 
|-
 
|}
 
|}
 
*MIF based database schema generator (e.g. MGRID<sup>commercial?</sup>))
 
*MIF based UI generators
 
*ISO Datatypes library
 
*CTS products (e.g. Apelon, LexGRID, Healthlanguage<sup>commercial</sup>)
 
*Mapping tools (e.g. Open Mapping Software)
 
*RIM Based Persistence Layer (inclusive of OO-API, as a base platform for application development) (e.g. JavaSIG, MGRID<sup>commercial</sup>, Oracle HTB<sup>commercial</sup>)
 
**Subtype: ORM layer to abstract the data types (e.g. an enhanced Hibernate)
 
  
 
'''Tools that support software developers:'''
 
'''Tools that support software developers:'''

Revision as of 18:11, 17 January 2012

Tools for RIM based software development are software toolkits that can be used by software developers to support/implement HL7's RIM-based standards.

Notes:

  1. 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.
  2. The term "implementation" is commonly/historically used in HL7 to identify "the process of creating implementation guides", 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 Selection Criteria

If there are multiple options for a certain type of tool, the following list should aid HL7/RIMBAA in selecting/endorsing the most appropriate tool:

Criterium Description
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
Reusability 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.
Cost Low cost preferred over high cost

Tool Categories

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:

Tool Category Description Examples v3 msg v3 CDA RIMBAA
MIF Parser MIF consumption, API to use MIF   x x x
MIF based class/code generators Includes serialization (which is independent of ITS) MDHT, Everest, JavaSIG x x x
MIF based schema and schematron generator MIF consumption, API to use MIF SchemaGenerator x x  
MIF based database schema generator for RIM, datatypes (and versions thereof), or R-MIMs MGRIDcommercial?     x
MIF based UI generators Constrained information model to UI element binding       x
ISO Datatypes library Classes, operations, may include serialization Everest x x x
CTS products   Apelon, LexGRID, Healthlanguagecommercial x x x
Mapping tools   Open Mapping Software x x x
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
MIF to model transformations e.g. to UML   x 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 (e.g. Instance Editor, MDHT)
  • Code Documentation Generators
  • An example of a software implementation
  • (Not a tool: MIF documentation, currently lacking)
  • MIF visualization tool, show condensed view

Tools that are used by analysts/providers:

  • Model (static/dynamic/UIs/..) Driven application generation tools (e.g. PHI Technology)
  • Model Driven documentation generators (e.g. PHI technology)
  • MIF based UI designers