SECS Messaging HSVONEP Edge Device (simulator)

The HSVO Simulator
Environment Control
Specification (SECS)
Rachel Ellaway1, David Topps2
1Northern
Ontario School of Medicine,
2University of Calgary
MedBiquitous 2012
Conflict of interest
I have no involvement with industry that
creates a conflict of interest to disclose
with respect to this workshop
What’s the problem?
• Simulation devices are unitary,
unconnected, perhaps unconnectable to
each other and to other technologies
• At most there is some connectivity through
vendor tracking systems
• Limited ROI on simulator tech
• Limited applicability and scope of use
• Problems amplified in distributed medical
education programs
HSVO
• NEP: Network enabled platform
• Connecting heterogeneous devices:
virtual patients (OL),
mannequins (Laerdal SimMan 3G),
light fields (virtualised cameras),
3D visualization (RSV and Volseg),
multiple data sources (CMA, Medline)
• Integrated NEP connects and controls devices
(physical, online, distributed, helper) both for
scenarios and sessions
Architecture
edge device
Architecture
activity
activity
activity
edge device
activity
activity
activity
Architecture
activity
activity
activity
bus interface
edge device
activity
activity
activity
HSVONEP
Architecture
HSVONEP
What goes over the wires?
• HSVO Simulator Environment Control
Specification (SECS) – using XML
SECS Messaging
Bus Interface
Edge
Device
(simulator)
HSVONEP
SECS
messages
devicespecific
messages
Concepts
• Activity: a configuration of an edge device that
provides discrete user or data interactions.
• HSVONEP: the core authoring and runtime
controller and router
• Scenario: a template defining the workflow with
edge devices and the transitions from one
device to another.
• Session: an instance of a scenario that adds
timing and specific users. One scenario can be
used to create multiple sessions.
Scenario Rules
• HSVONEP holds the scenario
specification as a set of rules
• Use these devices and these
activities at each device
• Start with this, end with that
• If this happens then change
devices/actions/parameters
SECS Actions
Message Flow
Message Action(s)
Initializing a Session
authenticate
acknowledge
load
Running a Session
start
pause
resume
getStatus
reportStatus
setParameter
stop
endSession
Session Independent
getProfile
reportProfile
load
• HSVONEP tells a service to load certain
configuration data for an activity. The service
waits for a “start” message before it starts
running the activity.
<message action=”load” ID=”3478”
sessionID=“123”>
<service ID=”2” activityID=”9”
serviceUserID=”rellaway”/>
</message>
start
• HSVONEP tells a service it to start running its
activity
<message action=”start” ID=”3453”
sessionID=“123-514-001”>
<service ID=”2” activityID=”9”
serviceUserID=”rellaway”/>
</message>
pause
• HSVONEP tells a specified service to stop
playing its activity. The activity remains paused
until it receives a “resume” action.
<message action=”pause” ID=”6756”
sessionID=“123”>
<service ID=”1” activityID=”981”
serviceUserID=”rellaway”/>
</message>
resume
• HSVONEP tells a service to resume its activity
following a “pause” action.
<message action=”resume” ID=”6759”
sessionID=“123”>
<service ID=”2 activityID=”9”
serviceUserID=”rellaway”/>
</message>
stop
• HSVONEP tells a service telling it to stop.
<message action=”stop” ID=”” sessionID=””>
<service ID=”” activityID=”” serviceUserID=””/>
</message>
<message action=”stop” ID=”534” sessionID=“123”>
<service ID=”2” activityID=”9” serviceUserID=”rell”/>
</message>
getStatus
• HSVONEP requests a “reportStatus” message
outlining a service’s current state within the
session.
<message action=”getStatus” ID=”4565”
sessionID=“123”>
<service ID=”1” activityID=”981”
serviceUserID=”rell”/>
</message>
reportStatus
• A service tells HSVONEP what it’s doing
including listing available parameters and their
current values within a specified session
context.
<message action=”reportStatus” sessionID=“123”>
<service ID=”1” activityID=”981”
serviceUserID=”re”>
<activityParameters>
<activityParameter ID=”1” value=”6”/>
<activityParameter ID=”2” value=”144”/>
</activityParameters>
</session>
</message
setParameter
• HSVONEP tells a service instructing it to change
one or more variables in an activity.
<message action=”setParameter” ID=”7698”
sessionID=“123”>
<service ID=”1” activityID=”981”
serviceUserID=””>
<activityParameters>
<activityParameter ID=”1” value=”1”/>
<activityParameter ID=”2” value=”46”/>
</activityParameters>
</service>
</message>
endSession
• HSVONEP tells all services in the same session
to unload parameters, release licenses and
resources, and to drop all threads.
<message action=”endSession” ID=”4554”
sessionID=“123-514-001”/>
getProfile
• HSVONEP tells a service to respond with a
“reportStatus” message outlining its current
state independent of a session.
<message action=”getProfile” serviceID=”43”
/>
reportProfile
• A service tells HSVONEP what it can do listing
available activities and their parameters in
response to a “reportProfile” message.
<message action=”reportProfile” serviceID=”43” >
<activity ID=“64”>
<activityLabel>Shock</activityLabel>
<activityParameters>
<activityParameter ID=”17” value=”6”/>
</activityParameters>
</activity>
</message
Put it all together
Scenario specifies what happens
HSVONEP controls how this is run by sending
SECS messages:
• Devices 1 and 2 load (D1 and D2)
• D1 starts
• An event triggers a rule that pauses D1 and
starts D2
• Another event triggers a rule that pauses
D2, switches back to D1 and syncs their
data
Use cases
• Integrate onscreen and physical sims
• Sync 2 or more mannequins
• Run integrated sim activities over multiple
sites
• Connect alternative helpers such as
physiological algorithms to sims
• Track and feedback on multi-sim
performance
• Open model for experimentation and
discovery
SECS in context
•
•
•
•
•
Simple, device agnostic
Open specification
But simulation integration still in R&D
Adoption path unclear
IEEE model more complex but has
more momentum including being a
standard
• Lessons from RSS, CC etc?
Sim Challenge
And it’s a big but
• Almost no simulators really ready for this (lovely)
architecture
• SimMan 3G most open and can support only a
small part of the SECS spec
• OpenLabyrinth support but a hack – asymmetry
and non-orthogonality with other devices
• HSVO resorted to VNC solutions - nasty and
unaesthetic but much improved functionality
• What will simulation really interoperability look
like?
• Is beauty truth?
The HSVO Simulator
Environment Control
Specification (SECS)
Rachel Ellaway1, David Topps2
1Northern
Ontario School of Medicine,
2University of Calgary
MedBiquitous 2012