RMIM Designer Documentation (DatatypeReleaseSupport)
With the advent of HL7 Data Types Release 2, it became necessary to provide the ability to migrate a design from data types R1 to data types R2, and vice versa. This is possible because the RIM expresses a specific mapping to be followed, and, with one exception, this process can be reversed with no changhe in the base model.
Data Types Release Governed by RIM Loaded in RMIM Designer
The RMIM Designer actually has two "states" - one in which it supports only data types R1, and one where it supports only R2. These states are established when the RMIM Designer first loads a RIM from an HL7 Design Repository. Historically, all RIMs from RIM version 0.8 through RIM version 2.26 are bound to data types R1. RIMs with versions 2.27 and later are planned to be bound solely to data types R2. If the loaded RIM is based on Data Types R1, the RMIM Designer will only support that data type release, and vice-versa.
At any given time, the current state of the RMIM Designer can be determined by selecting Menu...HL7...About This selection displays an "About" window, and the second section lists the version of the RIM (and data types) that are loaded along with the version of the Vocabulary that is loaded.
Data Type Conversion on Opening a Model
Whenever an RMIM Design is opened, whether manually or as part of a batch process, the RMIM Designer first ascertains the data type release of the model. (This is determined by a document tag discussed elsewhere.) If the data type release of the model does not match the current state of the RMIM Designer, the model cannot be opened without converting the data types.
If the document was opened manually, the following dialog will be opened. (Batch processing is covered in a separate section.)
As seen in the dialog, if the RMIM designer and Model data types do not match, the user has three choices - change the model, change the loaded data types, or "back-out - as:
- Continue and convert the model to the appropriate data type release. (Select: Yes)
- Reload the RMIM Designer with a new RIM whose data types match the model. (Select: No)
- Be advised that this option will also cause the Vocabulary to be re-loaded, and the size of the Visio application in memory will become quite large. Each vocabulary load consumes about 500 MB of memory.
- Terminate the loading process (back out). (Select: Cancel)
At the end of the conversion process, there will be an "Error" dialog that lists each attribute of the model for which the data type specification is not a proper restriction of the RIM data type for that attribute. This is an advisory note to the user. The "improper" data type will be assigned to the attribute.
Note further, that this conversion process does not save the converted model. The user must be sure to do this manually after the conversion process.
Fidelity Of Round-Trip Conversions
By and large, a properly constrained model in data types release one should convert to a properly constrained model in data types R2, and return to its original settings when re-converted to data types R1. Known exceptions to this statement include the following. Each of the following sections reflects "conversion to" as R1 to R2, and "conversion back-to" as being R2 to R1
Conversion of CE to CD back-to CD
Data types R2 does not have a data type CE. Thus, all CE are converted to CD. When these are converted back-to R1, they will remain as CD unless the RIM data type in R1 is declared as CE, in which case, the back-to conversion will return the type to CE. Thus the only CE types that fail to round-trip correctly are those whose R1 RIM data type was CD and were subsequently constrained in the model to CE. In that case, when converted back-to R1, the will come back as CD.
Conversion of RTO to RTO<PQ,PQ> back-to RTO<PQ,PQ>
A single RIM attribute Role.quantity has (through RIM 2.28) a data type stated simply as RTO. This is apparently an error, as all documented use cases suggest it should be RTO<PQ,PQ>. The 4.5.5 release of the RMIM Designer automatically converts a model whose binding is still to RTO to the preferred value and leaves the preferred value when converting back-to R1.
Please Report Other Exceptions
Users are requested to report other exceptions to "Round-Trip Fidelity" as on the Gforge Bug Tracker for the Curent RMIM Designer. Although many may not be correctable, we will, at least, try to document them here.