Using Messaging Workbench for National Case Reporting: Status Update, Challenges, Lessons Learned Margaret Marshburn, RN, BSN, MSHS PHIN Messaging & Vocabulary Standards Division of Informatics Shared Services National Center for Public Health Informatics
Agenda Introduction Planning for Change Challenges Current Status Lessons Learned Questions?
Message Implementation Package A group of artifacts that together constitute all the information necessary to implement a message Implementation Package Messaging Use Case Message Structural Spec (or Profile) Message Mapping Guide Messaging Vocabulary
A Message Profile is a Contract for Implementation Specifies implementation constraints Must be compliant with the HL7 standard Describes the static structure of the message: Segments in use Fields in use Implied data validation rules Reduces interface analysis time by clarifying interpretation of the standard
Agenda Introduction Planning for Change Challenges Current Status Lessons Learned Questions?
Specifications/Profiles in use for National Case Reporting National Condition Reporting Message National Notification Associated Laboratory Report Message (optional) National Notification Associated Vaccine Report Message (optional) PHIN Batch Messaging Profile (optional)
Functions of Messaging Workbench (MWB) Provides standard HL7 message definitions Provides user interface for building profiles Facilitates reuse of profiles Allows registration of profiles with HL7 Creates XML and HTML reports
Messaging Workbench
MWB – Load Message Structure
MWB – Standard Message Definitions
MWB – Datatype Maintenance
MWB – Library Maintenance
MWB – Table Maintenance
MWB – Profile Submission
MWB Development Activities Created the following MWB files: PHIN Datatype library PHIN Table Library PHIN Base Segment Library PHIN Demographic Segment Library PHIN Clinical Segment library Created macros to facilitate HTML import to Word Changed the stylesheet (.xsl) for report presentation Documented instructions for library management
Agenda Introduction Planning for Change Challenges Current Status Lessons Learned Questions?
Messaging Team Experience Free training classes Not well documented Not intuitive Often need to revisit the basic building blocks in order to make changes Defects in certain functionality MWB output is segment attribute tables Requires a technical writer Much more time consuming
MWB Segment Detail Format
Legacy Segment Detail Format
MWB XML Profile <?xml version="1.0" encoding="UTF-8"?> <Specification SpecName="PHIN National Case Notification Profile" OrgName="CDC NCPHI" HL7Version="2.5" SpecVersion="1.7" Status="Draft" ConformanceType="Constrainable" Role="Sender" HL7OID="" ProcRule="HL7"> <Conformance AccAck="NE" AppAck="AL" StaticID="{ConfSig(1) CDC NCPHI(1) null(0) static-profile(1) null(0) null(0) null(0) (1) 1.7(1) Sender(1)}" DynamicID="{ConfSig(1) CDC NCPHI(1) null(0) dynamic-profile(2) AccNE_AppAL(2) defer_mode_ack(1)}" MsgAckMode="Deferred" QueryStatus="Event" QueryMode="Non Query"></Conformance><Encodings><Encoding>ER7</Encoding></Encodings> <Message MsgType="ORU" EventType="R01" OrderControl="N/A" EventDesc="" Structure="MSH,PID,OBR,OBX" MsgStructID="ORU_R01"> <Segment Name="MSH" Description="Message Header - The Message Header Segment (MSH) contains information describing how to parse and process the message. This includes identification of message delimiters, sender, receiver, message type, timestamp, etc." Optionality="R" Sequence="1" Repeatable="False" Min="1" Max="1" Reference="" Predicate="" > <Field Name="Field Separator" Description="" Optionality="R" Sequence="1" Repeatable="False" Min="1" Max="1" ItemNo="00001" Datatype="ST" Length="1" Reference="2.15.9.1" Predicate="" > <ImpNote> <Paragraph>The supported value is |, ASCII (124).</Paragraph> </ImpNote> <HL7Definition> <Paragraph>Character to be used as the field</Paragraph> <Paragraph>separator for the rest of the message.</Paragraph> </HL7Definition> <DataValues ExValue="|" Regex="^[\x20-\x7e]{1,199}$"/> </Field> <Field Name="Encoding Characters" Description="" Optionality="R" Sequence="2" Repeatable="False" Min="1" Max="1" ItemNo="00002" Datatype="ST" Length="4" Reference="2.15.9.2" Predicate="" > <Paragraph>Four characters, always appearing in the</Paragraph> <Paragraph>same order: |^~\&|.</Paragraph> <DataValues ExValue="^~\&" Regex="^[\x20-\x7e]{1,199}$"/> <Field Name="Sending Application" Description="" Optionality="R" Sequence="3" Repeatable="False" Min="1" Max="1" ItemNo="00003" Datatype="HD" Length="224" Reference="2.15.9.3" Predicate="" > <Paragraph>Field used to uniquely identify the sending</Paragraph> <Paragraph>application for messaging purposes. It</Paragraph> <Paragraph>must contain an OID that represents the</Paragraph> <Paragraph>sending application instance.</Paragraph>
Agenda Introduction Planning for Change Challenges Current Status Lessons Learned Questions?
Current Status Back to old method of producing specs Still have the Implementation Package: Messaging Use Cases Message Mapping Guide Messaging Vocabulary Message Profile/Structural Specifications
Agenda Introduction Planning for Change Challenges Current Status Lessons Learned/Questions
Lessons Learned “Change is hard work” Need more resources Need more support from outside groups
Questions?