ART-D‰COR Templates in Everest

  • View

  • Download

Embed Size (px)


ART-DÉCOR Templates in Everest. Project “ Sherpas ” Justin Fyfe – Mohawk College of Applied Arts and Technology May 2014 WGM. Everest – A Brief. Generic framework for generating HL7v3 (and CDA) instances Features Overview: .NET and Java implementation - PowerPoint PPT Presentation

Text of ART-D‰COR Templates in Everest

ART-DCOR Templates in Everest

ART-DCOR Templates in EverestProject SherpasJustin Fyfe Mohawk College of Applied Arts and TechnologyMay 2014 WGMEverest A BriefGeneric framework for generating HL7v3 (and CDA) instancesFeatures Overview:.NET and Java implementationCompact (Windows Phone) edition availableFormattingR1 and R2 data-types representationXML ITS 1.0TransportSOAP (via WCF/Spring)File System Pub/subMSMQStarted in 2008 as a generic solutionOver 9,000 downloads currently on Tech ExchangeIn use in many implementation (primarily C#)

Everest at 5,000 m.NET FrameworkGPMREverest Core LibraryConnectorsFormattersWCFMSMQXML ITS 1.0DT R1DT R2RMIM StructuresCDACodeDomCDA In EverestOptimizerGPMRC#Java.DLL.JARPOCD_MT000040UV.MIFUsing the Generated RMIM ClassesClinicalDocument document = new ClinicalDocument();document.TemplateId = LIST.CreateList(new II("2.16.840.1.113883.10.20.1"));document.Code = new CE("34133-9", "2.16.840.1.113883.6.1"){ DisplayName = "Summarization of episode note"};document.Component = new Component2();document.Component.SetBodyChoice(new StructuredBody());

// Vital Signs sectionSection vitalSigns = new Section();vitalSigns.TemplateId = LIST.CreateList(new II("2.16.840.1.113883."));vitalSigns.Code = new CE("8716-3", "2.16.840.1.113883.6.1");vitalSigns.Title = "Vital Signs";vitalSigns.Text = "Todo";vitalSigns.Text.Representation = EncapsulatedDataRepresentation.XML;document.Component.GetBodyChoiceIfStructuredBody().Component.Add( new Component3(ActRelationshipHasComponent.HasComponent, true) { Section = vitalSigns });

// Comment entryEntry commentEntry = new Entry(x_ActRelationshipEntry.HasComponent, false);Act commentAct = new Act(x_ActClassDocumentEntryAct.Act, x_DocumentActMood.Eventoccurrence);commentAct.TemplateId = LIST.CreateList(new II("2.16.840.1.113883."));commentAct.Code = new CD("48767-8", "2.16.840.1.113883.6.1") { DisplayName = "Annotation comment"};commentAct.Text = "This is a test";commentEntry.ClinicalStatement = commentAct;vitalSigns.Entry.Add(commentEntry);

Rendered in XML

Vital Signs Todo This is a test

Common RoadblocksDevelopers on the forums and via e-mail asked common questions:How do I ?Quite a bit of questions about how to represent a particular CDA template using EverestI have a jurisdiction that does X differently than the standard, how do I represent this?Lots of common questions were asked about how to represent jurisdictional constraints in EverestSome common themesJurisdiction has a custom schema for their extended attributesJurisdiction has a custom series of elements represented in a word documentJurisdiction had computable representations and Java renderings but no C# equivalentEverest had some way to address this:Writing extended classes which implemented the templates/custom bitsWriting scaffolding codeWe wanted a more automated way to do this.

SherpasThe name:Everest was named after tallest mountain in the worldHL7v3 was considered by many to be equally difficult to implementThis toolkit would help developers climb that mountain = SherpasWhat is it?A template processor that binds CDA templates to Everest RMIM classesA series of helper classes that handle formatting/validation (as extensions to Everest)Sherpas GenerationOptimizerGPMRC#.DLLPOCD_MT000040UV.MIF XML) DCOR template RMIM structuresParse (XML => Model) DCOR RMIM structures based on templateIdTodo:More testing, esp. on parsingComplex template operations (splicing, combining, resolving based on xpath, etc.)Complex template constraints (expressed as XPath) Huge demand to generate templates from XSDSome demand to generate Sherpas templates from MDHT definitionsQuestions?