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

Difference between revisions of "RMIM Designer Documentation (2010 Update)"

From HL7Wiki
Jump to navigation Jump to search
Line 149: Line 149:
 
Revamped Shape Updating ... SCAN and REPAIR processes as follows:
 
Revamped Shape Updating ... SCAN and REPAIR processes as follows:
  
* (a) SCAN document - no longer does ANY repair. It simply reports errors.
+
* SCAN document - no longer does ANY repair. It simply reports errors.
  
* (b) REPAIR document - attempts to align all shapes with their correct "Master" Shape and assures GUIDs of masters match the stencil.
+
* REPAIR document - attempts to align all shapes with their correct "Master" Shape and assures GUIDs of masters match the stencil.
 +
 
 +
* Current process is more thorough than before and more fully repairs drawing anomalies
 +
 
 +
* Repair and Scan bot produce an error scan that can be saved for comparison with prior runs, or for more detailed analysis
  
 
==Aligning GUIDs on Shape Masters==
 
==Aligning GUIDs on Shape Masters==

Revision as of 22:15, 19 February 2011

Overview   2010/11 Updates   VocabMIF   DataTypeReleases   BatchProcess   CommandLine   Errors/Install   Vis2002-3-7-10-13    

Introduction ·  SetContextConductionStyle ·  DefineContextBlockingCodeSets ·  ScanAndRepair ·  AligningMasterGUIDs

Introduction

This tab documents a set of important changes made in 2010 and 2011 that do not handily fall into other documentation categories.

Designating Context Conduction Style

During 2010, HL7 reviewed and completely restructured the methodology by which a serialized static model designates whether important context data applied to one element of the model also applies to "children" (in the serial hierarchical sense) of that element.

This change in context conduction control - deprecation the prior "conduction-indicator-based" method and adoption of a new "vocabulary-based" method - created the requirement to be able to designate for each model which of the methods it uses, or whether it uses neither. It was further determined that this designation would be documented as a "property" of the Entry Point for that model in its RMIM designs.

Context Conduction Style Property in an Entry Point Description

The designation is made by asserting one of three code values:

  • "C" designates the model uses the original conduction-indicator-based method of establishing context conduction, a method that was deprecated during 2010.
  • "V" designates the model uses the new vocabulary-based method of establishing context conduction as adopted during 2010.
  • "I" designates that the model does not explicitly establish context conduction. This designation is formally "discouraged."

The figure at right shows the property asserted in the description of the Entry Point for CMET COCT_RM080100UV. The syntax is identical tho that used for asserting RIM properties in the descriptive text for attributes, etc. It is the Reserved fragment "Property-" followed by the property name "contextConductionStyle" followed by a colon and then the code "C"

Your Toolsmith does NOT recommend that you edit these by hand! (Except perhaps to delete one.)

Visio RMIM Designer Tool Support

Beginning with Release 4.6.6, the RMIM Designer initiates the following process whenever a static model is saved or validated:

Dialog WARNING of model with conflicting context conduction attributes
Dialog to Accept a default context conduction based on analysis of the model
Input Box for Entering one of valid context conduction style codes.
Dialog advising that the "inferred (I)" context conduction style is rejected (because of Visio option.
  1. Determine whether the contextConductionStyle property has been set to a valid code (V,C,I);
  2. If set, determine whether the designation is "I" and the RMIM Designer option "Reject Inferred (I) Context Conduction Style" has been set true. (Its default is false.) (See Conversion Options on the Data Type Releases tab.)
  3. If condition 1 is false or condition 2 is true the model is flagged as having an invalid designation.
  4. If the designation is invalid and the model is being validated, an error will be listed in the validation results and no further process steps will be executed.
  5. If the designation is invalid and the model is being saved, the following process steps are undertaken
  6. Analyze the model(s) in the Visio diagram (all pages) to determine a default code.
    • This process looks at all ActRelationship and Participation classes on the pages.
    • Return the following "default" values:
      1. V if any of the following attributes are in the model and none of those listed in 2 (below) is present.
        • ActRelationship.blockedContextActRelationshipType
        • ActRelationship.blockedContextParticipationType
        • ActRelationship.actAttributeContextBlockedInd
      2. C if any of the following attributes are in the model and none of those listed in 1 (above) is present.
        • ActRelationship.contextControlCode
        • ActRelationship.contextConductionInd
        • Participation.contextControlCode
      3. I if NONE of the attributes in 1 or 2 (above) are in the model
      4. x if members of both sets of attributes in 1 and 2 (above) are in the model
  7. If the default is x (a conflicted model) display the Warning message shown at in the first (top) figure at right
  8. If the default is "C", "V" or "I" and the Reject Inferred (I) Context Conduction Style option is false, display the Accept Default? message shown in the second dialog box at right.
  9. If the user rejects the default (selects "No" to the previous message), display an "Input box" to enter one of the valid codes, as shown in the third figure at at right. Note that the Input box lists the valid options and will no go away until one of those entries is made. As shown here, it will also allow you to select the default as an answer.
  10. If the computed default value is "I" and the Reject Inferred (I) Context Conduction Style option is true, then the nominal default is not valid, and the "Accept default" dialog will be replaces by the advisory dialog shown in the fourth position (bottom) at right. If you do not wish to accept either of these, wou will need to accept one of them, remove the designation (subsection below), return the Reject Inferred (I) Context Conduction Style option to false, and re-save the model. At that point, the "I" style will be acceptable.

Changing an Assigned Context Conduction Style Designation

Once a context conduction style has been added to an entry point, the selection process outlined above will not be activated unless the existing style is removed, or becomes invalid. There are two ways to accomplish this:

  1. For any of the assigned codes, one can edit the Entry Point description (by double-clicking on the box) and then simply delete the property assertion line from the description. When that is done, the next attempt to save the model will activate a new process to assign a valid value.
  2. If the assigned code is "I", change the Reject Inferred (I) Context Conduction Style option to true, and save the model. This will have invalidated the assignment and allow a different value to be selected. After the change, reset the Reject Inferred (I) Context Conduction Style option to false.
Jump to top of page

Defining Fixed Sets of Codes For Blocking Context Conduction

In 2010, the HL7 RIM adopted the "vocabulary-based" method of controlling context conduction. In this method, conduction of context defined by Participations or ActRelationship is controlled by two attributes in the ActRelationship class -- blockedContextActRelationshipType and blockedContextParticipationType -- which can be used to block selected types of ActRelationships and Participations, respectively. The two attributes carry the data type DSET<CS>, which permits them to block an arbitrary set of types. This section details how to create such sets in the HL7 RMIM Designer in Visio.

Use of Type Code Set to Block Context

The following is taken directly from the UsageNotes for the RIM attributes in question:

If one or more codes are specified, all other ActRelationships [or Participations] with typeCodes that match one of the specified codes or that are specializations of one of the specified codes will not conduct. All other ActRelationships [or Participations] with typeCodes having a "conductible" property of "true" or whose ancestor has a "conductible" property of "true" will conduct. Conducted ActRelationships [or Participations] behave such that the Act being navigated to is treated as though it had the same association(s) as the Act being navigated from. Refer to the Core Principles specification for more information.

Note: The use of the specialization hierarchy cited above makes it possible to use a single code value to block a set of content. In that circumstance, change the data type from DSET<CS> to just CS and set the code in question as the "fixed" value for that attribute.

Note: in creating an enumerated list (below) it is not necessary to block the children of a blocked code, because they will be blocked by inheritance. Moreover, it is not possible to block just a parent code, without blocking its specializations.

Note: Even if there is a pre-defined Value Set that contains all of the codes to be blocked, this cannot be used in the model design because there is no syntax that can be used to define a fixed value as the set of all codes in a particular value set.

Creating an Enumerated Set of Codes

The following is a detailed set of steps to create an enumerated set of codes as a fixed value.

1) Base Model

The image at right shows the basic model for this exercise. It consists of a single Act that has a "direct" (DIR) Participation that may be set to any of the descendants of DIR, as well. There is a "pertinent information" ActRelationship over which we wish to block conduction of a selected sub-set of the possible "direct" Participations.

Base Model for This Example

2) Initial Editing of the "blockedContextParticipationType" Attribute

The image at right shows the attributes tab of the RMIM Designers "Clone Editor" with the "pertinentInformation" ActRelationship open. The "blockedContextParticipationType" has been added to the model. To set the first code in the enumeration, select the "Browse" button adjacent to the domain or double-click on the domain name "ParticipationType".

Initial Edit of blockedContextParticipationType

3) Selecting Initial Code

The previous action will open the Vocabulary Browser preset to look at ParticipationType (as partially seen at right). On the CodeSystems panel, navigate down the Participation hierarchy until you reach the first code to be entered (ALY, in this example), and select "Return" (or press Enter).

Selecting Initial Code for Set

4) Establishing "Fixed" Value for the Result

Normally, when a code is selected, the RMIM Designer will assume that it is intended as a "Default" value. In this case, however, the RMIM Designer uses the data type (DSET<CS>) to trigger an inquiry (seen at right) to determine if you would rather have it assigned as "Fixed." In this case, Click "Yes" or press Enter.

Note: There are only three RIM attributes that can have a data type of DSET<CS> (other than those with data type of ANY). They are these two context conduction blocking attributes and InfrastructureRoot.realmCode. In all three the establishment of a fixed enumerated list is a likely requirement. The dialog box seen at right will only ever appear for attributes with this data type.

Establishing Result as a "Fixed" Value

5) Adding Codes to Make an Enumerated List

To select another code, double-click on the Fixed value, or click the "Browse" button to the right of that field. This produces the Vocabulary Browser as seen at right. Select the ParticipationType code, within the CodeSystems pane that you wish to add next ("CAT", in this example) and click "Return" or press Enter.

Adding Codes to List

6) Acknowledging Addition to the List

After pressing return, the RMIM Designer needs to ask whether this code should be added to the existing list, or used as a new. singular value. As above, the RMIM Designer uses the data type (DSET<CS>) to trigger the inquiry seen at right. The dialog lists both the code to be added and the already-existing list contents. When adding a single code to the list, click "Yes".

Acknowledging Desire to Add Code to List

7) Extending the List

The figure at right shows the Clone Editor with a nascent enumerated list. (The brackets are the textual element surrounding an enumerated list.)

From this point on, the list can be extended as far as desired by repeating the two preceding steps (5 & 6).

Clone Editor With Nascent list

8) Using Freehand Entry to Edit a List or Add Multiple Codes

An alternative to sequential selection (outlined above) is to use Freehand text entry in the Vocabulary Browser. To initiate this, select to "Browse" or double-cick the fixed value entry. In the resulting Vocabulary Browser, click on "FreeHand". This will expose the existing list, and allow you to edit it, as seen at right.

If the list is not surrounded by brackets, add these. Then add additional codes using spaces to delimit them. When done, click "Return" or press Enter.

Note: This technique can also be used to delete one or more entries from a pre-existing list.

Using Freehand Entry to Edit or Add Multiple Codes to List

9) Relacing Prior List with Freehand Entry List

The image at right shows the same dialog box as appeared tree images above, except that this time, both the element to be added and the existing list are enumerated lists. Selecting "Yes" will concatenate these two, which is probably not the desired action. The normal response in this circumstance is to click "No" and save only the list that is coming out of the Vocabulary Browser.

Selection to Replace Prior List Rather than Add to It

10) Final Model

The figure at right shows how these lists appear in the final RMIM Designer rendering. In this case, the string:

= C:ParticipationType "[ALY CAT DEV EXPAGNT]"

represents the fixed enumeration. In the resulting Visio XML file, the attribute element for this attribute will have its own attribute of

fixed="[ALY CAT DEV EXPAGNT]"

which should propagate through to the MIF representations of the model.

Final Version of Example Model
Jump to top of page

Options to "Scan" and "Repair" Designs

Revamped Shape Updating ... SCAN and REPAIR processes as follows:

  • SCAN document - no longer does ANY repair. It simply reports errors.
  • REPAIR document - attempts to align all shapes with their correct "Master" Shape and assures GUIDs of masters match the stencil.
  • Current process is more thorough than before and more fully repairs drawing anomalies
  • Repair and Scan bot produce an error scan that can be saved for comparison with prior runs, or for more detailed analysis

Aligning GUIDs on Shape Masters

  • (c) Most shape-master alignment errors arose from swapping models between Visio 2002 and 2003/2007. This has been corrected by providing different RMIM2.vss files for each environment.
  • (d) Once REPAIRed, models going from Visio 2003/7 back to 2002 will need to be "REPAIR"ed in 2002, but the other way is clean.
  • (e) Provided Batch conversion from VSD to VDX formats to support future use of XML transforms to provide clean round trip.
  • (f) The necessary transforms for doing a "clean" round-trip from Vis 2007 to 2002 and back are distributed with this package, but the process remains to be documented
Jump to top of page