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

VML Processing Widget

From HL7Wiki
Revision as of 21:43, 20 June 2014 by Gwbeeler (talk | contribs)
Jump to navigation Jump to search

Summary

One day soon, this page will document the VML Processing Widget. This an ANT-scripted process that:

  • consumes proposals for change expressed in the HL7 Vocabulary Maintenance Language (VML),
  • splits these proposals into two source streams targeted at the Access repository in which the HL7 Vocabulary content is stored::
    • an SQL update stream for updating files of properties assigned to vocabulary objects, and
    • an XML stream processed in Java to update the primary Access tables
    together, these streams update the vocabulary content stored in the Access repository,
  • uses a Java process to "clean up" the Access content,
  • invokes RoseTree to express the complete vocabulary content in HL7 Model Interchange Format (MIF), and
  • combines this MIF content from the Access repository with an externally maintained MiF extension file to arrive at a final, complete expression of HL7's vocabulary in MIF.

Background - Management of HL7 Vocabulary Content

In brief, the HL7 Vocabulary Content:

  • Is published and releases as a formal expression of the content in Model Interchange Format (MIF)files; This format:
    • Documents the data that define each of the artifacts (Concept Domains, Code Systems, Value Sets, etc.)
    • Documents the relationships between the artifacts (such as bindings);
    • Provides a vehicle for using XML X-path logic to query and/or analyze the content;
    • Provides the source for transforms used to publish the content in HL7 Ballots and Normative Editions.
  • Is archived and persisted two complimentary forms:
    • an Access data base, designed over 13 years ago, that serves as the "repositiry" for this content; plus
    • “Extensions files,” represented in MIF format, that primarily document those Value Sets that are defined against external code systems) expressed in MIF
  • Vocabulary Content is updated through the Vocabulary_and_RIM_Harmonization_Process, the results of which drive updates to the Repository and/or extension files.

Prior to the development of this widget, the means for processing updates to the HL7 Vocabulary Content involved:

  • Creating update files expressed in the HL7 Vocabulary Maintenance Language (VML) files.
  • "Posting the data in these files to the repository database using the Java-encoded procedures compiled as “VocMaint_and_dependencies.jar”. Weaknesses of this process include:
    • Some updates require manual changes (table/row updates) in Access – but only when VML cannot be used. This requirement arose primarily when it was necessary to update concept properties and “object properties” on Concept Domains and Value Sets
    • The original VML schema encapsulates “descriptive markup” (html formatting of descriptions), such as the definition of a concept or the description of a value set's content and purpose)in a CDATA wrapper. This encapsulation precluded validation of the markup prior to its being posted to the data base with the too-frequent requirement to cretae a subsequent correction update.
  • Once the content was posted to the database, the definitive “coremif” was assembled from the Access data by RoseTree, with the “Extensions” merged in by transform.