300 likes | 397 Views
Proposed XML Schema for Clinical Decision Support System Output Messages. Andy Nguyen, B.S. R. Matthew Sailors, Ph.D. Introduction. This XML Schema is based on Document Type Definition (DTD) originally proposed by Motorola at HL7 Spring Working Group Meeting in May 25-26, 2000.
E N D
Proposed XML Schema for Clinical Decision Support System Output Messages Andy Nguyen, B.S. R. Matthew Sailors, Ph.D.
Introduction • This XML Schema is based on Document Type Definition (DTD) originally proposed by Motorola at HL7 Spring Working Group Meeting in May 25-26, 2000. • The scope of this proposed message is broad; it includes not only the information provided by the clinical content originating system, but also information about the subsequent processing and notification activities provided by the notification system. • This proposal is presented as a XML Schema.
Overview • The intent of this document is to propose a general computerized decision support system message. • System detects • abnormal or problematic condition • Provider must be notified in a timely manner • Delivery of clinical alerts to the appropriate providers • role of the notification system • CDSS communicates to the notification system • content to be delivered • any additional directives regarding the resulting notifications • Information sent from the CDSS to the notification system • clinical content • patient or cohort • timestamp of content generation • urgency • relevant context information • conclusions • clinical recommendations • initial notification recipient(s)
communique • Content: complex • Children: • content • distribution.list • notifier.submission • notifier.acknowledgement • delivery • Root element for a general computerized decision support system message
communique/content • minOcc: 1 • maxOcc: unbounded • Content: complex • Children: • content.id • content.originator • date.time, patient • urgency • body • Attributes • Name: type • Type: xs:string • Use: optional
communique/distribution.list • minOcc: 0 • maxOcc: 1 • Content: complex • Children: distribution
communique/notifier.submission • minOcc: 0 • maxOcc: 1 • Content: complex • Children: notifier, date.time
communique/notifier.acknowledgement • minOcc: 0 • maxOcc: 1 • Content: complex • Children: notifier, date.time
communique/delivery • minOcc: 0 • maxOcc: 1 • Content: complex • Children: recipient.processing, notification
communique/content/content.originator • minOcc: 0 • maxOcc: 1 • Content: complex • Children: • system • address • source
communique/content/patient • minOcc: 0 • maxOcc: unbounded • Content: complex • Children: • patient.id • birth.date • gender • name • race • Attributes: • Name: type • Type: xs:string • Use: optional
communique/content/body • minOcc: 1 • maxOcc: unbounded • Content: complex • Children: • subject • context • conclusion • recommendation • explanation
communique/distribution.list/distribution • minOcc: 1 • maxOcc: unbounded • Content: complex • Children: • distribution.id • recipient • security • workflow
communique/notifier.submissioncommunique/notifier.acknowledgementcommunique/notifier.submissioncommunique/notifier.acknowledgement • minOcc: 0 • maxOcc: 1 • Content: complex • Children • notifier • date.time
communique/delivery/recipient.processing • minOcc: 0 • maxOcc: unbounded • Content: complex • Children • reference.id • originating.reference.id • distribution.id • date.time • input • outcome • Attributes • Name: type • Type: xs:string • Use: optional
communique/delivery/notification • minOcc: 0 • maxOcc: unbounded • Content: complex • Children • reference.id • originating.reference.id • distribution.id • recipient • password • security • workflow • transactions
communique/delivery/notification/transactions • minOcc: 0 • maxOcc: 1 • Content: complex • Children: • submission • acknowledgement • (escalation, • forwarding, • or closure)
complexType securityType • Children: • encryption.required • authentication.required • Used by elements: • communique/distribution.list/distribution/security • communique/delivery/notification/security
complexType notifierType • Children: • system • address • Used by elements: • communique/notifier.submission/notifier • communique/notifier.acknowledgement/notifier
complexType workflowType • Children: • closure.required • forwarding.enabled • coverage.required • timers • Used by elements: • communique/distribution.list/distribution/workflow • communique/delivery/notification/workflow
complexType deviceType • Children: • class • address • Used by elements: • communique/delivery/notification/transactions/submission/device • communique/delivery/notification/transactions/acknowledgement/device • communique/delivery/notification/transactions/forwarding/device • communique/delivery/notification/transactions/closure/device
complexType recipientType • Children: • Name • ID • Type • Used by elements: • communique/distribution.list/distribution/recipient • communique/delivery/recipient.processing/input/recipient • communique/delivery/recipient.processing/outcome/recipient • communique/delivery/notification/recipient • communique/delivery/notification/transactions/escalation/recipient • communique/delivery/notification/transactions/forwarding/recipient
Sample Message Cont. • <?xml version="1.0" encoding="UTF-8"?> • <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> • <communique> • <!-- Element: content --> • <!-- --> • <!-- Content: subelements filled by originator --> • <!-- --> • <content type="DSS output"> • <content.id>26748915</content.id> • <content.originator> • <system>Some CDSS System</system> • <address>248.14.60.21</address> • <source type="MLM" validation="production">glucose_low</source> • </content.originator> • <date.time type="now">1999-09-30T12:45:30</date.time> • <patient type="person"> • <patient.id type="MRN">3491782904</patient.id> • <birth.date>1954-04-14</birth.date> • <gender>male</gender> • <name> • <family>Hernandez</family> • <given>Pedro</given> • <middle>J</middle> • </name> • <race>Hispanic</race> • </patient> • <urgency upper.limit="10" lower.limit="0">8</urgency> • <body> • <subject>Panic Lab Result</subject> • <context>Current value 35.0 mg/dL</context> • <context>Previous value 60.0 mg/dL</context> • <context>Patient is insulin dependent</context> • <conclusion>Glucose level has significantly dropped</conclusion> • <recommendation> • <instruction>Select treatment:</instruction> • <choices type="k of n"> • <choice id="2375">Oral glucose?</choice> • <choice id="4726">Orange juice?</choice> • <choice id="3385">Candy bar?</choice> • <choice id="1002">50% dextrose intravenous?</choice> • </choices> • </recommendation> • <explanation position="support">http://my.webmd.com/content/dmk/dmk_article_56150 • </explanation> • </body> • </content>
Sample Message Cont. • <!-- Element: distribution.list --> • <!-- --> • <!-- Content: subelements filled by originator --> • <!-- --> • <distribution.list> • <distribution> • <distribution.id>456920</distribution.id> • <recipient type="provider">Dr. Vaught</recipient> • <security> • <encryption.required>true</encryption.required> • <authentication.required>true</authentication.required> • </security> • <workflow> • <closure.required>true</closure.required> • <forwarding.enabled>true</forwarding.enabled> • <coverage.required>true</coverage.required> • <timers> • <timeout type="submission.ack">300</timeout> • <timeout type="delivery.ack">600</timeout> • <timeout type="display.ack">900</timeout> • <timeout type="closure.ack">1200</timeout> • </timers> • </workflow> • </distribution> • </distribution.list> • <!-- Element: notifier.submission --> • <!-- --> • <!-- Content: subelements filled by originator --> • <!-- --> • <notifier.submission> • <notifier> • <system>DocLink</system> • <address>236.12.64.10</address> • </notifier> • <date.time>1999-09-30T12:45:32</date.time> • </notifier.submission>
Sample Message Cont. • <!-- Element: notifier.acknowledgement --> • <!-- --> • <!-- Content: subelements filled by notification system --> • <!-- --> • <notifier.acknowledgement> • <notifier> • <system>DocLink</system> • </notifier> • <date.time>1999-09-30T12:45:32</date.time> • </notifier.acknowledgement> • <!-- Element: delivery --> • <!-- --> • <!-- Content: subelements filled by notification system --> • <!-- --> • <delivery> • <!-- Element: recipient.processing --> • <!-- --> • <!-- Content: subelements filled by notification system --> • <!-- --> • <!-- Comment: determine covering provider for Vaught --> • <!-- --> • <recipient.processing type="coverage"> • <reference.id>926710</reference.id> • <distribution.id>456920</distribution.id> • <date.time>1999-09-30T12:45:47</date.time> • <input> • <recipient type="provider">Dr. Vaught</recipient> • </input> • <outcome> • <recipient type="provider">Dr. Massey</recipient> • </outcome> • </recipient.processing>
Sample Message Cont. • <!-- Element: notification --> • <!-- --> • <!-- Content: subelements filled by notification system --> • <!-- --> • <!-- Comment: notification to Massey with resulting --> • <!-- escalation --> • <!-- --> • <notification> • <reference.id>745789</reference.id> • <originating.reference.id>926710</originating.reference.id> • <distribution.id>456920</distribution.id> • <recipient type="provider">Dr. Massey</recipient> • <password>h73f89s</password> • <security> • <encryption.required>true</encryption.required> • <authentication.required>true</authentication.required> • </security> • <workflow> • <closure.required>true</closure.required> • <forwarding.enabled>true</forwarding.enabled> • <timers> • <timeout type="submission.ack">300</timeout> • <timeout type="delivery.ack">600</timeout> • <timeout type="display.ack">900</timeout> • <timeout type="closure.ack">1200</timeout> • </timers> • </workflow> • <transactions> • <submission> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">2401503</address> • </device> • <date.time>1999-09-30T12:46:07</date.time> • </submission>
Sample Message Cont. • <acknowledgement type="submission"> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">2401503</address> • </device> • <date.time>1999-09-30T12:47:08</date.time> • </acknowledgement> • <acknowledgement type="delivery"> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">2401503</address> • </device> • <date.time>1999-09-30T12:50:45</date.time> • </acknowledgement> • <acknowledgement type="display"> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">2401503</address> • </device> • <date.time>1999-09-30T12:55:15</date.time> • </acknowledgement> • <escalation> • <date.time>1999-09-30T13:06:08</date.time> • <recipient type="role">GenMed3_MedicalDirector</recipient> • <reason>Closure time-out</reason> • </escalation> • </transactions> • </notification> • <!-- Element: recipient.processing --> • <!-- --> • <!-- Content: subelements filled by notification system --> • <!-- --> • <!-- Comment: resolution of GenMed3_MedicalDirector --> • <!-- --> • <recipient.processing type="role"> • <reference.id>561825</reference.id> • <originating.reference.id>745789</originating.reference.id> • <distribution.id>456920</distribution.id> • <date.time>1999-09-30T13:06:47</date.time> • <input> • <recipient type="role">GenMed3_MedicalDirector</recipient> • </input> • <outcome> • <recipient type="provider">Dr. Brunner</recipient> • </outcome> • </recipient.processing>
Sample Message Cont. • <!-- Element: notification --> • <!-- --> • <!-- Content: subelements filled by notification system --> • <!-- --> • <!-- Comment: escalated notification to Brunner --> • <!-- with closure --> • <!-- --> • <notification> • <reference.id>339621</reference.id> • <originating.reference.id>561825</originating.reference.id> • <distribution.id>456920</distribution.id> • <recipient type="provider">Dr. Brunner</recipient> • <password>8378h2h</password> • <security> • <encryption.required>true</encryption.required> • <authentication.required>true</authentication.required> • </security> • <workflow> • <closure.required>true</closure.required> • <forwarding.enabled>true</forwarding.enabled> • <timers> • <timeout type="submission.ack">300</timeout> • <timeout type="delivery.ack">600</timeout> • <timeout type="display.ack">720</timeout> • <timeout type="closure.ack">840</timeout> • </timers> • </workflow> • <transactions> • <submission> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">9845934</address> • </device> • <date.time>1999-09-30T13:13:08</date.time> • </submission>
Sample Message Cont. • <acknowledgement type="submission"> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">9845934</address> • </device> • <date.time>1999-09-30T13:14:42</date.time> • </acknowledgement> • <acknowledgement type="delivery"> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">9845934</address> • </device> • <date.time>1999-09-30T13:15:02</date.time> • </acknowledgement> • <acknowledgement type="display"> • <device> • <class>2-way pager</class> • <address carrier="SkyTel">9845934</address> • </device> • <date.time>1999-09-30T13:17:34</date.time> • </acknowledgement> • <closure> • <device> • <class>IVR</class> • <address carrier="PSTN">63617</address> • </device> • <date.time>1999-09-30T13:20:29</date.time> • <selected.choices> • <choice id="4726">Orange juice?</choice> • </selected.choices> • </closure> • </transactions> • </notification> • </delivery> • </communique>