saphire - d7.2.1 - METU - Software Research and Development Center

mexicanmorningΔιαχείριση Δεδομένων

16 Δεκ 2012 (πριν από 4 χρόνια και 11 μήνες)

414 εμφανίσεις

IST
-
27074 SAPHIRE

D4.1.1

1






IST
-

27074 SA
PHIRE

“Intelligent Healthcare Monitoring based on a
Semantic Interoperability Platform”


SPECIFIC TARGETED RESEARCH PROJECT


PRIORITY
2.4.13 Strengthening the Integration of the ICT research effort in an
Enlarged Europe Focus: eHe
alth


SAPHIRE


Deliverable 4.1.1

Exposing sensor data as web services.











FINAL


Due Date:

January 15
, 2007 (Month 11

+ 45 Days)

Actual Submission date:

December 14, 2006

Project Dates:

Project Start Date : January 01, 2006

Project End Date :
June 30, 2008

Project Duration : 30 months

Leading Contractor Organization:

Cyberfab


Project co
-
funded by the European Commission within the Sixth Framework Programme (2002
-
2006)

Dissemination Level

PU

Public

X

PP

Restricted to other programme part
icipants (including the Commission Services)


RE

Restricted to a group specified by the consortium (including the Commission Services)


CO

Confidential, only for members of the consortium (including the Commission Services)





Saphire Consortium Contacts
:


Organisation

Name

Phone

Fax

E
-
Mail

METU
-
SRDC

Asuman Dogac

+90
-
312
-
2105598

+90(312)2101004

asuman@srdc.metu.edu.tr

CYBERFAB

Micheal Setton

+33
-
476
-
081
-
957

+33
-
672
-
995
-
202

setton@cyberfab.net

OFFIS

Marco Eichelberg

+49
-
441
-
9722
-
147

+49
-
441
-
9722
-
102

eichelberg@offis.de

ALTEC

Adamantios
Koumpis

+30 2310 595646

+30 2310 565630

akou@altec.gr

IPA SA

Gabriel Spiridon

+40 21 230 25 12

+40 21 230 70 63

spiridon@ipa.ro

SCUB

Maria Dorobantu

+4021 3170108

+4021 3170108

mdorobantu@cmb.ro

SSK

Michael
Böcke
lmann

+49 5424641565


+49 5424641202


mboeckelmann@schuechtermann
-
klinik.de

TEPE

Bulent Kunac

+90
-
312
-
2919100

+90
-
312
-
2662998

bkunac@tepeteknoloji.com.tr


Document History:

Version

Date

Chang
es

From

Review

0.1

2006
-
11
-
15

First Version

OFFIS

Internal

0.2

2006
-
11
-
20

Contribution Merged with Cyberfab

OFFIS

Internal

0.3

2006
-
11
-
20

Contribution from Cyberfab

Cyberfab

Internal

0.4

2006
-
11
-
20

Small change in the Sensor Data DB


First Version for

Consortium Review

OFFIS

All

0.5

2006
-
11
-
29

Comments from METU

METU

Internal

0.6

2006
-
11
-
29

Edited structure following comments from
METU

Cyberfab/OFFIS

All

IST
-
27074 SAPHIRE

D4.1.1

3

LIST OF CONTENTS

1

ABSTRACT

................................
................................
................................
................................
..............................

4

2

INTRODUCTION

................................
................................
................................
................................
....................

4

2.1

O
VERALL ARCHITECTURE
OF
W
EB SERVICES

................................
................................
................................
.....

4

2.2

W
EB SERVIC
ES FOR SENSORS IN E
H
EALTH

................................
................................
................................
.........

5

3

WEB SERVICE ARCHITEC
TURE

................................
................................
................................
......................

6

4

WEB SERVICES COMPONE
NTS

................................
................................
................................
........................

8

4.1

XML

................................
................................
................................
................................
................................
..

8

4.2

SOAP

FOR SERVICES ACCESS

................................
................................
................................
.............................

9

4.3

UDDI

-

U
NIVERSAL
D
ISTRIBUTION
,

D
ISCOVERY
,

AND
I
NTEROPERABILITY

................................
.....................

10

4.4

WSDL:

W
EB
S
ERVICES
D
ESCRIPTION LANGUAGE

................................
................................
...........................

11

4.4.1

The WSDL Document Structure

................................
................................
................................
..................

11

5

MIDDLEWARE

................................
................................
................................
................................
.....................

12

5.1

A
PACHE
A
XIS
................................
................................
................................
................................
...................

13

5.2

WEB

SERVICES

INTEROPERABILITY

................................
................................
................................
......

13

6

SENSOR WEB SERVICES

................................
................................
................................
................................
..

15

6.1

S
ENSOR
D
ATA
XML

S
CHEMAS

................................
................................
................................
........................

15

6.1.1

Blood Pressure Data

................................
................................
................................
................................
...

15

6.1.2

Oxygen saturation

................................
................................
................................
................................
.......

16

6.2

W
EB
S
ERVICE FOR
S
P
O2

................................
................................
................................
................................
..

17

6.3

W
EB
S
ERVICE FOR
B
LOOD
P
RESSURE

................................
................................
................................
..............

17

6.4

W
EB
S
ERVICE FOR
P
ATIENT
E
VENTS

................................
................................
................................
...............

17

6.5

W
EB
S
ERVICE FOR
ECG

................................
................................
................................
................................
...

17

7

SENSOR DATA DATABASE

STRUCTURE

................................
................................
................................
.....

18

8

REFERENCES

................................
................................
................................
................................
.......................

25

9

ANNEX

................................
................................
................................
................................
................................
...

27

9.1

S
CHEMA FOR
S
P
O2

D
ATA

................................
................................
................................
................................

27

9.2

S
CHEMA FOR
BP

D
ATA

................................
................................
................................
................................
....

29

9.3

WSDL

FOR THE
S
ENSOR
W
EB
S
ERVICES

................................
................................
................................
.........

32

9.4

SOAP

M
ESSAGE FOR GET
S
P
O2D
ATA

................................
................................
................................
..............

42

9.4.1

Input

................................
................................
................................
................................
............................

42

9.4.2

Output

................................
................................
................................
................................
.........................

42

9.5

SOAP

M
ESSAGE FOR GET
BPD
ATA

................................
................................
................................
..................

43

9.5.1

Input

................................
................................
................................
................................
............................

43

9.5.2

Output

................................
................................
................................
................................
.........................

44

9.6

SOAP

M
ESSAGE FOR GET
P
ATIENT
G
ENERATED
E
VENT

................................
................................
....................

45

9.6.1

Input

................................
................................
................................
................................
............................

45

9.6.2

Output

................................
................................
................................
................................
.........................

46

9.7

SOAP

M
ESSAGE FOR
GET
ECGN
EW
LBBBS
TATUS

................................
................................
..........................

46

9.7.1

Input

................................
................................
................................
................................
............................

46

9
.7.2

Output

................................
................................
................................
................................
.........................

46

9.8

SOAP

M
ESSAGE FOR
GET
ECGPRS
TATUS

................................
................................
................................
.......

47

9.8.1

Input

................................
................................
................................
................................
............................

47

9.8.2

Output

................................
................................
................................
................................
.........................

47

9.9

SOAP

M
ESSAGE FOR
GET
ECGSTE
LEVATION
S
TATUS

................................
................................
.....................

47

9.9.1

Input

................................
................................
................................
................................
............................

47

9.9.2

Output

................................
................................
................................
................................
.........................

48


IST
-
27074 SAPHIRE

D4.1.1

4


1

ABSTRACT

This document explains the methodology followed to expose sensor data as web services. It is divided into
three main parts. The first part describes the architecture of web ser
vices in general, the different protocols.

We also go over the middleware components that will be used, explain the technical choices and examine
potential benefits of incorporating more recent technologies such as AJAX.

The second part deals with the sens
or data formats; the data schema and WSDL structures are detailed for
each signal. Finally the third portion describes the database structure.

2

INTRODUCTION

2.1

Overall architecture of Web services


Web services are the fundamental building block in the move

to distributed computing on the Internet. Open
standards and the focus on communication and collaboration among people and applications have created an
environment where web services are becoming the platform for application integration.
Some researchers

define web services as both components (pieces of application, interface) and middleware (services,
communication, security, discovery, compositions) in one (
[1]
).

Applications are constructed using multiple XML web services from various sources that work together
regardless of where they reside or how they were implemented. Services are built on XML, SOAP, WSDL
and UDDI specifications. These constitute a set

of baseline specifications that provide the foundation for
applications.

Here is an example of the sequence for a fictitious weather service from
[2]
.


Figure
1
. Weather Web Service

IST
-
27074 SAPHIRE

D4.1.1

5

A Web service is

a URL addressable
software resource


that can perform various predefined functions. In
our environment,
Java provides portable code, XML brings us portable data and
Web Services provide a
dynamic web, with access through different interfaces (browsers, w
ireless devices) and interoperability.



Figure
2
. Semantic Web and Web Services (Source:
[3]
)


A good description of the benefits once we move to web services from an architectural and functional point
of view is given by Safdar Ali in
[3]
.

The strengths of the Web as an information distributor, namely simplicit
y of access and ubiquity, are
important in resolving the fragmented middleware world where interoperability is hard to come by. The Web
complements these platforms by providing a uniform and widely accessible interface and access glue over
services that ar
e more efficiently implemented in a traditional middleware platform.

Web services have been already deployed for many different types of applications from banking to e
-
Commerce or e
-
Government.

2.2

Web services for sensors in eHealth

An example of an eHealth

project exploiting web services, in a different way than Saphire, is Topcare, as
illustrated below:


Figure
3
. Web Service Interface of the Topcare project


IST
-
27074 SAPHIRE

D4.1.1

6

Mc Gregor [4] has also used Web services for neonatal Intensive care uni
t monitoring: The figure below
illustrates the different services available and the communication between the different components of the
system.Within the e
-
Baby architecture web services interact with the Solution Manager Service.



Figure
4
. NICU system using web services (Source:
[4]
)


3

WEB SERVICE ARCHITEC
TURE

Web services require both an internal and an external architecture, as shown in
Figure
5
.

A Web service architectu
re consists of three primary functions:

-

discovery,

-

description and

-

transport.

For each of these functions, there is an accompanying standard, all based on XML
(Extensible Markup
Language).
Web services are


-

discovered through Universal Description, Di
scovery and Integration (UDDI),

-

described by Web Services Description Language (WSDL), and

-

transported using Simple Object Access Protocol (SOAP).

Web service transactions run over HTTP and TCP/IP networks.


IST
-
27074 SAPHIRE

D4.1.1

7


Figure
5
. Internal

and external architecture of Web Services (Source:
[5]
)

The following diagram explains the relationship and communication between a client and a web service.


Figure
6
. Web Service Technologies


Figure
7

shows the components of a secure web services application for eHealth
:

IST
-
27074 SAPHIRE

D4.1.1

8


Figure
7
. Components of Secure Web Servcies

In the following sections, we will detail each of the

layers performing a specific
function as illustrated in
Figure
8
.


Figure
8
. Layers of the Web Services Stack

4

WEB SERVICES COMPONE
NTS

4.1

XML

The eXtensible Markup Language (XML) is used not only as the message format but also as the wa
y in
which the services are defined. It provides the description, storage and transmission format for data
exchanged via Web services and is also used to create the Web services technologies that exchange the data.

SOAP (originally known as Simple Object A
ccess Protocol) is a protocol for exchanging XML
-
based
messages over computer network, normally using HTTP. Instead of using HTTP to request an HTML page
IST
-
27074 SAPHIRE

D4.1.1

9

to be downloaded and displayed in a browser, SOAP is used to send an XML message via HTTP request and

receives a reply, if any, via HTTP response

4.2

SOAP for services access

SOAP defines the transport of data and the interoperability of web services.

Web services data transport uses a combination of XML and the web. SOAP allows the sender and the
receiver of

XML documents over the Web to support a data transfer protocol for networked communication.
A SOAP message is, in fact, an XML document created in a specific format.

Implementations of the SOAP messaging framework can be collectively conceptualized as an
end
-
to
-
end
messaging engine that drives communication throughout contemporary service
-
oriented architectures.

SOAP messages are transmitted between applications and may pass through a number of intermediaries as
they travel from the initial sender to the
ultimate recipient. SOAP messages are comprised of an Envelope
element, with an optional Header and a mandatory Body child element.

The parent
envelope

construct houses an optional
header

and a required
body

construct. Exception
information can be placed
in a special
Fault

element that is nested within the message body.




Figure
9
. SOAP Envelope

There are 4 parts to SOAP:


1.

An extensible envelope expressing (mandatory)

-

what
features and services are represented in a message;

-

who
s
hould deal with them,

-

whether
they are optional or mandatory.

2.

A set of encoding rules for data (optional)

-

Exchange instances of application
-
defined data types and directed graphs

-

Uniform model for serializing non
-
syntactic data models

3.

A Convention for repr
esentation RPC (optional)

-

How to make calls and responses

4.

A protocol binding to HTTP

IST
-
27074 SAPHIRE

D4.1.1

10


The most common methods encountered for HTTP are GET, PUT and POST:

-

GET means retrieve whatever information (in the form of an entity) is identified by the Request
-
URI.

-

P
UT requests that the enclosed entity be stored under the supplied Request
-
URI.

-

POST method is used to request that the destination server accept the entity enclosed in the request
as a new subordinate of the resource identified by the Request
-
URI in the Re
quest
-
Line (almost like
Publish).

The utilization of SOAP header blocks by second
-
generation Web services specifications is an important
aspect of this framework that vastly increases its power and complexity.


4.3

UDDI
-

Universal Distribution, Discovery, an
d Interoperability

UDDI stands for Universal Distribution, Discovery, and Interoperability. It
defines a registry for companies
and their services and focuses on enabling web service providers to supply information used in the discovery
of web services an
d the integration of web service partners
.

UDDI describes an online electronic registry that serves as electronic Yellow Pages, providing an
information structure where various business entities register themselves and the services they offer through
their

WSDL definitions. It is a standard Web Service description format and Web Service discovery
protocol; a UDDI registry can contain metadata for any type of service, with best practices already defined
for those described by Web Service Description Language

(WSDL). UDDI uses standards
-
based
technologies, such as common Internet protocols (TCP/IP and HTTP), XML, and SOAP (a specification for
using XML in simple message
-
based exchanges). There are two types of UDDI registries:
public

UDDI
registries that serv
e as aggregation points for a variety of businesses to publish their services, and
private

UDDI registries that serve a similar role within organizations.


A UDDI registry consists of the following data structure types:

businessEntity

-

The top
-
level XML

element in a business UDDI entry, it captures the data partners require
to find information about a business service, including its name, industry or product category, geographic
location, and optional categorization and contact information. It includes s
upport for "yellow pages"
taxonomies to search for businesses by industry, product, or geography.

businessService

-

The logical child of a
businessEntity

data structure as well as the logical parent of a
bindingTemplate

structure, it contains descriptive
business service information about a group of related
technical services including the group name, a brief description, technical service description information,
and category information. By organizing Web Services into groups associated with categories o
r business
processes, UDDI allows more efficient search and discovery of Web Services.

bindingTemplate

-

The logical child of a
businessService

data structure, it contains data that is relevant for
applications that need to invoke or bind to a specific We
b Service. This information includes the Web
Service URL and other information describing hosted services, routing and load balancing facilities, and
references to interface specifications.

UDDI provides a standardized method for publishing and discovering

information about web services.
Software developers use the UDDI Programmer's API to publish services (i.e., put information about them in
the registry) and query the registry to discover services matching various criteria.

In a way UDDI registries are l
ike the yellow pages and works as shown in
Figure
10
.

IST
-
27074 SAPHIRE

D4.1.1

11


Figure
10
. UDDI (Source:
[6]

)

4.4

WSDL: Web Services Description language

WSDL is at the heart of service
interoperability and, a common WSDL interface can increase reuse. Since
WSDL defines the data types that a Web service is expecting, it enables interoperability with SOAP clients
to the Web service.

The integration layer introduced by the Web services fra
mework establishes a standard, universally
recognized and supported programmatic interface.

A WSDL document is just a simple XML document, containing XML elements. WSDL elements contain a
description of the data, typically using one or more XML schemas, t
o be passed to the Web service so that
both the sender and the receiver understand the data being exchanged
.

4.4.1

The WSDL Document Structure

A WSDL document describes a web service using these major elements:

Table
1
. Elements of a WSDL

document

Element

Defines

<interface>

The operations performed by the web service

<message>

An abstract definition of the data being communicated.

<types>

The data types used by the web service

<binding>

The communication protocols used by the web serv
ice
.

Describes how the operation is
invoked by specifying concrete protocol and data format specifications for the operations and
messages.

IST
-
27074 SAPHIRE

D4.1.1

12

A WSDL document has the following structure
.



Figure
11
. Structure of a WSDL document


5

M
IDDLEWARE

We will be using Linux/Apache/Tomcat/OpenSSL/JDBC/ MySQL combination for web services. The basic
web service functionality is provided by Axis running in a Tomcat container. It accesses the sensor data
stored in a MySQL database using JDBC.


Fig
ure
12
. SensorWS architecture

IST
-
27074 SAPHIRE

D4.1.1

13

5.1

Apache Axis

We will use Axis 2.1.1 which is the latest version released on November 13th 2006. Apache Axis
[9]

is an
implementation of the SOAP submission to W3C. The comp
onents of Axis are shown in
Figure
13
.


Figure
13
. Axis components

Apache Axis2 is designed to support the easy addition of plug
-
in "modules" that extend its functionality for
features such as security an
d reliability. Modules currently available or under development include:

WS
-
ReliableMessaging

-

Supported by
Apache Sandesha2


WS
-
Coordination

and
WS
-
AtomicTransaction

-

Supported by
Apache Kandula2


WS
-
Security

-

Supported by
Apache Rampart


WS
-
Addr
essing

-
Module included as part of Axis2 core


What is also interesting for us is the fact that
Axis2 now supports asynchronous Web services &
asynchronous Web services invocation using non
-
blocking clients and transports.

5.2

WEB SERVICES INTEROPERABILITY

Th
ere are two approaches to build web services depending whether one uses J2EE or a .NET
framework:


Figure
14
. .NET Approach

IST
-
27074 SAPHIRE

D4.1.1

14



Figure
15
. J2EE Approach

One issue is interoperability between the two develo
pment environments. Web Services
Interoperability Technology (WSIT) is an open
-
source implementation of next generation Web
services technologies that deliver interoperability between Java EE and .Net to help build, deploy,
and maintain Composite Applicati
ons for a Service Oriented Architecture.

It is built upon JAX
-
WS (Java API for XML Web Services), this implementation will be made available as
the "Web Services Interoperability Technology (WSIT)" and is focused on four main categories: Messaging,
Metadat
a, Security, and Quality
-
of
-
Service (QoS).






IST
-
27074 SAPHIRE

D4.1.1

15


6

SENSOR WEB SERVICES

6.1

Sensor Data XML Schemas

The sensor data is transmitted between Interoperability Platforms and exposed to through web services using
simple XML schemas. For ECG data, the Annotated ECG s
tandard (“FDA XML”) is used.

6.1.1

Blood Pressure Data

The schema consists of three main elements. The first element identifies the patient; the second one identifies
the sensor that captured the data and the third element represents the sensor data itself.


F
igure
16
. XML Schema for blood pressure data

IST
-
27074 SAPHIRE

D4.1.1

16

The complete schema is listed in section
9.2
.


6.1.2

Oxygen saturation

The schema for the oxygen saturation is a modification of the schema for the blood pressure. The elements
identifying the patient and the sensor are the same in both schemas.


Figure
17
. XML Schema for Sp
O2 Data

The complete schema is listed in section
9.1
.
It would be possible to use only one schema for blood pressure,
SpO2 data and ECG data, as the aECG format is flexible enough.


IST
-
27074 SAPHIRE

D4.1.1

17

6.2

Web Service for SpO2

The web service
getSpO2
Data
returns a message containing the most recent SpO2 measurements since the
last call of the web service. The message definition can be found in
9.4.1

(for the request) and
9.4.2

for the
respons
e. The message structure is defined by the XSD shown in
Figure
17

and section
9.1
.

6.3

Web Service for Blood Pressure

The web service
getBPData
returns a message containing the most recent blood pressure
measurements
since the last call of the web service. The message definition can be found in
9.5.1

(for the request) and
9.5.2

for the response. The message structure is defined by the XSD shown in

Figure
17

and section
9.1
.

6.4

Web Service for Patient Events

The web service
getPatientGeneratedEvent

returns a patient event that might have been encountered since
the last call of the web service. Re
turn values are “dyspnoea”, “angina”, or “none”. The message definition
can be found in sections
9.6.1

and
9.6.2
.

6.5

Web Service for ECG

In later versions, the following web services will be replace
d by a single web service that contains an aECG
file with an annotated ECG.


-

getECGNewLBBBStatus: Returns the patient's LBBB status. The status is 'true', if a new left bundle
branch block (LBBB) has been detected. If not, the method returns 'false'. The m
essage structure is
defined in sections
9.7.1

and
9.7.2
.

-

getECGPRStatus: Returns the length of the PR interval in miliseconds. This refers to the most recent
reference cycle identified by the ECG analysis software. The message structure is defined in sections
9.8.1

and
9.8.2
.

-

getECGSTElevationStatus: Returns the patient's ST
-
elevation status. The status is 'true', if a ST
-
elevation has been detected. If not, the method returns 'false'. This method should u
se ANY
reference cycle stored since the last call. The message structure is defined in sections
9.9.1

and
9.9.2
.




IST
-
27074 SAPHIRE

D4.1.1

18

7

SENSOR DATA DATABASE

STRUCTURE

ecgrefcycle
PK
ecgrefcycle_id
ecganalysis_id
FK1
tick
refcycledata
Lead
QRSConfig
Q_Duration
Q_Amplitude
R_Duration
R_Amplitude
S_Duration
S_Amplitude
QR_Ratio
RS_Ratio
Integral
ST_Amplitude
pos_T_Amplitude
neg_T_Amplitude
Integral_ST_T
session
PK
session_id
session_start
session_end
ecgmeasurement
PK,FK1
MeasurementID
PK
Tick
LeadI
LeadII
LeadIII
LeadV1
LeadV2
LeadV3
LeadV4
LeadV5
LeadV6
LeadAvR
LeadAvL
LeadAvF
PacerImpulse
PacketType
ContactL
ContactR
ContactN
ContactF
ContactV1
ContactV2
ContactV3
ContactV4
ContactV5
ContactV6
dialog_paragraph
PK
dialog_paragraph_id
content
FK1
dialog_text_id
spo2measurement
PK,FK1
MeasurementID
SPO2
PulseRate
Pleth
dialog_results
PK
dialog_result_id
FK1
dialog_id
answer_value
FK3
session_id
measurement_analysis
PK
measurement_analysis_id
FK1
measurement_id
analysis_text
analysis
window_style
PK
window_style_id
style_desc
patient
PK
patient_id
first_use_date
last_use_date
dialog_text
PK
dialog_text_id
FK3
language_id
FK2
dialog_answer_id
FK1
dialog_id
rrmeasurement
PK,FK1
MeasurementID
RespiratoryRate
Measured
dialogs
PK
dialog_id
dialog_desc
active
version
FK2
answertype_id
FK1
window_style_id
answertypes
PK
answertype_id
answertype_name
bpmeasurement
PK,FK1
MeasurementID
SystolicPressure
DiastolicPressure
PluseRate
MeanArterialPressure
sensor
PK
SensorID
FK1
SensorTypeID
BluetoothID
currBatteryVoltage
Status
currBatteryStatus
DataServiceAddress
ecgtechnicalcomments
PK
ecgtechnicalcomments_id
FK1
ecganalysis_id
Comment
ecganalysis
PK
ecganalysis_id
FK1
measurement_id
FK1
tick
HeartReate
SinusRhythm
Tachycardia
Bradycardia
Axis
language_definition
PK
language_definition_id
U1
short_name
name
dialog_answer
PK
dialog_answer_id
color
FK1
dialog_id
sensortype
PK
SensorTypeID
SensorTypeText
measurement
PK
MeasurementID
TimeOfMeasurement
TimeOfTransmission
Valid
FK2
SensorID
SignalQuality
SignalAmplification
FK1
session_id
dialog_image
PK
dialog_image_id
image
dialog_answer_id
FK1
dialog_id

Figure
18
. Schema of the Sensor Data DB

IST
-
27074 SAPHIRE

D4.1.1

19

Figure
18

shows the schema of the sensor data DB. The database is used to store the raw sensor data, which
will then be fed into the analysis software. It also serves as source for the
sensor data that is exposed as
semantically enriched web services. Each patient has one or more sensors attached, and these sensors acquire
data during one or more sessions.


Table
2
. Table
Patient

Patient

Column Name

Description

D
ata Type

PatientID

(PK)

INTEGER

First_Use_Date

Time of the first measurement

DATETIME

Last_Use_Date

Last time the sensors were activated

DATETIME


Table
3
. Table
Session

Session

Column Name

Description

Data Type

SessionID

(PK
)

INTEGER

PatientID

(FK to Patient) ID of the patient that uses the sensors
in this session

INTEGER

Session_start

Start time of the session

DATETIME

Session_end

End time of the session

DATETIME




The core of this schema is the table
Sensor,
which con
tains the key data of each sensor that is deployed in the
system.

Table
4
. Table
Sensor

Sensor

Column Name

Description

Data Type

SensorID

(PK)

INTEGER

SensorType

(FK to SensorType) The type of sensor (i.e. “Blood
Pressure”, “ECG
”, “SPO2”)

INTEGER

BluetoothID

Bluetooth
-
ID of the sensor. This must not be NULL,
because it is the only way the system can identify a
Bluetooth sensor.

VARCHAR

currBatteryVoltage

Remaining voltage of the sensor’s battery

DECIMAL

Status

Status of the se
nsor

VARCHAR

currBatteryStatus

Status of the Battery (i.e. “EMPTY”)

VARCHAR

DataServiceAddress

Address of the BT data service

VARCHAR

IST
-
27074 SAPHIRE

D4.1.1

20

The columns
currBatteryVoltage
and
currBatteryStatus

are optional. Some sensors can transmit the
remaining voltage of t
he batteries, while others can only give a rough estimate of the remaining power that’s
left. In the latter case, the status is a short string, such as “Full”, “Almost Full”, “Almost Empty” or
“Critically Empty”. Since the status can change with every tran
smission, these columns might be moved
from the table to a new table, or they might be moved into the table
Measurement

Table
4

shows the simple schema of the table listing the possible sensor types in the system.

Table
5
. Table
SensorType

SensorType

Column Name

Description

Data Type

SensorTypeID

(PK)

INTEGER

SensorTypeText

A short word identifying the type of sensor (i.e.
“Blood Pressure”, “ECG”, “SPO2”)

VARCHAR

Although the types of sensors to be use
d in the SAPHIRE project is limited, the architecture should be
generic enough for future extensions, where weight scales and other sensors might be added to the system.
Table
5

lists the columns of table
Measurement
. This table i
s used to capture the data that is common to all
kinds of measurement. The actual measurement values are held in separate tables, one for each kind of
measurement.

Table
6
. Table
Measurement

Measurement

Column Name

Description

Data

Type

MeasurementID

(PK)

INTEGER

SensorID

(FK) ID of the sensor that did the measurement

INTEGER

Valid

Determines if the measurement should be considered
valid. If the signal quality is too low, or if the sensor
detected a problem, a measurement may st
ill be
given, but it should not be considered for further
processing. Since not all sensors set this flag, data
fusion will be necessary to find outliers and to make
the system more robust.

BOOL

TimeOfMeasurement

Date/Time of Measurement (as determined by

the
Sensor)

DATETIME

TimeOfTransmission

Date/Time of transmission (as determined by the
Interoperability Platform)

DATETIME

SignalQuality

Indicator of Signal Quality (in %)

DECIMAL

SignalAmplification

Amplification of the Signal

DECIMAL

Session_id

(FK

to Session) ID of the session, during which this
measurement was made

INTEGER

The table
RRMeasurement

is used to store the patient’s respiratory rate.

Table
7
. Table
RRMeasurement

RRMeasurement

Column Name

Description

Data Type

IST
-
27074 SAPHIRE

D4.1.1

21

MeasurementID

(FK)

INTEGER

RespiratoryRate

Respiratory Rate (per minute)

INTEGER

Measured

True if the RR was directly measured, false if it was
derived by other means (i.e. if it is derived from the
ECG)

BOOLEAN

Blood pressure data is kept in the table
BPMeasurement
, which is described in
Table
7
. The columns in this
table are also present as elements in the XML schema shown in
F
igure
16
.

Table
8
. Table
BPMeasurement

BPMeasuremen
t

Column Name

Description

Data Type

MeasurementID

(FK)

INTEGER

SystolicPressure

Systolic pressure in mmHG

INTEGER

DiastolicPressure

Diastolic pressure in mmHG

INTEGER

PulseReate

Pulse rate per minute

INTEGER

MeanArterialPressure

Mean arterial pressur
e in mmHG

INTEGER

The oxygen saturation is captured in the table
SPO2Measurement
, which is described in
Table
8
. The
columns in this table are also present as elements in the XML schema shown in
Figure
17
.

Table
9
. Table
SPO2Measurement

SPO2Measurement

Column Name

Description

Data Type

MeasurementID

(FK)

INTEGER

SPO2

Oxygen saturation

DECIMAL

PulseReate

Pulse rate per minute

INTEGER

Pleth

Pleth data

BINARY[10]

The table also
stores the raw data uses by the sensor to determine the oxygen saturation. In theory, the
plethysmogram that is represented in column
Pleth
, can be used to calculate the respiratory rate.

Table
10
. Table
ECGMeasurement

ECGMeasuremen
t

Column Name

Description

Data Type

MeasurementID

(PK)

INTEGER

Tick

(PK)

INTEGER

LeadI…LeadAvL

Voltage of the lead in mV

BLOB

PacerImpulse

True, if a pacer impulse has been detected. Else false

BOOLEAN

PacketType

True, if the packet is for 12 leads,
false if the data
packet describes 3 leads.

BOOLEAN

ContactL…ContactV6

True if the electrode is connected. Else false.

BOOLEAN

IST
-
27074 SAPHIRE

D4.1.1

22


Table
11
. Table
MeasurementAnalysis

MeasurementAnalysis

Column Name

Description

Data Type

Measuremen
t_Analysis_ID

(PK)

INTEGER

Measurement_ID

(FK to table Measurement)

INTEGER

AnalysisText

Text describing a finding yielded by the analysis

VARCHAR

Analysis

Proprietary analysis data

BLOB


Table
12
. Table
ECGAnalysis

ECGAnalysis

Column Name

Description

Data Type

Ecganalysis_ID

(PK)

INTEGER

Measurement_ID

(FK to table ECGMeasurement)

INTEGER

Tick

(FK to table ECGMeasurement) Beginning tick of
the analysis. The analysis in this table usually
describes 10s ECG data

INTEGER

Heart
Rate

Heart Rate (derived from the ECG measurement)

INTEGER

SinusRhythm

SR present?

BOOLEAN

Tachycardia

Tachycardia detected?

BOOLEAN

Bradycardia

Bradycardia detected?

BOOLEAN

Axis

Electrical axis of the heart

VARCHAR


Technical comments such as “arm e
lectrodes switched” generated by the ECG analysis software will be
stored in the table
ECGTechnicalComments


Table
13
. Table
ECGTechnicalComments

ECGTechnicalComments

Column Name

Description

Data Type

Ecgtechnicalcomments_ID

(PK)

INTEGER

Ecganalysis_ID

(FK to table ECGAnalysis)

INTEGER

Comment

Technical comment referring to the ECG analysis
(i.e. “Too much noise”)

VARCHAR


Most ECG analysis software determines a reference cycle that represents a typical cycle of an ECG
measureme
nt. Typical numerics of this cycle are then determined and stored in the table
ECGRefCycle.

IST
-
27074 SAPHIRE

D4.1.1

23


Table
14
. Table
ECGRefCycle

ECGRefCycle

Column Name

Description

Data Type

ECGRefCycle_ID

(PK)

INTEGER

Ecganalysis_ID

(FK to table ECGAna
lysis)

INTEGER

Tick

(FK to table ECGAnalysis)

INTEGER

RefCycleData

Data of the reference cycle

BLOB

Lead

Lead where the cycle was captured (i.e. “aVF”)

VARCHAR

QRSConfig

Configuration of the QRS
-
complex

VARCHAR

Q_Duration

Duration of the Q spike

INTEG
ER

Q_Amplitude

Amplitude of the Q spike

INTEGER

R_Duration

Duration of the R spike

INTEGER

R_Amplitude

Amplitude of the R spike

INTEGER

S_Duration

Duration of the S spike

INTEGER

S_Amplitude

Amplitude of the S spike

INTEGER

QR_Ratio

QR
-
Ratio

INTEGER

RS_Ratio

RS
-
Ratio

INTEGER

Integral

QRS
-
Integral

INTEGER

ST_Amplitude

ST Amplitude

INTEGER

Pos_T_Amplitude

Positive T Amplitude

INTEGER

Neg_T_Amplitude

Negative T Amplitude

INTEGER

Integral_ST_T

ST
-
T Integral

INTEGER


The configuration of the dialogs

used for the patient
-
system interaction is stored in the database as well.


Table
15
. Table
Dialogs

Dialogs

Column Name

Description

Data Type

Dialog_ID

(PK)

INTEGER

Dialog_desc

Short, textual description of the dialog (i.e. “Dia
log
asking for the Borg value”)

VARCHAR

Active

Is the Diaglog still active, or is there a newer
version?

BOOLEAN

AnswerType_ID

(FK to AnswerTypes) Expected Answer type

INTEGER

Window_style_id

(FK to WindowStyle)

INTEGER

IST
-
27074 SAPHIRE

D4.1.1

24


Table
16
. Table
DialogText

DialogText

Column Name

Description

Data Type

Dialog_Text_ID

(PK)

INTEGER

Language_ID

(FK to Language_Definition) Language of the
dialog text

INTEGER

Dialog_Answer_ID

(FK to Dialog_Answer)

INTEGER

Dialog_ID

(FK to Dialog)

INTEGER


The texts in the dialogs need to be translated into at least two languages (German and English) for
demonstration purposes. This is why each
DialogText
is tagged with a language ID
.


Table
17
. Table
Language_Definition

Language_Def
inition

Column Name

Description

Data Type

Language_Definition_ID

(PK)

INTEGER

Short_Name

Short name of the language (i.e. “DE”)

VARCHAR

Long_Name

Long name of the Language (i.e. “German”)

VARCHAR


Table
18
. Table
Dialog_Paragra
ph

Dialog_Paragraph

Column Name

Description

Data Type

Dialog_Paragraph_ID

(PK)

INTEGER

Content

Content of the Paragraph

VARCHAR

Dialog_Text_ID

(FK to DialogText)

INTEGER


Table
19
. Table
Dialog_Answer

Dialog_Answer

Column Name

Description

Data Type

Dialog_Answer_ID

(PK)

INTEGER

color

Color of the answer

VARCHAR

Dialog__ID

(FK to Dialogs)

INTEGER


IST
-
27074 SAPHIRE

D4.1.1

25

Table
20
. Table
Window_Style

Window_Style

Column Name

Description

Data Type

Window_Style_ID

(PK)

INTEGE
R

Style_desc

Description of the window style

VARCHAR


Table
21
. Table
Dialog_Image

Dialog_Image

Column Name

Description

Data Type

Dialog_Image_ID

(PK)

INTEGER

Image

Image data

BLOB

Dialog_answer_ID

(FK to Dialog_Answer)

INTEGE
R

Dialog_ID

(FK to Dialog)

INTEGER


Table
22
. Table
AnswerTypes

AnswerTypes

Column Name

Description

Data Type

AnswerType_ID

(PK)

INTEGER

AnswerTypeName

Description of the type

VARCHAR



8

REFERENCES

[1]

Karastoyanova, D., Buchmann,
A., Components, Middleware and Web Services. In
Proceedings of IADIS International Conference WWW/Internet 2003, Volume II, IADIS
Press, 2003

[2]

A short introduction to Web Services, http://gdp.globus.org/gt4
-
tutorial/multiplehtml/ch01s02.html

[3]

Safdar Ali. Arc
hitecting disparate eHealth systems interoperable through Web Services.
Presentation at the Med
-
e
-
Tel 2005,
http://www.medetel.lu/download/2
005/parallel_sessions/presentation/0407/Architecting_dispa
rate.pdf

[4]

C. Mc Gregor, J. Heath, M. Wei, A Web Services Based Framework for the Transmission of
Physiological Data for Local and Remote Neonatal Intensive Care,

Proceedings of the 2005
IEEE Interna
tional Conference on e
-
Technology, e
-
Commerce and e
-
Service (EEE'05) on e
-
Technology, e
-
Commerce and e
-
Service

IST
-
27074 SAPHIRE

D4.1.1

26

[5]

Gustavo A, Fabio C, Harumi K. Web Services.
Concepts, Architectures and Applications.
2003. Springer

[6]

Greg Govatos. UDDI is Yellow Pages of Web se
rvices.
http://www.networkworld.com/news/tech/2002/0527tech.html

[7]

Hashmi N, Myung D, Gaynor M, Moulton S. A Sensor
-
based,Web Service
-
enabled,
Emergency Medical Response System”, International Conference On Mobile Systems,
Applications And Services, EESR ’05
: Workshop on End
-
to
-
End, Sense
-
and
-
Respond
Systems, Applications, and Services

[8]

Carrillo O. Installing Web Services with Linux / Tomcat / Apache / Struts / Postgresql /
OpenSSL / JDBC / JNDI / DBCP. http://www.linuxjava.net/howto/webapp/

[9]

Apache Axis, http:
//ws.apache.org/axis/

[10]

Designing Enterprise Applications with the J2EE Platform, Second Edition.
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app
-
arch/app
-
arch5.html

[11]

Apache MyFaces,
http://myfaces.apache.org/

[12]

Garrett JJ. Aj
ax: A New Approach to Web Applications.
http://adaptivepath.com/publications/essays/archives/000385.php

[13]

Ajax for JavaServer Faces (Ajax4jsf). https://ajax4jsf.dev.java.net/nonav/ajax/ajax
-
jsf/

[14]

Snell J. Call SOAP Web services with Ajax, Part 1: Build the We
b services client.
http://www
-
128.ibm.com/developerworks/webservices/library/ws
-
wsajax/

[15]

Snell J. Call SOAP Web services with Ajax, Part 2: Extend the Web services client.
http://www
-
128.ibm.com/developerworks/webservices/library/ws
-
ws
ajax2/index.html

[16]

Sayar A, Pierce M, Fox G. Integrating AJAX Approach into GIS Visualization Web
Services, Advanced International Conference on Internet and web applications and services,
AIT
-
ICIW 06, 2006

[17]

GNUBox,
http://gnubox.dnsalias.org/gnubox/

[18]

Auletta V, Blundo C, de Cristofaro E, Raimato G. Performance Evaluation of Web Services
Invocation over Bluetooth. PM2HW2N 2006

[19]

Cardionics Homepage: http//www.cardionics.be

IST
-
27074 SAPHIRE

D4.1.1

27

[20]


9

ANNEX

9.1

Schema for SpO2 Data

<?xml vers
ion="1.0" encoding="UTF
-
8"?>

<!
--

edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Oliver Nee (Kuratorium OFFIS e.V.)
--
>

<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="SPO2Data">

<xs:complexType>

<xs:sequence>

<xs:element name="Patient">

<xs:complexType>

<xs:sequence>

<xs:element name="PatientID" type="HL7_CX_STRUCTUREType"/>

<xs:element name="AlternatePatientID" type="HL7_CX_STRUCTUREType" minOccurs="0
"
maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="SPO2Sensor">

<xs:complexType>

<xs:sequence>

<xs:element name="BlueToothID" type="xs:string"/>

<xs:element name="SerialNumber" type="xs:string"/>

<xs:element name="Ba
tteryStatus" type="xs:decimal"/>

<xs:element name="DeviceType" type="xs:string"/>

<xs:element name="Status" type="xs:string" maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="SPO2Measurement" maxOccurs="unbounded">

<x
s:complexType>

<xs:sequence>

<xs:element name="Valid" type="xs:boolean"/>

IST
-
27074 SAPHIRE

D4.1.1

28

<xs:element name="TimeOfMeasurement" type="xs:dateTime"/>

<xs:element name="TimeOfTransmission" type="xs:dateTime"/>

<xs:element name="SPO2" type="xs:int"/>

<xs:element name="PulseRa
tePerMinute" type="xs:int"/>

<xs:element name="Pleth" type="xs:int" minOccurs="0" maxOccurs="10"/>

<xs:element name="SignalQuality" type="xs:int"/>

<xs:element name="SignalAmplification" type="xs:int"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:s
equence>

<xs:attribute name="SchemaVersion" type="xs:decimal" fixed="1.0"/>

</xs:complexType>

</xs:element>

<xs:element name="HL7_CX_STRUCTURE" type="HL7_CX_STRUCTUREType"/>

<xs:element name="HL7_HD_STRUCTURE" type="HL7_HD_STRUCTUREType"/>

<xs:complexType
name="HL7_HD_STRUCTUREType">

<xs:sequence>

<xs:element name="NameSpaceID" type="xs:string"/>

<xs:element name="UniversalID" type="xs:string"/>

<xs:element name="UniversalIDType" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="HL7_CWE_
STRUCTURE" type="HL7_CWE_STRUCTUREType"/>

<xs:complexType name="HL7_CWE_STRUCTUREType">

<xs:sequence>

<xs:element name="Identifier" type="xs:string"/>

<xs:element name="Text" type="xs:string"/>

<xs:element name="NameOfCodingSystem" type="xs:string"/>

<xs:e
lement name="AlternateIdentifier" type="xs:string"/>

<xs:element name="AlternateText" type="xs:string"/>

<xs:element name="NameOfAlternateCodingSystem" type="xs:string"/>

<xs:element name="CodingSystemVersionID" type="xs:string"/>

<xs:element name="Alterna
teCodingSystemVersionID" type="xs:string"/>

<xs:element name="OriginalText" type="xs:string"/>

</xs:sequence>

</xs:complexType>

IST
-
27074 SAPHIRE

D4.1.1

29

<xs:complexType name="HL7_CX_STRUCTUREType">

<xs:sequence>

<xs:element name="IDNumber" type="xs:string"/>

<xs:element name="Chec
kDigit" type="xs:string" minOccurs="0"/>

<xs:element name="CheckDigitScheme" type="xs:string" minOccurs="0"/>

<xs:element name="AssigningAuthority" type="HL7_HD_STRUCTUREType"/>

<xs:element name="IdentifierTypeCode" type="xs:string" minOccurs="0"/>

<xs:ele
ment name="AssigningFacility" type="HL7_HD_STRUCTUREType" minOccurs="0"/>

<xs:element name="EffectiveDate" type="xs:dateTime" minOccurs="0"/>

<xs:element name="ExpirationDate" type="xs:dateTime" minOccurs="0"/>

<xs:element name="AssigningJurisdiction" type
="HL7_CWE_STRUCTUREType" minOccurs="0"/>

<xs:element name="AssigningAgencyOrDepartment" type="HL7_CWE_STRUCTUREType"
minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:schema>


9.2

Schema for BP Data

<?xml version="1.0" encoding="UTF
-
8"?>

<!
--

edited with X
MLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Oliver Nee (OFFIS e.V.)
--
>

<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="BPData">

<xs:complexType>

<xs:sequence>

<xs:element name="Patient">

<xs:complexType>

<xs:sequence>

<xs:element name="PatientID" type="HL7_CX_STRUCTUREType"/>

<xs:element name="AlternatePatientID" type="HL7_CX_STRUCTUREType" minOccurs="0"
maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

<
/xs:element>

<xs:element name="BPSensor">

<xs:complexType>

IST
-
27074 SAPHIRE

D4.1.1

30

<xs:sequence>

<xs:element name="BlueToothID" type="xs:string"/>

<xs:element name="SerialNumber" type="xs:string" minOccurs="0"/>

<xs:element name="BatteryStatus" type="xs:decimal"/>

<xs:element nam
e="DeviceType" type="xs:string"/>

<xs:element name="Status" maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="BPMeasurement" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="Valid" type="xs:bool
ean"/>

<xs:element name="TimeOfMeasurement" type="xs:dateTime"/>

<xs:element name="TimeOfTransmission" type="xs:dateTime"/>

<xs:element name="SystolicPressure" type="xs:int"/>

<xs:element name="DiastolicPressure" type="xs:int"/>

<xs:element name="PulseRate
PerMinute" type="xs:int"/>

<xs:element name="MeanArterialPressure" type="xs:int"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name="SchemaVersion" type="xs:decimal" fixed="1.0"/>

</xs:complexType>

</xs:element>

<xs:element
name="HL7_CX_STRUCTURE" type="HL7_CX_STRUCTUREType"/>

<xs:element name="HL7_HD_STRUCTURE" type="HL7_HD_STRUCTUREType"/>

<xs:complexType name="HL7_HD_STRUCTUREType">

<xs:sequence>

<xs:element name="NameSpaceID" type="xs:string"/>

<xs:element name="Universal
ID" type="xs:string"/>

<xs:element name="UniversalIDType" type="xs:string"/>

</xs:sequence>

</xs:complexType>

<xs:element name="HL7_CWE_STRUCTURE" type="HL7_CWE_STRUCTUREType"/>

<xs:complexType name="HL7_CWE_STRUCTUREType">

IST
-
27074 SAPHIRE

D4.1.1

31

<xs:sequence>

<xs:element name="
Identifier" type="xs:string"/>

<xs:element name="Text" type="xs:string"/>

<xs:element name="NameOfCodingSystem" type="xs:string"/>

<xs:element name="AlternateIdentifier" type="xs:string"/>

<xs:element name="AlternateText" type="xs:string"/>

<xs:element nam
e="NameOfAlternateCodingSystem" type="xs:string"/>

<xs:element name="CodingSystemVersionID" type="xs:string"/>

<xs:element name="AlternateCodingSystemVersionID" type="xs:string"/>

<xs:element name="OriginalText" type="xs:string"/>

</xs:sequence>

</xs:compl
exType>

<xs:complexType name="HL7_CX_STRUCTUREType">

<xs:sequence>

<xs:element name="IDNumber" type="xs:string"/>

<xs:element name="CheckDigit" type="xs:string" minOccurs="0"/>

<xs:element name="CheckDigitScheme" type="xs:string" minOccurs="0"/>

<xs:elemen
t name="AssigningAuthority" type="HL7_HD_STRUCTUREType"/>

<xs:element name="IdentifierTypeCode" type="xs:string" minOccurs="0"/>

<xs:element name="AssigningFacility" type="HL7_HD_STRUCTUREType" minOccurs="0"/>

<xs:element name="EffectiveDate" type="xs:date
Time" minOccurs="0"/>

<xs:element name="ExpirationDate" type="xs:dateTime" minOccurs="0"/>

<xs:element name="AssigningJurisdiction" type="HL7_CWE_STRUCTUREType" minOccurs="0"/>

<xs:element name="AssigningAgencyOrDepartment" type="HL7_CWE_STRUCTUREType"
min
Occurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:schema>

IST
-
27074 SAPHIRE

D4.1.1

32


9.3

WSDL for the Sensor Web Services

<?xml version="1.0" encoding="utf
-
8"?>

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/
"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://de.offis.ig.saphire.SensorWS/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/
"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://de.offis.ig.saphire.SensorWS/">

<wsdl:types>

<s:schema elementFormDefault="qualified" targetNamespace="http://de.offis.ig.saphire.Sen
sorWS/">

<s:import/>

<s:element name="getBPData">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="patientID" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getBPDataResponse">

<s:complexType>

<s:seq
uence>

<s:element minOccurs="0" maxOccurs="1" ref="getBPDataResult"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getECGNewLBBBStatus">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="patientID" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getECGNewLBBBStatusResponse">

<s:complexType>

<s:sequence>

IST
-
27074 SAPHIRE

D4.1.1

33

<s:element minOccurs="1" maxOccurs="1" name="getECGNewLBBBStatusResult" type="s:boolean"/>

</s:sequence>

</s:complexType>

</s:element>

<
s:element name="getECGPRStatus">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="patientID" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getECGPRStatusResponse">

<s:complexType>

<s:sequence>

<s:el
ement minOccurs="1" maxOccurs="1" name="getECGPRStatusResult" type="s:int"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getECGSTElevationStatus">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="patientID" type="s
:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getECGSTElevationStatusResponse">

<s:complexType>

<s:sequence>

<s:element minOccurs="1" maxOccurs="1" name="getECGSTElevationStatusResult" type="s:boolean"/>

</s:sequence>

</s:complexT
ype>

</s:element>

<s:element name="getPatientGeneratedEvent">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="patientID" type="s:string"/>

</s:sequence>

IST
-
27074 SAPHIRE

D4.1.1

34

</s:complexType>

</s:element>

<s:element name="getPatientGeneratedEventRespon
se">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="getPatientGeneratedEventResult" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getSpO2Data">

<s:complexType>

<s:sequence>

<s:element minOccurs="0
" maxOccurs="1" name="patientID" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element name="getSpO2DataResponse">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" ref="getSpO2DataResult"/>

</s:sequence>

</s:complexTyp
e>

</s:element>

</s:schema>

<s:schema elementFormDefault="qualified">

<s:element name="getBPDataResult">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="Patient">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1"

name="PatientID" type="HL7_CX_STRUCTUREType"/>

<s:element minOccurs="0" maxOccurs="unbounded" name="AlternatePatientID"
type="HL7_CX_STRUCTUREType"/>

</s:sequence>

</s:complexType>

</s:element>

IST
-
27074 SAPHIRE

D4.1.1

35

<s:element minOccurs="0" maxOccurs="1" name="BPSensor">

<s:co
mplexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="BlueToothID" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="SerialNumber" type="s:string"/>

<s:element minOccurs="1" maxOccurs="1" name="BatteryStatus" type="s:decimal"/>

<s:element minOccurs="0" maxOccurs="1" name="DeviceType" type="s:string"/>

<s:element minOccurs="0" maxOccurs="unbounded" name="Status"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element minOccurs="0" maxOccurs="unbounded" name="BPMeasurement">

<s:co
mplexType>

<s:sequence>

<s:element minOccurs="1" maxOccurs="1" name="Valid" type="s:boolean"/>

<s:element minOccurs="1" maxOccurs="1" name="TimeOfMeasurement" type="s:dateTime"/>

<s:element minOccurs="1" maxOccurs="1" name="TimeOfTransmission" type="s:date
Time"/>

<s:element minOccurs="1" maxOccurs="1" name="SystolicPressure" type="s:int"/>

<s:element minOccurs="1" maxOccurs="1" name="DiastolicPressure" type="s:int"/>

<s:element minOccurs="1" maxOccurs="1" name="PulseRatePerMinute" type="s:int"/>

<s:element
minOccurs="1" maxOccurs="1" name="MeanArterialPressure" type="s:int"/>

</s:sequence>

</s:complexType>

</s:element>

</s:sequence>

<s:attribute name="SchemaVersion" type="s:decimal"/>

</s:complexType>

</s:element>

<s:complexType name="HL7_CX_STRUCTUREType">

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="IDNumber" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="CheckDigit" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="CheckDigitScheme" type="s:string"/>

<s:element min
Occurs="0" maxOccurs="1" name="AssigningAuthority"
type="HL7_HD_STRUCTUREType"/>

<s:element minOccurs="0" maxOccurs="1" name="IdentifierTypeCode" type="s:string"/>

IST
-
27074 SAPHIRE

D4.1.1

36

<s:element minOccurs="0" maxOccurs="1" name="AssigningFacility"
type="HL7_HD_STRUCTUREType"/
>

<s:element minOccurs="0" maxOccurs="1" name="EffectiveDate" type="s:dateTime"/>

<s:element minOccurs="0" maxOccurs="1" name="ExpirationDate" type="s:dateTime"/>

<s:element minOccurs="0" maxOccurs="1" name="AssigningJurisdiction"
type="HL7_CWE_STRUCTURETy
pe"/>

<s:element minOccurs="0" maxOccurs="1" name="AssigningAgencyOrDepartment"
type="HL7_CWE_STRUCTUREType"/>

</s:sequence>

</s:complexType>

<s:complexType name="HL7_HD_STRUCTUREType">

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="NameSpaceID"

type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="UniversalID" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="UniversalIDType" type="s:string"/>

</s:sequence>

</s:complexType>

<s:complexType name="HL7_CWE_STRUCTUREType">

<s:se
quence>

<s:element minOccurs="0" maxOccurs="1" name="Identifier" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="NameOfCodingSystem" type="s:string"/>

<s:element minOccurs=
"0" maxOccurs="1" name="AlternateIdentifier" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="AlternateText" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="NameOfAlternateCodingSystem" type="s:string"/>

<s:element minOccurs="0
" maxOccurs="1" name="CodingSystemVersionID" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="AlternateCodingSystemVersionID" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="OriginalText" type="s:string"/>

</s:sequence>

</s:com
plexType>

<s:element name="getSpO2DataResult">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="Patient">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="PatientID" type="HL7_CX_STRUCTUREType"/>

IST
-
27074 SAPHIRE

D4.1.1

37

<s:element

minOccurs="0" maxOccurs="unbounded" name="AlternatePatientID"
type="HL7_CX_STRUCTUREType"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element minOccurs="0" maxOccurs="1" name="SPO2Sensor">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccu
rs="1" name="BlueToothID" type="s:string"/>

<s:element minOccurs="0" maxOccurs="1" name="SerialNumber" type="s:string"/>

<s:element minOccurs="1" maxOccurs="1" name="BatteryStatus" type="s:decimal"/>

<s:element minOccurs="0" maxOccurs="1" name="DeviceType"

type="s:string"/>

<s:element minOccurs="0" maxOccurs="unbounded" name="Status" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

<s:element minOccurs="0" maxOccurs="unbounded" name="SPO2Measurement">

<s:complexType>

<s:sequence>

<s:element min
Occurs="1" maxOccurs="1" name="Valid" type="s:boolean"/>

<s:element minOccurs="1" maxOccurs="1" name="TimeOfMeasurement" type="s:dateTime"/>

<s:element minOccurs="1" maxOccurs="1" name="TimeOfTransmission" type="s:dateTime"/>

<s:element minOccurs="1" maxOc
curs="1" name="SPO2" type="s:int"/>

<s:element minOccurs="1" maxOccurs="1" name="PulseRatePerMinute" type="s:int"/>

<s:element minOccurs="0" maxOccurs="unbounded" name="Pleth" type="s:int"/>

<s:element minOccurs="1" maxOccurs="1" name="SignalQuality" type=
"s:int"/>

<s:element minOccurs="1" maxOccurs="1" name="SignalAmplification" type="s:int"/>

</s:sequence>

</s:complexType>

</s:element>

</s:sequence>

<s:attribute name="SchemaVersion" type="s:decimal"/>

</s:complexType>

</s:element>

</s:schema>

</wsdl:types
>

<wsdl:message name="getBPDataSoapIn">

IST
-
27074 SAPHIRE

D4.1.1

38

<wsdl:part name="parameters" element="tns:getBPData"/>

</wsdl:message>

<wsdl:message name="getBPDataSoapOut">

<wsdl:part name="parameters" element="tns:getBPDataResponse"/>

</wsdl:message>

<wsdl:message name="getECGN
ewLBBBStatusSoapIn">

<wsdl:part name="parameters" element="tns:getECGNewLBBBStatus"/>

</wsdl:message>

<wsdl:message name="getECGNewLBBBStatusSoapOut">

<wsdl:part name="parameters" element="tns:getECGNewLBBBStatusResponse"/>

</wsdl:message>

<wsdl:message na
me="getECGPRStatusSoapIn">

<wsdl:part name="parameters" element="tns:getECGPRStatus"/>

</wsdl:message>

<wsdl:message name="getECGPRStatusSoapOut">

<wsdl:part name="parameters" element="tns:getECGPRStatusResponse"/>

</wsdl:message>

<wsdl:message name="getEC
GSTElevationStatusSoapIn">

<wsdl:part name="parameters" element="tns:getECGSTElevationStatus"/>

</wsdl:message>

<wsdl:message name="getECGSTElevationStatusSoapOut">

<wsdl:part name="parameters" element="tns:getECGSTElevationStatusResponse"/>

</wsdl:message
>

<wsdl:message name="getPatientGeneratedEventSoapIn">

<wsdl:part name="parameters" element="tns:getPatientGeneratedEvent"/>

</wsdl:message>

<wsdl:message name="getPatientGeneratedEventSoapOut">

<wsdl:part name="parameters" element="tns:getPatientGenerated
EventResponse"/>

</wsdl:message>

<wsdl:message name="getSpO2DataSoapIn">

<wsdl:part name="parameters" element="tns:getSpO2Data"/>

</wsdl:message>

<wsdl:message name="getSpO2DataSoapOut">

<wsdl:part name="parameters" element="tns:getSpO2DataResponse"/>

</ws
dl:message>

<wsdl:portType name="SensorWSSoap">

<wsdl:operation name="getBPData">

IST
-
27074 SAPHIRE

D4.1.1

39

<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the patient's most recent
blood pressure Data</wsdl:documentation>

<wsdl:input message="tns:getBPDat
aSoapIn"/>

<wsdl:output message="tns:getBPDataSoapOut"/>

</wsdl:operation>

<wsdl:operation name="getECGNewLBBBStatus">

<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the patient's LBBB status.
The status is 'true', if a new left
bundle branch block (LBBB) has been detected. If not, the method returns
'false'.</wsdl:documentation>

<wsdl:input message="tns:getECGNewLBBBStatusSoapIn"/>

<wsdl:output message="tns:getECGNewLBBBStatusSoapOut"/>

</wsdl:operation>

<wsdl:operation name="get
ECGPRStatus">

<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the length of the PR interval
in miliseconds. This refers to the most recent reference cycle identified by the ECG analysis
software.</wsdl:documentation>

<wsdl:input m
essage="tns:getECGPRStatusSoapIn"/>

<wsdl:output message="tns:getECGPRStatusSoapOut"/>

</wsdl:operation>

<wsdl:operation name="getECGSTElevationStatus">

<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the patient's ST
-
elevation
st
atus. The status is 'true', if a ST
-
elevation has been detected. If not, the method returns 'false'. This method
should use ANY reference cycle stored since the last call.</wsdl:documentation>

<wsdl:input message="tns:getECGSTElevationStatusSoapIn"/>

<wsdl
:output message="tns:getECGSTElevationStatusSoapOut"/>

</wsdl:operation>

<wsdl:operation name="getPatientGeneratedEvent">

<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the patient
-
generated event
(if there has been any) since th
e last call of this method. This can be either 'angina', 'dyspnea' or
'none'.</wsdl:documentation>

<wsdl:input message="tns:getPatientGeneratedEventSoapIn"/>

<wsdl:output message="tns:getPatientGeneratedEventSoapOut"/>

</wsdl:operation>

<wsdl:operation nam
e="getSpO2Data">

<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns the patient's most recent
SpO2 Data</wsdl:documentation>

<wsdl:input message="tns:getSpO2DataSoapIn"/>

<wsdl:output message="tns:getSpO2DataSoapOut"/>

</wsdl:operati
on>

</wsdl:portType>

IST
-
27074 SAPHIRE

D4.1.1

40

<wsdl:binding name="SensorWSSoap" type="tns:SensorWSSoap">

<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="getBPData">

<soap:operation soapAction="http://de.offis.ig.saphire.SensorWS/g
etBPData" style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getECGNewLBBBStatus">

<soap:operation soapAction="http://de.offis.ig.saphire.
SensorWS/getECGNewLBBBStatus"
style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getECGPRStatus">

<soap:operation soapAction="http://de.of
fis.ig.saphire.SensorWS/getECGPRStatus" style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getECGSTElevationStatus">

<soap:operation soapA
ction="http://de.offis.ig.saphire.SensorWS/getECGSTElevationStatus"
style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

IST
-
27074 SAPHIRE

D4.1.1

41

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getPatientGenerated
Event">

<soap:operation soapAction="http://de.offis.ig.saphire.SensorWS/getPatientGeneratedEvent"
style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:opera
tion name="getSpO2Data">

<soap:operation soapAction="http://de.offis.ig.saphire.SensorWS/getSpO2Data" style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

</wsdl:
binding>

<wsdl:service name="SensorWS">

<wsdl:port name="SensorWSSoap" binding="tns:SensorWSSoap">

<soap:address location="http://localhost:2893/WebSite1/SensorWS.asmx"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

IST
-
27074 SAPHIRE

D4.1.1

42


9.4

SOAP Message for getSpO2Data

9.4.1

Input

POST /WebSite1/SensorWS.asmx HTTP/1.1

Host: localhost

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length

SOAPAction: "http://de.offis.ig.saphire.SensorWS/getSpO2Data"


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w
3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getSpO2Data xmlns="http://de.offis.ig.saphire.SensorWS/">


<patientID>string</patientID>


</getSp
O2Data>


</soap:Body>

</soap:Envelope>

9.4.2

Output

HTTP/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w
3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getSpO2DataResponse xmlns="http://de.offis.ig.saphire.SensorWS/">


<getSpO2DataResult SchemaVersion="decimal" xmlns="">


<Patient>


<Patie
ntID>


<IDNumber>string</IDNumber>


<CheckDigit>string</CheckDigit>


<CheckDigitScheme>string</CheckDigitScheme>


<AssigningAuthority xsi:nil="true" />


<IdentifierTypeCode>string</IdentifierTypeCode>


<AssigningFacility xsi:nil="true" />


<EffectiveDate>dateTime</EffectiveDate>


<ExpirationDate>dateTime</ExpirationDate>


<AssigningJurisdiction xsi:nil="true" />


<AssigningAgencyOrDepartment xsi:nil
="true" />


</PatientID>


<AlternatePatientID>


<IDNumber>string</IDNumber>


<CheckDigit>string</CheckDigit>


<CheckDigitScheme>string</CheckDigitScheme>


<AssigningAuthority xsi:nil="true" />



<IdentifierTypeCode>string</IdentifierTypeCode>


<AssigningFacility xsi:nil="true" />


<EffectiveDate>dateTime</EffectiveDate>

IST
-
27074 SAPHIRE

D4.1.1

43


<ExpirationDate>dateTime</ExpirationDate>


<AssigningJurisdiction xsi:nil
="true" />


<AssigningAgencyOrDepartment xsi:nil="true" />


</AlternatePatientID>


<AlternatePatientID>


<IDNumber>string</IDNumber>


<CheckDigit>string</CheckDigit>


<CheckDigitScheme>string</C
heckDigitScheme>


<AssigningAuthority xsi:nil="true" />


<IdentifierTypeCode>string</IdentifierTypeCode>


<AssigningFacility xsi:nil="true" />


<EffectiveDate>dateTime</EffectiveDate>


<ExpirationDate>
dateTime</ExpirationDate>


<AssigningJurisdiction xsi:nil="true" />


<AssigningAgencyOrDepartment xsi:nil="true" />


</AlternatePatientID>


</Patient>


<SPO2Sensor>


<BlueToothID>string</BlueToothID>



<SerialNumber>string</SerialNumber>


<BatteryStatus>decimal</BatteryStatus>


<DeviceType>string</DeviceType>


<Status>string</Status>


<Status>string</Status>


</SPO2Sensor>


<SPO2Measurement>



<Valid>boolean</Valid>


<TimeOfMeasurement>dateTime</TimeOfMeasurement>


<TimeOfTransmission>dateTime</TimeOfTransmission>


<SPO2>int</SPO2>


<PulseRatePerMinute>int</PulseRatePerMinute>


<Pleth>int</Pleth>


<Pleth>int</Pleth>


<SignalQuality>int</SignalQuality>


<SignalAmplification>int</SignalAmplification>


</SPO2Measurement>


<SPO2Measurement>


<Valid>boolean</Valid>


<TimeOfMeasurement>dateTime<
/TimeOfMeasurement>


<TimeOfTransmission>dateTime</TimeOfTransmission>


<SPO2>int</SPO2>


<PulseRatePerMinute>int</PulseRatePerMinute>


<Pleth>int</Pleth>


<Pleth>int</Pleth>


<SignalQuality>int</Signal
Quality>


<SignalAmplification>int</SignalAmplification>


</SPO2Measurement>


</getSpO2DataResult>


</getSpO2DataResponse>


</soap:Body>

</soap:Envelope>


9.5

SOAP Message for getBPData

9.5.1

Input

POST /WebSite1/SensorWS.asmx HTTP/1.1

IST
-
27074 SAPHIRE

D4.1.1

44

Host:

localhost

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length

SOAPAction: "http://de.offis.ig.saphire.SensorWS/getBPData"


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http
://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getBPData xmlns="http://de.offis.ig.saphire.SensorWS/">


<patientID>string</patientID>


</getBPData>


</soap:Body>

</soap:Envelope>

9.5.2

Output

HTT
P/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.x
mlsoap.org/soap/envelope/">


<soap:Body>


<getBPDataResponse xmlns="http://de.offis.ig.saphire.SensorWS/">


<getBPDataResult SchemaVersion="decimal" xmlns="">


<Patient>


<PatientID>


<IDNumber>string</IDNumber>



<CheckDigit>string</CheckDigit>


<CheckDigitScheme>string</CheckDigitScheme>


<AssigningAuthority xsi:nil="true" />


<IdentifierTypeCode>string</IdentifierTypeCode>


<AssigningFacility xsi:nil="true" />



<EffectiveDate>dateTime</EffectiveDate>


<ExpirationDate>dateTime</ExpirationDate>


<AssigningJurisdiction xsi:nil="true" />


<AssigningAgencyOrDepartment xsi:nil="true" />


</PatientID>


<Alternate
PatientID>


<IDNumber>string</IDNumber>


<CheckDigit>string</CheckDigit>


<CheckDigitScheme>string</CheckDigitScheme>


<AssigningAuthority xsi:nil="true" />


<IdentifierTypeCode>string</IdentifierTypeC
ode>


<AssigningFacility xsi:nil="true" />


<EffectiveDate>dateTime</EffectiveDate>


<ExpirationDate>dateTime</ExpirationDate>


<AssigningJurisdiction xsi:nil="true" />


<AssigningAgencyOrDepartment xs
i:nil="true" />


</AlternatePatientID>


<AlternatePatientID>


<IDNumber>string</IDNumber>


<CheckDigit>string</CheckDigit>


<CheckDigitScheme>string</CheckDigitScheme>


<AssigningAuthority xsi:n
il="true" />


<IdentifierTypeCode>string</IdentifierTypeCode>

IST
-
27074 SAPHIRE

D4.1.1

45


<AssigningFacility xsi:nil="true" />


<EffectiveDate>dateTime</EffectiveDate>


<ExpirationDate>dateTime</ExpirationDate>


<AssigningJurisd
iction xsi:nil="true" />


<AssigningAgencyOrDepartment xsi:nil="true" />


</AlternatePatientID>


</Patient>


<BPSensor>


<BlueToothID>string</BlueToothID>


<SerialNumber>string</SerialNumber>


<B
atteryStatus>decimal</BatteryStatus>


<DeviceType>string</DeviceType>


<Status />


<Status />


</BPSensor>


<BPMeasurement>


<Valid>boolean</Valid>


<TimeOfMeasurement>dateTime</TimeOfMeasurement>


<TimeOfTransmission>dateTime</TimeOfTransmission>


<SystolicPressure>int</SystolicPressure>


<DiastolicPressure>int</DiastolicPressure>


<PulseRatePerMinute>int</PulseRatePerMinute>


<MeanArterialPressure>int</
MeanArterialPressure>


</BPMeasurement>


<BPMeasurement>


<Valid>boolean</Valid>


<TimeOfMeasurement>dateTime</TimeOfMeasurement>


<TimeOfTransmission>dateTime</TimeOfTransmission>


<SystolicPressure>int</S
ystolicPressure>


<DiastolicPressure>int</DiastolicPressure>


<PulseRatePerMinute>int</PulseRatePerMinute>


<MeanArterialPressure>int</MeanArterialPressure>


</BPMeasurement>


</getBPDataResult>


</getBPDataRespons
e>


</soap:Body>

</soap:Envelope>



9.6

SOAP Message for getPatientGeneratedEvent

9.6.1

Input

POST /WebSite1/SensorWS.asmx HTTP/1.1

Host: localhost

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length

SOAPAction: "http://de.offis.ig.saphire.SensorWS/getPati
entGeneratedEvent"


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getPatientGeneratedEvent xmlns="http://de.offis.ig.saphire.SensorWS/">


<patientID>string</patientID>

IST
-
27074 SAPHIRE

D4.1.1

46


</getPatientGeneratedEvent>


</soap:Body>

</soap:Envelope>

9.6.2

Output

HTTP/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: len
gth


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getPatientGeneratedEven
tResponse
xmlns="http://de.offis.ig.saphire.SensorWS/">


<getPatientGeneratedEventResult>string</getPatientGeneratedEventResult>


</getPatientGeneratedEventResponse>


</soap:Body>

</soap:Envelope>



9.7

SOAP Message for
getECGNewLBBBStatus

9.7.1

Input

POST
/WebSite1/SensorWS.asmx HTTP/1.1

Host: localhost

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length

SOAPAction: "http://de.offis.ig.saphire.SensorWS/getECGNewLBBBStatus"


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www
.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getECGNewLBBBStatus xmlns="http://de.offis.ig.saphire.SensorWS/">


<patientID>string</patientID>



</getECGNewLBBBStatus>


</soap:Body>

</soap:Envelope>


9.7.2

Output

HTTP/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmln
s:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

IST
-
27074 SAPHIRE

D4.1.1

47


<soap:Body>


<getECGNewLBBBStatusResponse xmlns="http://de.offis.ig.saphire.SensorWS/">


<getECGNewLBBBStatusResult>boolean</getECGNewLBBBStatusResul
t>


</getECGNewLBBBStatusResponse>


</soap:Body>

</soap:Envelope>


9.8

SOAP Message for
getECGPRStatus

9.8.1

Input

POST /WebSite1/SensorWS.asmx HTTP/1.1

Host: localhost

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length

SOAPAction: "http://de.offis.ig.
saphire.SensorWS/getECGPRStatus"


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getECGPRStatus xmlns="http://de.offis.ig.saphire.SensorWS/">


<patientID>string</patientID>


</getECGPRStatus>


</soap:Body>

</soap:Envelope>


9.8.2

Output

HTTP/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length


<?xml version
="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getECGPRStatusResponse xmlns="http://de.o
ffis.ig.saphire.SensorWS/">


<getECGPRStatusResult>int</getECGPRStatusResult>


</getECGPRStatusResponse>


</soap:Body>

</soap:Envelope>


9.9

SOAP Message for
getECGSTElevationStatus

9.9.1

Input

POST /WebSite1/SensorWS.asmx HTTP/1.1

Host: localhost

IST
-
27074 SAPHIRE

D4.1.1

48

Content
-
T
ype: text/xml; charset=utf
-
8

Content
-
Length: length

SOAPAction: "http://de.offis.ig.saphire.SensorWS/getECGSTElevationStatus"


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www
.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getECGSTElevationStatus xmlns="http://de.offis.ig.saphire.SensorWS/">


<patientID>string</patientID>


</getECGSTElevationStatus>


</soap:Body>

</soa
p:Envelope>


9.9.2

Output

HTTP/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length: length


<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns
:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<getECGSTElevationStatusResponse
xmlns="http://de.offis.ig.saphire.SensorWS/">


<getECGSTElevationStatusResult>boolean</getECGSTElevationStatusResult>


</getECGSTElevationStatusRe
sponse>


</soap:Body>

</soap:Envelope>