Upload
mervyn-stokes
View
213
Download
0
Embed Size (px)
Citation preview
1
Proposed XML Schema for Clinical Decision Support System Output Messages
Andy Nguyen, B.S.R. Matthew Sailors, Ph.D.
2
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.
3
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)
4
communique
• Content: complex
• Children: 1. content2. distribution.list3. notifier.submission4. notifier.acknowledgement5. delivery
• Root element for a general computerized decision support system message
5
communique/content
• minOcc: 1
• maxOcc: unbounded
• Content: complex
• Children: 1. content.id2. content.originator3. date.time, patient4. urgency5. body
• Attributes• Name: type• Type: xs:string• Use: optional
6
communique/distribution.list
• minOcc: 0
• maxOcc: 1
• Content: complex
• Children: distribution
7
communique/notifier.submission
1. minOcc: 0
2. maxOcc: 1
3. Content: complex
4. Children: notifier, date.time
8
communique/notifier.acknowledgement
1. minOcc: 0
2. maxOcc: 1
3. Content: complex
4. Children: notifier, date.time
9
communique/delivery
1. minOcc: 0
2. maxOcc: 1
3. Content: complex
4. Children: recipient.processing, notification
10
communique/content/content.originator
• minOcc: 0
• maxOcc: 1
• Content: complex
• Children: • system• address• source
11
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
12
communique/content/body
• minOcc: 1
• maxOcc: unbounded
• Content: complex
• Children: • subject• context• conclusion• recommendation• explanation
13
communique/distribution.list/distribution
• minOcc: 1
• maxOcc: unbounded
• Content: complex
• Children:• distribution.id• recipient• security• workflow
14
communique/notifier.submissioncommunique/
notifier.acknowledgement
• minOcc: 0
• maxOcc: 1
• Content: complex
• Children• notifier• date.time
15
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
16
communique/delivery/notification
• minOcc: 0
• maxOcc: unbounded
• Content: complex
• Children• reference.id• originating.reference.id• distribution.id• recipient• password• security• workflow• transactions
17
communique/delivery/notification/transactions
• minOcc: 0
• maxOcc: 1
• Content: complex
• Children:• submission• acknowledgement• (escalation, forwarding, or closure)
18
complexType securityType
1. Children: • encryption.required• authentication.required
2. Used by elements:• communique/distribution.list/distribution/security • communique/delivery/notification/security
19
complexType notifierType
1. Children:• system• address
2. Used by elements:• communique/notifier.submission/notifier • communique/notifier.acknowledgement/notifier
20
complexType workflowType
1. Children: • closure.required• forwarding.enabled• coverage.required• timers
2. Used by elements:• communique/distribution.list/distribution/workflow • communique/delivery/notification/workflow
21
complexType deviceType
1. Children: • class• address
2. 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
22
complexType recipientType
1. Children: • Name• ID• Type
2. 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
23
Sample Message CDSS generates alert
Distribution established(target: Dr. Vaught)
Dr. Vaught unavailableCoverage established(target: Dr. Massey)
Notification sent to Dr. Massey
Role resolved(target: Dr. Brunner)
Notification escalated(target: GenMed3_MedDirector)
Alert closed by Dr. Brunner
Notification sent to Dr. Brunner
CDSS generates alert
Distribution established(target: Dr. Vaught)
Dr. Vaught unavailableCoverage established(target: Dr. Massey)
Notification sent to Dr. Massey
Role resolved(target: Dr. Brunner)
Notification escalated(target: GenMed3_MedDirector)
Alert closed by Dr. Brunner
Notification sent to Dr. Brunner
24
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>
25
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>
26
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>
27
<!-- 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.
28
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>
29
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>
30
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>