Title: SIPbased Medical Event Monitoring System
1SIP-based Medical Event Monitoring System
- Knarig Arabshian and Henning Schulzrinne
Department of Computer ScienceColumbia
University - hgs,knarig_at_cs.columbia.edu
- June 6, 2003
2Overview
- Basics of SIP (Session Initiation Protocol)
- Details of SIP event notification architecture
- Medical Logic Modules and SIP
- XML Messages and SIP
- Benefits
- Conclusions
3SIP-based Medical Event Monitoring System
- Medical industry transitioning to Internet-based
communication - SIP can work on a variety of devices
- Adopted as protocol of choice for third
generation wireless networks - Used for Internet conferencing, telephony,
presence, event notification and instant messaging
4What is SIP?
- The Session Initiation Protocol (SIP) is a
signaling protocol used for establishing sessions
in an IP network. - SIP is part of the IETF standards and is modeled
upon other Internet protocols such as SMTP
(Simple Mail Transfer Protocol for e-mail) and
HTTP (Hypertext Transfer Protocol for www) - SIP is also being used in Microsoft Messenger in
Windows XP - A session could be a simple two-way telephone
call or it could be a collaborative multi-media
conference session. - Different services are possible
- Internet telephony
- Instant Messaging with buddy lists
- Event notification
- Device control
5What is SIP?
- Two Components within SIP User Agent and the SIP
Network Server. - User Agent is the end system component for the
call - The User agent can be both a User Agent Client
(UAC) and a User Agent Server (UAS) - The client element initiates the calls and the
server element answers the calls. - SIP Server is the network device that handles the
signaling associated with multiple calls.
6What is SIP?
- Main function of the SIP servers is to provide
name resolution and user location - Caller is unlikely to know the IP address or host
name of the called party - Caller will dial an email-like address or a
telephone number associated with the called
party. - A SIP proxy server receives requests, determines
where to send these, and passes them onto the
next server (using next hop routing principals).
7Basic call setup
- E-mail like identifier ltsipalice_at_home.comgt
- Alices phone registers with home.com
- Bob dials alice_at_home.com Phone does DNS
REGISTER home.com SIP/2.0 To sipalice_at_home.com C
ontact sipalice_at_m2.home.com
Registrar
alice
office.com
DNS lookup sip.udp.home.com Resolve to
m2.home.com
m2.home.com
bob
home.com
alice_at_home.com gt alice_at_m2.home.com
8Basic call setup
- Phone sends INVITE acts as User Agent Client
- Server can proxy the call to current location
INVITE sipalice_at_m2.home.com To
sipalice_at_home.com From Bob ltsipbob_at_office.com
gt
INVITE sipalice_at_home.com To
sipalice_at_home.com From Bob ltsipbob_at_office.com
gt cIN IP4 128.59.19.60 maudio 8000 RTP/AVP 0
5 8
alice
office.com
m2.home.com
bob
home.com
Proxy
User agent client
9Basic call setup
- Alices phone rings acts as a User Agent Server
- When Alice picks up, call is accepted and bobs
phone sends ACK to complete the setup
SIP/2.0 180 Ringing
SIP/2.0 200 OK cIN IP4 135.180.144.32 maudio
9000 RTP/AVP 0 8
office.com
alice
pc4.home.com
m2.home.com
bob
home.com
Proxy
User agent server
10Basic call setup
- Encoded audio packets sent over RTP
office.com
alice
bob
home.com
11Basic call setup
- When either party hangs up BYE is sent
office.com
alice
BYE sipbob_at_office.com
bob
home.com
12Columbia SIP user agent (sipc)
- Media
- Audio, video, text, white board
- Screen sharing
- Shared web browsing
- Advanced
- Presence, instant messaging
- Conference control
- Emergency notification and handling
- Device control
13Subscribe/Notify
- SIP has also been extended to generate event
notifications and instant messages - Users subscribe to an event with the SUBSCRIBE
method and receive notifications via NOTIFY - This feature can be used for creating medical
event monitoring systems
14Subscribe Request
- Resembles that of a SIP INVITE
- Must have one Event header in the header field
which will specify the type of event it is
subscribing to - Must also contain an Expires header which
defines the duration of the subscription - Subscriptions to multiple events requires
multiple subscribe messages to be sent to the
notifier - To unsubscribe, it sends a SUBSCRIBE message with
the Expires field set to zero
15Subscribe Request
- Can contain optional message body in SUBSCRIBE
request - Further details of notification
- methods of alerting (alarm, IM Messages,
telephone calls) - Filtering of sub-events
- Standardized grammar to automate the processing
of the SUBSCRIBE request in the Notification
Server - If message body is not present then Subscriber
will expect the default method of alert
16Notify Request
- The Event header will indicate the type of
emergency notification it is - The message body of the NOTIFY message will
include specific instructions on the alert
methods. - Notification server receives the subscription,
adds the subscriber to the particular event list
and then generates NOTIFY requests accordingly
17SERVER (NOTIFIER)
CLIENT (SUBSCRIBER)
SUBSCRIBE sipalerts_at_domain.com SIP/2.0Event
heartmonitorExpires 86400 From
sipalice_at_example.comTo sipalerts_at_domain.com
SIP/2.0 202 Accepted From sipalice_at_example.com
Expires 86400
NOTIFY sipalerts_at_domain.com SIP/2.0Event
heartmonitorTo sipalice_at_example.comFrom
sipalerts_at_domain.com
18Medical Logic Modules (MLMs)
- Medical Logic Modules (MLMs) encode medical
knowledge which are used in decision-support
systems. - Sharing knowledge gives way to many obstacles.
- Typically medical institutions do not share the
same decision support systems. - Sharing knowledge across institutions,
coordinating local vocabularies and translating
the logic for automation is a strenuous process.
19Arden Syntax
- The Arden Syntax is a Medical Logic Module that
has been developed for the task of sharing
medical knowledge bases across many institutions. - Its main focus is on knowledge used in decision
support systems that can provide therapeutic
suggestions and alerts. - It is compiled and then run automatically to
generate advice where and when it is needed.
20Arden Syntax
- Contains three main sections maintenance,
library and knowledge. - Maintenance section
- contains management information such as title,
filename, author, etc. - Library section
- commenting section where the purpose of the MLM
is described.
21Arden Syntax
- Knowledge section contains few subsections
- type section--describes the way the MLM is to be
used. - data section--assigns local variables, which can
be lengthy database queries - evoke slot--contains the conditions under which
the MLM becomes active.
22Arden Syntax
- logic section--consists of the actual rule or
medical condition to test for - action sectiondescribes what is to be done when
the condition is true.
23knowledge type data-driven data /
absolute neutrophile count / anc read last
2 from (query for ANC where it occurred
within the past 1 week) pt_taking_tms
read exist query for TMS order evoke on
storage of ANC logic if pt_taking_tms
/1/ and last anc lt 1000 and decrease of
anc gt 0 then conclude true else
conclude false action store "Caution The
patient's relative granulocytopenia may be
exacerbated by trimethoprim/sulfamethoxazole
."
In the data slot, the local variable "anc" is
assigned the patient's last 2 ANC's within the
past week. "pt_taking_tms" is assigned true or
false depending on whether the patient is taking
trimethoprim and sulfamethoxazole (TMS).
The evoke slot specifies that this MLM is evoked
whenever an absolute neutrophile count (ANC) is
stored
- The logic slot says that if the patient is taking
TMS and if the last ANC is less than 1000 and if
the ANC is decreasing, then execute the action
slot, which sends the appropriate message.
24Arden Syntax and SIP
- Two possible ways of using Arden Syntax with SIP
- Users subscribe to Arden Syntax rules already
implemented - Users subscribe to Arden Syntax rules dynamically
25Arden Syntax and SIP
- Users can subscribe to an Arden Syntax rule
already implemented in a server. - Participants within the monitoring system are
aware of the Arden Syntax rules within each
institution. - SIP SUBSCRIBE is sent with the message body
containing the name of the rule being subscribed
to - The server executes this rule within its system
and notifies the subscriber whenever that
particular rule becomes true.
26Arden Syntax and SIP
- Arden Syntax rules dynamically added within a
servers knowledge base for monitoring purposes. - In this example, a subscriber inserts the rule
itself within the SUBSCRIBE message body. - The server receives the SUBSCRIBE message and
extracts the message body, compiles the syntax
and then executes the logic within the syntax. - The server will monitor the database and whenever
the syntax becomes true, it will invoke the
action specified within the rule via a SIP NOTIFY
message.
27Arden Syntax and SIP
- Drawbacks of this method
- Since institutions each have their own custom
databases, adding a dynamic syntax rule may
result in incompatibility with the database that
is being queried to. - Unless the subscriber knows the exact query
language of the remote servers database, this
will not work.
28XML Messages and SIP
- XML (Extensible Markup Language) is
metalanguage, which is a language used for
describing other languages - An XML schema is an XML language that defines
various data types found in the XML document - Popular in web-related programming
- Good choice for interoperability within many
different types of institutional systems.
29XML Messages and SIP
- XML messages may be used for representing
- database query
- a filter for events subscribed to
- specification of alerting methods
- performing remote procedure calls.
- XQL (XML Query Language)-- general-purpose query
language that is being standardized within the
W3C - Used to query a remote database assuming a common
XML schema is shared - XQL document is processed automatically within
the notification server by interpreting the XQL
document and translating it to its own database
query language.
30Bluetooth and SIP
- Bluetooth is a specification that uses low-power
radio signals to link phones and computers - Use of Bluetooth is being considered in the
medical industry - Companies such as Colorado MEDtech and Code Blue
Communications Inc. are developing
bluetooth-enabled medical devices. - These devices
- provide mobile access to information and medical
data acquisition. - enables devices to communicate with each other
wirelessly. - Bluetooth can also be used for location-based
services such as detecting the doctors
whereabouts or for establishing ubiquitous
systems in the hospital environment.
315)Server calls house phone near the doctor
1)Doctor subscribes to server to
monitor patients heart
2)Heart monitor transmits signals wirelessly to
the server
3)Server process data that results in a notify
being sent to the doctors pager
4)Doctor cant be reached so doctors location is
identified via his bluetooth-enabled PDA and
patients data is also transmitted to the PDA
Bluetooth access point
Location information sent
Bluetooth access point
32Benefits
- Device Neutrality
- There are likely to be range of SIP-based end
systems, ranging from IP telephones, 3G wireless
handsets, IM/presence software to embedded
devices. - Event monitoring system can be easily extended to
new devices - More Information and Automated Action
- Video conferencing, text messaging
- Device control which causes flashing lights and
aides the hearing-impaired
33Conclusion
- SIP is a signaling protocol that supports
SUBSCRIBE/NOTIFY methods - SIP-based medical event monitoring system can be
implemented using MLMs or XML messages - SIP provides a flexible and robust event
notification architecture in conjunction with
other wireless protocols
34Contacts
- Knarig Arabshian (knarig_at_cs.columbia.edu)
- Dr. Henning Schulzrinne (hgs_at_cs.columbia.edu)