Releases: MohawkMEDIC/everest
1.3.0
Preview Release of Everest 1.4 with Sherpas Framework
This release represents a community technology preview version of the MARC-HI Everest Framework 1.4. The official release of this preview is 1.3.0.
Changes / New Features
The following new features have been introduced in this version of Everest
- Microsoft Help Viewer files & Integration of help in Visual Studio 2010 and 2012
- Improved CodeDom Formatter
- Sherpas CDA Template Framework
- Improved formal constraint check mechanism
- Better handling of the SD datatype in the MARC.Everest core assembly.
- Sherpas Framework
- Sherpas is the name of the CDA templates framework for the MARC-HI Everest Framework. It is intended to allow the processing of DECOR and other CDA template descriptions into MARC-HI Everest helper classes. Using this framework it is possible to integrate documentation, formal constraints, value sets and fixed values into Everest classes.
A description and demonstration of Sherpas can be found here: http://youtu.be/p5oasVIQaNE
Please Note: The Sherpas framework is very experimental. It has very limited documentation and has undergone very little testing. It should be used for the purposes of evaluating CDA templates in Everest.
The Sherpas framework is used as follows:
- Create a CDA based Everest project using the 1.3.0 installation package
- Ensure that the MARC.Everest.Sherpas assembly is selected in the new project wizard
- Add a reference to the Sherpas template you wish to implement in your project (Found in the 'lib' folder of your install directory)
The following sample code illustrates how to use Sherpas to construct the MinimalCDADocument in the MARC.Everest.Sherpas.Templates.Sandbox.dll assembly and format it to the console:
// Construct CDA
MinimalCDAdocument document = new MinimalCDAdocument();
document.Component = new MinimalCDAdocument_Component();
document.Component.BodyChoice = new MinimalCDAdocument_Component_BodyChoice();
document.Component.BodyChoice.AddComponent(
new EKGImpressionSectionComponent(
new EKGImpressionSection(
"Test",
new SD(SD.CreateElement("table"))
)
)
);
// Create the new CDA formatter and REgister templates
ClinicalDocumentFormatter formatter = new ClinicalDocumentFormatter();
SherpasUtilities.RegisterTemplates(formatter);
// Format
formatter.Graph(Console.OpenStandardOutput(), document);
Console.ReadKey();
1.2.15
Maintenance release to 1.2 including following bug fixes:
- Fixed handling of xsi:nil
- Fixed handling of null flavored collections
- Generation of maven projects from gpmr Java renderer via --rimbapi-maven=true
- GPMR generates a series of isX methods to assist in determining type of choices
- GPMR C# class renderer generates classes that don't use invalid attributes for WACK apps
- Updated formatters to prefer System.Xml.XmlConvert over System.Convert
- Fixed bug with copying of JAR file from GPMR when generating GPMR Java outputs
- Java renderer now supports toString() methods and creation of Maven projects
- Updated RMIM Assemblies to contain an IfX where X is now the element name rather than type name
- Updated RMIM assemblies to carry a GetXTraversalName()
- Updated C# classes to appropriately format ED instances
- Added ability to suppress xsi:nil attributes via SuppressXsiNil flag
- Reorganized the CDA elements to correctly match the CDA xsd
- Fixed Everest.sln file on the installer so that it builds correctly
- Fixed casting of CE to CD
- Updated formatters to support appropriate Error generation
- Updated SXCM to be non-abstract. It appears that some CDA instances use pure SXCM instances in GTS
- Fixed some data type validation issues when R1 data types carry a null-flavor and are parsed
- Fixed names of elements in the ADXP (spelling mistake in delimiter)
- Updated CDAr2 MIF files to have correct traversal names
- Ordering of several elements in CDA documents
- Data type of effectiveTime in SubstanceAdministration
- Formatting and parsing of SXCM
- Generation of TypeMap members from GPMR
- Formatting of IVL can now contain the complete base type rather than a strict interval (i.e. can use a PQ in place of an IVL)
- Fixed processing of the IVL value property to support complex "value"
- Corrected ordering of CDA elements
- Fixed processing of SC value property
- Fixed processing of invalid dates. Following rules apply:
- IsInvalidDate will be set to true
- Value will carry the literal string value of the invalid date
- DateValue will carry no value
- A warning stating "Date value XXX is not a valid HL7 Date"
- Added missing functionality for parsing CS into CS
- Fixed TEL.URI validation routine related to relative URIs
- Fixed ED validation error when ED contains data and a reference.
- Correct emitting of XSI:TYPE attributes with namespaces
- Equals method fixes on ED and ST
- Corrected processing of MIF Version 2.1.7
- Updates to GPMR to support the generation of NL MIF files
- XmlIts1Formatter settings now includes SuppressNullEnforcement flag to suppress the default NullFlavor formatting behaviors
- XmlIts1Formatter settings now includes AlwaysCheckForOverrides which allows a derived class with a matching model name to parse/format without the need for xsi:type
- XmlIts1Formatter settings now includes SuppressNullEnforcement flag to suppress the default NullFlavor formatting behaviors
- XmlIts1Formatter settings now includes AlwaysCheckForOverrides which allows a derived class with a matching model name to parse/format without the need for xsi:type
- Update the broken QUQI_IN000003UV01 MIF and incorporated in NE2008
- Update the NullEnforcement behavior to behave appropriately when null flavored elements and XSI:NIL suppression is on
- Update the serialization of choices to include those whose base classes are in the choice list. This fixes the "UnsupportedChoiceResultDetail" error when serializing a choice containing an overridden class.
- Fixed validation of CV when nullflavors are used
- Added overridden class' properties to GPMR renderer via overloads
- Updated ordering on GPMR Java renderer
- Added support for rendering extended elements in RMIM classes
- Fixed test resources
- Corrected generating of xsi:nil and rendering on choice properties when suppression of nil and null enforcement is enabled
- Corrected formatting of GTS data type when clinical document architecture compatibility mode is enabled
- Updated validation of the CV data type
- Updated SemanticEquals method on several methods that were not correctly determining semantic equality.
- Updates to help files reflecting better documentation on some datatypes.
- Fixed missing gpmrvarsall.bat
1.0.4
Changes:
- Improved WCF Connectors
- Better support for App.Config structures
- Better support for accessing and generating SOAP headers
- Improved WCF Connectors
- Better support for App.Config structures
- Better support for accessing and generating SOAP headers
Bug Fixes:
- Formatter now emits proper xsi:Type attributes for overridden types
- DT R2 formatter now emits proper R2 type names
- Improved support for GPMR processing of constraint files
- Fixed validation problems with ENXP and ADXP classes
- Corrected C# RIMBAA renderer in GPMR to use appropriate casting
- Updated RMIM assemblies for NE2008 and NE2010 containing appropriate casting on constructors
- Fixed serialization issues with several Everest classes
- Fixed missing internaction documentation (business names only) in generated RMIM assemblies
- Fixed rendering issue with GPMR and structured vocabularies, namely some code systems and value sets were missing or missing concepts.
- Added parameter to GPMR to support the force rendering of partial vocabularies
- Fixed issue which caused formatting instances using an already used XmlStateReader to throw a NotSupportedChoiceResultDetail.
- Formatter now emits proper xsi:Type attributes for overridden types
DT R2 formatter now emits proper R2 type names - Improved support for GPMR processing of constraint files
- Fixed validation problems with ENXP and ADXP classes
- Corrected C# RIMBAA renderer in GPMR to use appropriate casting
- Updated RMIM assemblies for NE2008 and NE2010 containing appropriate casting on constructors
- Fixed issue when formatting / graphing RMIM assemblies which rely on a third assembly
- Fixed installer issue
- Fixed validation issue with ENXP and EN
This update to Everest 1.0 includes functionality for generating xsi:type attributes on RMIM structures. This is particularly useful when inheriting custom classes from the core RMIM class items. This functionality is used as follows:
Extending an existing RMIM class to add your attributes:
- Create the extended attribute
/// <summary>
/// My Component Extension
/// </summary>
[Structure(Name = "Component", Model = "POCD_MT000040JF", StructureType = StructureAttribute.StructureAttributeType.MessageType)]
public class MyComponent1 : MARC.Everest.RMIM.UV.CDAr2.POCD_MT000040UV.Component1 {
/// <summary>
/// My Property
/// </summary>
[Property(Name = "property", Conformance = PropertyAttribute.AttributeConformanceType.Optional, SortKey = 1, PropertyType = PropertyAttribute.AttributeAttributeType.Traversable)]
public ST MyProperty { get; set; }
}
- Then assign your class to the instance:
ClinicalDocument doc = new ClinicalDocument();
doc.ComponentOf = new MyComponent1() {
MyProperty = "Test!",
RealmCode = SET<CS<BindingRealm>>.CreateSET(BindingRealm.Canada)
};
- The formatted results should contain the new xsi:type
<componentof xsi:type="POCD_MT000040JF.Component">
<realmcode code="CA" />
<property language="en-US">Test!</property>
</componentof>