120 likes | 221 Views
A Short Intro to MIF. Hans Jonkers. Philips Research. March 11, 2010. Contents. MIF: What is it? Who is it for? How is it defined? How can you use it? The way we used it. Browsing through the MIF StaticModel VocabularyModel DataTypeModelLibrary …. MIF: What Is It? (1).
E N D
A Short Intro to MIF Hans Jonkers Philips Research March 11, 2010
Contents MIF: • What is it? • Who is it for? • How is it defined? • How can you use it? • The way we used it. • Browsing through the MIF • StaticModel • VocabularyModel • DataTypeModelLibrary • …
MIF: What Is It? (1) • MIF = Model Interchange Format Can be viewed in different ways: • As a set of XML formats used to support the storage and exchange of HL7 version 3 artefacts as part of the HL7 Development Framework. • As a (meta)metamodel, i.e. as a metalanguagethat is used to define the HL7 version 3 standard and its constituent artefacts. • The definition of the MIF is a task of the HL7 Tooling Working Group. • MIF 2 definition is not stable yet; latest version can be downloaded from http://gforge.hl7.org/gf/project/mif-schemas/frs/.
MIF: What Is It? (2) HL7 Version 3 artefacts that are defined in MIF: • Analysis related artefacts such as • domain analysis model, story board, glossary • Static model related artefacts, such as • static model, derived static model, serialized static model • Dynamic model related artefacts, such as • interaction, trigger event, application role • Vocabulary related artefacts, such as • vocabulary model, code system, code system supplement • Data type related artefacts, such as • data type model library • Conformance related artefacts, such as • conformance profile, interaction profile • Publication related artefacts, such as • publication, structured document, freehand document
MIF: Who Is It For? "No human should ever see MIF, except for programmers, and those aren't human anyway." Grahame Grieve (adapted from Tim Berners Lee). • MIF is meant for tool smiths and model-engineers, because it deals with meta-objectsthat are used to build tools and models. • Application programmers use these tools and the code generated from these meta-objects to build applications. So, it’s only a special breed of programmers that should ever see MIF …
MIF: How Is It Defined? (1) By a set of XML schemas (+ Schematron):
MIF: How Is It Defined? (2) • The XML schemas define the MIF language constructs as types, with the meaning of the types explained informally in annotations:
MIF: How Can You Use It? What you need: • A way to read MIF files. • Use existing tooling (Eclipse) or generate it from the MIF schemas • A proper understanding of the MIF constructs. • Unfortunately there is not much documentation … • It helps to read and process MIF instances in terms of strongly-typed classes generated from the MIF schemas. • Tools such as xsd.exe (for .NET) generate such classes.
MIF: How We Used It (1) • MOM object model of MIF was generated from the MIF schemas, including read and write methods. • MIF files are read as instances of the MIF model and mapped to object models. • Applications are built using C# classes generated from the object models.
MIF: How We Used It (2) Object models generated from MIF: