1 Proposed XML Schema for Clinical Decision Support System Output Messages Andy Nguyen, B.S. R....

Post on 05-Jan-2016

212 views 0 download

Transcript of 1 Proposed XML Schema for Clinical Decision Support System Output Messages Andy Nguyen, B.S. R....

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>