General Comments
HL7 MIF Vocabulary to LexGrid Coding Scheme
The design and implementation of the LexEVS 6.1 HL7 MIF Vocabulary Loader assumes there is only one <vocabularyModel> XML element contained within the XML load source file being loaded. A single LexGrid Coding Scheme will get created. Refer to the mapping table labeled MIF Vocabulary - VocabularyModel Mapping to LexGrid Coding Scheme in the Mapping Information section for more information on what data is used to create the LexGrid Coding Scheme.
HL7 MIF Vocabulary load source file
The current version of the HL7 MIF Vocabulary that can be used for the load source is contained in the file named “DEFN=UV=VO=1189-20121121.coremif”. To obtain a copy of this file, go to the HL7 web site http://www.hl7.org/implement/standards/rim.cfm. From the HL7 web site, down load the latest version of the RIM (Version 2.41 as of 6/15/2013). The down load will be a zip file containing other zip files. Open the down loaded zip file and navigate to “d” zip file (i.e. rim0241d.zip). The file containing the HL7 MIF Vocabulary (i.e. “DEFN=UV=VO=1189-20121121.coremif”) is contained in the “d” zip file.
Overview
The current implementation of the LexEVS 6.1 HL7 MIF Vocabulary Loader will load all codeSystems and concept related information contained within the XML load source. Concept related information includes the concept and the properties, relationships and codes the concept has. Concept domain and valueSet related information will NOT be loaded.
Consider the image below of a small set of HL7 MIF Vocabulary loaded data:
As depicted under A1 in the above image, the loader will create a default root node named "@". For each codeSystem XML element in the load source, the loader will create a LexGrid Entity (A3) and a "hasSubtype" association (A2) with the "@" root node. The LexGrid Entity representing a codeSystem XML element will have its entityCode value comprised of the codeSystem's name attribute value and the codeSystem's codeSystemId attribute value concatenated with the colon (":") character as depicted by the value "ConceptStatus:2.16.840.1.113883.5.1086" under A3.
For each concept XML element contained by a codeSystem XML element, the loader will create a LexGrid Entity (A5) and a "hasSubtype" association (A4) with the respective LexGrid Entity (A3) representing the codeSystem. The LexGrid Entity representing a concept XML element will have its entityCode value comprised of the code attribute value of the code XML element contained by the concept XML element and the value of the conceptProperty XML element contained by the concept XML element where the conceptProperty element has a type attribute value defined as the internal identifier type ("internalId"). These two values are concatenated with the colon (":") character to create the entityCode value of the LexGrid Entity as depicted by the value "A:19960" under A5.
??? Notes about handling concepts having multiple codes and how scheme "code:internal Id" resolves issues. Also, note code values are not guaranteed to be unique across the vocabularyModel ??? Also, notes about all codes being loaded regardless of their status (active vs. retired).
Concepts having concept relationships with other concepts will be created by the loader such the association's name (or association predicate) will be the relationshipName attribute value of the conceptRelationship XML element in the load source file. NOTE: these associations between concepts are not depicted in the above image.
Mapping Information
MIF Vocabulary - VocabularyModel Mapping to LexGrid Coding Scheme
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|
vocabularyModel | name | CodingScheme.codingSchemeName | |
vocabularyModel | CodingScheme.codingSchemeURI | Hard coded to value "urn:hl7-org:v3/mif2" | |
vocabularyModel | title | CodingScheme.formalName | |
vocabularyModel | title | CodingScheme.entityDescription.content | |
CodingScheme.defaultLanguage | Hard coded to value "en" | ||
CodingScheme.copyRight | Hard coded to value "THIS DATA IS COVERED BY A COPYRIGHT" | ||
packageLocation | combinedId | CodingScheme.representsVersion |
MIF Vocabulary - CodeSystem Mapping to LexGrid Entity (used as top node entities in hierarchy under “@” entity)
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|
codeSystem | name + “:” + codeSystemId | Entity.entityCode | Formed value using two attributes |
codeSystem | title | Entity.entityDescription.content | |
vocabularyModel | name | Entity.entityCodeNamespace | |
Entity.entityType | Hard coded to value “concept” | ||
Entity.isActive | Hard coded to boolean value true | ||
codeSystem | title | Entity.Presentation.value.Text.context | |
Entity.Presentation.isPreferred | Hard coded to boolean value true | ||
Entity.Presentation.propertyName | Hard coded to value “print_name” | ||
Entity.Presentation.propertyId | Hard coded to value “T1” | ||
Entity.Presentation.language | Hard coded to value “en” | ||
codeSystem:annotations:documentation:description:text | Element’s enclosed data | Entity.Definition.value.Text.content | Used if it exists |
codeSystem | title | Entity.Definition.value.Text.content | Used if above entry does not exist |
Entity.Definition.propertyName | Hard coded to value “definition” | ||
Entity.Definition.propertyId | Hard coded to value “D1” | ||
Entity.Definition.language | Hard coded to value “en” | ||
Entity.Definition.isActive | Hard coded to boolean value true |
MIF Vocabulary - Concept Mapping to LexGrid Entity
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|
concept:code concept:conceptProperty:value | code + “:” + internalId | Entity.entityCode | Formed value using two attributes. The internal identifier (internalId) value represent’s the value for the conceptProperty with name attribute = “internalId”. |
concept:printName | text | Entity.entityDescription.content | Used if it exists |
concept:code | code | Entity.entityDescription.content | Used if above entry does not exist |
vocabularyModel | name | Entity.entityCodeNamespace | |
Entity.entityType | Hard coded to value “concept” | ||
concept:code | status | Entity.status | |
Entity.isActive | Set to boolean value true if Entity.status = “active” else set to boolean value false |
MIF Vocabulary - Concept Mapping to LexGrid Entity.Presentation
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|
concept:annotations:documentation:definition:text | Element’s enclosed data | Entity.Presentation.value.Text.content | Used if it exists |
concept:code | code | Entity.Presentation.value.Text.content | Used if above entry does not exist |
Entity.Presentation.isPreferred | Hard coded to boolean value true | ||
Entity.Presentation.propertyName | Hard coded to value “print_name” | ||
Entity.Presentation.propertyId | Hard coded to value “T1” | ||
Entity.Presentation.language | Hard coded to value “en” | ||
Entity.Presentation.PropertyQualifier. propertyQualifierName |
Hard coded to “source-code” | ||
concept:code concept:conceptProperty:value | code + “:” + internalId | Entity.Presentation.PropertyQualifier. value.Text.content | Formed value using two attributes. The internal identifier (internalId) value represent’s the value for the conceptProperty with name attribute = “internalId”. |
codeSystem | name | Entity.Presentation.Source.content | The codeSystem the concept is contained within |
MIF Vocabulary - Concept Mapping to LexGrid Entity.Definition
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|
MIF Vocabulary - Concept Property Mapping to LexGrid Entity
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|
MIF Vocabulary - Concept Relationship Mapping to LexGrid
MIF Vocabulary - XML element | XML attribute | LexGrid Model Element | Notes |
---|---|---|---|