EUROPEAN COMMISSION
DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY
General Affairs
Information systems
eHealth DSI
Patient Summary and ePrescription
System Architecture
Specification
DOCUMENT VERSION 2.1.0
DATE 01/06/2017
STATUS Wave 1 Operation ready
DG SANTE, CEF eHealth DSI, 2017
Reuse is authorised, provided the source is acknowledged.
COVER AND CONTROL PAGE OF DOCUMENT
Document old name: D3.7.2 Final System Technical Specification
Document name: System Architecture Specification
Distribution level*: PU
Status: Wave 1 Operation ready
Author(s): eHealth DSI provider
Organization:
* Distribution level: PU = Public, PP = Restricted to other programme
participants, RE = Restricted to a group specified by the consortium, CO =
Confidential, only for members of the consortium.
ABSTRACT
In this document, the eHealth DSI architecture is partitioned into the three
classical viewpoints: Business View, Information System View and Technology
View. This approach, inter alia, supports a sufficient level of abstraction useful to
architect a system of heterogeneous healthcare national infrastructure.
Furthermore this level of heterogeneity makes eHealth DSI a typical field for a
Service Oriented Architecture (SOA) style. In this context the architecture must
be abstracted from the complexity-characteristic-platform of underlying systems
(loose coupling principle). The specific technical implementation of a service
should be hidden for the consumer. The components of an eHealth DSI National
Contact Point (NCP) can be viewed like a logical “wrapper” of the different
National Infrastructures.
This document covers the most technical part (technology view), giving
guidelines for an implementation of an eHealth DSI NCP. It is meant to embrace
those works in the most comprehensive manner without repeating those results
unnecessarily.
CHANGE HISTORY
Version Date Status Changes From Review
V0.8 29/10/2010 updates ASIP Santé,
WP3.3
LOMBARDY
members
V2.0.0 28/03/2017 Remove all eHealth DSI provider
references to
epSOS and
requirements
V2.0.1 21/04/2017 Integrate the eHealth DSI provider
modifications linked
to the CP-002
V2.0.2 23/05/2017 Remove the eHealth DSI provider
overlapping
information about
the eHealth DSI web
services
V2.1.0 01/06/2017 Released for eHealth DSI Solution
eHMSEG adoption Provider
TABLE OF CONTENTS
1 Executive Summary................................................................................................................. 6
2 Introduction............................................................................................................................... 7
3 Context & Methodology ......................................................................................................... 8
3.1 Methodology and approach.........................................................................................................8
4 Business View ........................................................................................................................... 9
4.1 eHealth DSI Information Model ................................................................................................9
4.1.1 Actors, Roles and Objects ................................................................................................. 9
4.1.2 Relationship between actors & objects: Information Model ............................. 9
4.2 eHealth DSI processes .................................................................................................................. 10
4.2.1 Establishment of a secure context between 2 NCPs............................................ 10
4.2.2 Medical data exchange & handling ............................................................................. 12
4.2.3 Groups of eHealth DSI processes................................................................................. 14
4.2.4 Description of the flow of control ............................................................................... 14
4.2.5 Exception Handling ........................................................................................................... 21
4.3 Synthesis: Business view ............................................................................................................ 22
5 Information System View.................................................................................................... 23
5.1 From Business view to eHealth DSI Information System ..................................... 23
5.2 Descriptions of the eHealth DSI services......................................................................... 26
5.2.1 Trust – Audit Services ...................................................................................................... 27
5.2.1.1 Internal & External Services.......................................................................................... 28
5.2.1.2 Internal Services ................................................................................................................ 28
5.2.1.3 External Services................................................................................................................ 28
5.2.2 Data Exchanges – Data Transformation Services ................................................. 28
5.2.2.1 Internal & External Services.......................................................................................... 28
5.2.2.2 Internal Services ................................................................................................................ 29
5.2.2.3 External Services................................................................................................................ 29
5.2.3 eHealth DSI support Services ....................................................................................... 29
5.2.3.1 National Contact Point Routing Table ....................................................................... 29
5.2.3.2 Trusted Certificates .......................................................................................................... 29
5.2.3.3 Taxonomy for the eHealth DSI pivot format central function ......................... 29
5.2.3.4 Traits Handshake central function ............................................................................. 30
5.3 NCP considerations ........................................................................................................................ 30
5.3.1 NCP Interface to national domain ............................................................................... 32
5.4 Security considerations .............................................................................................................. 32
5.5 Information Objects....................................................................................................................... 32
5.5.1 Healthcare Professional (HP) ....................................................................................... 33
5.5.1.1 Healthcare Professional Address ................................................................................ 34
5.5.1.2 HealthCare Professional Organization ...................................................................... 34
5.5.2 Patient .................................................................................................................................... 34
5.5.3 Patient Summary (PS)...................................................................................................... 34
5.5.3.1 Medication Summary ....................................................................................................... 35
5.5.4 ePrescription (eP) ............................................................................................................. 35
5.5.5 eDispense .............................................................................................................................. 36
6 Technology View .................................................................................................................... 37
6.1 From Information System view to Technology view ............................................... 37
6.2 eHealth DSI platform .................................................................................................................... 38
6.2.1 Foreword............................................................................................................................... 38
6.2.2 eHealth DSI Domains ........................................................................................................ 38
6.2.2.1 eHealth DSI communication layer .............................................................................. 39
6.2.2.2 Business layer ..................................................................................................................... 39
6.2.2.3 National communication layer ..................................................................................... 39
System Architecture Specification_v2.1.0 Page 4 of 69
6.3 eHealth DSI Technical Architecture.................................................................................... 39
6.3.1 Introduction ......................................................................................................................... 39
6.3.2 Service Architecture ......................................................................................................... 40
6.4 Composite Structure ..................................................................................................................... 42
6.4.1 Layers Description ............................................................................................................ 42
6.4.1.1 The National Communication layer ........................................................................... 43
6.4.1.2 The business layer ............................................................................................................. 43
6.4.1.3 The National Communication layer ........................................................................... 43
6.4.1.4 The Platform layer............................................................................................................. 43
6.4.2 Components Description ................................................................................................ 43
6.4.2.1 Inbound Protocol Terminator ...................................................................................... 44
6.4.2.2 Outbound Protocol Terminator ................................................................................... 45
6.4.2.3 Workflow Manager ........................................................................................................... 46
6.4.2.4 Transformation Manager ............................................................................................... 47
6.4.2.5 Terminology Access Manager ....................................................................................... 49
6.4.2.5.1 Interaction diagram for semantic ........................................................................... 51
6.4.2.6 Security Manager ............................................................................................................... 53
6.4.2.7 AuditTrail .............................................................................................................................. 54
6.4.2.8 Configuration and Monitoring Manager................................................................... 54
6.4.2.9 NationalConnector ............................................................................................................ 55
6.4.3 Components Communication workflow .................................................................. 56
6.4.3.1 Patient Identification........................................................................................................ 56
6.4.3.2 Data Exchange (PS & eP) ................................................................................................ 58
6.4.3.3 Notification ........................................................................................................................... 59
6.5 Security Architecture.................................................................................................................... 61
6.5.1 Trusted Federation of NCPs .......................................................................................... 61
6.5.1.1 NCP certificates................................................................................................................... 62
6.5.2 Message exchange infrastructure ............................................................................... 62
6.5.3 Upper Layer (Iso 7) ........................................................................................................... 63
6.5.3.1 Transmission of authenticated HP ............................................................................. 63
6.5.3.2 Common message format ............................................................................................... 63
6.5.3.3 Signature on message ...................................................................................................... 63
6.5.4 TCP Message Layer (Iso 4) ............................................................................................. 63
6.5.5 IPsec VPN Network Layer (Iso 3)................................................................................ 63
6.5.6 Physical Infrastructure Layer (Iso 1) ........................................................................ 64
6.5.7 Regarding the use of Certificates and PKI ............................................................... 64
6.5.8 Regarding the use of Certificates and PKI ............................................................... 64
6.5.9 Regarding the use of Certificates and PKI ............................................................... 64
6.5.10 Regarding SOAP faults ..................................................................................................... 65
6.5.10.1 Message processing fault ........................................................................................... 65
6.5.10.2 Business processing / request faults .................................................................... 65
6.5.10.3 Clinical processing / content faults ....................................................................... 65
6.5.11 Security zone ....................................................................................................................... 66
6.5.12 Session context ................................................................................................................... 66
6.5.13 Adopted Standards............................................................................................................ 66
6.6 Profile and Transaction Mapping......................................................................................... 68
7 Terminology and Glossary ................................................................................................. 69
7.1 Wording conventions ................................................................................................................... 69
7.2 eHealth DSI Glossary ..................................................................................................................... 69
System Architecture Specification_v2.1.0 Page 5 of 69
1 Executive Summary
The goal of eHealth DSI is to demonstrate that pan-European health data exchange
can be effective in seamless manner for the Healthcare Professional (HP).
Two basic pillars have to be kept in mind: existing national healthcare infrastructures
/ legislation remain unchanged; trust among Country is based on contracts and
agreed policies.
A brief synthesis of the principles that drive
the architecture is:
1. all eHealth DSI communications are
done via gateways and thus have a
Business to Business communication
model,
2. eHealth DSI must not alter existing
medical data in the national systems,
3. records of all exchanges within
eHealth DSI are required and stored,
4. business transactions are designed
separately of security but rely on the
provision of a security context
(“Circle of Trust”),
5. the architecture and its services must
be extensible to cover possible new
supplementary specification in further
implementations of eHealth DSI,
6. a Service Orientated Architecture
(SOA) is suitable to provide a loosely
integrated suite of services that can
be used within the multiple business
domains covered by country in
eHealth DSI,
7. the opportunity to implement a
common components solution that fits
country needs to ease medical
European exchanges.
Figure 1: eHealth DSI "overall picture
A circle of trust is built between NCP in
the "eHealth DSI abstract space", the
only way a country can exchange with
another country.
System Architecture Specification_v2.1.0 Page 6 of 69
In this document, the eHealth DSI
architecture is partitioned into the three
classical viewpoints: Business View,
Information System View and
Technology View. This approach, inter
alia, supports a sufficient level of
abstraction useful to architect a system
of heterogeneous healthcare national
infrastructure. Furthermore this level of
heterogeneity makes eHealth DSI a
typical field for a Service Oriented
Architecture (SOA) style. In this context
the architecture must be abstracted from
the complexity-characteristic-platform of Acting as a “red line”, a simple core-
underlying systems (loose coupling building blocks figure of the eHealth DSI
principle). The specific technical
implementation of a service should be architecture is used as much as possible
hidden for the consumer. The throughout this document.
components of an eHealth DSI National
Contact Point (NCP) can be viewed like a
logical “wrapper” of the different National
Infrastructures.
The basic blocks of the architecture (eHealth DSI profiles) are built upon three main
operations: Query, Retrieve and Notify. Those operations are the unitary blocks
needed to perform the exchanges of data between countries in the eHealth DSI
context.
This document covers the most technical part (technology view), giving guidelines for
an implementation of an eHealth DSI NCP. It is meant to embrace those works in
the most comprehensive manner without repeating those results unnecessarily.
2 Introduction
The main goal is to provide an appropriate view for eHealth DSI, detailing
functionalities, components, interfaces and infrastructures, from which technical
realizations result. Chapter 5 and 6 gives the more technical specs about NCP-NCP.
eHealth DSI has the objective of improving health care services for European citizens
therefore its use must remain simple for both patient and health care professionals.
Such a system will increase the value of pan-European health data exchange
providing new feeds for existing processes and infrastructures. The challenge is to
demonstrate that pan-European health data exchange can be done in a regularly and
easily manner without changing existing national healthcare infrastructures and
legislations, within a trust framework (contracts and agreed policies) among
countries.
eHealth DSI architecture is to provide PS and eP cross-border interoperability.
eHealth DSI is implemented as a set of interacting National Contact Points (further,
simply “NCPs”) built on top of Web technology. Each NCP agrees to exchange
medical data under a mutual circle of trust as shown on figure below:
System Architecture Specification_v2.1.0 Page 7 of 69
Figure 2: Mutual circle of between NCPs
The number of NCPs is first limited to a first wave of countries but will increase in the
future as new country enter eHealth DSI. Therefore the architecture must be
scalable in respect to the number of participating countries and the number of
supported use cases. The eHealth DSI can be considered as a project for
communication between National Infrastructures of Countries and not directly
between HP/HCPO1 or a patient and an HP/HCPO.
The eHealth DSI Architecture is the technical and conceptual translation of those
main sources:
1. the Use Cases (UC),
2. the functional and non-functional requirements deduced from the UCs,
3. the security specification,
4. the identity management specification,
5. the semantic services specification,
6. the common components specification,
7. the common implementation.
This document firstly focuses on the key business specifications that help to drive the
design work on the architecture. It, then, states the basic concepts and principles
that were derived from the analysis of the use cases requirements. On this basis, the
core content of this document is given through different views of the architecture that
will be explained in the next chapters:
1. A Business View
2. An Information System View
3. A Technology View
3 Context & Methodology
This chapter gives an overview of the methodology followed in order to provide the
eHealth DSI architecture, focuses on the key specification. It then concludes on the
basic principles that drive the architecture design.
3.1 Methodology and approach
As mentioned in the Introduction, the architecture is partitioned into the three
classical views derived from TOGAF2
1
In this document, no distinction between the Healthcare Professional (HP) and the HCP Organization (HCPO) will
be made (HP/HCPO).
2
Opengroup, TOGAF Version 9, 2009 (www.opengroup.org).
System Architecture Specification_v2.1.0 Page 8 of 69
Business Architecture (Business view), which describes a Computationally
Independent Model referring to the eHealth DSI domain of interest without
technical considerations. This view is devoted to identification of the actors,
data objects and relevant processes for the eHealth DSI system to operate
from a business point of view (HP/HCPO/Patient).
Information System Architecture (IS view), which describes a Platform
Independent Model and looks at the system in a computational complete way
but without any implementation specific detail. This view is principally
devoted to the identification of eHealth DSI services - and their collaboration
- derived from the processes (ref. to Business view). Components and
service interface are described as well.
Technology Architecture (Technology view), which describes a Platform
Specific Model (i.e. a general webservices stack, not specific to a
programming language/technology) that maps and specifies the Information
System view onto specific technology options for the eHealth DSI system.
This view refers to the eHealth DSI Profiles and their most technical part.
4 Business View
The Business View deals with how the business processes, associated individuals
and business units relate to each other. The Business view represents the concepts
that are supposed to be stable whatever the implementations or the Use Cases are
applied. The eHealth DSI is designed to accomplish operational task driven by the
business strategies. The business driven approach and the technology driven
approach meet in order to logically and technically match business use case
scenario.
4.1 eHealth DSI Information Model
This chapter gives a high level representation of the eHealth DSI information model,
including domain actors (i.e. a person, a device, another system or sub-system) and
objects.
4.1.1 Actors, Roles and Objects
Actors can act on the eHealth DSI system or is acted on by the eHealth DSI system.
A role is related to an actor having a specific behaviour in a particular context:
provider and consumer. The eHealth DSI system bridges the communication
between formats based messaging under two modes of communication: Outbound
and Inbound. The consumer (e.g. HP/HCPO asking for a Patient Summary) uses the
outbound actor (i.e. NCP-B) to query the inbound actor (i.e. NCP-A), then the
inbound actor retrieves the medical data under its national infrastructure and acts as
a provider. Simply put: the provider retrieves information from its own country and
the consumer queries for information.
Actors are: Patient, HP/HCPO (no distinction is made in this document with HP and
HCPO), Infrastructures of country A and B, NCPs.
Objects are: Patient Summary, ePrescription, eDispense, Patient Consents (for PS,
eP, eDispense).
4.1.2 Relationship between actors & objects: Information Model
As a consequence from the analysis of FR/NFR from [PS Functional requirements]
and [eP Functional requirements], the architecture is able to consider the eHealth
DSI information model as described in figure 6.
NB: NCP-A and NCP-B are not represented here, but considered in relationship as
follows:
System Architecture Specification_v2.1.0 Page 9 of 69
• NCP-A: Patient Summary, ePrescription, eDispense, Patient Identification,
Patient Consent
• NCP-B: HP, HCPO, eDispense, HP/HCPO authentication
Figure 3: eHealth DSI Information Model
NB:
• Medication Summary is part of the Patient Summary but it is not represented
as such in the above figure.
• Patient consent (not represented here as a manipulated document – but used
as attribute to an operation) contains the information about roles of the
HP.
4.2 eHealth DSI processes
The scope of this sub-chapter is to support the identification of services. One of the
powerful aspects of services oriented approach in respect of messaging or
transaction approach is the capacity to design generic services, reusable in different
scenarios versus the definition of messages tightly coupled with the specific
integration context.
In eHealth DSI, the two different contexts (ePrescription and Patient Summary) share
the same basic business activities into 2 main steps:
- Secure context establishment
- Data Exchange and Handling
The eHealth DSI core business processes can therefore be represented as such:
Figure 4: eHealth DSI Core Business Processes
4.2.1 Establishment of a secure context between 2 NCPs
Within eHealth DSI, the consumer (Query operations) and the provider (Retrieve
operations) do not know each other. The Circle of Trust is among NCPs. They are
System Architecture Specification_v2.1.0 Page 10 of 69
solely able to establish mutual trust relationships. The final trust relationship is (n:n)
and set up based on direct trust relationships among NCPs. The key issue is that a
NCP can rely on the agreed behaviour of another NCP.
While country B needs access control to protect its HPs from accidentally accessing
data in an illegal way (e.g. because the data controller in country A allows for an
access that is forbidden by the law of country B), country A has to protect the privacy
of its citizens and to ensure the integrity of its internally managed data objects.
The [Security Services Specification] details elements related to the trust secure
context infrastructure and those security issues are treated in section 5.3.
The communication between 2 NCPs:
MUST include mutual requestor/sender authentication (unique and non-repudiable
identification) and MUST prevent attacks on the communication level,
MUST include mechanisms for confidentiality, integrity and non-repudiation,
MUST provide a unique identification and a non-repudiable authentication of
HP/HCPO,
MUST provide means to make a business request non-repudiable for the HP,
MUST ensure that the originator information of a medical data object is authentic,
MUST ensure that a medical data object has not been modified while transmitted.
Figure 5: Secure Context Establishment
Basically:
• Step 1: a HP is identified and is authorized to access the eHealth DSI
System,
• Step 2: A Patient Identification process follows,
• Step 3: The Confirmation of the Treatment Relationship is established
between the patient and the HP/HCPO.
System Architecture Specification_v2.1.0 Page 11 of 69
The Secure Context Establishment supports the separation of basic security
concerns from the business transactions. The latter is achieved by defining a
security context that the business transactions can rely on. Before an eHealth DSI
transaction is carried out on business level, a chain of trust relationships between the
involved actors has to be established. This chain of trust is based on (mutual)
authentication. The above figure shows the necessary steps.
The HP authentication allows for the HP/HCPO its authentication in country B. For
the authentication of the HP/HCPO - who issues the request - and for the
authorisation of that HP/HCPO by the patient - who is the owner of the requested
medical data object - country A has to trust the processes of country B.
The Patient identification between country A and country B in order to allow for ID
mapping in such a way that ID domain, on one hand, and medical data domain, on
the other hand, can be strictly separated. The process starts routing calls to NCP-A.
Patient ID data is entered by HP/HCPO of country B and information regarding
patient’s country is given. Based on that mutual trust the patient identification and
authentication (as far as required by country A) is done, initiated by the HP/HCPO of
country B but controlled by the NCP-A.
The Treatment Relationship Confirmation is established between the HP/HCPO
and the patient. A treatment relationship is validated when the HP/HCPO checks the
box provided by his regular interface.
4.2.2 Medical data exchange & handling
Medical data exchange & handling is the core business activity of eHealth DSI.
This does include PS and eP exchange. Two groups of processes have emerged to
handle data exchange.
System Architecture Specification_v2.1.0 Page 12 of 69
Figure 6: Data Exchange and Handling
Data retrieval
HP/HCPO-B gathers information liable to be treated by NCP-B. Local infrastructures
have many different ways to process their medical data. NCP-A must be able to treat
data even if data source or format changes. First an automated task, called
Discovery, is operated on retrieved local/national format. If no exception arises, then
the data transformation to the eHealth DSI format can start.
Data transformation has a set of rules for transforming a national format into an
eHealth DSI format. The transformation is achieved by associating national patterns
with templates (validation). The structure of the eHealth DSI pivot format (CDA
envelope) can be different from the structure of the national source document.
Elements from the PS & eP can be filtered; reordered and arbitrary structure can be
appended to fill up the eHealth DSI format. A signature for the document is then
provided at the end of the process. Data is always displayed synchronously, and
MUST adapt various technologies.
NB: The processes described in this section have a general value for eHealth DSI.
However, Privacy Law of some Countries MAY require that data transformation is
performed not in the NCP, but in the system where the information is kept or in the
system where the information is exploited.
Send Notification
The notification supports the ability to notify – typically Country B – a change of
status on the data retrieved from Country A (i.e. an indicator referring to a state
transition). It also supports the ability to send data originated in Country B to Country
A (e.g. dispensation/supply).
System Architecture Specification_v2.1.0 Page 13 of 69
4.2.3 Groups of eHealth DSI processes
As a summary, the identified building blocks can be sorted out as in the following
figure:
Figure 7: Processes supporting core building blocks
4.2.4 Description of the flow of control
The following figures provide a view of data processing and secure context through
the data exchange request.
HP Identification & Authentication
System Architecture Specification_v2.1.0 Page 14 of 69
Figure 8: eHealth DSI HP Identification & Authentication
At the beginning of the process, identification procedure initiated by the HP is
insufficient to face the threat of a false HP identity. The authentication can solve this
problem HP provides identification information and NCP verifies the formal
correctness of provided information through the attribute mapping check operation.
The proclaimed identity and genuine identity of the HP will be validated during the
authentication check step of the initial protocol. The identification/authentication
result will be finally sent back to the HP/HCPO B.
NB: HP/HCPO and Infrastructure A/B parts are country concern. The processes involved are
presented as guidelines with no mandatory requirement.
Patient Identification
System Architecture Specification_v2.1.0 Page 15 of 69
Figure 9: Patient Identification
When a patient needs a health service (health care, ePrescription) in a foreign
country B two sub-cases are considered:
The HP receives necessary identification information and is able to identify
the patient.
Patient identification information is not enough according to country A
regulations and requires additional data (e.g. temporary password).
Countries can use TAN (Temporary Access Number) for patient
authentication. It is not a mandatory field and countries are free to choose
traits for their citizens.
Only Identification of a patient by a HP in country B is represented in this schema.
NB: HP/HCPO and Infrastructure A/B parts are country concern. The processes involving
them are presented as guidelines with no mandatory requirement.
Treatment Relationship Confirmation
System Architecture Specification_v2.1.0 Page 16 of 69
Figure 10: Treatment Relationship Confirmation
A treatment relationship confirmation issue by HP/HCPO informs the patient that his
medical data will be accessed. The patient MUST be informed to give his consent for
this operation. The identity of HP/HCPO with a signature is also encapsulated in the
message.
The signature of NCP-B MUST be recognized by NCP-A. When the message
reaches country A, the Patient privacy policies state who can benefit the right to
access his/her data’s. A patient has to state his consent for the exchange of his/her
medical data in accordance with the patient consent policy in country A. According to
the type of data that needs to be accessed, country A determines the status as a
result of consent and policy verification in country A. In addition to the Actors role,
confirmation or rejection depends on the type of data.
It will be mandatory for country B to provide this assertion, but country A MAY decide
to ignore it. An attribute that will be used for indicating an emergency access
scenario will be included in the TRC assertion.
NB: HP/HCPO and Infrastructure A/B parts are country concern. The processes involved are
presented as guidelines, country states if they deliver Medical Data for the patient.
Data Retrieval
System Architecture Specification_v2.1.0 Page 17 of 69
Figure 11: Data retrieval
The data retrieval process returns medical data under National Format.
The steps to follow in order to achieve the semantic transformation process are
provided here:
1) The medical document is retrieved by NCP-A. The document MAY be
digitally signed.
2) The nominal process is the following: NCP-A verifies the validity of the
signature and checks the authenticity and integrity of the document. In case
of a successful verification NCP-A signs the document.
3) The document is transformed into the eHealth DSI pivot format by NCP-A.
4) The original document is provided as a PDF or rendered as PDF and
enveloped.
5) NCP-A creates a detached signature over the pivot document, the PDF
document and the original signature. If PDF is provided by the system, there
is no need for NCP-A to sign it. This attests that: authenticity and integrity
were checked and the pivot document is a transformation of the original
document.
6) Both documents (original and pivot) and signatures are sent to NCP-B.
System Architecture Specification_v2.1.0 Page 18 of 69
7) NCP-B transforms the pivot document into country B native format and
handles it over to the HP.
Transformation and data validation are specific to each country (various national
formats in use). The retrieval task is a national concern and in any case Country A is
responsible to provide the result or the exception/failure outcome back to the
requestor (Country B).
NOTE: To avoid multiple dispensations for the same prescription, pharmacist
retrieves ePs and dispenses. A policy will be defined that a pharmacist always
MUST first retrieve the current list of available prescriptions before he can dispense
anything. This is in line with the Industry Team proposition that it is up to the
pharmacist to manage its stock and that state machine and eP lifecycle management
is to be done in Country A.
Figure 12: Semantic Services – NCP-A Data Transformation
System Architecture Specification_v2.1.0 Page 19 of 69
Figure 13: Semantic Services – NCP-B Data Transformation
NB: HP/HCPO and Infrastructure A/B parts are country concern. The processes involving
them are presented as guidelines with no mandatory requirement.
Send Notification
Figure 14: Send Notification
Notification occurs when an event is triggered (e.g. a dispensed medicine in country
B). The notification object is then transported from B to A and verified. Because
System Architecture Specification_v2.1.0 Page 20 of 69
partial dispensation of a medicine is possible, Country A must provide a way to
update the ePrescription.
Unless the Notification result has been sent, no more dispense for the same
ePrescription will succeed the validation process in country A.
NCP-A gives its ok ("Notification validation"); NCP-B does not wait for eP result (no
return arrow from A); NCP-A assures updates ("Mapping ePrescription").
NB: HP/HCPO and Infrastructure A/B parts are country concern. The description of
functionalities is presented as guidelines but presents no mandatory requirement.
4.2.5 Exception Handling
eHealth DSI has to be secure even if a failure arises. That is, the involved actors
should stay in a well-defined state with a well-defined fault handling. Therefore
exceptional events MUST be reported among system components in a way that
allows the systems that are affected by the failure to process the respective message
in a way that:
• an appropriate reaction can be taken,
• further dependent failures are prevented,
as few system components are affected as possible.
To reach this objective, 5 general principles for eHealth DSI exception handling have
been defined:
• There are NCP-related exceptions, which MUST be defined in this document.
There are National-Structure-related exceptions, which SHOULD be covered
by the national infrastructures. For each exceptional solution (i.e. long
response time), the eHealth DSI exception handling specification MUST
provide guidance stating i) if it MUST be communicated among gateways or
ii) if it MUST, SHOULD or MAY be handled solely within the affected national
infrastructure.
• eHealth DSI services system MUST provide all system user and system
partners (i.e. HP, NCP and National Infrastructures) with appropriate
feedback, even if the transaction failed.
• An error feedback system must be established, including the support of a
national helpdesk. A hierarchy of error messages (3 classes) should be
established which is easily understandable to the HP user, making clear when
the user should abort the system:
o Class I: Try-again, if it is a temporary error-producing situation (e.g.
service not available),
o Class II: user-centric advice, what went wrong (e.g. failed
identification),
o Class III: call to higher instance as something fundamental went wrong
(e.g. national hotline). It is not mandatory for each country to support
such a “hotline”, but it is mandatory to specify a national contact if a
fatal error must be propagated.
• The decision to propagate an error-message is related to its code severity.
There are five levels of severity in eHealth DSI defined (cf. table below). It is
mandatory to propagate the last “CRITICAL” Level. Every bilateral agreement
between two countries can define to give one of the severity levels a
dedicated action.
Severity Code Description
Debug Only for internal use (technical experts)
Info Only for internal use
Warning Some flaws, but the transaction is performed
Error The transaction may or not succeed
CRITICAL Critical failure, transaction must be cancelled
System Architecture Specification_v2.1.0 Page 21 of 69
• Trust between countries is essential for eHealth DSI, especially in a failure
situation. Therefore every failure MUST be recognized in the Audit Trail. It
might be sufficient to just use a general error code with participants, date and
time. But regarding to the severity code, it can also be most important to log
as much information as possible.
4.3 Synthesis: Business view
A classical distinction is made between “services” considered at the business level
and those considered at technical level (i.e. Information System view and Technology
view). Referring to OASIS-SOA-RM, “Services are the mechanism by which needs
and capabilities are brought together”. The services enable distributed capabilities
that may be under the control of different ownership domains. Service provides a
uniform means to offer, discover, interact with and use capabilities to produce
desired effects consistent with measurable preconditions and expectations.
The main services for eHealth DSI at a business level are represented in the figure
below:
Figure 15: The eHealth DSI services at business level
Identification Service: This service first enables NCPs
identification/authorization/authentication from HP/HCPO of country B to National
Infrastructure of country A. To enable exchange of data, the binding service creates
a channel of communication, as a secure way to enable the circle of trust.
PS Service & ePrescription Service: data are sent through the PS & ePrescription
services. Those services check for the validity and the transformation to the pivot
format back and forth.
System Architecture Specification_v2.1.0 Page 22 of 69
Figure 16: The eHealth DSI Business View
As stated before (see above, Secure Context Establishment figure), it has been
chosen not to have the Circle of Trust security service appear in order to help reading
the overall eHealth DSI business processes.
5 Information System View
The Information System View provides a blueprint for the individual application
systems to be deployed, the interactions between the application systems, and their
relationships to the core business processes of the organization with the frameworks
for services to be exposed as business functions for integration. Because of the
sensitive context of transmitting medical data special attention is given to security
and legal issues (e.g. levels of trust, operator access rights, and patient consent).
The cross-country exchange of medical data does not only provide legal challenges
but first and foremost problems regarding the structure and content of such
information.
This chapter defines the structure and the high level behaviour of a NCP while the
next chapter (Technology View) defines the technology mapping.
5.1 From Business view to eHealth DSI Information System
Each block described in the Business View requires Services to operate.
A service represents a unit of essential functionality exposed to others participants
from which the eHealth DSI Architecture is structured.
The highest level for eHealth DSI services is consistent with the building blocks
introduced previously. The information system view of eHealth DSI focuses on NCP
services. The blocks are the basis for NCP services structure therefore applicative
functions described in this chapter are related to one of the following parts of a NCP:
eHealth DSI NCP interfaces
System Architecture Specification_v2.1.0 Page 23 of 69
internal NCP service architecture
National interface
Figure 17: eHealth DSI basic structure
The eHealth DSI NCP interfaces regard to services provided and consumed by other
NCPs of the eHealth DSI infrastructure. eHealth DSI interfaces are “normative” for
an eHealth DSI NCP. A NCP is a "participant" of eHealth DSI world if and only if it is
compliant to normative eHealth DSI interfaces in terms of structure, behaviour and
security policy. The main part of this service is related to NCP to NCP exchange, but
some common utility services can be centralized now or in the future.
The National interfaces are the services provided and consumed by a NCP in the
“National world”. The implementation of these interfaces, obviously, strictly depends
on the specific characteristic and standard adopted by every National Infrastructure.
The internal NCP service architecture defines a structure of sub components and
relative internal interfaces of a NCP. This set of specification supports the realization
of Common Components and can be viewed as a facility for eHealth DSI.
Obviously an exception is the subcomponents for the realization of National
Interfaces realized on a National basis.
The responsibility of this part is to implement:
• the business logic (data discovery / Exchange / Transformation services)
necessary to expose and consume the eHealth DSI NCP interface with the
necessary protocol, schema and terminology mapping from and to the
National protocol, schema and terminology
• trust services (security) for the handling of the defined security policy (eHealth
DSI and National)
• audit Services for the realization of the audit requirement
• support (utilities) internal services
The figure below is a high level representation for eHealth DSI communication across
NCPs, Country A and Country B with a more detailed view of the NCP services
structure.
System Architecture Specification_v2.1.0 Page 24 of 69
Figure 18: eHealth DSI logical view
• Data discovery / exchange: group of services to enable message sending
either within the country or outside, to another NCP. It includes Patient
Identification service
• Trust services: ensure trust and notably message or data validation,
verification, signature, mapping
• Transformation: gather the services for data object schema providing (eHealth
DSI pivot format or national format) and taxonomy mapping
• Audit: bring together all the application services needed for system traceability
• Support: gather the application services needed to ensure service availability,
response time, guaranteed delivery and session to access eHealth DSI
Each NCP in eHealth DSI World can play the role of consumer and provider of
eHealth DSI services and, in the same way, impersonate the corresponding role of
consumer and provider of National services.
As a consequence, NCP services are parted in internal services and external ones.
The figure below illustrates the separation of concerns between eHealth DSI world
and national World. It is not the scope of this section to be yet specific about internal
and external services. Figure 21 will serve that point later in the document.
System Architecture Specification_v2.1.0 Page 25 of 69
Figure 19: Services regarding national and eHealth DSI domains
5.2 Descriptions of the eHealth DSI services
In the following sections the elaborated eHealth DSI services are subdivided into
Trust & Audit (covering services related to security issues) and Data Exchange &
Transformation (covering services related to any data exchange out of or through the
eHealth DSI domain). Furthermore the services are subdivided into internal (living
within the eHealth DSI domain) and external (living within the national domain)
services. Some services are related to both domains.
Support services are discussed in the section dedicated to eHealth DSI Central
Services.
Figure 20: Services "zoning" Overview
System Architecture Specification_v2.1.0 Page 26 of 69
5.2.1 Trust – Audit Services
The proposed Information System View, later described in chapter security clearly
separates the European security context and the national security context. The
separation is realized by the logical component National Contact Point (NCP) which
is connected to the eHealth DSI and the National Infrastructure via dedicated
interfaces. Each interface has its own network security, own PKI and own semantics
as cryptographic standards, taxonomy and messaging. From the eHealth DSI point
of view, there is one and only one NCP per Country mediating all communication
related to the involved countries.
According to the description of the NCP functionality, two (security) domains
representing the levels of trust have been identified: the eHealth DSI security domain
and the national security domain. While the eHealth DSI security domain covers all
communication between two NCPs and ensures data protection and privacy, the
national security domain ensures the national policies between the NCP and its
national gateways. Figure 21 shows the different way to establish End-to-End Trust:
1. Brokering trust by linking security contexts,
2. Pretending End-to-End security by brokering security objects,
3. True End-to-End Trust by using End-to-End security objects.
eHealth DSI implements (1) for confidentiality and (2) for integrity and authenticity.
Figure 21: Security Context ("trust Chain")
eHealth DSI NCPs set up a “Circle of Trust” which is instantiated by the respective
communicating gateways. Each NCP as a legal entity guarantees that each
communication initiated or accepted by one of its gateways complies with the
eHealth DSI security policy, the respective national legislation and all additional
agreements among the cooperating countries. It even more guarantees for the
integrity and authenticity of its gateways by providing the respective gateway
certificates.
The eHealth DSI Circle of Trust defines the actors and transaction for the
management and establishment of mutual trust relationships among eHealth DSI
gateways and for the operation of a secure channel between these gateways. Thus,
it provides a foundation for setting up and maintaining a closed network of trusted
nodes on top of an insecure network (e. g. the internet). The Circle of Trust profile
makes use of Transport Layer Security (TLS/SSL) to establish connection between
System Architecture Specification_v2.1.0 Page 27 of 69
country A and country B; and VPN (ipSec) must be used to protect data flows
between the 2 NCPs, as well as for signing the SAML assertions (see Chapter
“Technology View”).
5.2.1.1 Internal & External Services
Internal & External services are services which are available within the eHealth DSI
infrastructure and the interface for the national infrastructure.
NCP_Audit_Service: The service is responsible for auditing of every data
access or attempts. There are two aims of auditing, first to satisfy the data
privacy law regarding the right of data sovereignty of the patient and second
the non-repudiation of origin. It is assumed that the audit trail includes
information encoded in eHealth DSI taxonomy in addition to information
encoded in national taxonomy. Therefore it is spread over both domains in
the model.
The component must facilitate the non-repudiation of the actions of every involved
party on a technical and organizational level for each and every transaction
successfully processed or denied (e.g. prescribing doctor, dispensing pharmacist,
NCP routing/mapping, data resource URL retrieval, patient’s identifier query).
5.2.1.2 Internal Services
Internal services are services residing on the eHealth DSI internal side.
NCP_Security_Service_epSOS: This security service is responsible for the
verification and affirmation of integrity, authenticity and confidentiality of each
transaction within the eHealth DSI domain (e.g. between NCPs, localization
services). Therefore it is able to validate signatures and check the status of
certificates that are assigned to its security domain.
P_ID_Provider: This service is responsible for uniquely identifying a patient
within eHealth DSI by discovering the unique patient identifier referring to the
home community of a patient and the patient identifier that must be used for
querying for patient data within that community.
5.2.1.3 External Services
External services are services connecting the eHealth DSI infrastructure with the
country’ national infrastructure.
HCP_ID_Provider: This service is responsible for providing a unique Id for a
HP within eHealth DSI, which has to be provided by national authorities.
NCP_Security Service_National: This security service is responsible for the
verification and affirmation of integrity, authenticity and confidentiality of each
transaction within the national domain (e.g. between HPs and NCP,
authorization services). Therefore it is able to validate signatures and check
the status of certificates that are assigned to its security domain.
HCP_Confirmation_Service: The component HCP_Authorization_Service
provides and controls the consent assertion that is needed to transport the
authorization of the HP by the patient.
5.2.2 Data Exchanges – Data Transformation Services
5.2.2.1 Internal & External Services
NCP_Semantic_Service: The mapping of medical information and taxonomy
is done by the semantic services therefore this component belongs to the
System Architecture Specification_v2.1.0 Page 28 of 69
internal and external domain. To facilitate a faster implementation we
propose the development of an outline for an interface where the most
common format is described.
5.2.2.2 Internal Services
NCP_Localisation_Services: The service locates the communication
counterpart (NCP-A) and has access to locate tables and maps country IDs to
endpoint URLs. It provides the means to discover and access medical
resources, while storage is left to national implementation. Localization of
data is done via location independent Unified Resource Names (URN),
provided by an URN-Resolver, which can be transcript to URLs referring to
the concrete data store.
5.2.2.3 External Services
NCP_Message_Adapter: The adaptation of the national communication
protocol is done by the NCP_Message_Adapter, e.g. the splitting of
ePrescriptions or the correlation of related messages. It lives in the national
domain, because the eHealth DSI internal business logic depends on
information provided by the existing national infrastructure.
5.2.3 eHealth DSI support Services
There are a number of information sources which are relevant for every NCP and
must be in the same state for every NCP. Examples for this are common
taxonomies, schemas, and WSE addresses of NCPs. This shared data is centrally
managed in order to avoid inconsistencies and version conflicts in a generalization
process of eHealth DSI.
Services3 are implemented within a NCP by using a static configuration table. It is
the responsibility of each NCP to keep the configuration up to date from centrally
managed data storage. Each NCP MUST be in charge to manually download new
version of any updated data. This operation can be done with a secure method (via
SSL, TLS, or SFTP) to upload / download files to and from FTP servers.
5.2.3.1 National Contact Point Routing Table
The Locate central function is a simple NCP Routing Table which facilitates the
connections between two NCPs. This service is independent of the form of
distribution (e.g; centrally maintained, replicated or locally maintained copies) and
can be made available as an XML-document. It is maintained locally. This
information is encoded in a NCP configuration file. Each NCP MUST hold a copy of
the configuration files of all the other NCPs.
5.2.3.2 Trusted Certificates
Certificate services are country issues. Technical trust in country A is established by
acknowledging the certificates that were announced by country B and vice versa
after legal trust confirmed.
Certificates from different certificate service providers should be used per
communication layer (VPN, TLS, WS-Security).
5.2.3.3 Taxonomy for the eHealth DSI pivot format central function
The Taxonomy central function serves as a library for all existing and valid eHealth
DSI pivot formats and all relevant schemas. This information should be robust most
3
Term Service does not mean a web service to synchronise local and remote data, but instead a function link to a
manual process for eHealth DSI.
System Architecture Specification_v2.1.0 Page 29 of 69
of the time and not to be changed. Therefore this information can be duplicated into
each NCP. This should also be relevant for later performance issues.
It is the responsibility of each country A to keep the configuration up to date for the
NCP.
5.2.3.4 Traits Handshake central function
NCP-A and NCP-B should be able to agree on the identity traits that have to be
provided by country B in order to identify a patient. Information on which traits are
required for which country are coded within a static client-side configuration. It is the
responsibility of each country B client/portal to keep the configuration up to date.
5.3 NCP considerations
As stated before, a national contact point (NCP) is the single legal representative of a
Country’ eHealth DSI services that guarantees the compliance of all the country’
eHealth DSI services with the eHealth DSI information governance. All
communication to or from a national health care system of a country is done through
its NCP; direct access to national services MUST NOT be possible. Therefore the
NCP is the very basic node entity within eHealth DSI.
This logical component can be addressed via two clearly separated interfaces
(NCP_IF_National and NCP_IF_EPSOS from figures in chapter 5), each one
accessible out of the according network (figure 20). While the concrete
implementation of a NCP has to be done by the according country, the interfaces
defined in the chapter Technology View must be served according to eHealth DSI
specification.
Underneath the shield of a single NCP a country may deploy multiple communities
where each community is running its own instances of eHealth DSI services to serve
the HCPOs, HPs, and patients that are assigned to the community. Access to a
community’s eHealth DSI services is mediated through a community gateway that is
established as part of the NCP.
Typical examples of communities are regions running their own health services and
Cross Enterprise Document Sharing (as agreed XDS Profile) affinity domains as
networks of co-operating healthcare enterprises. Countries with centralized health
services are assumed to be a single community. Each community is identifiable by a
unique ID administrated by the country’s NCP.
The next figure shows a conceptual view of the basic NCP architecture. The diagram
shows the scope of eHealth DSI and the responsibilities of the NCP.
System Architecture Specification_v2.1.0 Page 30 of 69
Figure 22: high Level Architecture of an eHealth DSI NCP
The following figure gives a more detailed view on the composition of the NCP. As
explained before each NCP works as an interface between the national infrastructure
of the country and the eHealth DSI domain. Each NCP hosts services which work in
different contexts and have strongly separated responsibilities.
Figure 23: Detailed Composition of NCP components
System Architecture Specification_v2.1.0 Page 31 of 69
5.3.1 NCP Interface to national domain
The interface that connects the NCP to the national network (NCP_IF_National) is
composed of the sub interface to request a patient ID (IF_PID_Requestor), the sub
interface that is used for the applications ePrescription (eP) and Patient Summary
(PS), both served by IF_Medical_Data and the sub interface that is used to request a
HP identity assertion (IF_HCP_ID_Provider). Processes and components beyond
the interface that connects the NCP with the national infrastructure
(NCP_IF_National) are not part of the eHealth DSI specifications.
5.4 Security considerations
Since eHealth DSI deals with medical data, there is a need to implement strong
security mechanisms to ensure the authenticity, integrity and security of this data.
The basic security principle in eHealth DSI is the “circle of trust”, which means that
each and every NCP trusts its peers from other Countries. In addition to this basic
principle, several additional security services are needed to provide the necessary
level of security. For a more detailed description of these services (see [Security
services specification]).
The security services are the following:
1. Access control: It MUST be ensured that only authorized HPs can retrieve
data from eHealth DSI. Each NCP is responsible for accepting or rejecting an
authorization request of a HP of its country. For all NCPs are to trust each
other a HP only needs to authenticate at the NCP of his country. Data
exchange MUST follow the national law of the involved country.
Implementation lies in the responsibility of the involved NCPs of the countries.
It MUST be ensured, that the data transmitted within eHealth DSI stays intact
to ensure the safety of the patient.
2. Data Confidentiality: Since medical data is a highly sensible data it MUST be
ensured that no unauthorized party is allowed access to this data.
3. Non Repudiation: Non-repudiation of origin MUST be ensured by each NCP.
It therefore logs every transmission and the involved parties (see auditing
services) and enables signing and encryption mechanisms not only between
NCPs but also between HP/HCPOs and NCPs.
4. PKI: For the certificate management a PKI is needed which acts as a CA and
administrates a list of trusted eHealth DSI certificates and a revocation list.
5. Auditing and Accounting: Each NCP logs each and every data access (and
every party accessing the data) via its interfaces. For proper traceability this
service includes a time service synchronizing all NCP-clocks.
5.5 Information Objects
This chapter comprises data objects administrated by the NCP. The following figure
gives an overview of the necessary business objects and their relation. These
objects are more closely described in course of this chapter.
System Architecture Specification_v2.1.0 Page 32 of 69
Figure 24: Schematic representation of the Data Objects and their relations
5.5.1 Healthcare Professional (HP)
A Healthcare Professional is a physician participating in eHealth DSI identifiable by
its unique id. It is affiliated to zero or more HealthCare Professional Organizations,
depending on national legislation.
A HP is related to 0..n HCPOs and is associated with 1..n Healthcare Professional
Addresses.
System Architecture Specification_v2.1.0 Page 33 of 69
5.5.1.1 Healthcare Professional Address
Healthcare Professional Address is related to 0..n HPs. Since a Healthcare
Professional Address can be in the system, even though an HP is removed from the
eHealth DSI context, this address doesn’t necessarily have to be deleted, therefore
an address belonging to no HP SHOULD be allowed.
5.5.1.2 HealthCare Professional Organization
A HealthCare Professional Organization is a logical entity within the national
environment known to the NCP and uniquely identifiable by its id.
A HCPO is related to 1..n HPs. At any given time in the context of an eHealth DSI
transaction, an HP MUST be associated with only one HCPO.
5.5.2 Patient
A patient is an individual person participating in eHealth DSI by giving permission
(prior consent) in his home community to process his/her medical data to a foreign
country. Within his home country each patient is assigned to a single community that
can mediate access to that patient’s PS and ePrescriptions. This community is
called the patient’s home community. It may be possible that, in future projects
based on eHealth DSI, data of each patient is being managed in multiple
communities but this scenario is out of scope of eHealth DSI.
For participating in eHealth DSI the patient has to give within his home community
his permission (consent) for the usage of his data by eHealth DSI (prior consent).
Additionally the patient has to give its permission for the actual usage of its data in
the foreign country by explicitly authorizing a health care operator to do so (activation
of an existing consent). Alternatively the involved HP in country B may request an
emergency access to the patient’s data (e.g. in case the patient is not responsive).
This access has to be handled by the NCP in regard to country A’s legislation
(country A can accept or decline this request).
A patient MUST be related to 0..1 PS, 0..* ePs and 0..n eDispenses.
5.5.3 Patient Summary (PS)
The patient summary contains the patient’s medical information. The patient
summary may also include the medication summary. As previously stated every
access to the Patient Summary and ePrescription data is read only4. There will be no
write access to this data within eHealth DSI. Figure 25 shows the lifecycle of a PS
within eHealth DSI. The PS is available if the patient has agreed to take part in
eHealth DSI, and is not available if the patient decides not to take part in eHealth DSI
anymore.
4
Actually, patient summary and prescription data are provided through services, therefore the actual national
database is not accessible directly.
System Architecture Specification_v2.1.0 Page 34 of 69
Figure 25: Life cycle of the Patient Summary
Every PS MUST be related to exactly 1 patient.
5.5.3.1 Medication Summary
The Medication Summary is not requested as an OPTIONAL part of the PS, but it is
left to country the responsibility to define mutual agreement for Medical Summary.
5.5.4 ePrescription (eP)
The eP object contains information about the medicine prescribed in country A. The
status management of the eP is an internal country affair (i.e. it may differ from
country to country). The minimum basic status is “Available” or “Not Available” as
presented for the Patient Summary.
Figure 26 shows a suggested lifecycle for an eP. When looking at the lifecycle the
following states can be reached by an eP:
1. Ordered: This state is reached when the prescriber has written the eP and the
eP is included in the patient’s electronic health record (EHR).
2. Placed: This state is reached when the ordered eP has been recorded into
the national/regional eP service and is now ready to be accessed by the
dispenser.
3. Cancelled: This state is reached if the eP is invalidated before dispensed
completely.
4. Suspended: If an eP can be dispensed more than one time and requires a
certain time span between dispensions, the eP assumes the state Suspended
in this time. It reaches the state partially dispensed when the eP becomes
available again.
5. Partially Dispensed: If a single ePrescription contains multiple items - or items
which can be multiply dispensed - it reaches this state if the eP is not
dispensed completely.
6. Completed: This state is reached when all ePrescription items have been fully
dispensed.
7. Closed: This state is reached if the eP loses its validity before it has been fully
dispensed (e.g. the eP’s time validity has run out, or the patient has
withdrawn consent).
System Architecture Specification_v2.1.0 Page 35 of 69
An ePrescription with a given consent is valid for the duration defined by country A
and may contain multiple ePrescription Items which may not all be dispensed in one
transaction. An eP MAY include multiple but MUST include at least one
ePrescription item. Every eP is related to exactly 1 patient.
Figure 26: Suggested Lifecycle of an ePrescription
5.5.5 eDispense
In eHealth DSI the event of a patient’s eDispense is handled via a notification
message from country B to country A. Country A has to decide how to handle the
eDispense event. Since an ePrescription may contain multiple ePrescription items, it
must be possible to allow multiple eDispenses for one ePrescription. There are two
ways for the NCP to handle multiple eDispenses:
• If not all eP Items have been dispensed as seen in the notification, generate a
new eP containing only the non-dispensed medicines. This is a task of the
HCPO. Nevertheless, according to every country legislation, this option may
be implemented at the NCP level.
• If not all ePrescription Items have been dispensed, return the original
ePrescription again and raise an error if a notification is received on an
already dispensed medicine. This requires that the pharmacists MUST wait
for the result of the notification before the pharmacist can dispense the
medicine to the patient.
The eDispense object contains information about a dispensed eP. A Dispense
MUST be related to exactly one dispensing HP.
System Architecture Specification_v2.1.0 Page 36 of 69
Service Internal External Data Object
NCP_Audit_Service X
Healthcare Professional (HP)
NCP_Security_Service_epSOS X
Healthcare Professional
Address
NCP_Security_Service_National X
HealthCare Professional
Organization (HCPO)
HCP_Authorization_Service
Patient
NCP_Semantic_Service X Patient Summary
(PS)
NCP_Localisation_Services Medication Summary
X
NCP_Message_Adapter ePrescription
X
P_ID_Provider Dispense
X X
HCP_ID_Provider X X
Internal Services at National level are not described in this document. The document
does not aim at changing the National Infrastructure and does not provide any
guideline for this task. Internal Service presentation is only presented to ease the
comprehension of the whole NCP. The National Connector MUST wrap Internal
Services.
This document proposes the interface for the National Connector as it is described in
the Technology View chapter (components description), not its implementation.
At the other hand, Internal Services are technically described, starting with the next
chapter: Technology View.
6 Technology View
The scope of this chapter is to give the webservices stack view of eHealth DSI in
order to build systems and infrastructures needed for operations. This chapter is
addressing:
• The description of services and its external interface,
• The mapping of transactions and profiles with identified services and
interfaces.
On this basis, the intent of this chapter is to help the countries completing their own
call for tender in order to prepare the system.
6.1 From Information System view to Technology view
The primary reason for developing technological view is to support the application
by providing the fundamental technology and solution for eHealth DSI: Information
System Architecture Specification_v2.1.0 Page 37 of 69
system view on the previous chapter needs to get implemented. To do so, eHealth
DSI profiles - acting as basic unit manipulated in the architecture - are integrated.
Furthermore, the Technology View details the structure and relationships of the
technical services provided by the Gateways, how the components will work, and
how technology will support the eHealth DSI’s application goals. This makes a
responsive asset for a successful technological model. The technological view
addresses this need, by providing a context of the system in response to the
changing needs for the data PS and eP exchange environment.
Finally, the Technological View enables to achieve the right balance between
efficiency and requirements. In essence, it aligns the eHealth DSI business view
and system information view. At the same time, it assures the needs of the
composition for integrated components.
6.2 eHealth DSI platform
6.2.1 Foreword
The eHealth DSI platform aims to allow the “pan-European health data exchange in a
regular and easy manner without changing existing national healthcare
infrastructures and legislations, within a trust framework (contracts and agreed
policies) among countries”. This task is accomplished through a Business-to-
Business cooperation of a set of national gateways (the technical embodiment of
National Contact Points) under a mutual circle of trust.
The notion of platform in eHealth DSI context must be applied with some careful
specification. The term “platform” is inherently relative.
For this reason, the eHealth DSI architecture has its specific “normative” platform
model in “service space”. The choice at this level is the WS* stack and some
supporting eHealth standard and open specification.
However, some architectural definition is outlined in a Platform Independent flavor5:
eHealth DSI gateway “internal” components architecture can be implemented with
different specific low-level technology platform.
6.2.2 eHealth DSI Domains
The following figure illustrates the different domains of eHealth DSI outlined in
Chapter “Business View”. Domains categorize those capabilities:
• National infrastructure (National Infrastructure of HP and HCPO)
• National communication layer
• Business layer
• eHealth DSI communication layer
5
with “Platform Independent Model” and “Platform Specific Model” we make an explicit reference on a Model
Driven terminology (see www.omg.org/mda) directly.
System Architecture Specification_v2.1.0 Page 38 of 69
Figure 27: eHealth DSI domains view
This does imply technically:
6.2.2.1 eHealth DSI communication layer
eHealth DSI communication layer includes components with common Interfaces that
MUST be considered as “normative” with Web services that use open, XML-based
standards and transport protocols to exchange data between Gateways.
6.2.2.2 Business layer
Business layer does implement components specified in a Platform Independent
model (e.g. java or C#) for this document. This layer includes all components and
their specific interfaces, to resolve specific business functions of eHealth DSI. The
components in this layer do not directly communicate to the national infrastructure or
exchange messages with other NCPs.
6.2.2.3 National communication layer
National communication layer Infrastructure interfaces are strictly related to national
infrastructure and specified only at functional level, hence they are described as
abstracted from the application type (national responsibility). Only the Interfaces of
the components can be described, but the implementation is more a national concern
because of the heterogeneity of national infrastructure.
6.3 eHealth DSI Technical Architecture
6.3.1 Introduction
The eHealth DSI platform model can be viewed as federations of services connected
via specified contracts that define their service interfaces. The resulting system
design is a Service Oriented Architecture (SOA).
For the eHealth DSI basic goal of interoperability, SOA is a relevant architectural
style: it can decouple interface and implementation as well as avoid dependence or
future rigidity. In an SOA solution, the only characteristic of a service that a
requesting application needs to know about is the “public” interface. Countries can
decide to run the business logic under different operating environments, with different
languages and framework or different internal solution architecture.
As defined previously the normative technology platform for eHealth DSI SOA is the
web services stack.
The design of the general architecture of eHealth DSI and the design of the eHealth
DSI services is based on the following basic assumptions:
1. The design uses the service-oriented paradigm.
System Architecture Specification_v2.1.0 Page 39 of 69
2. All services are passive, the Service Consumers and Service Providers
communicate synchronously.
3. All eHealth DSI medical data as well as all patient and HP identity data is
administered in autonomous systems. Any exchange of these data is
mediated by national gateways following a B2B paradigm.
4. The federation of NCPs is implemented via a »circle of trust«.
6.3.2 Service Architecture
Capabilities required by the eHealth DSI are implemented through the architecture
described hereafter. SOA is an architecture that enables business agility through the
use of common services. The service-oriented paradigm distinguishes among three
roles: service provider, service consumer, and service registry. The service provider
offers a service that is used by the service consumer. The service provider can
publish a description of the service in a service registry.
eHealth DSI services are implemented as Web Services whose interfaces are
specified with the Web Service Description Language. eHealth DSI Web services
are passive. Communication between services consumer and service provider is
always initiated by the service consumer. The service provider is passive and reacts
to inquiries from the service consumer.
The communication between service consumer and services provider is
synchronous. The service consumer’s control flow is disrupted until the service
provider has processed the service consumer’s request. Service consumer and
provider communicate over the Internet using XML-based SOAP messages
transported via the HTTP protocol.
Each eHealth DSI service is operated under the responsibility of a National Contact
Point (NCP). The role of the service consumer is always taken by NCP of country B
(country of care). The role of the service provider is always taken by NCP of country
A (country of affiliation).
A service registry is not used. Instead it is assumed that service descriptions and
service location information is made available for service consumers by
organisational means and static local directory services.
This figure below represents the collaboration among the participant of eHealth DSI
Service Architecture6. Along with the UML stereotype «ServiceContract», the main
service contract is represented: it defines the interface provided and consumed by
the main components (participants).
6
The representation makes use of UML profile for Services (SoaML, see
http://www.omgwiki.org/SoaML/doku.php.).
System Architecture Specification_v2.1.0 Page 40 of 69
Figure 28: Core eHealth DSI technical service architecture
Moreover Gateways interact with the National Level as well through
NationalServices, in order to allow national infrastructures to get the eHealth DSI
capabilities, which is the resulting action of eHealth DSI.
The eHealth DSI Gateways interacts externally towards the eHealth DSI network for
these purposes:
• The exchange of eP, PS and eDispense documents is implemented
respectively with OrderService, PatientService, DispensationService,
ConsentServices service contracts.
• The Patient Identification is done with the service IdentificationServices.
• Regarding this service, Gateway plays both a consumer and provider role.
• Operating system (e.g. Linux) enables to configure time synchronization for
eHealth DSI.
• Extra inner/outer Services inside of the gateway such as security,
transformation, external and internal communication will be described along
the following chapters.
NB:
• Security concerns are not mentioned in this schema but are detailed further in
the chapter Security.
• The epSOSWebFrontEnd Portal component is part of NCPeH Architecture
specifications.
But the epSOSWebFrontEnd Portal component remains the countries decision
according to their existing architecture7.
The details about these services interfaces are described in chapter 6.5, following the
components and composite structure description.
7
This component is an implementation of a UI Mediator pattern (http://www.soapatterns.org/ui_mediator.php
see Thomas Erl, SOA Design Pattern, Pretience Hall, 2009). The epSOSWebFrontEnd in this way establish
mediator logic responsible for ensuring timely interaction and feedback with user-interfaces and presentation
logic.
System Architecture Specification_v2.1.0 Page 41 of 69
6.4 Composite Structure
In this section the link between services and technical components describe the
composite structure.
Figure 29: Composite Structure of the NCP Gateway Implementation
This figure represents an implementation of the NCP. Any other implementations
would remain possible as long as all the business functional requirements are
respected. For instance, the WorkflowManager component is not mandatory, but the
business operations associated to the Manager are mandatory.
NCP Gateway implementation component offers service and request ports both to
the eHealth DSI network (“normative” interfaces) and to the National Infrastructure
(country specific interfaces).
The gateway internal structure is organized to accept/send messages from other
NCPs with the InBoundProtocolTerminator/OutBoundProtocolTerminator. The
WorkflowManager acts as a controler and composes the flow between others
component. The SecurityManager is under the control of the WorkFlowManager, as
it is for the TransformationManager.
The dedicated task to communicate with the National Infrastructure in done by the
NationalConnector.
6.4.1 Layers Description
All the mentioned services are implemented through the NCP gateway under the
following layers.
System Architecture Specification_v2.1.0 Page 42 of 69
6.4.1.1 The National Communication layer
• The InboundProtocolTerminator acts as the entry point for any eHealth DSI
messages, it adapts the entry to the inner components like the
WorkFlowManager
• The OutBoundProtocolTerminator plays the opposite role of
the InBoundProtocolTerminator by adapting messages from inner
NCP components for other NCPs.
6.4.1.2 The business layer
• The SecurityManager is a guarantor for eHealth DSI protection and integrity.
• The TransformationManager turns eHealth DSI pivot into national schema
and vice versa.
• The TerminologyServiceAccessManager is translating a given concept
designation into the requested target language as well as transcoding a given
“local” coded into the appropriate eHealth DSI coded.
• The WorkflowManager, as a role of a controller which does interact with other
components (e.g. InboundProtocolTerminator). It helps the structured
implementation for the wave 1, inspired by the MVC IT pattern8.
6.4.1.3 The National Communication layer
• The NationalConnector is in charge to link Business NCP components to the
national Infrastructure. Authentication and authorization service for local HP
is included in the NationalConnector.
• A PolicyManager can be added is needed, but for a sake of simplicity it is not
include in the figure “Composite Structure of the NCP Gateway
Implementation”.
6.4.1.4 The Platform layer
• ConfigurationAndMonitoringManager manages configuration and
monitors components.
• The Audit Trail support eHealth DSI all transactions that must be audited
(other component such as AuditTraitsRepository can be added).
How these components interact to support the Data Exchange and the Patient
Identification scenarios are described in Section Component Communication.
NB: An authentication and authorization service for local HP is included in the
NationalConnector.
6.4.2 Components Description
• Components are part of the starting eHealth DSI platform for service
orientation throughout software engineering. They are often mapped with
services able to fulfil eHealth DSI requirements.
• In the following text, DocumentID is considered to be an OID (Object
IDentifier).
• HP identification/authentication and consent confirmation (or Treatment
Relationship confirmation) implementation is left to country but SAML
assertion is required for safeguarding business requests.
8
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller.
System Architecture Specification_v2.1.0 Page 43 of 69
6.4.2.1 Inbound Protocol Terminator
Figure 30: Inbound protocol Terminator
The InboundProtocolTerminator is the entry point for an eHealth DSI message
arriving in the NCP. The InboundProtocolTerminator component plays the role of a
service provider SOAP web services for other NCPs. The
InboundProtocolTerminator performs verification of WS-Security SAML tokens and
deserializes SOAP message into objects for the use of WorkflowManager. It adapts
messages to the components inside of the NCP.
WebService implementations provided by the InboundProtocolTerminator are the
following:
• Patient Identification Service
• Patient Service
• Order Service
• Dispensation Service
• Consent Service
The InBoundProtocolTerminator renders the eHealth DSI medical data into a form
suitable for the WorkFlowManager.
System Architecture Specification_v2.1.0 Page 44 of 69
6.4.2.2 Outbound Protocol Terminator
Figure 31: Outbound protocol Terminator
The OutboundProtocolTerminator plays role of a service consumer. It serializes
message objects in a SOAP request, adds corresponding WS-Security tokens and
routes it to the NCP addressed by the country of affiliation of the patient. When the
response arrives, it performs the deserialization of the SOAP response into object
instance for the use of the WorkFlowManager. The OutboundProtocolTerminator is
able to communicate over the network to other NCPs, because it is a consumer, it
acts as a client and can query services located to the InboundProtocolTerminator.
Even if this component is not needed for a business purpose, it realizes the
adaptation of messages. With the ProtocolTerminators eHealth DSI get a structured
organization for a dedicated task to a specific component.
System Architecture Specification_v2.1.0 Page 45 of 69
6.4.2.3 Workflow Manager
Figure 32: Workflow Manager
The WorkflowManager conducts the invocation of components to process requests.
In software architecture this component isolates business logic from input and
presentation to other Component. It eases independent development, testing and
maintenance.
The WorkflowManager runs the eHealth DSI medical data and add new logic for
example, calculating if the patient has given his consent or not.
Different views can exist for the same data (e.g. Patient Summary), and depends
where the data is located (Business zone, NationalConnector zone, eHealth DSI
zone), but the WorkflowManager receives the suitable data because the other
components adapt the business model to the behavior of the WorkflowManager.
The WorkflowManager that contain the business rules knows how to carry out
specific tasks to other components.
System Architecture Specification_v2.1.0 Page 46 of 69
6.4.2.4 Transformation Manager
The TransformationManager component is in charge of the following activities:
Translating and/or transcoding (if necessary) the original data compliant to eHealth
DSI CDA syntax from the national language and possibly from the national code
system(s) in the document creator country (in most cases Country A) to the eHealth
DSI Reference Terminology.
Creating an eHealth DSI unstructured CDA by embedding the original data from
document creator presented in the pdf format. This data must be presented in a pdf
format so that the document consumer country can read it.
Translating the coded data elements from the eHealth DSI Reference Terminology to
the national language in document consumer country (in most cases Country B).
Note: That a relationship Must exists between the eHealth DSI pivot document and
the embedded PDF CDA.
Figure 34: Transformation Manager
ToEpSOSPivot(EpSOSOriginalData_ReplacedDocId) :EpsosCDA
Textual description of operation
Transformation of national data to eHealth DSI pivot format :
After having received a toEpSOSPivot() request, this component takes the
EpSOSOriginalData (already compliant to eHealth DSI CDA syntax) and using
the TAS capabilities, accomplishes the eventual transcoding of the terms present
in the eHealth DSI value sets, while also keeping the original codes and display
name. An eHealth DSI pivot document with eHealth DSI coded concepts is
therefore produced. The eHealth DSI pivot document shall to have a link to the
EpSOSOriginalData. Exceptions: in case of processing error or warning the
responseStatusStructure should be properly valorized.
System Architecture Specification_v2.1.0 Page 47 of 69
Input parameters EpSOSOriginalData : Medical
document in its original data format as provided
from the NationalConnector to this component.
[Mandatory]
ReplacedDocId is an instance identifier
describing the document to be replaced.
Output parameters EpSOSCDA structure
Response structure including the eHealth DSI
pivot CDA and the response status structure.
The response status structure provides
information about the operation results,
including possible errors and warning.
Notes
ToEpSOSPDF(EpSOSOriginalData; OriginalPDF ) : EpSOSPDF
Textual description of operation
Transformation of national data to eHealth DSI pivot format :
After having received the ToEpSOSPDF() request, this component takes the
EpSOSOriginalData and the OriginalPDF and generates an unstructured CDA
embedding the PDF using the information already present in the eHealth DSI
original data. As a final result the PDF embedded CDA is returned to the
requesting component. The embedded PDF CDA shall to have a link to the
EpSOSOriginalData.
Exceptions: in case of processing error or warning the responseStatusStructure
should be properly valorized.
Input parameters EpSOSOriginalData
Medical document in its original data format as
provided from the NationalConnector to this
component. [Mandatory]
OriginalPDF
Printable representation (PDF/A) of the original
national data as we expect have been seen by
the originator HP [Mandatory].
Output parameters EpSOSPDF structure
response structure including the eHealth DSI
unstructured CDA embedding the original pdf
and the response status structure.
The response status structure provides
information about the operation results,
including possible errors and warning.
Notes
Translate (EpsosCDA; TargetLanguageCode) : TranslatedEpSOSCDA
System Architecture Specification_v2.1.0 Page 48 of 69
Textual description of operation
Translation from eHealth DSI pivot data to consumer country language :
After having received a translate() request, this component starts to process the
received EpsosCDA in order extract the eHealth DSI coded concepts.
Subsequently, for each coded concept found, it makes use of the TSAM
capabilities for the purpose of obtaining the representation of that concept in the
target TargetLanguageCode identifier. This information is therefore used by this
component to update the displayName attribute of that coded entry.
After the completion of this translation phase, an eHealth DSI pivot document
with “translated” concepts is obtained.
This document is therefore returned to the requesting party. No changes are
applied to the document identifiers.
Exceptions: in case of processing error or warning the responseStatusStructure
should be properly valorized.
Input parameters EpsosCDA Document in eHealth DSI pivot
format (with eHealth DSI codes)
TargetLanguageCode. Identifier
(code) of the target language.
Output parameters TranslatedEpSOSCDA eHealth DSI pivot CDA
with translated eHealth DSI codes into the
consumer country language.
Notes
6.4.2.5 Terminology Access Manager
Terminology Access Manager has two roles:
• Translating a given concept designation into the requested target language
using the information present in the Terminology Repository. Translation
stands for the capability of associating to an eHealth DSI coded concept the
localized concept description or display name: i.e. the translation into the
target language of the “concept” conveyed (e.g. code “30001000” EDQM can
have the display names “Φύσιγγα”, “Ampulka” or “Ampoule”, depending on
where it is used.).
• Transcoding a given “local” coded concept into the appropriate eHealth DSI
coded concept using the information present in the Terminology Repository.
Transcoding means the capability of getting the eHealth DSI quasi-
synonymous9 associated to a “local” coded concept.
9
i.e. a coded concept derived from the appropriate eHealth DSI Value Set semantically equivalent to a given coded
concept.
System Architecture Specification_v2.1.0 Page 49 of 69
Figure 35: Terminology Access Manager
The eHealth DSI Reference Terminology has as a starting point the eHealth DSI
MVC (Master Value Sets), which in turn is the basis for the eHealth DSI MTC (Master
Transcoding Catalogue). The mapping activity from the “local” coded concept to the
eHealth DSI Value Sets present in the eHealth DSI MVC is out of scope of eHealth
DSI and it is the responsibility of the National Linguistic Competence Centers from
each country.
getEpSOSConceptByCode(LocalConcept) : TranscodingResponseStructure
Textual description of operation
Transcoding a given “local” coded concept into the appropriate eHealth DSI coded
concept using the information present in the Terminology Repository.
This component issues a getEpSOSConceptByCode () request in order to
know the best matching eHealth DSI Concept, according to the information
provided.
Input parameters LocalConcept;
the LocalConcept structure in order to search
within the Terminology Repository for the best
matching eHealth DSI Concept, according to
the local information provided (e.g., if no code
system version is indicated, the latest version
will be provided).
System Architecture Specification_v2.1.0 Page 50 of 69
Output parameters TranscodingResponseStructure
Response structure including:
1. the eHealth DSI Reference Concept: this
means the Concept Code, the English
designation, the concept code system
(OID), Code System Version, Value Set
OID; Value Set Version,
2. The responseStatusStructure, providing
information about operation result,
including possible errors and warning.
Exceptions in case of not existing transcoding or
processing error the responseStatusStructure
should be properly valorised
getDesignationByEpSOSConcept(EpSOSRefConcept; TargetLanguageCode) :
TranslatingResponseStructure
Textual description of operation
Translating a given concept designation into the requested target language using
the information present in the Terminology Repository :
This component issues getDesignationByEpSOSConcept () request in order to
know the target language eHealth DSI Designation, according to the information
input parameters
provided. EpSOSRefConcept
EpSOSRefConcept structure in order to search
within the Terminology Repository for the target
language eHealth DSI Designation, according to
the local information provided
Output parameters translatingResponseStructure
Response structure including:
1. the target language concept designation;
2. the responseStatusStructure
providing information about operation
result, including possible errors and
warning.
Exceptions in case of not existing translation or processing
error the responseStatusStructure should be
properly valorised
6.4.2.5.1 Interaction diagram for semantic
This section describes the two interaction uses in which the Semantic Components
are involved:
System Architecture Specification_v2.1.0 Page 51 of 69
Figure 36: eHealth DSI CDA translation
This interaction is used for the purpose of obtaining the eHealth DSI pivot CDA and
the CDA with the original PDF embedded. It shows the WorkflowManager to ask for
the translation of the eHealth DSI CDA document.
System Architecture Specification_v2.1.0 Page 52 of 69
Figure 37: Transformation to eHealth DSI CDA
This interaction is used for the purpose of obtaining a translated version of the
eHealth DSI pivot CDA into the target language.
6.4.2.6 Security Manager
The SecurityManager component is responsible for creation and verification of digital
signatures that are applied to medical documents.
Figure 38: Security Manager
sign(CDATA) : Signature
Textual description of operation
This operation processes a XML DSig signature for a given XML according to the
XML DSig standard and the eHealth DSI specifications.
Only known documents are signed and before the signature processing a schema
validation is done. The documents that are known are configurable.
Input parameters CDATA
XML Document to sign
Output parameters SignedDocument
checkSignature(CDATA, Signature) : CheckSignatureResult
Textual description of operation
The XML DSig signature of a XML document is validated including the validation of
the certificate that confirmed the signature.
Input parameters CDATA XML containing Signature Digital
signature
Output parameters CheckSignatureResult
Encoded in the status information are
Validity of signature
Validity of certificate
Notes All the known and trusted certificates have to be
registered by configuration beforehand.
System Architecture Specification_v2.1.0 Page 53 of 69
6.4.2.7 AuditTrail
This internal component is designed to implement the Audit Trail objectives.
This component provides interfaces for the Audit Trail Service acting as service point,
in order to keep track of events to be logged.
This AuditTrail component is responsible for receiving an EventLog message in an
ATNA- compatible way.
Figure 39: Audit Component
put(EventLog)
The AuditTrail accept an audit trail entries in an ATNA-compatible way,
encapsulated in the Event Log. This document does not give detail for the storage
procedure of the audit records. The Audit Trail function is considered to be sufficient
for data non repudiation and traceability, if a failure occurs.
6.4.2.8 Configuration and Monitoring Manager
This subcomponent should be responsible for analyzing the audit trail and, based on
a configurable way easy to maintain for administrator. Alert should prevent possible
abuses (such as excessive requests issued from a HP or a patient is queried from
more than one country at a time).
Figure 40: Configuration and Monitoring
Configuration and Monitoring Manager is responsible for keeping eHealth DSI
configuration, at the application boot start, the synchronicity with central eHealth DSI
repository (e.g. NCP routing and taxonomy access). Process for Synchronicity
establishment is not sketch in this document.
The monitoring can detect fraud, according to the security requirements.
System Architecture Specification_v2.1.0 Page 54 of 69
6.4.2.9 NationalConnector
Figure 41: National Connector
This component is designed to implement the objectives related to National
Infrastructures connection and National Data handling, only the interfaces can be
common between countries. The implementation is a very specific task for each
country, and depends and the national infrastructure.
To draw a parallel, National Connector is like a plug or a socket as devices for
removable connecting the NCP. Country must design the socket to be able to plug to
the National Connector. Because plugs over countries can be different,
implementation of the National Connector is different.
The National Connector maps logical functional Components of the NCP to the
national Infrastructure.
Country MUST provide storage and be able to handle the medical Data persistence
(PS, eP, Consent). The NationalConnector is the entry and exit point from and to the
NCP. Countries are free to develop and build the implementation of the National
Connector with the interfaces define in this document. Country can export the
interface as service, to communicate with the NationalConnector needed.
System Architecture Specification_v2.1.0 Page 55 of 69
6.4.3 Components Communication workflow
6.4.3.1 Patient Identification
Figure 42: Patient Identification
1. After the HP/HCPO B is authenticated (precondition), the component
dataDisplay initiates the searchPatient, by calling the right function located on
the NationalConnector. The findIdentityByTraits() needs patient attributes as
input arguments (The name of the transaction: findIdentityByTraits() is not
mandatory, it is country decision.). All incoming transactions at the
NationalConnector are audited by the AuditTrails component.
2. The request is forward to the WorkflowManager, where the business logic
starts.
3. The NCP B OutboundProtocolTerminator wraps the request into a SOAP
envelope and sends it to the InboundProtocolTerminator in A. Audit Trails B
keeps track of what does leave from country B, as the same occurs in country
A when the message arrives. Any incoming message that arrives to the
InboundProtocolTerminator for the request contains the wrapped information
for the patient. Decoding and unwrapping is done inside in the
InboundProtocolTerminator.
4. The WorkflowManager extracts the identity traits from the object and uses
them as an input arguments when calling NationalController for the
findIdentityByTraits() operation.
System Architecture Specification_v2.1.0 Page 56 of 69
5. The NationalConnector queries the patient Data result in from the national
infrastructure in A and the returns the object to the Workflow Manager. The
transcation is audited by the AuditTrails component. The name of the
transaction: findIdentityByTraits() is not mandatory, it is country decision.
6. The Traits Patient Response goes back to NCP B throught the same
components (1-5), and arrives to the Inbound Terminator in B (previously
named OutBoundTerminator when message goes out). Upon the arrival of
the SOAP response, both ProtocolTerminator makes a corresponding record
in the audit trail.
7. The WorkFlowManager in B receives the unwrapped message from
InboundProtocolTerminator and transmit the request to the
NationalConnector in B.
8. The Patient Identification Response Traits is returned to the originator of the
request, the HP B.
System Architecture Specification_v2.1.0 Page 57 of 69
6.4.3.2 Data Exchange (PS & eP)
Figure 43: Patient data workflow
1. HP/HCPO B is authenticated and the patient is identified (Precondition). The
HP calls for retrieving prescriptions of the patient by calling a corresponding
method located at the NationalConnector in B and providing ID of the patient.
The call list (the wording: “ListPatientRequest” is not mandatory) is initiated by
the HP B data display component (HP B Portal).
2. The AuditTrail component keeps track of the message passing through the
NationalConnector. (The same audit is done when the response returns).
The AuditTrail is considered to be sufficient for data non repudiation, if a
failure occurs. The NationalConnector forwards the request to
WorkflowManager.
3. The WorkflowManager forwards the request to OutboundProtocolTerminator
(named BoundTerminator on the figure, because the name switches between
System Architecture Specification_v2.1.0 Page 58 of 69
In and Out). The SecurityManager function Sign() the message with the
NCP-B signature.
4. After the massage passed through the terminators and arrives at the
WorkFlowManager in A. The NationalConnector make the appropriate call to
the national infrastructure and records the request in the audit trail. The
response should contain requested prescriptions in the national format of
country A. On the figure, the GetPatientData action and response is a
country transaction.
5. The WorkflowManager receives the response from NationalConnector and
calls The TransformationManager to obtain the eHealth DSI pivot CDA and
the CDA with the original PDF embedded.
6. The WorkflowManager calls the SecurityManager component, and sign the
XML Message with the NCP-A signature.
7. The NCP A OutboundProtocolTerminator wraps the request into a SOAP
envelope and sends it to the InboundProtocolTerminator in B
(BoundTerminator). Audit Trails keeps track of messages exchanged. The
incoming message that arrives in B contains the wrapped information for the
patient.
8. WorkflowManager transfers patient data to SecurityManager for the signature
verification.
9. For the purpose of obtaining a translated version of the eHealth DSI pivot
CDA into the B country language, the WorkflowManager get the return data
from the TransformationManager.
10. Patient data is returned to the HP B, if the message has passed successfully
all the steps.
The proposed interfaces might support other retrieval mechanisms too, as retrieving
documents by setID. For the scope of this project, considering that only one Patient
Summary may exist and a limited number of prescriptions are usually active, it’s
reasonable to suppose the usage of a “direct” request for retrieval through the list()
operation. The treatment relationship (as a SAML assertion signed by NCP B or HP)
is covered in the security chapter.
6.4.3.3 Notification
System Architecture Specification_v2.1.0 Page 59 of 69
Figure 44: Notification workflow
1. HP/HCPO B is authenticated and the patient is identified (Precondition). The
HP calls for retrieving prescriptions of the patient by calling a corresponding
method located at the NationalConnector in B and providing ID of the patient.
ePrescription has been already delivered to the pharmacy. The call initialize
(InitializeDispensationRequest) is initiated by HP B data display component
(HP B Portal).
2. The AuditTrail component keeps track of the message passing through the
NationalConnector. (The same audit is done when the response returns).
The NationalConnector forwards the request to WorkflowManager.
3. The WorkflowManager forwards the request to OutboundProtocolTerminator
(named BoundTerminator on the figure, because the name switches between
In and Out). The SecurityManager Sign() the message with the NCP-B
signature.
System Architecture Specification_v2.1.0 Page 60 of 69
4. After the massage passed through the terminators and arrives at the
WorkFlowManager in A. The NationalConnector make the appropriate call to
the national infrastructure and records the request in the audit trail. The
response should contain requested prescriptions in the national format of
country A.
5. The WorkflowManager receives the response from NationalConnector and
calls The TransformationManager to obtain the eHealth DSI pivot CDA and
the CDA with the original PDF embedded.
6. The WorkflowManager calls the SecurityManager component, and sign the
XML Message with the NCP A signature.
7. The NCP A OutboundProtocolTerminator wraps the request into a SOAP
envelope and sends it to the InboundProtocolTerminator in B
(BoundTerminator in the figure). Audit Trails keeps track of messages
exchanged. The incoming message that arrives in B contains the wrapped
informations for the patient.
8. WorkflowManager transfers patient data to SecurityManager for the signature
verification.
9. For the purpose of obtaining a translated version of the eHealth DSI pivot
CDA into the B country language, the WorkflowManager gets the return data
from the TransformationManager.
10. Patient data is returned to the HP B, if the message has passed successfully
all the steps.
6.5 Security Architecture
The security Architecture of eHealth DSI is based on Trust and Communication
Relationships between Inbound and Outbound Gateways. The concept of trust is
pivotal in eHealth DSI. Services are set up through the network as a basis for secure
messaging. The eHealth DSI circle of trust means that service providers join
together in order to exchange authentication information. This circle of trust contains
an identity provider, a service that maintains and manages identity information. The
[Security Services Specification] defines a secure channel that is made up from a
VPN and TLS.
6.5.1 Trusted Federation of NCPs
NCPs are implemented federally in order to allow for a virtual integration of
autonomous sources of medical data and identity information. The independence of
the information sources is preserved as all access to an information source is
mediated through the eHealth DSI services which are implemented at NCP level.
This complies to a Business-to- Business paradigm where end users and data
sources are decoupled by enterprise level entry services that map external requests
onto internal operations and vice versa. Part of this mediation is the brokerage of
trust by matching security objects of the NCP-to-NCP trust domain into a local trust
domain and vice versa.
The administration of the identities of patients and HPs is decentralized.
Authentication of a HP can only be done on the NCP that recognizes this HP. The
existence of a treatment relationship between a patient and a HP can only be
attested within the legal framework of the PoC. With eHealth DSI HP authentication
System Architecture Specification_v2.1.0 Page 61 of 69
and treatment relationship attestment is always performed by the NCP where the
PoC connects to.
The eHealth DSI “Circle of Trust” (CoT) consists of pairs of mutually trusted
consuming and providing gateways. A consuming gateway provides the computing
environment for the operation of an eHealth DSI service consumer. A providing
gateway operates the Web Service Endpoint (WSE) of the service provider. Each
gateway is operated under the legal responsibility of a NCP.
6.5.1.1 NCP certificates
It is assumed that a list of valid NCP certificates is distributed as part of the eHealth
DSI configuration. Certificate verification in performed within the NCP by checking
whether the certificate is registered with this list or not. Status validation is done by
either OCSP or CLS (depending on what protocols the CA offers).
6.5.2 Message exchange infrastructure
eHealth DSI service providers and consumers use the eHealth DSI messaging
infrastructure to exchange request and response messages among each other. The
message infrastructure builds upon the eHealth DSI communication infrastructure
that connects the eHealth DSI network of trusted nodes. The trusted node
infrastructure implements the core eHealth DSI security services which ensure the
confidentiality of medical data transmission and the availability and authenticity of
eHealth DSI services. The following layers compose the message exchange
Infrastructure:
Figure 50: Message exchange layers
System Architecture Specification_v2.1.0 Page 62 of 69
6.5.3 Upper Layer (Iso 7)
The upper layer supports the message exchange mechanisms for the
implementation of eHealth DSI business. Security elements for the standardised
enveloping of data and documents are also added. They include:
• transmission of authenticated HP attributes under SAML Assertion,
• common message format between service as described previously through
service exchanges,
• signature on message elements for auditing and brokering of document
authenticity claims.
6.5.3.1 Transmission of authenticated HP
The HP Identity Assertion is a means of user identity. This enables relying parties to
run their business tasks without identifying the requester since this is done by a
trusted third- party authentication service. Those assertions are encoded as SAML
assertions [SAML 2.0], organised under a structured elements. They do also include
a signature which references the security certificate.
6.5.3.2 Common message format
The eHealth DSI Common Message Format is a SOAP 1.2 message contained as
the Body of an HTPP 1.1 [RFC2616] message.
All messages MUST be SOAP Envelopes with an XML payload in the SOAP Body.
Optional binary data MUST be carried as Base 64 encoded octets within the XML
payload if not otherwise stated for the respective operations. Request messages
MUST be sent using an HTTP POST, response messages are carried over the
backchannel.
The encoding of the containing XML document MUST be set to UTF-810.
All eHealth DSI SOAP messages MUST comply with the WS-I Basic Profile 1.1
[BP11].
All eHealth DSI SOAP messages MUST comply with the WS-I Secure Basic Profile
1.0 [BSP10]. All eHealth DSI SOAP message MUST be described in a WSDL 1.1
Service Description. All WSDL type definitions MUST be in XML Schema format.
6.5.3.3 Signature on message
When auditing and brokering documents the signature is used to prove the
authenticity of messages, and it is based on an x509 certificate.
6.5.4 TCP Message Layer (Iso 4)
Transport Layer Security MUST be supported by the eHealth DSI network. Transport
Layer Security (TLS) are cryptographic protocols that provide security for
communications over networks such as the Internet. TLS and SSL encrypt the
segments of network connections at the Transport Layer end-to-end. For a mutual
authentication every node must validate the certificate of the other node.
NCP-B SSL certificate and NCP-A SSL certificate MUST be used to establish a TLS
v1.0 [RFC 2246] connection between country B and A NCPs.
6.5.5 IPsec VPN Network Layer (Iso 3)
A gateway-to-gateway VPN MUST be set up between all eHealth DSI nodes. IPSec
ESP transport modus MUST be used. Perfect Forwarding Secrecy MUST be
10
UTF-8 is more efficient than UTF-16 for European languages. Older encodings such as ISO-8859-x do not cover
all languages in a single encoding, and will only pose interoperability problems. UTF-8 is the default in XML, and
coverage is a requirement of the XML specification.
System Architecture Specification_v2.1.0 Page 63 of 69
activated. SA Lifetime SHOULD be based on the number of exchanged packets and
SHOULD NOT exceed 4GB.
Algorithms and key lengths MUST be used. Gateway certificates MUST comply with
the certificate profiles. The issuing CAs and all components and services for
managing the lifecycle of the certificates must comply with the respective eHealth
DSI security policies (see [Security Services Specification]).
IPSec mechanism is eHealth DSI application independent (Transparent to user). I do
provide access control, data origin authentication and data confidentiality.
6.5.6 Physical Infrastructure Layer (Iso 1)
This layer is responsible for moving bits between two NCPs. The communication is
done from NCP to NCP. It is part in the figure to illustrate the basis of eHealth DSI
communication.
6.5.7 Regarding the use of Certificates and PKI
It is assumed that a list of valid NCP certificates is distributed as part of the eHealth
DSI configuration. Certificate verification in performed within the NCP by checking
whether the certificate is registered with this list or not. Status validation is done by
either OCSP or CLS (depending on what protocols the CA offers).
All cryptographic keys and algorithms used for eHealth DSI and its implementations
MUST fulfil at least the requirements of [ECRYPT-II D.SPA.57] for Level-5 (Legacy
Standard) security. This corresponds to 96-bit security (symmetric equivalent).
Countries participating in circle of trust MAY agree to choose another algorithm
catalogue as long as this does not fall behind [ECRYPT-II D.SPA.57] level-5.
Only non-patented hash algorithms of the SHA-2 family MUST be used. SSL client
authentication certificates must be Common PKI compatible.
6.5.8 Regarding the use of Certificates and PKI
The following constraints are in accord with the ITI-19 transaction specification:
• Data.Algorithms and key lengths MUST be used.
• The node certificates MUST comply with the eHealth DSI Node Authentication
Certificate Profile
• The issuing CA and all components and services for managing the lifecycle of
the eHealth DSI Node Authentication Certificates must comply with the
respective eHealth DSI security policies (see [Security Services
Specification]).
6.5.9 Regarding the use of Certificates and PKI
SAML Assertions is an XML-based standard for exchanging authentication and
authorization data between security domains, that is, between an identity provider
(a producer of assertions) and a service provider (a consumer of assertions).
A SAML assertion attests the authenticity of the user and the existence of a
treatment relationship.
A SAML assertion attests the HP Identity Assertion.
An element MUST link two assertions For instance; the presence of the patient-id
and sender-vouches means the presence of a treatment assertion.
System Architecture Specification_v2.1.0 Page 64 of 69
In case of emergency country can decide to add in the treatment relationship
assertion an emergency indicator.
6.5.10 Regarding SOAP faults
SOAP faults: A three different level errors type had been identified in order to handle
errors at the appropriate level of abstraction. They are described in the following
figure:
Figure 51: Soap faults
6.5.10.1 Message processing fault
The standard SOAP fault mechanism is used for failures that origin in the encoding of
the SOAP message or the contents of the SOAP header. It is assumed that the
respective errors are discovered during the processing of the message at the front-
end tiers of the NCP-A. They mainly address failures that originate at NCP-B.
Typical examples of such errors are missing security token or usage of undefined
attributes within security token.
6.5.10.2 Business processing / request faults
Error Messages in the SOAP response body: Error reporting mechanisms of the
business level protocol are used for failures that are discovered during the business-
level processing of security token and SOAP body elements. These errors may as
well be discovered during policy enforcement at the NCP as during the processing of
the request within the national infrastructure. Failures usually either originate at the
PoC in country B or at the national infrastructure in country A.
These errors SHOULD be reported to the HP in country B as it is assumed that either
the HP or the patient MAY be able to take action to successfully re-issue the request.
Typical examples of such errors are missing consents and temporary component
failures in country A.
6.5.10.3 Clinical processing / content faults
Error messages related to the creation of the document content. There may be
cases where failure may result in some elements of clinical information missing for
example in a patient summary. These clinical content errors should be conveyed
within the document content. The SOAP body transactions and SOAP header were
exchanged without errors at the lower two levels.
System Architecture Specification_v2.1.0 Page 65 of 69
6.5.11 Security zone
The [Section II - Security Services] (chapter 5) exposes how message exchanges
within the eHealth DSI architecture are treated in regard to security (referred to as
“End-to-End Security”).
Figure 52: End-to-End security and Trust Zones
Access Control Security Service is also taken care of in the [Section II - Security
Services] (chapter 2). Notably, it gives highlights to the use of XACML (eXtensible
Access Control Markup Language) for eHealth DSI when considering access policy.
6.5.12 Session context
Considering the potential number of exchanges for the eHealth DSI, a stateless
processing MUST be used at business level. Explicit sessions11 with session
identifiers exchanged for the application layer are out of scope.
In country B, a session in eHealth DSI consists:
• a HP identity assertion
• a patient identifier that is accepted by country A
• a treatment relationship assertion.
In Country A, a session MAY be set up for the following tasks:
• an internal session for performance reasons but this session is not visible
outside of NCP-A (i.e. in the country health information service).
• the possibility is left to country decisions but it has to be noted that sessions
may recover load-balancing and fall-over capabilities.
6.5.13 Adopted Standards
This table provides a summary of the port level requirements for message integrity,
authentication and confidentiality used for each of the Request and Response
methods between the secured entities12.
11
A session is a logical connection between service provider and service consumer extending over multiple
exchanges by maintaining state of the security context on both sides.
System Architecture Specification_v2.1.0 Page 66 of 69
Sender Operation Message Message Authentication Confidentiality Algorith
m
Receiver Integrity
NCP A → findIdentity FindIdentityByT NCP X.509: UNT-user NCP X.509: Security
raitsRequest Services
NCP B ByTraits UNT, Body, Signature
Specification
Timestamp
NCP B → findIdentity findIdentityByTr NCP X.509: R X.509: Security
aitsResponse Services
NCP A ByTraits Body Body, Signature
Specification
NCP A → initialise initializeReques NCP X.509: UNT-user R X.509: Security
t Services
NCP B Body, UNT, Body, Signature
Specification
Timestamp
NCP B → initialise InitialiseRespon R X.509: Security
se Services
NCP A Body, Signature
NCP A → put PutRequest NCP X.509: UNT-user R X.509: Specification
Security
Services
NCP B Body, UNT, Body, Signature
Specification
Timestamp
NCP B → put PutResponse R X.509: Security
Services
NCP A Body, Signature
Specification
NCP A → list ListRequest NCP X.509: UNT-user R X.509: Body, Security
Services
NCP B UNT, Signature
Specification
Timestamp
NCP B → list ListResponse NCP X.509: R X.509: Body, Security
Services
NCP A Body Signature
Specification
NCP A → discard DiscardRequest NCP X.509: UNT-user R X.509: Body, Security
Services
NCP B UNT, Signature
Specification
Timestamp
NCP A → discard DiscardRespon NCP X.509: R X.509: Body, Security
se Services
NCP B Body Signature
Specification
The Message Integrity column (i.e. which parts of the message need to be signed in
each case) is explained here:
• “UNT” (UserNameToken) – The wsse:UsernameToken element in the WS
Security header containing the identity of the user who originally made the
request as defined in the UsernameToken profile of WSS10 (see
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-
profile-1.0.pdf)
• “Timestamp” – The wsu:Timestamp element added to the message when it
was created as defined in WSS10
• “Body” – This is the part of the SOAP message (e.g. soap:Body) that contains
the business document
The Authentication column consists of the following entries:
• [“UNT-user,”] “Cert Auth”
• UNT-user is a UserNameToken as defined in WSS10 but without a password,
i.e. it contains a UserName only. It identifies the original user that issues the
request.
• Cert Auth indicates that authentication consists of an examination of the
public key certificate whose private key was used to sign the message.
The Confidentiality column indicates whether or not the message is encrypted. It
contains one of the following:
• “None”. The security analysis concluded that confidentiality was not required
12
This representation has been derived from SCM Security Architecture document developed by the W S-I Sample
Applications team.
System Architecture Specification_v2.1.0 Page 67 of 69
• Certificate “:” MessageParts. In which case confidentiality was applied as
described below.
• Certificate identifies the public key which is used to encrypt the symmetric key
which is used to encrypt the various parts of the message. Its structure and
semantics is the same as “Certificate” as defined under Message Integrity
except that the certificate is being used for encryption rather than signing.
• Message Parts are a list of the parts of the message that are encrypted.
Each part encrypted separately. It may contain some combination of: “Body”,
“Start Header” and “Signature”. “Signature” means the digital signature that
results from signing the message is encrypted.
The Algorithm column describes the cryptographic algorithms used if the message is
signed or encrypted. Algorithms Key, Data and Digest must follow Security Services
Specification recommendations.
• “Key”: Asymmetric Algorithm identifies the algorithm used to generate
public/private key pairs. In the Sample Application it is used to generate and
verify signatures as well as to encrypt and decrypt the symmetric key used to
encrypt and decrypt the message content. (See also
ftp://ftp.rsasecurity.com/pub/pkcs/ascii/pkcs-1.asc)
• “Data”: Symmetric Algorithm identifies the algorithm used for encrypting and
decrypting the message content. (See also
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf).
• “Digest”: Secure Hash Algorithm identifies the algorithm used for calculating
the unique fingerprint for each of the signed parts of the message. (See also
http://www.itl.nist.gov/div892/iip_pubs/draft-ietf-ipsec-ciph-sha-256-01.txt).
• There are several options in regard to the selection of auditors in regards of
independence and certification, depending on the availability of resources
such as internal audit staff and procedures.
6.6 Profile and Transaction Mapping
The purpose of this section is to map the technical components with the eHealth DSI
Transactions.
Technical components Reference eHealth DSI Transactions
Query Medical Data [epSOS-7] Retrieve Medical Data
[epSOS-8]
InboundProtocolTermination Notify Medical Data Processing [epSOS-9]
epSOS-12: Patient ID Discovery
Query Medical Data [epSOS-7] Retrieve Medical Data
[epSOS-8]
OutBoundProtocolTerminator
Notify Medical Data Processing [epSOS-9]
epSOS-12: Patient ID Discovery
Query Medical Data [epSOS-7] Retrieve Medical Data
[epSOS-8]
WorflowManager
Notify Medical Data Processing [epSOS-9]
epSOS-12: Patient ID Discovery
Retrieve Medical Data [epSOS-8]
TransformationManager
Notify Medical Data Processing [epSOS-9]
AuditTrails Format Audit Trail [epSOS-5]
TymeSyncManagerMediator Maintain Time [epSOS-3]
NationalConnector n/a
System Architecture Specification_v2.1.0 Page 68 of 69
Attest Authenticity [epSOS-10] Retrieve CRL [epSOS-
SignatureManager 15]
Verify Certificate Status [epSOS-16]
SemanticServicesImpl n/a
7 Terminology and Glossary
7.1 Wording conventions
Expression Meaning Conveyed Sense
Must Is obliged to
Must not is not allowed/permitted/acceptable/permissible
is required to be not Required / Mandatory
is required that … be not
is not to be...
Should it is recommend that Best Practice /
it is desirable to Recommendation / Left
Should not is not recommended to the assessment of the
it is not desirable to country
May option, but not mandatory, that should be used
of the country wishes so Acceptable / Permitted
Need not it is not required that
no … is required
7.2 eHealth DSI Glossary
See [eHealth DSI Glossary].
System Architecture Specification_v2.1.0 Page 69 of 69
Nõuded pakkuja meeskonnale
Turvatestimine ja testimisraportite kontrollimine
1. Üldised nõuded meeskonnale
1.1. Pakkuja peab esitama tööde teostamiseks vähemalt kaks turvatestimist läbi viivat tiimiliiget.
1.1.1. Üks meeskonnajuht, kes vastab talle CV vormil seatud nõuetele;
1.1.2. Vähemalt üks turvatestija (võib esitada ka rohkem), kes vastavad CV vormidel seatud spetsialisti kvalifikatsioonile.
1.2. Meeskonnaliikmete esitamisega kinnitab pakkuja, et esitatud meeskonnaliikmed hakkavad riigihanke tulemusel sõlmitud lepingu alusel töid
teostama. Pakkumuses esitatud meeskonnaliikme saab tellija eelneval nõusolekul vahetada üksnes uue meeskonnaliikme vastu, kes vastab vormil
toodud tingimustele.
1.3. Täitja meeskonnaliikmed peavad olema tööde teostamiseks objektiivsed ja erapooletud, st nad ei tohi olla osalenud testitava infosüsteemi
arendamisel jms töös.
2. Nõuded CV-le
2.1. Pakkuja esitab pakkumuses meeskonnaliikmete andmed, täites iga nõutud liikme kohta etteantud vormi. Esitatud andmed peavad või maldama
hankijal kontrollida meeskonnaliikmete vastavust esitatud nõuetele ja hankija kontrollib tingimuste täitmist e elkõige esitatud andmete alusel:
2.1.1. Varasema töökogemuse andmed esitab pakkuja viidates konkreetsetele projektidele, kus meeskonnaliige on isikulikult osalenud t ingimuses
nõutud töötundide mahu ulatuses.
2.1.2. Töökogemuse nõude täitmisena ei arvestata vabakutselisena tegutsemist, v.a kui selle perioodi osas on viidatud konkreetsetele projektidele.
2.1.3. Töökogemuse nõude täitmisena ei arvestata täiendkoolitust või koolitööd.
2.1.4. Kui tingimuses on nõutud konkreetse kestusega töökogemust, siis (ka osaliselt) samaaegsete projektide kattuvaid aegu mitmekordselt ei
arvestata. St sama ajaperioodi eest ei ole võimalik omandada mitmekordset kogemust.
2.1.5.Projektide andmete esitamisel tuleb iga projekti kohta esitada vähemalt: projekti nimi ja lühikirjeldus, projekti algus- ja lõppaeg kuu täpsusega,
projekti tellinud asutus ja tellija kontaktisik ning riigihanke korral märkida riigihanke number.
2.1.6. Viidatud projektid peavad olema hanke algamise ajaks nõutud mahus/ kompetentsi osas täidetud ja tellija poolt vastu võetud.
2.1.7. Ühe viidatud projektiga võib olla hõlmatud mitu kompetentsi/kogemust. Kõik nõutud kompetentsid/kogemused peavad olema lepingute või
projektidega omandatud kogemusega kaetud.
2.1.8. Hankijal on õigus pöörduda tellija poole esitatud andmete kontrollimiseks.
2.2. Kui mõne nõutud kompetentsi/kogemuse osas on andmed esitamata või nende alusel ei ole võimalik järeldada, kas nõue on täidetud, on hankijal
õigus tunnistada pakkumus mittevastavaks.
2.3. CV-s peab nähtuma kõikide hankija seatud nõuete täitmine, hankija kontrollib nõude täitmist esitatud andmete alusel. CV peab olema esitatud eesti
keeles.
2.4. Dokumendis tuleb arvestada, et juhul kui see on objektiivselt võimalik, tuleb lugeda koos märkega "või samaväärne". Samaväärs use tõendamise
kohustus lasub pakkujal, kes sellele tugineda soovib. Tõendid samaväärsuse kohta peavad olema esitatud pakkumuse koosseisus.
2.5. Esitatud sertifikaadid peavad olema pakkumuse esitamise ajal kehtivad. Kui pakkuja esitab tähtajalise kestusega sertifikaadi, tuleb pakkujal esitada
tööde teostamisel meeskonnaliikme rakendamiseks hankijale uus kehtiv sertifikaadi koopia.
3. CV vormid
3.1. Meeskonnajuht
/ees-ja perekonnanimi/_______________________________________
Projektidele viitamisel tuleb märkida vähemalt:
- projekti nimi ja lühikirjeldus,
- projekti algus- ja lõppaeg kuu täpsusega,
- projekti tellinud asutus ja tellija kontaktisik,
- riigihanke korral riigihanke number,
- kui tingimuses on nõutud, siis töötundide arv.
Väljade täitmine on kohustuslik.
Kogemus läbimurde
turvatestimisega projektide
täitmisel viimase 24 kuu
jooksul, kus meeskonnaliige
on isiklikult teostanud töid
vähemalt 400h ulatuses ja
mille töö metoodika peab
olema vastanud OWASP ASVS
4.0 või uuem, tase 1, 2 või 3 (või
samaväärne metoodika)
veebirakenduse käsitsi
turvatestimise verifikatsiooni-
nõuetele.
Omab vähemalt ISC2 CISSP JAH/EI.
(Certified Information
Nimetada konkreetne olemasolev sertifikaat, mis vastab tingimusele.
Systems Security Professional)
sertifikaati (või samaväärne). Sertifikaadi koopiad lisatakse pakkumuse juurde.
3.2. Turvatestija
/ees-ja perekonnanimi/_______________________________________
Projektidele viitamisel tuleb märkida vähemalt:
- projekti nimi ja lühikirjeldus,
- projekti algus- ja lõppaeg kuu täpsusega,
- projekti tellinud asutus ja tellija kontaktisik,
- riigihanke korral riigihanke number,
- kui tingimuses on nõutud, siis töötundide arv.
Väljade täitmine on kohustuslik.
Kogemus läbimurde
turvatestimisega projektide
täitmisel viimase 24 kuu jooksul,
kus meeskonnaliige on isiklikult
teostanud töid vähemalt 400h
ulatuses ja mille töö metoodika
peab olema vastanud OWASP
ASVS 4.0 või uuem, tase 1, 2 või 3
(või samaväärne metoodika)
veebirakenduse käsitsi
turvatestimise verifikatsiooni-
nõuetele.
Omab vähemalt IACRB CWAPT (Certified Web Application Penetration JAH/EI.
Tester)
Nimetada konkreetne olemasolev sertifikaat, mis vastab tingimusele.
või
Sertifikaadi koopiad lisatakse pakkumuse juurde.
GIAC GWAPT (Web Application Penetration Tester)
või
EWPTXv2 (eLearnSecurity Web Application Penetration Tester
eXtreme)
või
OSWE (Offensive Security Web Expert)
või
IACRB CMWAPT (Certified Mobile and Web App Penetration Tester)
sertifikaati
My Health @ EU
eHealth Digital Service Infrastructure
Electronic cross-border health services in the EU
NCPeH Components Specifications
DOCUMENT 5.0.0
VERSION
DATE 30/04/2021
STATUS Wave 5 Release Candidate
DG SANTE, CEF eHealth DSI, 2021
Reuse is authorised, provided the source is acknowledged.
COVER AND CONTROL PAGE OF DOCUMENT
Document name: NCPeH Components Specifications
Distribution level*: PU
Status: Wave 5 Release Candidate
Author(s): eHealth DSI provider
Organization:
* Distribution level: PU = Public, PP = Restricted to other programme participants, RE =
Restricted to a group specified by the consortium, CO = Confidential, only for members of
the consortium.
ABSTRACT
This document covers the technical specifications of the eHealth DSI common
components that have to be put in place by eHealth DSI countries in order to allow for a
secure and privacy-aware exchange of identifiable medical data.
The document is presented as a consolidated specification of the already implemented
eHealth DSI solution. It furthermore serves as the foundation of the eHealth DSI services
technical specification, which is aimed at reusing as much of the work already done and
to preserve much of the backwards compatibility between both initiatives.
CHANGE HISTORY
Version Date Status Changes From Review
V4.0.0 15/05/2020 Wave 4 Operation eHealth DSI Solution
Ready – Integrate the Provider
CP-036 and CP-042
required changes
V3.1.0 09/09/2019 Wave 3 Operation eHealth DSI Solution
Ready - HotFix Provider
Integrate the
modifications linked
to the CP-eHealthDSI-
024: Formalize the
'Description' element
in the eP list
V3.0.0 02/07/2019 Wave 3 Operation eHealth DSI Solution
Ready -Administrative Provider
update
V2.2.0 30/06/2018 Wave 2 Operation eHealth DSI Solution
Ready Provider
V2.1.0 01/06/2017 Released for eHealth DSI Solution
eHMSEG adoption Provider
V2.0.6 24/05/2017 Remove eHealth DSI provider
inconsistencies in the
naming notation of the
Metadata
V2.0.5 23/05/2017 Remove the eHealth DSI provider
overlapping
information about the
eHealth DSI web
services
V2.0.4 11/05/2017 Correct the error code eHealth DSI provider
for the Unknown
Filter (must be 4204)
in section 3.4.1.5
V2.0.3 04/05/2017 Remove the eHealth DSI provider
overlapping
information about the
Audit Trail Profile,
X.509 Certificate
profiles, SAML
Profile and
Cryptographic
Algorithms
V2.0.2 27/04/2017 Integrate the eHealth DSI provider
modifications linked
to the CP-001
(Evidence emitter)
V2.0.1 21/04/2017 Integrate the eHealth DSI provider
modifications linked
to the CP-002
V2.0.0 28/03/2017 Remove all references eHealth DSI provider
to epSOS and
requirements
1.0 2012-11-06 APM Cleaned-up
version for
release to
EC
TABLE OF CONTENTS
1 Introduction ................................................................................................................. 7
1.1 eHealth Digital Service Infrastructure................................................................. 7
1.2 eHealth DSI Common Components Specification .......................................... 7
1.3 Conventions .......................................................................................................................... 8
1.4 Organisation of this Document ................................................................................. 8
2 eHealth DSI Services Functional Specification ................................................. 9
2.1 eHealth DSI Service-Oriented Architecture...................................................... 9
2.1.1 Service Roles ............................................................................................................ 9
2.1.2 Trusted federation of national Contact Points ......................................... 10
2.1.3 eHealth DSI Services Overview ...................................................................... 10
2.1.4 Services Localisation .......................................................................................... 10
2.1.5 General Considerations for Service Operations ....................................... 11
3 eHealth DSI Service Implementation ................................................................ 11
3.1 Conventions and Restrictions ................................................................................. 11
3.1.1 NCP: A Standards based Implementation .................................................. 11
3.1.2 IHE Cross Community Access (XCA) ............................................................ 12
3.1.3 Error Handling ...................................................................................................... 13
3.1.4 Information Messages and Warnings .......................................................... 14
3.1.5 Object Identifier ................................................................................................... 14
3.1.6 Namespaces ........................................................................................................... 15
3.2 eHealth DSI Identification Service ........................................................................ 15
3.2.1 findEntityByTraits() Operation ...................................................................... 15
3.2.1.1 Event Identification ............................................................................................ 16
3.2.1.2 Restrictions on the Use of Traits .................................................................... 16
3.2.1.3 Use of Pseudonyms and Temporal Identifiers ......................................... 17
3.2.1.4 Patient Authentication ....................................................................................... 17
3.2.1.5 Requested Accuracy of Matches..................................................................... 17
3.2.1.6 Example Request Message ............................................................................... 17
3.2.1.7 Active Participant Role ID Codes ................................................................... 19
3.2.1.8 Response Message (Full Success Scenario) ............................................... 19
3.2.1.9 Response Message (No Patient ID Discovered) ....................................... 21
3.2.1.10 Example Response Messages ...................................................................... 23
3.2.2 Security Audit Considerations ........................................................................ 25
3.2.3 Protocol Requirements...................................................................................... 26
3.3 eHealth DSI Patient Service ...................................................................................... 26
3.3.1 List() Operation .................................................................................................... 27
3.3.1.1 Request Message .................................................................................................. 27
3.3.1.2 Example Request Message ............................................................................... 28
3.3.1.3 Expected Actions .................................................................................................. 29
3.3.1.4 Response Message (Full Success Scenario) ............................................... 29
3.3.1.5 Response Message (No Patient Summary Provided) ............................ 33
3.3.1.6 Example Response Message ............................................................................ 34
3.3.2 Security Audit Considerations ........................................................................ 39
3.3.3 Protocol Requirements...................................................................................... 39
3.4 eHealth DSI Order Service ......................................................................................... 40
3.4.1 List() Operation .................................................................................................... 40
3.4.1.1 Request Message .................................................................................................. 40
3.4.1.2 Example Request Message ............................................................................... 41
NCPeH_Components_Specifications_v5.0.0 Page 4 of 84
3.4.1.3 Expected Actions .................................................................................................. 42
3.4.1.4 Response Message (Full Success Scenario) ............................................... 42
3.4.1.5 Response Message (No ePrescriptions Provided) .................................. 46
3.4.1.6 Example Response Message ............................................................................ 47
3.4.2 Security Audit Considerations ........................................................................ 49
3.4.3 Protocol Requirements...................................................................................... 49
3.5 eHealth DSI Dispensation Service ......................................................................... 50
3.5.1 Initialize() Operation.......................................................................................... 50
3.5.1.1 Request Message .................................................................................................. 50
3.5.1.2 Expected Actions .................................................................................................. 52
3.5.1.3 Response Message (Full Success Scenario) ............................................... 53
3.5.1.4 Response Message (Failure or Partial Failure Scenario) ..................... 53
3.5.1.5 Example Response Message ............................................................................ 54
3.5.1.6 Security Audit Considerations ........................................................................ 55
3.5.2 Discard() Operation ............................................................................................ 55
3.5.2.1 Request Message .................................................................................................. 55
3.5.2.2 Expected Actions .................................................................................................. 57
3.5.2.3 Response Message (Full Success Scenario) ............................................... 57
3.5.2.4 Response Message (Failure or Partial Failure Success Scenario) ..... 57
3.5.2.5 Response Message (Full Success Scenario) ............................................... 58
3.5.2.6 Security Audit Considerations ........................................................................ 59
3.5.3 Protocol Requirements...................................................................................... 59
4 eHealth DSI Communication and Messaging Infrastructure .................... 60
4.1 Audit Trail Implementation ..................................................................................... 60
4.1.1 TLS Configuration ................................................................................................ 60
4.2 Time Synchronisation .................................................................................................. 61
4.3 eHealth DSI Common Message Format .............................................................. 61
4.3.1 Transport Layer Profile ..................................................................................... 61
4.3.2 Message Layer Profile ........................................................................................ 61
4.3.3 XML Message Schema Format ........................................................................ 62
4.3.4 SOAP Binding......................................................................................................... 62
4.3.5 Embedding of Security Token ......................................................................... 62
4.3.5.1 SAML Assertions .................................................................................................. 62
4.3.5.2 Message Signature ............................................................................................... 62
4.3.6 Processing of SOAP Messages ......................................................................... 63
4.4 Exception Handling ........................................................................................................ 63
4.4.1 Communication Failures ................................................................................... 64
4.4.2 Encoding and Consistency Failures .............................................................. 64
4.4.2.1 SOAP Error Profile ............................................................................................... 64
4.4.2.2 General Message Handling Errors ................................................................. 65
4.4.2.3 SOAP Message Encoding and Addressing Errors .................................... 65
4.4.2.4 Security Header Encoding and Consistency Errors ................................ 66
4.4.2.5 Audit Trail Considerations ............................................................................... 67
5 eHealth DSI Profiles on Assertions and Certificates.................................... 68
5.1 Cryptographic keys and Algorithms.................................................................... 68
5.2 HP Identity Assertion ................................................................................................... 68
5.3 Treatment Relationship Confirmation Assertion ....................................... 68
5.4 eHealth DSI Certificate Profiles .............................................................................. 68
6 Appendix ..................................................................................................................... 68
NCPeH_Components_Specifications_v5.0.0 Page 5 of 84
6.1 Coding Conventions (Normative).......................................................................... 68
6.1.1 Country Codes ....................................................................................................... 68
6.2 eHealth DSI Identifiers (Normative) ................................................................... 69
6.2.1 Uniform Resource Names (URNs) ................................................................. 69
6.2.2 eHealth DSI OIDS.................................................................................................. 70
6.2.3 eHealth DSI CDA Documents and Codes ..................................................... 70
6.3 WSDLs ..................................................................................................................................... 70
7 References .................................................................................................................. 70
7.1 Normative References .................................................................................................. 70
NCPeH_Components_Specifications_v5.0.0 Page 6 of 84
1 Introduction
This document covers the technical specifications of the eHealth DSI common components
that have to be put in place by eHealth DSI countries in order to allow for a secure and
privacy-aware exchange of identifiable medical data.
The document is presented as a consolidated specification of the already implemented
eHealth DSI solution. It furthermore serves as the foundation of the eHealth DSI services
technical specification, which is aimed at reusing as much of the work already done and to
preserve much of the backwards compatibility between both initiatives.
1.1 eHealth Digital Service Infrastructure
The core principle of eHealth DSI is to bridge existing national eHealth infrastructures
instead of setting up a new, centralised European healthcare service network from scratch.
To make this approach work technical, semantic and legal interoperability among
European eHealth infrastructures must be achieved. This includes identity matters as well
as security matters and information management issues within heterogeneous, distributed
environments. None of the problems faced by eHealth DSI is new or extremely
challenging: cross-border data exchange is common practice in many domains, nearly
every European country has use cases and processes for cross-enterprise health data
exchange defined and decoupled security services spanning federated domains are well
covered by international standards.
Therefore the challenge for the development of technical specifications for the eHealth DSI
building blocks is not to find a solution that works for the defined use cases. The challenge
is to find a solution that
1) can evolve over the next years and lay ground for a seamless, secure and
privacy-aware exchange of any kind of medical data across Europe,
2) can easily connect to the existing infrastructures without imposing
unreasonable new risks on the privacy and integrity of existing data
managing systems,
3) is flexible enough to be used in conjunction with different means of
identification, authentication and authorisation to allow for any citizen and
country to participate based on existing legal regulations and technical
actualities and
4) is widely accepted and has the potential for reuse of software components
and test tools.
1.2 eHealth DSI Common Components Specification
The eHealth DSI Common Components Specification is the technical baseline of eHealth
DSI: There MUST NOT be any normative statement on the shape and behaviour of any
eHealth DSI building block that is on a technically lower level than this specification.
While specifications on identity management [Identity management Specifications] and
security services [Security Services Specification] define the core concepts and guidelines
for these issues, the eHealth DSI Common Component Specifications defines the
technical means that serve these concepts.
The scope of the eHealth DSI Common Components Specification is determined by:
- technical interoperability: the specification does only cover aspects of
cross-border data exchange that are indispensable for technical
interoperability
NCPeH_Components_Specifications_v5.0.0 Page 7 of 84
-shared responsibility: whenever possible, only the shape of data
exchanged "on the wire" is specified while the processes and systems for
issuing and consuming these data objects are considered to be national
responsibilities
The objective is to define the eHealth DSI interoperability building blocks in a way that
they can be implemented independently from each other by different vendors. The eHealth
DSI Common Components Specification builds upon the implementation independent
technology view of [System Architecture Specifications]. It provides the normative
specification of the eHealth DSI services’ operations by mapping them onto established
standards.
1.3 Conventions
The keywords MUST, SHOULD, MAY, SHOULD NOT and MUST NOT are used as
defined in [RFC 2119].
For indicating the optionality of certain functionalities or data fields the following
keywords are used:
- "R" or "Required": Functionalities and data fields marked as "R" MUST be
provided.
- The notation "R+" is used to indicate that eHealth DSI is stricter on the
mandatory nature of the functionality or data field than the underlying base
standard.
- "O" or "Optional": Functionalities and data fields marked as "O" MAY be
omitted.
- "R/O": Data fields marked as "R/O" are conditionally mandatory.
- "X": Functionalities and data fields marked as "X" MUST NOT be used.
1.4 Organisation of this Document
This document consists of four main parts in order to separate different levels of abstraction
and to allow different groups of readers to easily access the information that is relevant for
them without having to read the whole document:
- Chapter 2 of this document specifies the functionality of the eHealth DSI
Services by outlining the data elements that have to be exchanged in order to
implement the defined service operations. This eHealth DSI functional service
specification is targeted at system architects who are responsible for
connecting HCPOs and existing national infrastructures to eHealth DSI
components.
- Chapter 3 specifies the implementation of the eHealth DSI services by
providing the eHealth DSI Mappings of the service operations. These
specifications describe how the eHealth DSI services’ operations are mapped
onto existing standards and healthcare profiles. This part is targeted at
software designers and developers who are responsible for the implementation
of eHealth DSI services and for their integration with existing national
infrastructure components.
- Chapter 4 defines the eHealth DSI communication and messaging
infrastructure. It describes the protocols to be used for establishing the
eHealth DSI network of trusted nodes and specifies the common formats for
messages. Chapter 4 is mainly targeted at systems administrators who are
responsible for the configuration of web service platforms and network nodes.
- Chapter 5 specifies the syntax and semantics of the assertions and
certificates that are used by the eHealth DSI services. This chapter is targeted
NCPeH_Components_Specifications_v5.0.0 Page 8 of 84
at security administrators who are responsible for the management of
certificates and the configuration of security services.
Sample messages and the WSDLs for all eHealth DSI services’ interfaces are provided in
an appendix to this document.
2 eHealth DSI Services Functional Specification
The eHealth DSI architecture is based on a service-oriented paradigm. [NCPeH
Architecture Specification] defines the eHealth DSI services and service interfaces and
shows how these interact with each other in order to implement the eHealth DSI use cases
on patient summary, ePrescription and original clinical documents (OrCD).
This chapter builds upon the technology viewpoint on the eHealth DSI architecture by
further refining the functional specification of the eHealth DSI services’ interfaces. For
each service operation the input and output as well as the requested effect and the
preconditions for a success scenario are defined.
2.1 eHealth DSI Service-Oriented Architecture
The design of the general architecture of eHealth DSI and the design of the eHealth DSI
services is based on the following basic assumptions:
1. The design uses the service-oriented paradigm.
2. All services are passive, the service consumers and service providers
communicate synchronously.
3. All eHealth DSI medical data as well as all patient and HP identity data is
administered in autonomous systems. Any exchange of these data is mediated by
national gateways following a B2B paradigm.
4. There are no central services except the ones needed for the operation of a secure
eHealth DSI infrastructure; the federation of national gateways is implemented via
a »circle of trust«.
2.1.1 Service Roles
The service-oriented paradigm distinguishes among three roles: service provider, services
consumer, and service registry. The service provider offers a service that is used by the
service consumer. The service provider can publish a description of the service in a service
registry.
eHealth DSI services are implemented as Web Services whose interfaces are specified
with the Web Service Description Language [W3C WSDL 1.1]. eHealth DSI Web services
are passive. Communication between service consumer and service provider is always
initiated by the service consumer. The service provider is passive and reacts to requests
from the service consumer.
The communication between service consumer and services provider is synchronous. The
service consumer’s control flow is suspended until the service provider has processed
the service consumer’s request. Service consumer and provider communicate over the
Internet using XML-based SOAP messages transported via the HTTP protocol (see chapter
4.3 for details).
Each eHealth DSI service is operated under the responsibility of a National Contact Point
(NCP). The role of the service consumer is always taken by the NCP of the country of
care (country B). The role of the service provider is always taken by the NCP of the
country of the patient’s affiliation (country A).
A service registry is not used. Instead it is assumed that service descriptions and service
location information is made available for service consumers by organisational means and
static local directory services (see section 2.1.4). As with other centrally managed data (e.
g. value set catalogues and trusted certificates), the mechanisms for securely distributing
NCPeH_Components_Specifications_v5.0.0 Page 9 of 84
this information among NCPs are out of the scope of this document and will instead be
covered by the eHealth DSI documents on security policies and pilot operations.
2.1.2 Trusted federation of national Contact Points
National Contact Points (NCPs) are implemented federally in order to allow for a virtual
integration of autonomous sources of medical data and identity information [OFW-
NCPeH]. The independence of the information sources is preserved as all access to an
information source is mediated through the eHealth DSI services which are implemented
at NCP level. This complies to a Business-to-Business paradigm where end users and data
sources are decoupled by enterprise level entry services that map external requests onto
internal operations and vice versa. Part of this mediation is the brokerage of trust that is
achieved by matching security objects of the NCP-to-NCP trust domain into a local trust
domain and vice versa.
The administration of the identities of patients and healthcare professionals (HPs) is
decentralized. Authentication of a HP can only be done within the country of care that
recognizes this HP. The existence of a treatment relationship between a patient and a HP
can only be attested within the legal framework of the point of care (PoC). With eHealth
DSI HP authentication and treatment relationship attestment are therefore performed
within the country of care (e. g. by using an existing Identity Provider service of the
national infrastructure). A brokerage of the HP authentication and treatment relationship
confirmation into the eHealth DSI domain is performed in a way that the NCP at country
B confirms the respective claims and maps them onto a unified syntax and semantics that
can be processed by the NCP of country A.
The eHealth DSI "Circle of Trust" consists of pairs of mutually trusted consuming and
providing gateways. A consuming gateway provides the computing environment for the
operation of an eHealth DSI service consumer and acts as the exit point from the national
domain into the eHealth DSI domain. A providing gateway operates the Web Service
Endpoint (WSE) of the service provider and acts as the entry point from the eHealth DSI
domain into the national domain. Each gateway is operated under the legal responsibility
of an NCP.
A basic assumption of eHealth DSI is that mutual trust exists between NCPs. The
authenticity and integrity of the services in the gateway-mediated NCP-2-NCP
communication is secured with digital certificates. Examinations of the certificates and
their exchange (with a limited number of NCPs) are to be synchronized among the eHealth
DSI service providers [Security Services Specification, NCPeH Architecture
Specification].
2.1.3 eHealth DSI Services Overview
To foster interoperability among European healthcare infrastructures without forcing
countries to modify their running eHealth services, only NCP gateway-to-gateway
interfaces are considered as "normative" with eHealth DSI. These interfaces are provided
by web services that use open, XML-based standards and transport protocols to exchange
data between gateways.
The full list of eHealth DSI web services acc. to [NCPeH Architecture Specification] is
shown in Table 1.
Service Mediated Data Functional Specification
Identification Service Patient identifiers and demographics [Identity Management Specification]
Patient Service Patient summary documents [PS Functional requirements]
NCPeH_Components_Specifications_v5.0.0 Page 10 of 84
Order Service ePrescription documents [eP Functional requirements]
Dispensation Service eDispensation documents [eP Functional requirements]
OrCD Service OrCD documents
Table 1: eHealth DSI Services Overview
2.1.4 Services Localisation
In eHealth DSI, service discovery and location will be based on dynamic look-up [NCPeH
Architecture Specification]. Each NCP MUST describe its service addresses and
certificates in a centrally managed location table that complies to the eHealth DSI Service
Metadata Publisher format as specified in [Service Location and Capability Lookup
Profile] (see section 2) of this document.
Each NCP holds a copy of the other NCP's location tables as part of its internal
configuration.
2.1.5 General Considerations for Service Operations
In order to successfully operate the eHealth DSI use cases on patient summary and
ePrescription, the following preconditions MUST be met:
1) The service consumer MUST be able to locate the service provider. The respective
end point addresses and certificates MUST be provided through a [Service Location
and Capability Lookup Profile] (see section 2). Up-to-date copies of all service
providing NCP’s Service Metadata Publisher files MUST be available to the
service consumer.
2) A secure channel MUST have been established between service consumer and
service provider nodes (see section 4.1 for the establishment of the eHealth DSI
Trusted Node Infrastructure).
3) The service provider MUST be able to verify the authenticity of the service
consumer and vice versa. This requires that service consumer and service provider
only make use of digital certificates that can be verified by the counterpart (see
[SAML Profile] for the definition of the respective certificate profiles).
4) The requesting HP MUST have been authenticated in the country of care (see
[Identity Management Specification] for details on HP authentication). The service
provider MUST be able to verify the attesting HP identity assertion (see [SAML
Profile] for the specification of the HP Identity Assertion and [X.509 Certificate
Profiles]. for the certificate profile of the NCP signature certificate that MUST be
used for attesting the successful authentication of an HP).
Further general requirements for secure and privacy-aware operations that MUST be
considered are defined in [System Architecture Specification] and [Security Services
Specification].
Failures during a service’s operation or faulty conditions for using a service MUST be
handled. Part of this fault handling is that a respective audit trail entry MUST be written
at all NCPs who are aware of the fault. See section 4.4 for details.
3 eHealth DSI Service Implementation
The eHealth DSI service interface defines the semantics of identification and data sharing
operations for European health services. "On the wire" the service operations are
implemented by SOAP messages that are exchanged between an initiating gateway
(operated by NCP-B) and a providing gateway (operated by NCP-A).
NCPeH_Components_Specifications_v5.0.0 Page 11 of 84
This chapter specifies the mapping of eHealth DSI service operations onto standardised
messages and as such is the normative implementation guideline for the eHealth DSI-facing
NCP interface.
3.1 Conventions and Restrictions
3.1.1 NCP: A Standards based Implementation
The eHealth DSI NCP2NCP interface is based on the IHE X* family of Interoperability
Profiles and additionally utilises a set of supporting profiles (Figure 6).
Figure 6: IHE actors and transactions that are profiled by eHealth DSI
The IHE profiles that are implemented for eHealth DSI NCP-to-NCP data exchange are:
- Cross Community Fetch (XCF)
- Cross-Community Access (XCA) incorporating a modified getAll() transaction
- Cross-Enterprise Document Reliable Interchange (XDR)
- Cross-Community Patient Discovery (XCPD)
The eHealth DSI service specifications that build on these IHE profiles introduce various
extensions and restrictions on IHE actor and transaction definitions in order to properly
cover the eHealth DSI use cases and to align with the eHealth DSI security framework:
- Registry query and repository retrieve transactions are conflated to a single list()
operation (see section 3.1.2).
- Additional error messages are defined that cover specific failure conditions of the
eHealth DSI use cases on Patient Summary and ePrescription.
- Warning messages are introduced (see section 3.1.4) to allow for notifications on
specific environmental conditions that apply to a country and that MAY affect the
NCPeH_Components_Specifications_v5.0.0 Page 12 of 84
interpretation of data in another country.
- The optionality of data fields is aligned to European privacy regulations.
- The application of security measures and the contents of the SOAP security
header are specified normatively (see section 4.3.5).
3.1.2 IHE Cross Community Access (XCA)
IHE XCA defines message interchange formats for listing and retrieving patient related
documents. It is based on a stored query model1 where the requestor provides attribute-
value pairs in the query. It is up to the responding site to map the query attributes onto its
internal registry information model. For documents matching the provided attributes’
values, the document identifiers (and minimum metadata) are provided. The initiator of the
original request may then chose a subset of these listed documents to issue a simple retrieve
based on the document identifiers.
At this point IHE XCA only supports scenarios where a query to request a list is first
performed by returning document metadata (»LeafClass«) or just document IDs
(»ObjectRef«), followed by an additional document retrieve operation.
In contrast eHealth DSI is based on a pattern, that allows for easier handling of dynamic
data and keeps the NCP-A stateless [PS Functional requirements]. For eHealth DSI the
retrieval of a single patient summary or a patient’s set of ePrescriptions is performed by a
single fetch() operation which returns all objects that match a given filter query within the
response message. In order to implement this eHealth DSI document sharing pattern,
eHealth DSI introduced a new IHE profile for returning documents on otherwise XCA
compliant queries. This eHealth DSI-inspired XCF option allows for an integrated query
and retrieve message.
3.1.3 Error Handling
Failures during operation execution can be of different kinds; e.g. they may be caused by
syntactic mismatches, insufficient access rights, country-A component failures, or protocol
failures. eHealth DSI makes use of three different error reporting mechanisms in order to
allow for a better handling of errors on the appropriate level of abstraction (see Figure 7):
- SOAP faults: The standard SOAP fault mechanism is used for failures that
originate in the encoding of the SOAP message or the contents of the SOAP header.
It is assumed that the respective errors are discovered during the processing of the
message at the eHealth DSI communication tier of the NCP-A and that they mainly
address failures that originate at NCP-B. Typical examples of such errors are
missing security token or usage of undefined attributes within security token.
- Error Messages in the SOAP response body: Error reporting mechanisms of the
business level protocol (e. g. XCA) are used for failures that are discovered during
the business-level processing of security token and SOAP body elements. These
errors may as well be discovered during policy enforcement at the NCP as during
the processing of the request within the national infrastructure. The failure usually
either originates at the Point of Care in country B or at the national infrastructure
in country A. These errors SHOULD be reported to the HP in country B as it is
assumed that either the HP or the patient MAY be able to take action to successfully
re-issue the request. Typical examples of such errors are missing consents and
temporary component failures in country A.
- Error messages related to the creation of the document content: There may be
cases where failure to access certain systems within a national infrastructure may
result in some elements of clinical information missing (e.g. in a patient summary).
1 IHE XCA – as IHE XDS.b – does not exchange full query statements but only query arguments that are filled into
predefined slots of a database stored query at the service side.
NCPeH_Components_Specifications_v5.0.0 Page 13 of 84
These clinical content errors should be conveyed within the document content. The
SOAP body transactions and SOAP header were exchanged without errors at the
lower two levels.
Figure 7: eHealth DSI error handling
A list of all SOAP fault codes and conventions to be followed for transmitting SOAP faults
are provided in section 4.4 of this document. Business level error messages and their
proposed processing are provided in the "response message" sections of the eHealth DSI
service specifications. Lower level communication and protocol failures are covered in
section 4.4.1 of this document.
3.1.4 Information Messages and Warnings
eHealth DSI implements medical data sharing among different legal and technical
environments. This might lead to scenarios where the NCP at the patient’s country of
affiliation MAY wish to send further information on the data collection procedure or on
the source environment together with the data to the HP in the country of care. An example
for this is a notice on automatically collected data that was not approved by an HP. Even
an uncertain state of a request’s fulfilment – e.g. NCP was not able to access all relevant
data sources – MUST be reported to the data consumer in order to provide a correct
semantic context for the provided data.
To allow for this exchange of context information, all ebXML based eHealth DSI messages
provide the ability to include an <rs:RegistryErrorList/> element (with an success
indicator) for transmitting information and warnings together with provided medical data.
Warnings that only affect the contents of a single document are reported in an explicit
clinical statement within that document.
3.1.5 Object Identifier
In the absence of an official eHealth DSI OID [ISO OID] a temporary OID is assigned
as the root OID 1.3.6.1.4.1.12559.11.10.1.3 for eHealth DSI.
- (Branch 1 was allocated to eHealth DSI CDA templates:
1.3.6.1.4.1.12559.11.10.1.3.1).
- Branch 2 (1.3.6.1.4.1.12559.11.10.1.3.2) was allocated to Common Components
The following branches are defined for codes and code systems:
OID Branch Description
1.3.6.1.4.1.12559.11.10.1.3.2.1 Patient Identification related codes and code systems
1.3.6.1.4.1.12559.11.10.1.3.2.2 HP/HCPO identification, authentication, authorisation related
codes and code systems
1.3.6.1.4.1.12559.11.10.1.3.2.3 Medical data sharing related codes and code systems
NCPeH_Components_Specifications_v5.0.0 Page 14 of 84
1.3.6.1.4.1.12559.11.10.1.3.2.4 Consent encoding and management related codes and code systems
The following branches are defined for eHealth DSI CDA templates:
OID Branch Description
1.3.6.1.4.1.12559.11.10.1.3.1.1.1 ePrescription
1.3.6.1.4.1.12559.11.10.1.3.1.1.2 eDispensation
1.3.6.1.4.1.12559.11.10.1.3.1.1.3 Patient Summary
1.3.6.1.4.1.12559.11.10.1.3.1.1.8 eHDSI OrCD Laboratory Result
1.3.6.1.4.1.12559.11.10.1.3.1.1.9 eHDSI OrCD Hospital Discharge Report
1.3.6.1.4.1.12559.11.10.1.3.1.1.10 eHDSI OrCD Medical Imaging Report
1.3.6.1.4.1.12559.11.10.1.3.1.1.11 eHDSI OrCD Medical Images
For a full list of all defined OIDs see appendix 6.2.2 of this document.
3.1.6 Namespaces
XML namespace prefixes are used in this document to stand for their respective
namespaces as follows.
Prefix Namespace
ehealth urn:ehealth:v1
soapenv http://www.w3.org/2003/05/soap-envelope
wsse http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
saml urn:oasis:names:tc:SAML:1.0:assertion
xacml urn:oasis:names:tc:xacml:2.0:policy:schema:os
hl7v2 urn:hl7-org:v2
hl7v3 urn:hl7-org:v3
xds urn:ihe:iti:xds-b:2007
xs http://www.w3.org/2001/XMLSchema
xsi http://www.w3.org/2001/XMLSchema-instance
rimext urn:ihe:iti:xds-ebrim:extensions:20102
query urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0
rim urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0
rs urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0
lcm urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0
tsl http://uri.etsi.org/02231/v2#
3.2 eHealth DSI Identification Service
The eHealth DSI Identification Service is used to discover a valid patient identifier from
an ID assigning authority by providing given identifiers and/or demographic data that is
sufficient for patient identification.
Figure 8 - Patient Identification Service Interface
The implementation of the eHealth DSI Identification Service is based on the standard
2 IHE will be asked to block this namespace for eHealth DSI extensions in order to avoid conflicts with forthcoming
IHE extensions to the ebRIM.
NCPeH_Components_Specifications_v5.0.0 Page 15 of 84
- HL7 IS: HL7 V3 Identification Service
and is an extension to the IHE profile
- XCPD: IHE Cross-Community Patient Discovery [IHE XCPD]
3.2.1 findEntityByTraits() Operation
The IHE XCPD Cross-Gateway Patient Discovery transaction – as for the semantics and
syntax of its content - is based on HL7 Patient Registry Find Candidates Query
(PRPA_IN201305UV02) interaction type and used also for the [IHE PIX/PDQ v3]
transactions.
3.2.1.1 Event Identification
The findEntityByTraits() request is initiated by an HP in the country of care for the
identification of a foreign patient. The respective request message conforms to the Patient
Registry Find Candidates Query (PRPA_IN201305UV02) interaction type as profiled by
the IHE XCPD Cross-Gateway Patient Discovery transaction [IHE XCPD].
For the HL7 transmission wrapper and the HL7 Control Act the conventions identified in
the IHE PIX/PDQV3 supplement appendix O [IHE PIX/PDQ v3] and the changes from
the XCPD supplement appendix O MUST be followed.
In addition the following eHealth DSI-specific restrictions apply:
- <receiver/> MUST refer to NCP-A. Other sub-elements than the device-identifier
that holds the OID of NCP-A MUST be ignored by the service provider and
SHOULD NOT be provided by the service consumer. <sender/> MUST refer to
NCP-B. Other sub-elements than the device-identifier that holds the OID of NCP-
B MUST be ignored by the service provider and SHOULD NOT be provided by
the service consumer.
- Asynchronous operations MUST NOT be used. According to [PS Functional
requirements] all message interchange in eHealth DSI MUST be synchronous.
- Demographic Query Only mode or Shared/national Patient Identifier Query and
Feed mode
- MUST be used. Other modes defined in [IHE XCPD] MUST NOT be used.
- The health data locator option as defined in section 27.2.1 of [IHE XCPD] MUST
NOT be used. Where indication of support for the health data locator option is
required in responses, the service provider MUST provide the value
"NotHealthDataLocator".
- The revoke option as defined in section 27.2.2 of [IHE XCPD] MUST NOT be used.
- Correlations MUST NOT be cached by the service provider. The respective
syntax elements described in section 3.55.4.1.2 of [IHE XCPD] MUST NOT be
used.
- Reverse Cross-Gateway Queries MUST NOT be used. The homeCommunityId
and community patient id assigning authority arguments SHOULD be set to the
OID of the responding NCP (NCP-A) in query requests
3.2.1.2 Restrictions on the Use of Traits
For a findIdentityByTraits() request only the following traits or a subset of these MUST
be used. Service providers SHOULD reject requests that contain other traits than the ones
listed below.
Identity Trait Source Usage Convention (if provided)
NCPeH_Components_Specifications_v5.0.0 Page 16 of 84
LivingSubjectID Personal ID Card SHOULD contain zero or more living subject Id.
When present, it shall contain both an assigning
authority identifier (root) and individual ID
(extension).
If multiple subject IDs are given for the same
patient, each identifier MUST be provided as a
dedicated <LivingSubjectID/> element and some of
them might be optional.
LivingSubjectName Personal ID Card Family name and given name MUST both be given if
no Liv- ingSubjectID is provided. Otherwise this
query parameter is optional.
LivingSubjectBirthTime Personal ID Card Birth date MUST be given if no LivingSubjectID is
provided. Otherwise this query parameter is optional.
If given this parameter MUST be encoded as
"YYYY[MM[DD[HHMM[SS[.S[S[S[S]]]]]]]][+/-
ZZZZ]" with year, month and day being mandatory.
LivingSubjectGender MUST be "M", "F" or "UN"
PatientAddress Personal ID Card SHOULD contain country and city.
For detailed information on the encoding of these traits and their optionality for the XCPD
modes see [IHE XCPD].
The set of required traits for patient identification are defined by each eHNCP-A according
the [Service Location and Capability Lookup Profile]; Service Metadata Publisher
EHEALTH-107.
3.2.1.3 Use of Pseudonyms and Temporal Identifiers
A country MAY wish to protect its patients’ privacy by negotiating an eHealth DSI shared
identifier from a pseudonymous or temporal national patient identifier. In this case
Shared/national Patient Identifier Query and Feed mode MUST be used. On successful
identification within country A the response message MUST at least provide the patient’s
date of birth in order to allow the HP in country B to verify the accuracy of the
identification.
3.2.1.4 Patient Authentication
The eHealth DSI Identification Service allows for the identification of a patient. If a country
requires an additional authentication of its citizens when they ask for medical care in
another country, this country MUST define its own authentication service. The eHealth
DSI Identification Service findIdentityByTraits operation only provides the mechanism for
piggybacking the exchange of transparent authentication data between NCPs. This is done
by using two HL7v3 instance identifier within a single <LivingSubjectID/> element; one
identifier is used for identifying the patient while the other one is used for authentication
of the patient.
The service provider MUST be able to distinguish identifier and authentication object by
their roots (assigning authorities).
3.2.1.5 Requested Accuracy of Matches
The HL7 Patient Registry Find Candidates Query allows to further refine the match criteria
by setting the match algorithm and specifying a requested minimum degree of match for
the provided traits.
NCPeH_Components_Specifications_v5.0.0 Page 17 of 84
As the respective <MatchCriterionList> element is optional with the HL7 schema, it
SHOULD NOT be used for the eHealth DSI wave 1. If present, the minimum requested
match degree SHOULD be set to an integer value of "100". In both cases the responding
service SHOULD only respond with identity data of patients who fully match all provided
traits. Returning multiple candidates’ identity trails SHOULD be avoided for privacy
reasons.
3.2.1.6 Example Request Message
The following excerpt from a findEntityByTraits request message shows the IHE XCPD
profile of the HL7 PRPA_IN201305UV02 interaction type. The request message can be
used to retrieve the identifier of a patient who identified himself with his electronic health
card and date of birth.
<soapenv:Envelope>
<soapenv:Header> … >/soapenv:Header>
<soapenv:Body>
<hl7v3:PRPA_IN201305UV02 xmlns:xsi="...">
<hl7v3:id root="36E66A20-1DD2-11B2-90FA-80CE4046A4A7"/>
<hl7v3:creationTime value="20100304120000"/>
<hl7v3:interactionId root="2.16.840.1.113883.1.6" extension="PRPA_IN201305UV02"/>
<hl7v3:processingCode code="P"/>
<hl7v3:processingModeCode code="T"/>
<hl7v3:acceptAckCode code="NE"/>
<hl7v3:receiver typeCode="RCV">
<hl7v3:device classCode="DEV" determinerCode="INSTANCE">
<hl7v3:id root="1.2.840.114350.1.13.999.234"/>
</hl7v3:device>
</hl7v3:receiver>
<hl7v3:sender typeCode="SND">
<hl7v3:device classCode="DEV" determinerCode="INSTANCE">
<hl7v3:id root="1.2.840.114350.1.13.999.567"/>
</hl7v3:device>
</hl7v3:sender>
<hl7v3:controlActProcess classCode="CACT" moodCode="EVN">
<hl7v3:code code="PRPA_TE201305UV02" codeSystem="2.16.840.1.113883.1.6"/>
<hl7v3:queryByParameter>
<hl7v3:queryId root="1.2.840.114350.1.13.28.1.18.5.999" extension="18204"/>
<hl7v3:statusCode code="new"/>
<hl7v3:responseModalityCode code="R" />
<hl7v3:responsePriorityCode code="I"/>
<hl7v3:parameterList>
<hl7v3:livingSubjectBirthTime>
<hl7v3:value value="19600422"/>
<hl7v3:semanticsText/>
</hl7v3:livingSubjectBirthTime>
<hl7v3:livingSubjectId>
<!-- German electronic healthcard card number (Serial Number) -->
<hl7v3:value root="1.2.276.0.76.4.8" extension="1234567890"/>
<hl7v3:semanticsText/>
</hl7v3:livingSubjectId>
</hl7v3:parameterList>
</hl7v3:queryByParameter>
</hl7v3:controlActProcess>
</hl7v3:PRPA_IN201305UV02>
</soap:body>
</soap:envelope>
The following example shows the mapping of Czech EHIC data elements
onto a PRPA_TE201305UV02 control act.
NCPeH_Components_Specifications_v5.0.0 Page 18 of 84
<hl7v3:controlActProcess classCode="CACT" moodCode="EVN">
<hl7v3:code code="PRPA_TE201305UV02" codeSystem="2.16.840.1.113883.1.6"/>
<hl7v3:queryByParameter>
<hl7v3:queryId root="1.2.840.114350.1.13.28.1.18.5.999" extension="18204"/>
<hl7v3:statusCode code="new"/>
<hl7v3:responseModalityCode code="R" />
<hl7v3:responsePriorityCode code="I"/>
<hl7v3:parameterList>
<hl7v3:livingSubjectBirthTime>
<hl7v3:value value="19501201"/>
<hl7v3:semanticsText/>
</hl7v3:livingSubjectBirthTime>
<hl7v3:livingSubjectId>
<!-- European Health Insurance Card Serial Number -->
<hl7v3:value root="......." extension="80203111990000000001"/>
<hl7v3:semanticsText/>
</hl7v3:livingSubjectId>
<hl7v3:livingSubjectName>
<hl7v3:value>
<hl7v3:family>NOVAK</hl7v3:family>
<hl7v3:given>JAN</hl7v3:given>
</hl7v3:value>
<hl7v3:semanticsText/>
</hl7v3:livingSubjectName>
<hl7v3:patientAddress>
<hl7v3:value>
<hl7v3:country>CZ</hl7v3:country>
</hl7v3:value>
<hl7v3:semanticsText/>
</hl7v3:patientAddress>
</hl7v3:parameterList>
</hl7v3:queryByParameter>
</hl7v3:controlActProcess>
3.2.1.7 Active Participant Role ID Codes
The eHealth DSI Identification Service provider shall respond with the findEntityByTraits
response message containing the patient identifier that is to be used for querying the
identified patient’s medical data. The eHealth DSI Identification Service provider MUST
verify that the requesting service user has sufficient rights to query for the identifier of the
given patient. It is subject to the national security policy of the patient’s country of
affiliation, how multiple matches and matches with less than 100% accuracy are handled3.
3 The national security policy of the patient's country of affiliation always overrides service consumer minimum
confidence level: for instance, if country A only accept 100% match but country B is requesting with minimum
NCPeH_Components_Specifications_v5.0.0 Page 19 of 84
In case of an error that relates to the transmission of the request or the processing of the
eHealth DSI security token, the eHealth DSI Identification Service provider MUST
respond with a fault message according to section 4.4 of this document.
3.2.1.8 Response Message (Full Success Scenario)
The eHealth DSI findEntityByTraits response content is based on HL7 Patient Registry
Find Candidates Query Response (PRPA_IN201306UV02) interaction, as profiled by the
IHE XCPD Cross-Gateway Patient Discovery result message.
For the HL7 transmission wrapper and the HL7 Control Act the conventions identified in
the IHE PIX/PDQV3 supplement appendix O and the changes from the XCPD supplement
appendix O MUST be followed.
In addition the following eHealth DSI-specific restrictions apply:
<receiver/> MUST refer to NCP-B. Other sub-elements than the device-identifier
that holds the OID of NCP-B MUST be ignored by the service consumer and
SHOULD NOT be provided by the service provider. <sender/> MUST refer to
NCP-A. Other sub-elements than the device-identifier that holds the OID of NCP-
A MUST be ignored by the service consumer and SHOULD NOT be provided by
the service provider.
Asynchronous operations MUST NOT be used. According to [PS Functional
requirements] all message interchange in eHealth DSI MUST be synchronous.
Correlations MUST NOT be cached by the service provider. The respective
syntax elements described in section 3.55.4.1.2 of [IHE XCPD] MUST NOT be
used.
The <processingCode/> MUST be set to "D" (debugging) for eHealth DSI PPT
environment. It MUST be set to "P" (production/operation) for eHealth DSI routine
operations.
For each matching candidate a single <subject/> element MUST be included within the
control act wrapper.
In addition to the constraints defined in [IHE XCPD] the following conventions MUST
be followed for <subject1/patient/> elements:
Element Name Opt. eHealth DSI Usage Convention
Patient R For each matching candidate a single <patient/> element MUST be
provided.
Patient/id R This element MUST contain the HL7-II-encoded Id of the patient that
MUST be used for subsequent transactions to access the patent’s
medical data. The root designator MUST be present.
Patient/statusCode R MUST be "active".
Patient/patientPerson R Additional demographic data on a patient that matches the query. The
encod ing of this data MUST follow the conventions as stated in [IHE
XCPD].
See table below for a list of demographics that SHOULD be used for
eHealth DSI.
confidence level of 75%, then only 100% matches will be returned (see [Identity Management Specification] for details
on ID traits matching and confidence levels).
NCPeH_Components_Specifications_v5.0.0 Page 20 of 84
Patient/subjectOf1/ R This element encodes the score of the match as an HL7 observation. It
queryMatchObservation MUST
be used as this:
<hl7v3:queryMatchObservation classCode="OBS" mood-
Code="EVN">
<hl7v3:code codeSystem="2.16.840.1.113883.1.11.19914"/>
<hl7v3:value xsi:type="hl7v3:INT" value="MATCH"/>
</hl7v3:queryMatchObservation>
Other elements MAY be provided within the result set by the sender but SHOULD be
ignored by the receiver.
For a FindIdentityByTraits response only the following ID data MUST be provided as child
elements of the <patientPerson/> element.
Identity Data Opt. Usage Convention (if provided)
asOtherIDs/id O This element SHOULD be only given if it provides further information
on the scope and context of the used identification mechanism. This
information SHOULD be suited to allow the HP to verify the claimed
identity of the patient.
name O Both family name and given name SHOULD be provided.
Note: This element is mandatory wrt. the HL7v3 schema.
Therefore at least an empty instance MUST be included with the
response.
birthTime R+ MUST be provided as
"YYYY[MM[DD[HHMM[SS[.S[S[S[S]]]]]]]][+/-ZZZZ]"
birthplace O SHOULD contain the country and city of birth
administrativeGenderCode O
addr O Only city and streetName SHOULD be provided
guardian X For the eHealth DSI minors and dependent people will not be treated
differently from others. This element MUST NOT be provided as no
respective risk assessment has been done.
As specified in [IHE XCPD], the following status should be returned:
AA (application accept) is returned in Acknowledgement.typeCode
(transmission wrapper).
OK (data found, no errors) is returned in QueryAck.queryResponseCode
(control act wrapper).
3.2.1.9 Response Message (No Patient ID Discovered)
If the eHealth DSI Identification Service provider does not find a matching patient
identifier it SHOULD include a <reasonOf/> element with the response message:
<reasonOf typeCode="RSON">
<detectedIssueEvent classCode="ALRT" moodCode="EVN">
<code code="ActAdministrativeDetectedIssueCode" codeSystem="2.16.840.1.113883.5.4"/>
<!— details on detected issue and proposed activity -->
</detectedIssueEvent>
</reasonOf>
Depending on the reason for not providing a patient identifier, the codes and messages as
defined below MUST be used4.
4 All codes using the coding system: codeSystem="1.3.6.1.4.1.19376.1.2.27.3 are to be used per XCPD error code
definition.
NCPeH_Components_Specifications_v5.0.0 Page 21 of 84
Condition and proposed action Reason Encoding
The service requestor tried an identification <triggerFor typeCode="TRIG">
based on an ID only or did not provide enough <actOrderRequired classCode="ACT" moodCode="ENV">
data to univocally identify the patient. <code code="AdditionalDemographicsRequested"
(WARNING) codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/
>
The HP SHOULD ask the patient for further </actOrderRequired>
demographics and re-issue the request. </triggerFor>
AA (application accept) is returned in
Acknowledgement.typeCode (transmission If specific demographics are requested the respective code values
wrapper). of code system 1.3.6.1.4.1.19376.1.2.27.1 as specified in section
OK (data found, no errors) is returned in 3.55.4.2.2.6 of [IHE XCPD] SHOULD be used. There may be as
QueryAck.queryResponseCode (control act many triggerFor elements, each of them containing an
wrapper) ActOrderRequired element as needed to code the attributes which
would increase the assurance of the match5.
The service provider only allows for patient <triggerFor typeCode="TRIG">
identification by national/shared ID <actOrderRequired classCode="ACT" moodCode="ENV">
(WARNING). <code code="DemographicsQueryNotAllowed"
codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/
The HP SHOULD ask the patient for a national
>
(health care) identification card and re-issue the </actOrderRequired>
request using Shared/national Patient </triggerFor>
Identifier Query and Feed mode.
AA (application accept) is returned in
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act
wrapper)
The service provider only allows for patient <triggerFor typeCode="TRIG">
identification by national health card or EHIC. <actOrderRequired classCode="ACT" moodCode="ENV">
Queries based on demographics only are not <code code="EHICDataRequested"
supported (WARNING) codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/
>
The HP SHOULD ask the patient for a health </actOrderRequired>
care identification card and re-issue the </triggerFor>
request.
AA (application accept) is returned in
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act
wrapper)
<mitigatedBy typeCode="MITGT">
The service provider does not accept the query <detectedIssueManagement classCode="ACT"
because responding MAY lead to a disclosure moodCode="ENV">
of private patient data (ERROR). <code code="PrivacyViolation"
The HP SHOULD limit the provided traits and codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/
re-issue the request. >
</detectedIssueManagement>
</mitigatedBy>
5 See IHE ITI CP #535
NCPeH_Components_Specifications_v5.0.0 Page 22 of 84
AA (application accept) is returned in
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act
wrapper)
<mitigatedBy typeCode="MITGT">
The requestor has insufficient rights to query for <detectedIssueManagement classCode="ACT"
patient’s identity data (ERROR). moodCode="ENV">
If access to the patient’s medical data is <code code="InsufficientRights"
required at the PoC this MUST be performed codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/
by a person with additional permissions. >
</detectedIssueManagement>
AA (application accept) is returned in </mitigatedBy>
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act <mitigatedBy typeCode="MITGT">
Patient authentication MUST be piggybacked <detectedIssueManagement classCode="ACT"
wrapper)
with patient identification. A respective identi- moodCode="ENV">
fier (e.g. GSS TAN) was not provided <code code="PatientAuthenticationRequired"
(ERROR) codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/
The HP at the PoC SHOULD ask the patient for >
a respective identifier and SHOULD re-issue </detectedIssueManagement>
the request. </mitigatedBy>
AA (application accept) is returned in
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act
wrapper)
<mitigatedBy typeCode="MITGT">
The service provider did not find a match with <detectedIssueManagement classCode="ACT"
the given minimum accuracy. (INFO) moodCode="ENV">
The service consumer SHOULD re-issue the <code code="AnswerNotAvailable"
request with a lower minimum confidence level. codeSystem="1.3.6.1.4.1.19376.1.2.27.3"/>
</detectedIssueManagement>
AA (application accept) is returned in </mitigatedBy>
Acknowledgement.typeCode (transmission
wrapper).
OK (data found) is returned in
QueryAck.queryResponseCode (control act
wrapper)
<mitigatedBy typeCode="MITGT">
The identity traits provided by the service <detectedIssueManagement classCode="ACT"
consumer are not supported by the service moodCode="ENV">
provider. (ERROR) <code code="AnswerNotAvailable"
The service consumer SHOULD re-issue the codeSystem="1.3.6.1.4.1.19376.1.2.27.3"/>
request with a different set of identity traits. </detectedIssueManagement>
AA (application accept) is returned in </mitigatedBy>
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act
wrapper)
NCPeH_Components_Specifications_v5.0.0 Page 23 of 84
<mitigatedBy typeCode="MITGT">
The service consumer defined a confidence <detectedIssueManagement classCode="ACT"
level that conflicts with the security policy of moodCode="ENV">
the service provider. (INFO) <code code="PolicyViolation"
The service provider SHOULD respond only codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1"/>
with the candidate matches that it is allowed to </detectedIssueManagement>
provide wrt. its security policy. </mitigatedBy>
AA (application accept) is returned in
Acknowledgement.typeCode (transmission
wrapper).
AE (application error) is returned in
QueryAck.queryResponseCode (control act
wrapper)
3.2.1.10 Example Response Messages
The following sample message responds to a query with the patient identifier of a
patient who matches the given identity traits. The match is unique and it is a full overlap
with the given query.
<soapenv:Envelope>
<soapenv:Header> ... </soapenv:Header>
<soapenv:Body>
<hl7v3:PRPA_IN201306UV02 xmlns:xsi="...">
<hl7v3:id root="1.2.840.114350.1.13.999.238" extension="55789"/>
<hl7v3:creationTime value="20100304110302"/>
<hl7v3:interactionId root="2.16.840.1.113883.1.6" extension="PRPA_IN201306UV02"/>
<hl7v3:processingCode code="P"/>
<hl7v3:processingModeCode code="T"/>
<hl7v3:acceptAckCode code="NE"/>
<hl7v3:receiver typeCode="RCV">
<hl7v3:device classCode="DEV" determinerCode="INSTANCE">
<hl7v3:id root="1.2.840.114350.1.13.999.567"/>
</hl7v3:device>
</hl7v3:receiver>
<hl7v3:sender typeCode="SND">
<hl7v3:device classCode="DEV" determinerCode="INSTANCE">
<hl7v3:id root="1.2.840.114350.1.13.999.234"/>
</hl7v3:device>
</hl7v3:sender>
<hl7v3:controlActProcess classCode="CACT" moodCode="EVN">
<hl7v3:code code="PRPA_TE201306UV02" codeSystem="2.16.840.1.113883.1.6"/>
<hl7v3:subject typeCode="SUBJ">
<hl7v3:registrationEvent classCode="REG" moodCode="EVN">
<hl7v3:id nullFlavor="NA"/>
<hl7v3:statusCode code="active"/>
<hl7v3:subject1 typeCode="SBJ">
<hl7v3:patient classCode="PAT">
<!-- Identifier that MUST be used for subsequent requests -->
<hl7v3:id root="1.2.276.0.76.4.8" extension="1234567890"/>
<hl7v3:statusCode code="active"/>
<hl7v3:patientPerson>
<hl7v3:name/>
<hl7v3:birthTime value="19680513"/>
</hl7v3:patientPerson>
<hl7v3:subjectOf1 typeCode="SBJ">
<hl7v3:queryMatchObservation classCode="OBS" moodCode="EVN">
<hl7v3:code codeSystem="2.16.840.1.113883.1.11.19914"/>
<!-- Query score matching -->
NCPeH_Components_Specifications_v5.0.0 Page 24 of 84
<hl7v3:value xsi:type="hl7v3:INT" value="100"/>
</hl7v3:queryMatchObservation>
</hl7v3:subjectOf1>
</hl7v3:patient>
</hl7v3:subject1>
<hl7v3:custodian typeCode="CST">
<hl7v3:assignedEntity classCode="ASSIGNED">
<!-- Required element containing the homeCommunityId for the community responding to the
request -->
<hl7v3:id root="1.2.840.114350.1.13.99998.8734"/>
<!-- IHE Required element defining whether the responding community supports the QIL
transaction for this patient,
for eHealth DSI the required value is "NotHealthDataLocator" -->
<hl7v3:code code="NotHealthDataLocator" codeSystem="1.3.6.1.4.1.19376.1.2.27.2"/>
</hl7v3:assignedEntity>
</hl7v3:custodian>
</hl7v3:registrationEvent>
</hl7v3:subject>
<hl7v3:queryAck>
<hl7v3:queryId root="1.2.840.114350.1.13.28.1.18.5.999" extension="18204"/>
<hl7v3:queryResponseCode code="OK"/>
</hl7v3:queryAck>
</hl7v3:controlActProcess>
</soapenv:body>
</soapenv:envelope>
The following sample message responds to a request that cannot be fulfilled because
of insufficient traits.
<soapenv:Envelope>
<soapenv:Header> ... </soapenv:Header>
<soapenv:Body>
<hl7v3:PRPA_IN201306UV02 xmlns:xsi="...">
<hl7v3:id root="1.2.840.114350.1.13.999.238" extension="55789"/>
<hl7v3:creationTime value="20100304110302"/>
<hl7v3:interactionId root="2.16.840.1.113883.1.6" extension="PRPA_IN201306UV02"/>
<hl7v3:processingCode code="P"/>
<hl7v3:processingModeCode code="T"/>
<hl7v3:acceptAckCode code="NE"/>
<hl7v3:receiver typeCode="RCV">
<hl7v3:device classCode="DEV" determinerCode="INSTANCE">
<hl7v3:id root="1.2.840.114350.1.13.999.567"/>
</hl7v3:device>
</hl7v3:receiver>
<hl7v3:sender typeCode="SND">
<hl7v3:device classCode="DEV" determinerCode="INSTANCE">
<hl7v3:id root="1.2.840.114350.1.13.999.234"/>
</hl7v3:device>
</hl7v3:sender>
<hl7v3:controlActProcess classCode="CACT" moodCode="EVN">
<hl7v3:code code="PRPA_TE201306UV02" codeSystem="2.16.840.1.113883.1.6"/>
<!-- Used to indicate that more attributes are required -->
<hl7v3:reasonOf typeCode="RSON">
<hl7v3:detectedIssueEvent classCode="ALRT" moodCode="EVN">
<hl7v3:code code="ActAdministrativeDetectedIssueCode" codeSystem="2.16.840.1.113883.5.4"/>
<hl7v3:triggerFor typeCode="TRIG">
<hl7v3:actOrderRequired classCode="ACT" moodCode="ENV">
<hl7v3:code code="AdditionalDemographicsRequested"
codeSystem="1.3.6.1.4.1.12559.11.10.1.3.2.2.1.1"/>
</hl7v3:actOrderRequired>
</hl7v3:triggerFor>
</hl7v3:detectedIssueEvent>
NCPeH_Components_Specifications_v5.0.0 Page 25 of 84
</hl7v3:reasonOf>
<hl7v3:queryAck>
<hl7v3:queryId root="1.2.840.114350.1.13.28.1.18.5.999" extension="18204"/>
<hl7v3:queryResponseCode code="OK"/>
</hl7v3:queryAck>
</hl7v3:controlActProcess>
</hl7v3:PRPA_IN201306UV02>
</soapenv:body>
</soapenv:envelope>
3.2.2 Security Audit Considerations
Both the eHealth DSI Identification Service provider and consumer write an audit trail
entry according to the ID Mapping audit schema. The following table defines which
categories MUST be filled (R), which MAY be filled (O) and which categories MUST
NOT be used (X).
eHealth DSI Instance Opt. Description
Event R Audited event
Human Requestor R HP who triggered the event
Source Gateway R Service consumer node address at the country of care
Target Gateway R Service provider node address at the country of affiliation
Mapping Service R/X Service that provided the mapping. MUST be filled by the
service provider. MUST NOT be filled by the service consumer.
Audit Source R Legal entity that ensures the uniqueness of the identifiers that are
used to identify active participants
Patient Source R Patient whose identifier was discovered or mapped
Patient Target R Result of the mapping operation
Error Message O Only used in case that the transaction was not completed successfully
Table 2: eHealth DSI Patient Identification Service Audit Message Categories
3.2.3 Protocol Requirements
The eHealth DSI Patient Identification Service FindIdentityByTraits request and response
messages will be transmitted using synchronous Web Services Exchange, according to the
requirements specified in section 4.3 of this document.
Port types and bindings MUST be used as defined in the WSDL given in section 6.4.1 of
this document. Acc. to this the eHealth DSI FindIdentityByTraits operation’s request and
response data MUST be contained within the message body as follows:
eHealth DSI Patient Identification Service Message Body
FindIdentityByTraits request PRPA_IN201305UV02_Message (see section 6.4.1)
FindIdentityByTraits response PRPA_IN201306UV02_Message (see section 6.4.1)
The request message MUST be protected by the service consumer (NCP-B) according to
the eHealth DSI message security considerations as defined in section 4.3.5.2 of this
document. The response message MUST be protected by the service provider (NCP-A)
according to the eHealth DSI message security considerations as defined in section 4.3.5.2
of this document.
NCPeH_Components_Specifications_v5.0.0 Page 26 of 84
3.3 eHealth DSI Patient Service
The eHealth DSI Patient Service is used to share an identified patient’s medical summary
between the patient’s country of affiliation and the country of care. Both countries are
represented by their respective NCPs.
Figure 9 - Patient Service Interface
The implementation of the eHealth DSI Patient Service is based on the following standards:
ebRIM: OASIS/ebXML Registry Information Model v3.0 [OASIS ebRIM
3.0]
ebRS: OASIS/ebXML Registry Services Specifications v3.06 [OASIS
ebRS 3.0]
MTOM: SOAP Message Transmission Optimization Mechanism [W3C
MTOM]
XOP: XML-binary Optimized Packaging [W3C XOP] and is based on the
following IHE profile:
XCF: IHE Cross-Community Fetch [IHE XCF]
For discovery and localisation of the Patient Service instance that is responsible for
providing access to the identified patient’s data see section 2.1.4 of this document.
3.3.1 List() Operation
The eHealth DSI Patient Service list() operation is implemented as IHE XCF Cross-
Gateway Fetch transaction. It is fully compliant with the ebRS 3.0 standard. The eHealth
DSI Patient Service list() operation includes the documents listed in the response meta-
data, just like they would have been included in Cross-Gateway Fetch (SOAP 1.2 MTOP
with XOP encoding attachments).
3.3.1.1 Request Message
The list() request is initiated by an HP in the country of care for retrieving the patient
summary of an identified patient. The respective request message builds upon the IHE XCF
Cross-Gateway Fetch request message.
The <AdhocQueryRequest/> element that encapsulates the query parameters MUST be
used as follows for eHealth DSI:
Element Name eHealth DSI Usage Convention
ResponseOption/@returnComposedObjects MUST be "true"
ResponseOption/@returnType MUST be "LeafClassWithRepositoryItem" (XCF)
AdhocQuery Container for holding the ebML stored query
arguments. All arguments MUST be encoded as query
slots (see table below).
AdhocQuery@id MUST be "urn:uuid:f2072993-9478-41df-a603-
8f016706efe8" which indicates a Fetch (which is an
adaption of the findDocuments Query as defined in ITI
TF-2a:3.18.1)
6 The integration of ebRS and MTOM as used by eHealth DSI is not compatible with the current version of OASIS
ebRS. Support for MTOM will be part of the forthcoming ebRS v4.0.
NCPeH_Components_Specifications_v5.0.0 Page 27 of 84
Only synchronous web services exchange MUST be used. The XDS Affinity Domain
Option only applies to the national environment. Therefore it MUST NOT be used for
NCP-2-NCP message exchange.
Stored query argument slots MUST be defined for the patient identifier and the
document class code. The document format code and the document type code MAY
be given. Other argument slots than the ones listed below MUST be ignored by the
service provider and SHOULD NOT be issued by the service consumer.
Slot Name Opt Slot Value
$XDSDocumentEntryPatientId R Equals to the patient identifier that was provided by the
eHealth DSI Identification Service (encoded as HL7 v3 II data
type)
$XDSDocumentEntryStatus R Only approved documents MUST be returned:
'urn:oasis:names:tc:ebxml-regrep: StatusType:Approved'
$XDSDocumentEntryClassCode R Patient summary LOINC code ("60591-5") coded according to
specification in ITI TF-2a: 3.18.4.1.2.3.4 Coding of
Code/Code-Scheme. As classification scheme
2.16.840.1.113883.6.1 MUST be used:
'60591-5^^2.16.840.1.113883.6.1'
$XDSDocumentEntryTypeCode O Patient summary LOINC code ("60591-5") coded according to
specification in ITI TF-2a: 3.18.4.1.2.3.4 Coding of
Code/Code-Scheme. As classification scheme
2.16.840.1.113883.6.1 MUST be used:
'60591-5^^2.16.840.1.113883.6.1'
$XDSDocumentEntryFormatCode O Format qualifier as defined in [CDA templates]; see table below
for details on applying these codes to the retrieval of a patient’s
medical summary. Only encodings of the patient summary that
comply to the requested format code will be returend by the
service provider.
If this stored query slot is omitted the service provider MUST
deliver all available encodings7.
For the document format only the format codes defined in [CDA templates] and listed in
the following table MUST be used.
Document Format Format Code Document content
eHealth DSI pivot coded urn:epsos:ps:ps:2010 HL7 CDA document acc. [CDA
Patient Summary templates]. The patient’s country of
affiliation MUST be able to provide
the patient’s summarised medical data
in this format.
7 Acc. to [PS Functional requirements] countries MAY provide patient summary data only in eHealth DSI pivot coded
format. A query where the format code is omitted will in these cases provide the same result as a query for the
eHealth DSI pivot coded document format only.
NCPeH_Components_Specifications_v5.0.0 Page 28 of 84
PDF/A source coded urn:ihe:iti:xds-sd:pdf:2008 CDA-enveloped PDF/A encoding of
document the original document without any
semantic transformation of a patient
summary as source coded PDF with a
CDA header per IHE XDS-SD.
The patient’s country of affiliation
SHOULD be able to provide the
patient’s summarised medical data in
this format.
3.3.1.2 Example Request Message
The following excerpt from an eHealth DSI Patient Service list() request message shows a
cross-NCP query request that contains argument slots for retrieving the patient summary
(LOINC code 60591-5) of an identified patient (patient identifier 90378912821). In this
example the service consumer does not specify the requested encoding. Therefore the
service provider MUST deliver all available encodings (e.g. eHealth DSI pivot and source
coded document).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ... >
<soapenv:Header> ... </soapenv:Header>
<soapenv:Body>
<query:AdhocQueryRequest>
<query:ResponseOption returnComposedObjects="true"
returnType="LeafClassWithRepositoryItem"/>
<rim:AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d">
<rim:Slot name="$XDSDocumentEntryPatientId">
<rim:ValueList>
<rim:Value>'90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO'
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryStatus">
<rim:ValueList>
<rim:Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryClassCode">
<rim:ValueList>
<rim:Value>('60591-5^^2.16.840.1.113883.6.1')</rim:Value>
</rim:ValueList>
</rim:Slot>
<!-- Include associations whose sourceObject and targeObject attributes
reference ExtrinsicObjects returned -->
</rim:AdhocQuery>
</query:AdhocQueryRequest>
</soapenv:Body>
</soapenv:Envelope>
3.3.1.3 Expected Actions
The eHealth DSI Patient Service provider shall respond to a ListRequest message with
the ListResponse message containing
- the identified patient’s patient summary document(s) together with a status
notification (full success scenario, see section 3.3.1.4) or
- an error message (no patient summary provided, see section 3.3.1.5).
The eHealth DSI Patient Service provider MUST verify that the requesting service user
has sufficient rights to access the full patient summary of the identified patient.
In case of an error that relates to the transmission of the request or the processing of the
eHealth DSI security token, the eHealth DSI Patient Service provider MUST respond with
a fault message according to section 4.4 of this document.
NCPeH_Components_Specifications_v5.0.0 Page 29 of 84
3.3.1.4 Response Message (Full Success Scenario)
Depending on the requested format code the eHealth DSI list() response contains the
eHealth DSI pivot encoded patient summary document, the PDF/A encoded patient
summary document or both documents of the identified patient. The respective message
builds upon the IHE XCF Cross-Gateway Fetch response and Cross-Gateway Fetch
Response messages.
The fields defined for the eHealth DSI ListResponse message MUST be used as follows:
Element Name eHealth DSI Usage Convention
query:AdhocQueryResponse Response message acc to IHE XCF Cross-Gateway Fetch
response message [IHE XCF]
@status For the full success scenario the response status MUST be set to
"urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" or
"urn:ihe:iti:2007:ResponseStatusType:PartialSuccess" (for details
see table below)
../rs:RegistryErrorList In case that a warning is given by the service provider, this element
holds the respective warning codes and messages. It must be used acc.
to section 4.1.13 of [IHE ITI TF-3].
../rim:RegistryObjectList This element MUST be provided for the full success scenario. It
MUST at least contain one child <rim:ExtrinsicObject/> element.
../../rim:ExtrinsicObject For each encoding of the patient summary a <rim:ExtrinsicObject/>
element MUST be provided.
Each <rim:ExtrinsicObject/> element is described and classified by
metadata acc. to Table 3 below.
../../../rimext:Document This element MUST appear as the last element child of an
<rim:ExtrinsicObject/> element. It may appear zero or one times.
This element contains the base 64 encoded content of the document.
The document contents are associated with the DocumentEntry
(ExtrinsicObject) metadata by the fact that it is nested inside it within
the XML. The base64 encoded document content MAY be encrypted.
How encryption is applied and how the encryption key is negotiated
should be subject to an additional specification on advanced security
safeguards.
Each provided patient summary encoding (eHealth DSI pivot and/or source coded PDF)
MUST be further classified by metadata. The following table lists the usage conventions
that MUST be followed for the eHealth DSI Patient Service response message. If not stated
otherwise the classification schemes as defined in section 4.3.1.2 of [IHE ITI TF-3] MUST
be used. If no restrictions on metadata values are given, the metadata elements MUST be
used as per [IHE XCF].
Metadata (ebRIM names) Binding Opt. eHealth DSI usage convention
status Attribute R MUST be
"urn:oasis:names:tc:ebxml-
regrep:StatusType:Approved"
mimeType Attribute R MUST be "text/xml" for both eHealth DSI
pivot CDA and CDA- wrapped PDF
Name Main R MUST be "Patient Summary".
Description Main O MAY be empty. MAY be ignored by the
service consumer.
VersionInfo Main R MUST be "1.1"
NCPeH_Components_Specifications_v5.0.0 Page 30 of 84
creationTime rim:Slot O MAY be omitted by the service provider and
MAY be ig- nored by the service consumer. If
given, the value MUST be encoded as HL7 v2
Date Time
"YYYY[MM[DD[hh[mm[ss]]]]]"
hash rim:Slot O SHOULD be omitted by the service
provider and MUST NOT be processed by
the service consumer.
languageCode rim:Slot O SHOULD be omitted by the service
provider and MUST NOT be processed by
the service consumer.
repositoryUniqueId rim:Slot O COULD be omitted by the service provider
and MAY be processed by the service
consumer in an IHE-compatible NI-scenario.
serviceStartTime rim:Slot O SHOULD be omitted by the service
provider and MUST NOT be processed by
serviceEndTime the service consumer.
size rim:Slot O SHOULD be omitted by the service
provider and MUST NOT be processed by
the service consumer.
sourcePatientId rim:Slot R MUST contain the same value as
XDSDocumentEntry PatientID (see below).
sourcePatientInfo rim:Slot X MUST NOT be used. Future versions of
eHealth DSI MAY define different protection
levels for metadata and documents. Therefore
all metadata elements that might carry medical
or social information MUST be omitted.
classCode Classification R Patient summary LOINC code ("60591-5").
As classifica- tion scheme
"urn:oid:2.16.840.1.113883.6.1" MUST be
used
eventCodeList Classification X MUST NOT be used. Future versions of
eHealth DSI MAY define different protection
levels for metadata and docu- ments.
Therefore all metadata elements that might
carry medical or social information MUST be
omitted.
author Classification X MUST NOT be used. Future versions of
eHealth DSI MAY define different protection
levels for metadata and documents. Therefore
all metadata elements that might carry medical
or social information MUST be omitted.
confidentialityCode Classification R MUST be provided for XCF compatibility
but MAY be ignored by the service consumer.
Value SHOULD be set to "N", as long as the
Minimal Metadata Profile is not published.
formatCode Classification R MUST be "urn:epSOS:ps:ps:2010" for
eHealth DSI pivot CDA and "urn:ihe:iti:xds-
sd:pdf:2008" for eHealth DSI source coded
PDF (see [CDA templates]).
NCPeH_Components_Specifications_v5.0.0 Page 31 of 84
healthcareFacilityTypeCode Classification R MUST be provided for XCF compatibility
and correct ad- dressing. Value MUST be set
to ISO 3166-1 alpha-2 coun- try code of the
addressed PN.
practiceSettingCode Classification R MUST be provided for XCF compatibility.
Value MUST be set to "Not Used" in order to
protect private patient information.
XDSDocumentEntry.uniqueId ExternalIdentif R MUST hold the OID of the document. The
ier document unique id value MUST be the same
as the value of the document’s
<ClinicalDocument/id> CDA header element.
XDSDocumentEntry.patientId ExternalIdentif R MUST hold the patient identifier. The service
ier consumer MUST verify that this id matches
the patient Id that was discovered by the
eHealth DSI Identification Service.
Table 3: eHealth DSI Patient Summary Metadata
Other metadata than the ones listed above SHOULD NOT be provided by the service
provider and MUST NOT be processed by the service consumer.
By definition only a single patient summary is provided per patient [PS Functional
requirements]. If two documents are provided in response to a Patient Service list request,
these MUST be different encodings of the same patient’s medical summary data (eHealth
DSI pivot coded and PDF/A source coded).
If document relationships are defined, an ebRIM association MUST be used for declaring
the eHealth DSI pivot coded document as a transformation of the source coded document.
As classification scheme urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3 MUST be
used per IHE XCF. "eHealth DSI pivot" is defined as the only valid code value for the
transformation:
<rim:Association id="id of the association" associationType="urn:ihe:iti:2007:AssociationType:XFRM" sourceObject="UUID of
the source coded document" targetObject="UUID of the eHealth DSI pivot document"
objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
<rim:Classification
id="id of the classification"
classificationScheme="urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3" classifiedObject="id of the association"
objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification" nodeRepresentation="epSOS
pivot">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI translation types</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString value="Translation into eHealth DSI pivot format"/>
</rim:Name>
</rim:Classification>
</rim:Association>
Metadata (ebRIM names) Binding O eHealth DSI usage convention
pt
.
associationType Attribute R MUST be "urn:ihe:iti:2007:AssociationType:XFRM"
sourceObject Attribute R MUST be UUID of the source coded document
targetObject Attribute R MUST be UUID of the eHealth DSI pivot document
NCPeH_Components_Specifications_v5.0.0 Page 32 of 84
Association Documentation Main O MAY be empty. MAY be ignored by the service
consumer. MAY contain a description of the Association
according to the Association Documentation object as
used by IHE.
classificationSheme classification O MUST be "urn:uuid:abd807a3-4432-4053-
87b4- fd82c643d1f3"
classifiedObject Attribute O MUST be I.D. of the association
nodeRepresentation Attribute O MUST be "eHealth DSI pivot"
codingScheme rim:Slot O MUST be "eHealth DSI translation types" and
"Translation into eHealth DSI pivot format"
If a warning is to be transmitted to the HP (see section 3.1.4) the ebXML Registry Error
mechanism MUST be used with a syntax as defined in section 3.43.5 of [IHE ITI TF-2b].
As the location of the warning is implied, the respective location attribute SHOULD be
empty.
The following table lists the eHealth DSI defined warning codes:
Warning Condition and Severity ResponseStatus eHealth DSI Warning Code (error-
Message Code
(codeContext attribute) attribute)
Not all of the requested encodings are PartialSuccess Rendering incomplete 4101
provided (e.g. due to inability to transcode a
certain national code). (ERROR)
The HP MUST consider additionally the Success Source coded document 2102
source coded document because it MAY must be considered
contain information that is not included in the
eHealth DSI pivot CDA (e.g. because field
were nullified due to missing code mappings)
(WARNING)
3.3.1.5 Response Message (No Patient Summary Provided)
If the eHealth DSI Patient Service provider is unable to respond with the patient’s
summarised medical data in the requested encoding it MUST respond with a ListResponse
message that only contains a <AdhocQueryResponse/RegistryResponse>element.
For a full list of error messages defined for IHE X* see table 4.1-11 in [IHE ITI TF-3].
The following table lists the additional, eHealth DSI-specific response status types and
error/warning/info codes to be used within the <RegistryErrorList> element.
Condition and Severity Response Message Code Action to be taken
Status
The patient has not given Failure No Consent 4701 The HP SHOULD ask the patient to give
consent to the requested consent to the requested service in
service. (ERROR) country B. If the patient gives consent,
the consent MUST be transmitted to
country-A by using the respective
operation of the eHealth DSI consent
service. If such consent giving procedure
is accepted by country A, HP SHOULD
re-issue the request for medical data.
NCPeH_Components_Specifications_v5.0.0 Page 33 of 84
Country A requests a higher Failure Weak 4702 If possible, the HP SHOULD log in
authentication trust level than Authenticatio again with a stronger mechanism (e.g.
assigned to the HP (e.g. n smartcard) and re-issue the request with
password-based login is not the respective identity assertion.
accepted for the requested
operation). (ERROR)
Either the security policy of Failure Insufficient 4703 If the HP can switch to another
country A or a privacy policy Rights (appropriate) role, he SHOULD do so
of the patient (that was given and re-issue the request.
in country A) does not allow
the requested operation to be
performed by the HP
(ERROR).
No patient summary is Success No Data 1102 -
registered for the given
patient. (WARNING)
If PDF-coded patient Success Unsupported 4201 The service consumer SHOULD re-
summary is requested: Feature issue the request with another encoding.
Country A does not provide
the (optional) source coded
version of the patient
summary (INFO)
The query argument slots Failure Unknown 4202 The service consumer SHOULD re-
used by the service consumer Signifier issue the request with another set of
are not supported by the query arguments.
service provider. (ERROR)
The requested encoding Failure Transcoding 4203 The service consumer SHOULD re-
cannot be provided due to a Error issue the request with another encoding.
transcoding error. (ERROR)
4204
The service provider is un- Failure Unknown The service consumer MAY re-issue
able to evaluate the given Filter the request using another filter
argument values (ERROR). expression.
3.3.1.6 Example Response Message
The following message is a possible response to the sample request message given in
section 3.3.1.2. The patient’s country of affiliation responds with both encodings. No
MTOM optimization has been done (since this is a wire-format only optimization).
<soapenv:Envelope>
<soapenv:Header>....</soapenv:Header>
<soapenv:Body>
<query:AdhocQueryResponse
status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success">
<rim:RegistryObjectList>
<!— eHealth DSI pivot CDA patient summary document -->
<rimext:ExtrinsicObject
id="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481"
lid="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" objectType="urn:uuid:7edca82f-054d-47f2-a032-
9b2a5b5186c1" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml">
<!-- These attributes are required by XCA but not used by eHealth DSI.
They will be ignored by the eHealth DSI service consumer (NCP-B) -->
<rim:Slot name="creationTime">
<rim:ValueList>
<rim:Value>20100524</rim:Value>
</rim:ValueList>
</rim:Slot>
NCPeH_Components_Specifications_v5.0.0 Page 34 of 84
<rim:Slot name="languageCode">
<rim:ValueList>
<rim:Value>en-us</rim:Value>
</rim:ValueList>
</rim:Slot>
<!-- set to same value as Patient ID (required by XCA) -->
<rim:Slot name="sourcePatientId">
<rim:ValueList>
<rim:Value>90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8"
value="Patient Summary"/>
</rim:Name>
<rim:Description/>
<rim:VersionInfo versionName="1.1"/>
<!-- HealthcareFacilityType Code -->
<rim:Classification
id="urn:uuid:5c678da8-6ffa-4a85-90f6-cb2f914d482f" lid="urn:uuid:5c678da8-6ffa-4a85-90f6-
cb2f914d482f" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1"
classifiedObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" nodeRepresentation="Not Used">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>
eHealth DSI Healthcare Facility Type Codes-Not Used
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Not Used"/>
</rim:Name>
</rim:Classification>
<!-- PracticeSetting Code -->
<rim:Classification
id="urn:uuid:b01599e3-79a6-4322-b5fc-f32ada9ee7f4"
lid="urn:uuid:b01599e3-79a6-4322-b5fc-f32ada9ee7f4" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead"
classifiedObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" nodeRepresentation="Not Used">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>
eHealth DSI Practice Setting Codes-Not Used
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Not Used"/>
</rim:Name>
</rim:Classification>
<!-- Confidentiality Code -->
<rim:Classification
id="urn:uuid:d0dc74b9-f013-4639-b9c2-fac2420af0dd"
lid="urn:uuid:d0dc74b9-f013-4639-b9c2-fac2420af0dd" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f"
classifiedObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" nodeRepresentation="Not Used">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>
eHealth DSI Confidentiality Codes-Not Used
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Not Used"/>
</rim:Name>
</rim:Classification>
<!-- End of attributes not used by eHealth DSI -->
<!-- Class Code - (60591-560591-5) -->
<rim:Classification
id="urn:uuid:c33ca26a-29b4-45be-a9b9-de60adca4c64" lid="urn:uuid:c33ca26a-29b4-45be-a9b9-
de60adca4c64" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a"
classifiedObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" nodeRepresentation="60591-5">
NCPeH_Components_Specifications_v5.0.0 Page 35 of 84
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>2.16.840.1.113883.6.1</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8"
value="Patient Summary"/>
</rim:Name>
</rim:Classification>
<!-- Type Code - (60591-5) -->
<rim:Classification
id="urn:uuid:87a7cfc2-a956-4d6e-af30-c7e78809c95f"
lid="urn:uuid:87a7cfc2-a956-4d6e-af30-c7e78809c95f" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983"
classifiedObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" nodeRepresentation="60591-5">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>2.16.840.1.113883.6.1</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Patient Summary"/>
</rim:Name>
</rim:Classification>
<!-- Format Code -->
<rim:Classification
id="urn:uuid:ae68bdf8-4f32-4829-8313-2dd39ea3ab2d"
lid="urn:uuid:ae68bdf8-4f32-4829-8313-2dd39ea3ab2d" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"
classifiedObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481" nodeRepresentation="eHealth DSI
coded summary">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI formatCodes</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="eHealth DSI Coded Summary"/>
</rim:Name>
</rim:Classification>
<!-- Patient ID -->
<rim:ExternalIdentifier
id="urn:uuid:982f1551-5901-4bc5-8870-801181941817"
lid="urn:uuid:982f1551-5901-4bc5-8870-801181941817" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:ExternalIdentifier" identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"
value="90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO" registryObject="urn:uuid:fbf2ea29-
3aa3-4bc5-9187-01d7b6b0f481">
<rim:Name>
<rim:LocalizedString xml:lang="en-us" charset="UTF-8"
value="XDSDocumentEntry.patientId"/>
</rim:Name>
</rim:ExternalIdentifier>
<!-- Unique ID -->
<rim:ExternalIdentifier
id="urn:uuid:c67e3a92-5300-448d-9af2-0a37e9f129bf"
lid="urn:uuid:c67e3a92-5300-448d-9af2-0a37e9f129bf" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:ExternalIdentifier" identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab"
value="1.42.20100103225206.3.3"
registryObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-01d7b6b0f481">
<rim:Name>
<rim:LocalizedString xml:lang="en-us" charset="UTF-8"
value="XDSDocumentEntry.uniqueId"/>
</rim:Name>
</rim:ExternalIdentifier>
<!-- Document contents, before MTOM optimization -->
<rimext:Document>
UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi.....
</rimext:Document>
</rimext:ExtrinsicObject>
<!—eHealth DSI source coded PDF patient summary document -->
<rimext:ExtrinsicObject
id="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" lid="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016"
objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1" status="urn:oasis:names:tc:ebxml-
regrep:StatusType:Approved" mimeType="text/xml">
NCPeH_Components_Specifications_v5.0.0 Page 36 of 84
<!-- These attributes are required by XCA but not used by eHealth DSI.
They will be ignored by the eHealth DSI service consumer (NCP-B) -->
<rim:Slot name="creationTime">
<rim:ValueList>
<rim:Value>20100524</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="languageCode">
<rim:ValueList>
<rim:Value>en-us</rim:Value>
</rim:ValueList>
</rim:Slot>
<!-- set to same value as Patient ID (required by XCA) -->
<rim:Slot name="sourcePatientId">
<rim:ValueList>
<rim:Value>
90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name/>
<rim:Description/>
<rim:VersionInfo versionName="1.1"/>
<!-- HealthcareFacilityType Code -->
<rim:Classification
id="urn:uuid:7dda3d1e-8d96-4fee-b691-f1810d44bc8d"
lid="urn:uuid:7dda3d1e-8d96-4fee-b691-f1810d44bc8d" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" nodeRepresentation="Not Used">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>
eHealth DSI Healthcare Facility Type Codes-Not Used
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Not Used"/>
</rim:Name>
</rim:Classification>
<!-- PracticeSetting Code -->
<rim:Classification
id="urn:uuid:89a73ab3-344a-4098-b827-aca8dea078ef" lid="urn:uuid:89a73ab3-344a-4098-b827-
aca8dea078ef" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" nodeRepresentation="Not Used">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>
eHealth DSI Practice Setting Codes-Not Used
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8"
value="Not Used"/>
</rim:Name>
</rim:Classification>
<!-- Confidentiality Code -->
<rim:Classification
id="urn:uuid:fa176711-e83a-4fb2-95a3-a4810b0351fa" lid="urn:uuid:fa176711-e83a-4fb2-95a3-
a4810b0351fa" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" nodeRepresentation="Not Used">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>
eHealth DSI Confidentiality Codes-Not Used
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Not Used"/>
</rim:Name>
</rim:Classification>
NCPeH_Components_Specifications_v5.0.0 Page 37 of 84
<!-- End of attributes not used by eHealth DSI -->
<!-- Class Code - Patient Summary (60591-5) -->
<rim:Classification
id="urn:uuid:8a07ab13-1685-452f-9363-c89a37d9eb5b"
lid="urn:uuid:8a07ab13-1685-452f-9363-c89a37d9eb5b" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" nodeRepresentation="60591-5">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>2.16.840.1.113883.6.1</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Patient Summary"/>
</rim:Name>
</rim:Classification>
<!-- Type Code - Patient Summary (60591-5) -->
<rim:Classification
id="urn:uuid:c7cffb04-3537-4e8b-963d-f2f639c734de"
lid="urn:uuid:c7cffb04-3537-4e8b-963d-f2f639c734de" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" nodeRepresentation="60591-5">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>2.16.840.1.113883.6.1</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8" value="Patient Summary"/>
</rim:Name>
</rim:Classification>
<!-- Format Code -->
<rim:Classification
id="urn:uuid:ca064887-589c-408a-be6f-b7844f473ee6" lid="urn:uuid:ca064887-589c-408a-be6f-
b7844f473ee6" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" nodeRepresentation="urn:ihe:iti:xds-
sd:pdf:2008">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI formatCodes</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString xml:lang="en" charset="UTF-8"
value="PDF/A Coded Document"/>
</rim:Name>
</rim:Classification>
<!-- Patient ID -->
<rim:ExternalIdentifier
id="urn:uuid:27d19a5d-7850-4c37-9499-a42fe6fdd5c8"
lid="urn:uuid:27d19a5d-7850-4c37-9499-a42fe6fdd5c8" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:ExternalIdentifier" identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"
value="90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO" registryObject="urn:uuid:a1c7a9ac-
83aa-4eaf-b5e3-d355b57a5016">
<rim:Name>
<rim:LocalizedString xml:lang="en-us" charset="UTF-8"
value="XDSDocumentEntry.patientId"/>
</rim:Name>
</rim:ExternalIdentifier>
<!-- Unique ID -->
<rim:ExternalIdentifier
id="urn:uuid:81854cc8-2b26-45d6-8132-9f9c7eb2e5ae" lid="urn:uuid:81854cc8-2b26-45d6-8132-
9f9c7eb2e5ae" objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:ExternalIdentifier"
identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab"
value="1.42.20100103225206.3.2"
registryObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016">
<rim:Name>
<rim:LocalizedString xml:lang="en-us" charset="UTF-8"
value="XDSDocumentEntry.uniqueId"/>
</rim:Name>
</rim:ExternalIdentifier>
<!-- Document contents, before MTOM optimization -->
<rimext:Document> UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi....
NCPeH_Components_Specifications_v5.0.0 Page 38 of 84
</rimext:Document>
</rimext:ExtrinsicObject>
<rim:Association id="urn:uuid:f4618a30-a7fb-49a3-b27f-d1994b9c4e32" lid="urn:uuid:f4618a30-a7fb-49a3-b27f-
d1994b9c4e32" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved"
associationType="urn:ihe:iti:2007:AssociationType:XFRM" sourceObject="urn:uuid:fbf2ea29-3aa3-4bc5-9187-
01d7b6b0f481" targetObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016">
<rim:Classification
id="urn:uuid:8ec64c7e-8b7d-4d63-8741-c5a5890e5af3" lid="urn:uuid:8ec64c7e-8b7d-4d63-8741-
c5a5890e5af3" classificationScheme="urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3"
classifiedObject="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016"
objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification"
nodeRepresentation="epSOS pivot">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI translation types</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString
value="Translation into eHealth DSI pivot format"/>
</rim:Name>
</rim:Classification>
</rim:Association>
</rim:RegistryObjectList>
</query:AdhocQueryResponse>
</soapenv:Body>
</soapenv:Envelope>
3.3.2 Security Audit Considerations
The service consumer MUST write an audit trail entry according to the HP Assurance
Audit Schema. The service provider MUST write an audit trail entry according to the
Patient Privacy Audit Schema.
The following table defines which categories MUST be filled (R), which MAY be
filled (O) and which categories MUST NOT be used (X).
eHealth DSI Instance Opt. Description
Event R Audited event
Requesting Point of Care R/X HCPO that issued the original request. This category MUST be
filled by the service consumer. It MUST NOT be provided by the
service provider.
Human Requestor R HP that triggered the request
Source Gateway R Service consumer node address at the country of Care
Target Gateway R Service provider node address at the country of the patient’s
affiliation
Audit Source R Legal entity that ensures the uniqueness of the identifiers that
are used to identify active participants
Patient R Patient
Event Target R Subject to the Query
Error Message O Only used in case that the request handling was not completed
successfully
For the Event Target Category the following fields MUST be provided:
Field Name Opt. Value Constraints
ParticipantObjectTypeCode R MUST be "2" (System Object)
ParticipantObjectTypeCodeRole R MUST be "24" (Query)
ParticipantObjectIDTypeCode R MUST be "10" (Search Criteria)
NCPeH_Components_Specifications_v5.0.0 Page 39 of 84
ParticipantObjectID R MUST be string-encoded UUIDs of the returned
documents
3.3.3 Protocol Requirements
The eHealth DSI Patient Service List() request and response messages will be transmitted
using synchronous Web Services Exchange, according to the requirements specified in
section 4.3 of this document.
Port types and bindings MUST be used as defined in the WSDL given in section 6.4.2 of
this document. Acc. to this the eHealth DSI Patient Service List() operation’s request and
response data MUST be contained within the message body as follows:
eHealth DSI Patient Service Message Body
List request CrossGatewayQueryRetrieve_Message (see section 6.4.2)
List response CrossGatewayQueryRetrieveResponse_Message (see section 6.4.2)
The request message MUST be protected by the service consumer (NCP-B) according to
the eHealth DSI message security considerations as defined in section 4.3.5.2 of this
document. The response message MUST be protected by the service provider (NCP-A)
according to the eHealth DSI message security considerations as defined in section 4.3.5.2
of this document.
3.4 eHealth DSI Order Service
The eHealth DSI Order Service is used to share an identified patient’s ePrescriptions
between the patient’s country of affiliation and the country of care. Both countries are
represented by their respective NCPs.
Figure 10 - Order Service Interface
The implementation of the eHealth DSI Order Service is based on the following standards:
- ebRIM: OASIS/ebXML Registry Information Model v3.0 [OASIS ebRIM 3.0]
- ebRS: OASIS/ebXML Registry Services Specifications v3.08 [OASIS ebRS 3.0]
- MTOM: SOAP Message Transmission Optimization Mechanism [W3C MTOM]
- XOP: XML-binary Optimized Packaging [W3C XOP]
and:
- XCF: IHE Cross-Community Fetch [IHE XCF]
For discovery and localisation of the Order Service instance that is responsible for
providing access to the identified patient’s data see section 2.1.4 of this document.
3.4.1 List() Operation
The eHealth DSI Order Service list() operation is implemented as an IHE XCF Cross-
Gateway Fetch transaction. It is fully compliant with the ebRS 3.0 standard. The eHealth
DSI Order Service list() operation includes the documents listed in the response meta-data,
just like they would have been included in Cross-Gateway Retrieve (SOAP 1.2 MTOM
with XOP encoding attachments.
8 The integration of ebRS and MTOM as used by eHealth DSI is not compatible with the current version of OASIS
ebRS.
NCPeH_Components_Specifications_v5.0.0 Page 40 of 84
3.4.1.1 Request Message
The list() request is initiated by an HP in the country of care for retrieving the available
ePrescription documents of an identified patient. The respective request message builds
upon the IHE XCF Cross-Gateway Fetch request message.
The <AdhocQueryRequest/> element that encapsulates the query parameters MUST be
used as follows for eHealth DSI:
Element Name eHealth DSI Usage Convention
ResponseOption/@returnComposedObjects MUST be "true"
ResponseOption/@returnType MUST be "leafClassWithRepositoryItem"
AdhocQuery Container for holding the ebML stored query
arguments. All arguments MUST be encoded as query
slots (see table below).
AdhocQuery@id MUST be "urn:uuid:f2072993-9478-41df-a603-
8f016706efe8" which indicates a Fetch (which is an
adaption of the findDocuments Query as defined in ITI
TF-2a:3.18.1)
Only synchronous web services exchange MUST be used. The XDS Affinity Domain
Option only applies to the national environment. Therefore it MUST NOT be used for
NCP-2-NCP message exchange.
Stored query argument slots MUST be defined for the patient identifier and the
document class code. The document format code and the document type code MAY be
given. Other argument slots than the ones listed below MUST be ignored by the service
provider and SHOULD NOT be issued by the service consumer.
Slot Name Opt Slot Value
$XDSDocumentEntryPatientId R Equals to the patient identifier that was provided by the
eHealth DSI Identification Service (encoded as HL7 v3 II data
type)
$XDSDocumentEntryStatus R Only approved documents MUST be returned:
'urn:oasis:names:tc:ebxml-regrep: StatusType:Approved'
$XDSDocumentEntryClassCode R ePrescription LOINC code ("57833-6") coded according to
specification in ITI TF-2a: 3.18.4.1.2.3.4 Coding of Code/Code-
Scheme. As classification scheme 2.16.840.1.113883.6.1
MUST be used:
'57833-6^^2.16.840.1.113883.6.1'
$XDSDocumentEntryTypeCode O ePrescription LOINC code ("57833-6") coded according to
specification in ITI TF-2a: 3.18.4.1.2.3.4 Coding of Code/Code-
Scheme. As classification scheme 2.16.840.1.113883.6.1
MUST be used:
'57833-6^^2.16.840.1.113883.6.1'
$XDSDocumentEntryFormatCode O Format qualifier as defined in [CDA templates]; see table below
for details on applying these codes to the retrieval of a patient’s
available ePrescriptions. Only encodings of ePrescription
documents that comply to the requested format code will be
returend by the service provider.
If this stored query slot is omitted, the service provider MUST
respond with all available encodings.
For the document format only the format codes defined in [CDA templates] and listed in
the following table MUST be used.
Document Format Format Code Document content
NCPeH_Components_Specifications_v5.0.0 Page 41 of 84
eHealth DSI pivot coded urn:epSOS:ep:pre:2010 HL7 CDA document acc. [CDA templates].
ePrescription The patient’s country of affiliation MUST
be able to provide the patient’s available
ePrescriptions in this format.
PDF/A source coded urn:ihe:iti:xds-sd:pdf:2008 CDA-enveloped PDF/A encoding of the
document original document without any semantic
transformation. The patient’s country of
affiliation MUST be able to provide the
patient’s available ePrescriptions in this
format.
3.4.1.2 Example Request Message
The following excerpt from a eHealth DSI Order Service list() request message shows an
IHE XCF based Cross-Gateway Fetch request that contains argument slots for retrieving
the available ePrescriptions (LOINC code 57833-6) of an identified patient (patient
identifier 90378912821). In this example the service consumer does not specify the
requested encoding. Therefore the service provider MUST deliver both encodings (eHealth
DSI pivot and PDF/A) for all available ePrescriptions.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ... >
<soapenv:Header> ... </soapenv:Header>
<soapenv:Body>
<query:AdhocQueryRequest>
<query:ResponseOption returnComposedObjects="true" returnType="LeafClassWithRepositoryItem"/>
<rim:AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d">
<rim:Slot name="$XDSDocumentEntryPatientId">
<rim:ValueList>
<rim:Value>
'90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO'
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryStatus">
<rim:ValueList>
<rim:Value>
('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')
</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryClassCode">
<rim:ValueList>
<rim:Value>('57833-6^^2.16.840.1.113883.6.1')
</rim:Value>
</rim:ValueList>
</rim:Slot>
</rim:AdhocQuery>
</query:AdhocQueryRequest>
</soapenv:Body>
</soapenv:Envelope>
3.4.1.3 Expected Actions
The eHealth DSI Order Service provider shall respond to a ListRequest message with the
ListResponse message containing
- the identified patient’s available ePrescriptions together with a status notification
(full success scenario, see section 3.4.1.4) or
- an error message (no ePrescriptions provided, see section 3.4.1.5).
The eHealth DSI Order Service provider MUST verify that the requesting service user
has sufficient rights to access the available ePrescriptions of the identified patient. In case
of an error that relates to the transmission of the request or the processing of the eHealth
DSI security token, the eHealth DSI Order Service provider MUST respond with a fault
message according to section 4.4 of this document.
NCPeH_Components_Specifications_v5.0.0 Page 42 of 84
3.4.1.4 Response Message (Full Success Scenario)
Depending on the requested format code the eHealth DSI list() response contains the
eHealth DSI pivot encoded ePrescription documents, the PDF/A source coded
ePrescription documents of the identified patient or both sets of documents. If both
encodings are provided, a 1:1 association between any source coded PDF document and its
derived eHealth DSI pivot CDA coded document MUST be given.
The respective message builds upon to the IHE XCA Cross-Gateway Fetch response and
Cross-Gateway Fetch Response messages, by creating a new combined QueryRetrieve-
alike message9. The fields defined for the eHealth DSI Order Service ListResponse
message MUST be used as follows:
Element Name eHealth DSI Usage Convention
Query:AdhocQueryResponse Response message acc to IHE XCA Cross-Gateway Access
response message [IHE XCF]
@status For the full success scenario the response status MUST be set to
"urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" or
"urn:ihe:iti:2007:ResponseStatusType:PartialSuccess" (for details see
table below)
rs:RegistryErrorList In case that a warning is given by the service provider, this element
holds the respective warning codes and messages. It must be used acc.
to section 4.1.13 of [IHE ITI TF-3]
rim:RegistryObjectList This element MUST be provided for the full success scenario. It
MUST
at least contain one child <rim:ExtrinsicObject/> element.
rim:ExtrinsicObject For each instance of a ePrescription document a
<rim:ExtrinsicObject/> element MUST be provided.
Each <rim:ExtrinsicObject/> element is described and classified by
metadata acc. to Table 4 below.
rimext:Document This element MUST appear as the last element child of an
<rim:ExtrinsicObject/> element. It may appear zero or one times. This
element contains the base 64 encoded content of the document. The
document contents are associated with the DocumentEntry
(ExtrinsicObject) metadata by the fact that it is nested inside it within
the XML. The base64 encoded document content MAY be encrypted.
How encryption is applied and how the encryption key is negotiated
should be subject to an additional specification on advanced security
safeguards.
Each provided ePrescription document and each of its encodings (eHealth DSI pivot and/or
source coded PDF) MUST be further classified by metadata. The following table lists the
usage conventions that have to be followed for the eHealth DSI Order Service response
message. If not stated otherwise the classification schemes as defined in section 4.3.1.2 of
[IHE ITI TF-3] MUST be used. If no restrictions on metadata values are given, the
metadata elements MUST be used as per [IHE XCF].
Metadata (ebRIM names) Binding Opt. eHealth DSI usage convention
status Attribute R MUST be
"urn:oasis:names:tc:ebxml-
regrep:StatusType:Approved"
mimeType Attribute R MUST be "text/xml" for both eHealth DSI
pivot CDA and CDA-wrapped PDF
9 XCF has been specified and currently is in Trial Implementation.
NCPeH_Components_Specifications_v5.0.0 Page 43 of 84
Name Main R MAY be empty. MUST be ignored by the
service consumer.
Description Main R Must contain Product Name/Generic Substance
Name, Dosage Form and Strength.
VersionInfo Main R MUST be "1"
creationTime rim:Slot O MAY be omitted by the service provider and
MAY be ignored by the service consumer. If
given, the value MUST be encoded as HL7 v2
Date Time "YYYY[MM[DD[hh[mm[ss]]]]]"
hash rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
consumer.
languageCode rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
consumer.
repositoryUniqueId rim:Slot O MAY be omitted by the service provider and
MAY be processed by the service consumer in an
IHE-compatible NI-scenario.
serviceStartTime rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
serviceEndTime
consumer.
size rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
consumer.
sourcePatientId rim:Slot R MUST contain the same value as
XDSDocumentEntry.PatientId (see below).
sourcePatientInfo rim:Slot X MUST NOT be used. Future versions of eHealth
DSI MAY define different protection levels for
metadata and documents. Therefore all metadata
elements that might carry medical or social
information MUST be omitted.
classCode Classification R Patient summary LOINC code ("57833-6"). As
classification scheme
"urn:oid:2.16.840.1.113883.6.1" MUST be used
eventCodeList Classification O ClassficationScheme: urn:uuid:2c6b8cb7-8b2a-
4051-b291-b1ae6a575ef4
NodeRepresentation="ATC-code code"
Valuelist/Value=2.16.840.1.113883.6.73
Name="ATC-code Display Name"
MAY be omitted by the service provider (only in
the case that the product does not have an ATC-
code) and MAY be ignored by the service
consumer.
NCPeH_Components_Specifications_v5.0.0 Page 44 of 84
eventCodeList Classification R ClassficationScheme: urn:uuid:2c6b8cb7-8b2a-
4051-b291-b1ae6a575ef4
• code: urn:ihe:iti:xdw:2011:eventCode:open
codingScheme: 1.3.6.1.4.1.19376.1.2.3
• code: urn:ihe:iti:xdw:2011:eventCode:closed
codingScheme: 1.3.6.1.4.1.19376.1.2.3
If the ePrescription is not dispensable the
eventCode "Closed" MUST be used. Otherwise
the eventCode "Open" MUST be used.
MAY be ignored by the service consumer.
Therefore measures to disallow the prescription
of Non-dispensable products must be in place if
the list contains these non-dispensable products.
author Classification X MUST NOT be used. Future versions of eHealth
DSI MAY define different protection levels for
metadata and documents. Therefore all metadata
elements that might carry medical or social
information MUST be omitted.
confidentialityCode Classification R MUST be provided for XCF compatibility but
MAY be ignored by the service consumer. Value
SHOULD be set to "N", as long as the Minimal
formatCode Classification R MUST
MetadatabeProfile
"urn:epSOS:ep:pre:2010"
is not pub- lished. for eHealth
DSI pivot CDA and "urn:ihe:iti:xds-sd:pdf:2008"
for eHealth DSI source coded PDF (see [CDA
templates]).
healthcareFacilityTypeCode Classification R MUST be provided for XCF compatibility and
correct addressing. Value MUST be set to ISO
3166-1 alpha-2 country code of the addressed PN.
practiceSettingCode Classification R MUST be provided for XCF compatibility. Value
MUST be set to "Not Used" in order to protect
private patient information.
XDSDocumentEntry.uniqueId ExternalIdentifier R MUST hold the OID of the document. The
document unique id value MUST be the same as
the value of the document’s
<ClinicalDocument/id> CDA header element.
XDSDocumentEntry.patientId ExternalIdentifier R MUST hold the patient identifier. The service
consumer MUST verify that this id matches the
patient Id that was discovered by the eHealth DSI
Identification Service.
Table 4: eHealth DSI ePrescription Metadata
Other metadata than the ones listed above MUST NOT be provided by the service provider.
Multiple ePrescriptions (with up to two encodings) MAY be available per patient. An
ebRIM association MUST be used for declaring the eHealth DSI pivot coded document as
a transformation of the source coded document. As classification scheme
urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3 MUST be used per IHE-XCF.
"eHealth DSI pivot" is defined as the only code value for this eHealth DSI valid
transformation.
<rim:Association id="id of the association" associationType="urn:ihe:iti:2007:AssociationType:XFRM"
sourceObject="UUID of the source coded document" targetObject="UUID of the eHealth DSI pivot document"
objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
<rim:Classification id="id of the classification" classificationScheme="urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3"
classifiedObject="id of the association"
objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"
nodeRepresentation="epSOS pivot">
NCPeH_Components_Specifications_v5.0.0 Page 45 of 84
<rim:Name>
<rim:LocalizedString value="Translation into eHealth DSI pivot format"/>
</rim:Name>
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI translation types</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:name>
<rim:LocalizedString value="Translation into eHealth DSI pivot format" />
</rim:Name>
</rim:Classification>
</rim:Association>
If a warning is to be transmitted to the HP (see section 3.1.4) the ebXML Registry Error
mechanism MUST be used with a syntax as defined in section 3.43.5 of [IHE ITI TF-2b].
The following table lists the eHealth DSI defined warning codes:
Warning Condition and Response eHealth DSI Warning Code Target
Severity Status Message (errorCode
(codeContext attribute) attribute)
If no format qualifier is given: PartialSuccess Rendering incomplete 4101 ID of the
Not all of the requested provided
encodings are provided (e.g. ePrescription
due to inability to transcode a document that
certain national code). is missing
(ERROR) alternative
encodings
If eHealth DSI pivot CDA PartialSuccess Collection incomplete 4102 None
format is requested: NCP-A
cannot provide the minimum
dataset for all its registered
ePrescriptions. The HP MAY
request the source coded PDF.
(ERROR)
The HP MUST consider Success Source coded document 2102 IDs of the
additionally the source coded must be considered affected
document because it MAY documents
contain information that is not
included in the eHealth DSI
pivot CDA (e.g. because field
were nullified due to missing
code mappings) (WARNING)
The prescribed medication has Success Dependencies not checked 2104 None
not been checked for interde
pendencies with the patient’s
cur rent medication (e.g.
because of country A legal
restrictions). (WARNING)
The prescription is available Success No reimbursement 2105 IDs of the
for dispensation but not valid affected
for reimbursement. ePrescription
(WARNING) s
3.4.1.5 Response Message (No ePrescriptions Provided)
If the eHealth DSI Order Service provider is unable to respond with the patient’s
NCPeH_Components_Specifications_v5.0.0 Page 46 of 84
ePrescription data in the requested encoding it MUST respond with a ListResponse
message that only contains a <RetrieveDocumentSetResponse/RegistryResponse>
element.
For a full list of error messages defined for IHE X* see table 4.1-11 in [IHE ITI TF-3].
The following table lists the additional, eHealth DSI-specific response status types and
error/warning/info codes to be used within the <RegistryErrorList> element.
Condition and Severity Response Message Code Action to be taken
Status
The patient has not given Failure No Consent 4701 The HP SHOULD ask the patient to
consent to the requested give consent to the requested service
service. in country B. If the patient gives
consent, the consent MUST be
transmitted to country-A by using the
respective operation of the eHealth DSI
consent service. If such consent giving
procedure is accepted by country A,
HP SHOULD re-issue the request for
medical data.
Country A requests a higher Failure Weak 4702 If possible, the HP SHOULD log in
authentication trust level than Authenticati again with a stronger mechansims (e.g.
assigned to the HP (e.g. on smartcard) and re-issue the request with
password-based login is not the respective identity assertion.
accepted for the requested
operation).
Either the security policy of Failure Insufficient 4703 If the HP can switch to another
country A or a privacy policy of Rights (approriate) role, he SHOULD do so
the patient (that was given in and re-issue the request.
country A) does not allow the
requested operation to be
performed by the HP.
There is no ePrescription data Success No Data 1101 -
registered for the given patient
(INFO)
None of the required encodings Failure Transcoding The service provider MUST write an
4203
can be provided, e.g. due to Error error log entry acc. to its respective
transcoding errors. (ERROR) policies.
The ePrescription registry is Failure Registry 4103
not accessible (ERROR) Failure
There is ePrescription data Failure Data Access 4104 The service consumer MAY re-issue
registered for the patient but the Failure the request.
service provider is unable to
access it (ERROR)
The service provider is unable Failure Unknown 4204 The service consumer MAY re-issue
to evaluate the given argument Filter the request using another filter
values (ERROR) expression.
3.4.1.6 Example Response Message
In this section three possible response messages to the previously sketched request message
are shown.
The first example response message covers the case where a single ePrescription is
discovered and provided as both eHealth DSI pivot and source PDF encoding. MTOM
optimization is not shown as this is a wire-format only transformation. As the eHealth DSI
Order Service list() response message is very similar to the eHealth DSI Patient Service
list() response message (see section 3.3.1.6 for an example) only an excerpt is shown.
NCPeH_Components_Specifications_v5.0.0 Page 47 of 84
<soapenc:Envelope>
<soapenv:Header>....</soapenv:Header>
<soapenv:Body>
<query:AdhocQueryResponse
status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success">
<rim:RegistryObjectList>
<!—eHealth DSI source coded CDA wrapped PDF ePrescription document -->
<rimext:ExtrinsicObject id="urn:uuid:cf614a65-d214-4b0d-b4b8-a0be3888f847" lid="urn:uuid:cf614a65-d214-4b0d-
b4b8-a0be3888f847" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"
status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml">
<!-- metadata missing here (see Patient Service example) -->
<!-- Document contents, before MTOM optimization -->
<rimext:Document
>UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi</rimext:Document>
</rimext:ExtrinsicObject>
<!—eHealth DSI source coded CDA Pivot ePrescription document -->
<rimext:ExtrinsicObject id="urn:uuid:eec764cf-9fe5-4101-8e86-33a13fb06e4a" lid="urn:uuid:eec764cf-9fe5-4101-
8e86-33a13fb06e4a" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"
status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml">
<!-- metadata missing here (see Patient Service example) -->
<!-- Document contents, before MTOM optimization -->
<rimext:Document
>UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi</rimext:Document>
</rimext:ExtrinsicObject>
<rim:Association id="urn:uuid:b4fc4809-0096-4b76-a7b1-3135ac5e5614" lid="urn:uuid:b4fc4809-0096-4b76-a7b1-
3135ac5e5614" associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:XFRM"
sourceObject="urn:uuid:eec764cf-9fe5-4101-8e86-33a13fb06e4a" targetObject="urn:uuid:cf614a65-d214-4b0d-
b4b8-a0be3888f847" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
<rim:Classification id="urn:uuid:969d2f2b-5f5a-4c24-af0a-d07d16ddaeb9"
classificationScheme="urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3"
classifiedObject="urn:uuid:b4fc4809-0096-4b76-a7b1-3135ac5e5614"
objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" nodeRepresentation="epSOS pivot">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI translation types</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString value="Translation into eHealth DSI pivot format"/>
</rim:Name>
</rim:Classification>
</rim:Association>
</rim:RegistryObjectList>
</query:AdhocQueryResponse>
</soapenv:Body>
</soapenc:Envelope>
The second example response message shows the case where two ePrescriptions are
discovered. The first one is provided as eHealth DSI pivot and source PDF encoding. For
the second one country-A is not able to transform an ePrescription to the eHealth DSI pivot
format. Only the PDF encoding is provided and an information given, that eHealth DSI
pivot transcoding failed for this ePrescription10.
<soapenc:Envelope>
<soapenv:Header>....</soapenv:Header>
<soapenv:Body>
<query:AdhocQueryResponse
status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:PartialSuccess">
<rs:RegistryErrorList>
<rs:RegistryError
severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error" errorCode="2104"
codeContext="Rendering incomplete"/ location="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016">
</rs:RegistryErrorList>
<rim:RegistryObjectList>
<!-- ePrecription 1: eHealth DSI source coded CDA wrapped PDF -->
<rimext:ExtrinsicObject id="urn:uuid:cf614a65-d214-4b0d-b4b8-a0be3888f847" lid="urn:uuid:cf614a65-d214-4b0d-
10
It’s up to country A to decide on how to act in case of a failed eHealth DSI pivot translation. This example covers the case
where country A transmits the source coded document only. This may e.g. make sense in cases where both country A and B
share a common language.
NCPeH_Components_Specifications_v5.0.0 Page 48 of 84
b4b8-a0be3888f847" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"
status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml">
<!-- metadata and contents missing here (see Patient Service example) -->
</rimext:ExtrinsicObject>
<!-- ePrecription 1: eHealth DSI source coded CDA Pivot document -->
<rimext:ExtrinsicObject id="urn:uuid:eec764cf-9fe5-4101-8e86-33a13fb06e4a" lid="urn:uuid:eec764cf-9fe5-4101-
8e86-33a13fb06e4a" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"
status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml">
<!-- metadata and content missing here (see Patient Service example) -->
</rimext:ExtrinsicObject>
<!-- ePrecription 2: eHealth DSI source coded CDA wrapped PDF document -->
<rimext:ExtrinsicObject id="urn:uuid:a1c7a9ac-83aa-4eaf-b5e3-d355b57a5016" lid="urn:uuid:a1c7a9ac-83aa-4eaf-
b5e3-d355b57a5016" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"
status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml">
<!-- metadata missing here (see Patient Service example) -->
<!-- Document contents, before MTOM optimization -->
<rimext:Document
>UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi</rimext:Document>
</rimext:ExtrinsicObject>
<!-- Association for ePrescription 1; for ePrescription 2 no association is defined because only one encoding is
provided -->
<rim:Association id="urn:uuid:b4fc4809-0096-4b76-a7b1-3135ac5e5614" lid="urn:uuid:b4fc4809-0096-4b76-a7b1-
3135ac5e5614" associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:XFRM"
sourceObject="urn:uuid:eec764cf-9fe5-4101-8e86-33a13fb06e4a" targetObject="urn:uuid:cf614a65-d214-4b0d-
b4b8-a0be3888f847" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
<rim:Classification id="urn:uuid:969d2f2b-5f5a-4c24-af0a-d07d16ddaeb9"
classificationScheme="urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3"
classifiedObject="urn:uuid:b4fc4809-0096-4b76-a7b1-3135ac5e5614"
objectType="urn:oasis:names:tc:ebxml-
regrep:ObjectType:RegistryObject:Classification" nodeRepresentation="epSOS pivot">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI translation types</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString value="Translation into eHealth DSI pivot format"/>
</rim:Name>
</rim:Classification>
</rim:Association>
</rim:RegistryObjectList>
</query:AdhocQueryResponse>
</soapenv:Body>
</soapenv:Envelope>
3.4.2 Security Audit Considerations
The service consumer MUST write an audit trail entry according to the HP Assurance
Audit Schema. The service provider MUST write an audit trail entry according to the
Patient Privacy Audit Schema.
The following table defines which categories MUST be filled (R), which MAY be
filled (O) and which categories MUST NOT be used (X).
eHealth DSI Instance Opt. Description
Event R Audited event
Requesting Point of Care R/X HCPO that issued the original request. This category MUST be filled
by the service consumer. It MUST NOT be provided by the service
provider.
Human Requestor R HP that triggered the request
Source Gateway R Service consumer node address at the country of Care
Target Gateway R Service provider node address at the country of the patient’s affiliation
Audit Source R Legal entity that ensures the uniqueness of the identifiers that are
used to identify active participants
Patient R Patient
Event Target R Subject to the Query
NCPeH_Components_Specifications_v5.0.0 Page 49 of 84
Error Message O Only used in case that the request handling was not completed
successfully
For the Event Target Category the following fields MUST be provided:
Field Name Opt. Value Constraints
ParticipantObjectTypeCode R MUST be "2" (System Object)
ParticipantObjectTypeCodeRole R MUST be "24" (Query)
ParticipantObjectIDTypeCode R MUST be "10" (Search Criteria)
ParticipantObjectID R MUST be string-encoded UUIDs of the returned documents
3.4.3 Protocol Requirements
The eHealth DSI Order Service List() request and response messages will be transmitted
using synchronous Web Services Exchange, according to the requirements specified in
section 4.3 of this document.
Port types and bindings MUST be used as defined in the WSDL given in section 6.4.2 of
this document. Acc. to this the eHealth DSI Order Service List() operation’s request and
response data MUST be contained within the message body as follows:
eHealth DSI Order Service Message Body
List request CrossGatewayQueryRetrieve_Message (see section 6.4.2)
List response CrossGatewayQueryRetrieveResponse_Message (see section 6.4.2)
The request message MUST be protected by the service consumer (NCP-B) according to
the eHealth DSI message security considerations as defined in section 4.3.5.2 of this
document. The response message MUST be protected by the service provider (NCP-A)
according to the eHealth DSI message security considerations as defined in section 4.3.5.2
of this document.
3.5 eHealth DSI Dispensation Service
The eHealth DSI Dispensation Service is used to share an identified patient’s
eDispensation data between the patient’s country of affiliation and the country of care.
Both countries are represented by their respective NCPs.
Figure 11: Dispensation Service Interface
The implementation of the eHealth DSI Dispensation Service is based on the following
standards:
- ebRIM: OASIS/ebXML Registry Information Model v3.0 [OASIS ebRIM
3.0]
- ebRS: OASIS/ebXML Registry Services Specifications v3.0 [OASIS ebRS
3.0]
- MTOM: SOAP Message Transmission Optimization Mechanism [W3C
MTOM]
- XOP: XML-binary Optimized Packaging [W3C XOP]
NCPeH_Components_Specifications_v5.0.0 Page 50 of 84
and is compliant with the IHE profiles:
- XDR: IHE Cross-Enterprise Reliable Exchange [IHE ITI TF-1] [IHE ITI
TF-2b]
For discovery and localisation of the eHealth DSI Dispensation Service instance that is
responsible for providing access to the identified patient’s data see section 2.1.4 of this
document.
3.5.1 Initialize() Operation
The eHealth DSI Dispensation Service initialize() operation is implemented by the IHE
Provide And Register DocumentSet transaction (ITI-41) as described in [IHE XDR].
3.5.1.1 Request Message
The initialize() request is initiated by an HP in the country of care for handing over
dispensation notifications to the patient’s country of affiliation. Each dispensation
notification consists of an eHealth DSI pivot coded eDispensation document acc. to [CDA
templates] and the source coded document that encodes the same information without
semantic mapping. An initialize() request MAY contain multiple eHealth DSI coded and
source coded documents.
The eHealth DSI Dispensation Service InitializeRequest message is a specialisation of the
IHE Provide And Register DocumentSet transaction (ITI-41) request message as profiled
in [IHE XDR].
The fields defined for the ProvideAndRegisterDocumentSetRequest message MUST be
used as follows:
Element Name eHealth DSI Usage Convention
lcm:SubmitObjectsRequest Container that can be used to provide the metadata for the transmitted
documents, the submission set and the associations between documents (see
below).
rim:RegistryObjectList Container that contains (pointers to) all eDispensation documents
rim:ExtrinsicObject For each eDispensation document a single extrinsic object MUST be
defined. There MUST be a 1:1 id-correspondence between
<rim:ExtrinsicObject> elements and <ihe:Document> elements.
For a list of further metadata to be provided with an eDispensation
document see the table below.
rimext:Document base64 encoded data for the eDispensation documents being submitted to
the service provider. The <rimext:Document/> element also includes the
document id attribute (rimext:Document/@id) of type xsd:anyURI to match
the document ExtrinsicObject id in the metadata and providing the
necessary linkage. The base64 encoded document content MAY be
encrypted. How encryption is applied and how the encryption key is
negotiated should be subject to an additional specification on advanced
security safeguards.
rim:Association For each pair of eHealth DSI coded and source coded documents an
ebRIM association MUST be defined (see below for details on the
encoding).
The service consumer SHOULD embrace the provided documents as a single IHE XDS
submission set acc. to [IHE ITI TF-2a]. The service consumer SHOULD ignore this
grouping and MUST ignore all associations between documents and submission sets. The
service consumer MUST NOT process any metadata assigned to the submission set, it
MUST solely rely on the document metadata and contents.
For each eDispensation document (either eHealth DSI coded or source coded) the
NCPeH_Components_Specifications_v5.0.0 Page 51 of 84
following set of metadata MUST be provided:
Slot Name Binding Slot Value
id Attribute Identifer of the document. This identifier
MUST be the same for
<rim:ExtrinsicObject/@id> and
<ihe:Document/@id>.
mimeType Attribute MUST be "text/xml"
objectType Attribute MUST be set acc. to section 4.3.1.2 of [IHE IT
TF 3]
status Attribute MUST be
"urn:oasis:names:tc:ebxml-
regrep:StatusType:Approved"
creationTime rim:Slot MUST be given for XDR compatibility. MAY
be ignored by the service provider.
languageCode rim:Slot MUST be given for XDR compatibility. MAY
be ignored by the service provider.
sourcePatientID rim:Slot MUST be of the same value as
$XDSDocumentEntryPatientId (see below)
healthcareFacilityTypeCode classification MUST be provided for XCF compatibility and
correct addressing. Value MUST be set to ISO
3166-1 alpha-2 country code of the addressed PN.
practiceSettingCode classification MUST be provided for XDR compatibility but
MAY be ignored by the service consumer. Value
MUST be set to "Not Used".
confidentialityCode classification MUST be provided for XDR compatibility but
MAY be ignored by the service consumer. Value
SHOULD be set to "N", as long as the Minimal
Metadata Profile is not published.
XDSDocumentClassCode classification eDispensation LOINC code ("60593-1")11 coded
according to specification in ITI TF-2a:
3.18.4.1.2.3.4 Coding of Code/Code-Scheme. As
classification scheme 2.16.840.1.113883.6.1
MUST be used.
XDSDocumentFormatCode classification Format qualifier as defined in [CDA templates];
$XDSDocumentEntryPatientId External identifier Equals to the patient identifier that was
provided by the eHealth DSI Identification
Service (encoded as HL7 v3 II data type)
$XDSDocumentUniqueId External identifier MUST refer to the OID of the CDA document
that is included within the <ihe:Document>
element.
Other metadata than the ones listed above SHOULD NOT be provided by the service
provider 12. If given they MUST be ignored by the service consumer.
An ebRIM association MUST be used for declaring the eHealth DSI pivot coded
eDispensation document as a transformation of the source coded eDispensation document.
11
This code is a dummy that will be used for the intial NCP integration tests until a eDispensation LOINC code is approved.
12
Document linkage information (e.g. a reference to the ePrescription that is affected by the dispensation) MUST be included
with the document (see [CDA templates]) and MUST NOT be part of the message metadata.
NCPeH_Components_Specifications_v5.0.0 Page 52 of 84
As classification scheme urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3 MUST be
used per IHE-XCA. Currently "eHealth DSI pivot" is defined as the only valid
transformation:
<rim:Association id="id of the association" associationType="urn:ihe:iti:2007:AssociationType:XFRM" sourceObject="UUID
of the source coded document" targetObject="UUID of the eHealth DSI pivot document"
objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
<rim:Classification id="id of the classification"
classificationScheme="urn:uuid:abd807a3-4432-4053-87b4-fd82c643d1f3" classifiedObject="id of the association"
objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification" nodeRepresentation="epSOS
pivot">
<rim:Slot name="codingScheme">
<rim:ValueList>
<rim:Value>eHealth DSI translation types</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Name>
<rim:LocalizedString value="Translation into eHealth DSI pivot format"/>
</rim:Name>
</rim:Classification>
</rim:Association>
3.5.1.2 Expected Actions
The eHealth DSI Dispensation Service provider shall respond to an InitializeRequest
message with the InitializeResponse message containing a success indicator.
The eHealth DSI Dispensation Service provider MUST verify that the requesting service
user has sufficient rights to submit an eDispensation for the identified patient. It MUST
verify that the eDispensation matches with an ePrescription that was issued for the
identified patient.
In case of an error that relates to the transmission of the request or the processing of the
eHealth DSI security token, the eHealth DSI Dispensation Service provider MUST respond
with a fault message according to section 4.4 of this document.
3.5.1.3 Response Message (Full Success Scenario)
If the eHealth DSI Dispensation Service provider is able to decode the received message
and to properly process all transmitted eDispensations it responds with an ebXML Registry
Response with its status set to "urn:oasis:names:tc:ebxml-
regrep:ResponseStatusType:Success"
If the service provider wants to respond with further information on the processing of the
transmitted data or with a non-critical warning it SHOULD include an additional
<RegistryErrorList> element. The severity MUST be set to "urn:oasis:names:tc:ebxml-
regrep:ErrorSeverityType:Warning":
<rs:RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success">
<rs:RegistryErrorList>
<rsRegistryError severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning"
errorCode="...." codeContext="Processing deferred" location="" />
</rs:RegisryErrorList>
</rs:RegistryResponse>
The following warning messages and codes are defined:
Condition and Severity Message Code Action to be taken
eDisensations were received but not Processing deferred 2201 None
processed
3.5.1.4 Response Message (Failure or Partial Failure Scenario)
If the eHealth DSI Dispensation Service provider is able to decode the received message
but the processing of one or more dispensations failed, it responds with an ebXML
NCPeH_Components_Specifications_v5.0.0 Page 53 of 84
Registry Response that contains a respective status indicator (see below). The response
MUST contain a RegistryErrorList element that indicates the failure condition.
If none of the eDispensations was processed succesfully, the response status MUST be set
to "urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure". If at least one
eDispensation was processed successfully, the response status MUST be set to
"urn:ihe:iti:2007:ResponseStatusType:PartialSuccess".
A failure location MUST be provided if the error does not apply to all provided
eDispensation documents. It MUST NOT be given if the error applies to all provided
documents.
The severity of each registry error message MUST be set to "urn:oasis:names:tc:ebxml-
regrep:ErrorSeverityType:Error". Multiple registry error messages MAY be included
within a single <rs:RegistryErrorList> element. Apart from the XDS-b error messages
defined in Table 4.1-11 of [IHE ITI TF-3] the following error codes are defined for eHealth
DSI:
Condition and Severity Location Message Code Action to be taken
No matching ePrescription OID of the No match 4105 HP-B (or NCP-B depending on
was found eDispensation the concrete implementation)
(ERROR) document that SHOULD check the document
caused the error. IDs and re-issue the request.
ePrescription has already OID of the Invalid 4106 HP-B SHOULD again query for
been dispensed (ERROR) eDispensation Dispensation the list of available ePrescription.
document that
caused the error.
Country A requests a higher - Weak 4702 If possible, the HP SHOULD log
authen- tication trust level Authentication in again with a stronge
than assigned to the HP mechanism (e.g. smartcard) and
(e.g. password-based login re-issue the request with the
is not accepted for the respective identity assertion.
requested operation).
(ERROR)
The eDispensation service OID of the No Signature 4704 If possible, NCP-B SHOULD re-
provider only accepts eDispensation issue the request with the data
dispensation data that is document that signed by an HP.
digitally signed by an HP. caused the error.
(ERROR)
The service consumer did OID of the Original data 4107 The eHealth DSI pivot coded
not pro- vide the source eHealth DSI missing document MUST NOT be
coded PDF document for an coded processed by the service
eDispensation (ERROR) eDispensation provider. The service consumer
that in not MUST re-transmit the
additionally dispensation with both
provided as encodings.
source coded
The service consumer did OID
document of Pivot data 4108 The source coded document
not provide the eHealth DSI the source coded missing MUST NOT be processed by the
pivot coded document for eDispensation service provider. The service
an eDispensation (ERROR) that in not consumer MUST retransmit the
additionally dispensation with both encodings.
provided as
eHealth DSI
pivot coded
document
NCPeH_Components_Specifications_v5.0.0 Page 54 of 84
3.5.1.5 Example Response Message
The following example shows a possible positive resonse to the request given in section
3.5.1.2:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<Action xmlns="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-
bResponse</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:98f4bf0c-f21a-48bc-8518-
958c9d9dc4c11</MessageID>
<RelatesTo xmlns="http://www.w3.org/2005/08/addressing">uuid:98f4bf0c-f21a-48bc-8518-
958c9d9dc4c1</RelatesTo>
</env:Header>
<env:Body>
<RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success"
xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"/>
</env:Body>
</env:Envelope>
The following example shows a possible negative response to the request given in section
3.5.1.2:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns=...>
<soapenv:Header>...</soapenv:header>
<soapenv:Body>
<rs:RegistryResponse
status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure">
<rs:RegistryErrorList>
<rs:RegistryError
severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error"
errorCode="...." codeContext="No Match" location="1.42.20100103225206.3.3" />
</rs:RegistryErrorList>
</rs:RegistryResponse>
</soapenv:Body>
</soapenv:Envelope>
3.5.1.6 Security Audit Considerations
The service consumer MUST write an audit trail entry according to the HP Assurance
Audit Schema. The service provider MUST write an audit trail entry according to the
Patient Privacy Audit Schema.
The following table defines which categories MUST be filled (R), which MAY be
filled (O) and which categories MUST NOT be used (X).
eHealth DSI Instance Opt. Description
Event R Audited event
Requesting Point of Care R/X HCPO that issued the original request. This category MUST be filled by
the service consumer. It MUST NOT be provided by the service provider.
Human Requestor R HP that triggered the request
Source Gateway R Service consumer node address at the country of Care
Target Gateway R Service provider node address at the country of the patient’s affiliation
Audit Source R Legal entity that ensures the uniqueness of the identifiers that are used
to identify active participants
Patient R Patient
NCPeH_Components_Specifications_v5.0.0 Page 55 of 84
Event Target R References to the provided dispensation documents (see below)
Error Message O Only used in case that the request handling was not completed successfully
For the Event Target Category the following fields MUST be provided:
Field Name Opt. Value Constraints
ParticipantObjectTypeCode R MUST be "2" (System Object)
ParticipantObjectTypeCodeRole R MUST be "4" (Resource)
ParticipantObjectIDTypeCode R MUST be "12" (URI)
ParticipantObjectID R MUST be string-encoded UUIDs of the provided documents
3.5.2 Discard() Operation
The eHealth DSI Dispensation Service discard() operation can be used to deprecate a
previously transmitted eDispensation. The eHealth DSI Dispensation Service initialize()
operation is implemented by the IHE Provide And Register DocumentSet transaction
(ITI-41) as described in [IHE XDR]..
3.5.2.1 Request Message
The eHealth DSI Dispensation Service discard() request is initiated by an HP in the country
of care (country B) for deleting a previously transmitted eDispensation document at the
patient’s country of affiliation (country A).
The eHealth DSI Dispensation Service Discard message is a specialisation of the IHE
Provide And Register DocumentSet transaction (ITI-41) request message as profiled in
[IHE XDR]. The fields defined for the ProvideAndRegisterDocumentSetRequest message
MUST be used as follow:
Element Name eHealth DSI Usage Convention
lcm:SubmitObjectsRequest Container that can be used to provide the metadata for the transmitted
discarded document, the submission set and the associations between
documents (see below).
rim:RegistryObjectList Container that contains (pointers to) the eDispensation discarded
document
rim:ExtrinsicObject For each eDispensation document a single extrinsic object MUST be
defined. There MUST be a 1:1 id-correspondence between
<rim:ExtrinsicObject> elements and <ihe:Document> elements.
For a list of further metadata to be provided with an eDispensation
discarded document see the table below.
rimext:Document base64 encoded data for the eDispensation documents being submitted to
the service provider. The <rimext:Document/> element also includes the
document id attribute (rimext:Document/@id) of type xsd:anyURI to match
the document ExtrinsicObject id in the metadata and providing the
necessary linkage.
rim:Association For each pair of eHealth DSI coded and source coded documents an
ebRIM association MUST be defined (see below for details on the
encoding).
For each eDispensation discarded document (either eHealth DSI coded or source coded)
the following set of metadata MUST be provided:
Slot Name Binding Slot Value
NCPeH_Components_Specifications_v5.0.0 Page 56 of 84
id Attribute Identifer of the document. This identifier
MUST be the same for
<rim:ExtrinsicObject/@id> and
<ihe:Document/@id>.
mimeType Attribute MUST be "text/xml"
objectType Attribute MUST be set acc. to section 4.3.1.2 of [IHE IT
TF 3]
status Attribute MUST be
"urn:oasis:names:tc:ebxml-
regrep:StatusType:Approved"
creationTime rim:Slot MUST be given for XDR compatibility. MAY
be ignored by the service provider.
languageCode rim:Slot MUST be given for XDR compatibility. MAY
be ignored by the service provider.
sourcePatientID rim:Slot MUST be of the same value as
$XDSDocumentEntryPatientId (see below)
healthcareFacilityTypeCode classification MUST be provided for XCF compatibility and
correct addressing. Value MUST be set to ISO
3166-1 alpha-2 country code of the addressed PN.
practiceSettingCode classification MUST be provided for XDR compatibility but
MAY be ignored by the service consumer. Value
MUST be set to "Not Used".
confidentialityCode classification MUST be provided for XDR compatibility but
MAY be ignored by the service consumer. Value
SHOULD be set to "N", as long as the Minimal
Metadata Profile is not published.
XDSDocumentClassCode classification eDispensation Discard code ("DISCARD-60593-
1") coded according to specification in ITI TF-2a:
3.18.4.1.2.3.4 Coding of Code/Code-Scheme. As
classification scheme 2.16.840.1.113883.6.1
MUST be used even if no official LOINC code
exists currently for this type of document
(eDispensation Discard).
XDSDocumentFormatCode classification Format qualifier as defined in [CDA templates];
$XDSDocumentEntryPatientId External identifier Equals to the patient identifier that was
provided by the eHealth DSI Identification
Service (encoded as HL7 v3 II data type)
$XDSDocumentUniqueId External identifier MUST refer to the OID of the CDA document
that is included within the <ihe:Document>
element.
3.5.2.2 Expected Actions
The eHealth DSI Dispensation Service provider shall discard all registry objects and
documents as identified in the request. It shall respond to a DiscardRequest message with
a registry response message containing a success indicator.
The eHealth DSI Dispensation Service provider MUST verify that the requesting service
user has sufficient rights to request a discard eDispensation operation for the identified
patient. It MUST verify that the eDispensation was issued by the same HCPO that now
NCPeH_Components_Specifications_v5.0.0 Page 57 of 84
wants to discard it.
In case of an error that relates to the transmission of the request or the processing of the
eHealth DSI security token, the eHealth DSI Dispensation Service provider MUST respond
with a fault message according to section 4.4 of this document.
3.5.2.3 Response Message (Full Success Scenario)
If the eHealth DSI Dispensation Service provider is able to decode the received
dispensation document IDs and to properly process the request, it responds with an
ebXML Registry Response with its status set to "urn:oasis:names:tc:ebxml-
regrep:ResponseStatusType:Success"
<rs:RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success">
…
</rs:RegistryResponse>
3.5.2.4 Response Message (Failure or Partial Failure Success Scenario)
If the eHealth DSI Dispensation Service provider is able to decode the received
dispensation document IDs but the deprecating of the dispensations failed, it responds with
an ebXML Registry Response that contains a respective status indicator (see below). The
response MUST contain a RegistryErrorList element that indicates the failure condition.
If none of the eDispensations was deprecated successfully, the response status MUST
be set to "urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure". If at least one
eDispensation was deprecated successfully, the response status MUST be set to
"urn:ihe:iti:2007:ResponseStatusType:PartialSuccess".
A failure location MUST be provided if the error does not apply to all to-be-deprecated
eDispensation documents. It MUST NOT be given if the error applies to all documents
that are to be deprecated.
The severity of each registry error message MUST be set to "urn:oasis:names:tc:ebxml-
regrep:ErrorSeverityType:Error". Multiple registry error messages MAY be included
within a single <rs:RegistryErrorList> element. In extension to the XDS-b error messages
defined in Table 4.1-11 of [IHE ITI TF-3] the following error codes are defined for eHealth
DSI:
Condition Location Message Code Action to be taken
No matching OID of the No match 4105 The HP SHOULD check
eDispensation was found document that the OID of the document
could not be found and re-issue the request
4703
Request is rejected because OID of the Insufficient Patient SHOULD ensure
the issuing HCPO of the document that rights that the discard request is
discard request is not the caused the error issued by the same HCPO
HCPO that provided the that did the dispensation. If
eDispensation. the ePrescription was
dispensed at another HCPO
the patient MUST request
for discarding at this
HCPO.
2201
Request was accepted but - Processing No action needed. HP and
will not be processed deferred patient MUST be aware that
immediately the respective prescription
cannot be dispensed again
immediately.
NCPeH_Components_Specifications_v5.0.0 Page 58 of 84
3.5.2.5 Response Message (Full Success Scenario)
The following example shows a possible positive response to the request given in section
3.4.1.2:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns=...>
<soapenv:Header>...</soapenv:Header>
<soapenv:Body>
<rs:RegistryResponse
status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success">
</rs:RegistryResponse>
</soapenv:Body>
</soapenv:Envelope>
The following example shows a possible negative response to the request given in section
3.4.1.2:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns=...>
<soapenv:Header>...</soapenv:Header>
<soapenv:Body>
<rs:RegistryResponse
status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure">
<rs:RegistryErrorList>
<rs:RegistryError
severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error"
errorCode="...." codeContext="No Match" location="1.42.20100103225206.3.3" />
</rs:RegistryErrorList>
</rs:RegistryResponse>
</soapenv:Body>
</soapenv:Envelope>
3.5.2.6 Security Audit Considerations
The service consumer MUST write an audit trail entry according to the HP Assurance
Audit Schema. The service provider MUST write an audit trail entry according to the
Patient Privacy Audit Schema.
The following table defines which categories MUST be filled (R), which MAY be
filled (O) and which categories MUST NOT be used (X).
eHealth DSI Instance Opt. Description
Event R Audited event
Requesting Point of Care R/X HCPO that issued the original request. This category MUST be filled
by the service consumer. It MUST NOT be provided by the service
provider.
Human Requestor R HP that triggered the request
Source Gateway R Service consumer node address at the country of Care
Target Gateway R Service provider node address at the country of the patient’s affiliation
Audit Source R Legal entity that ensures the uniqueness of the identifiers that are
used to identify active participants
Patient R Patient
Event Target R Reference to the discarded document
Error Message O Only used in case that the request handling was not completed
successfully
For the Event Target Category the following fields MUST be provided:
NCPeH_Components_Specifications_v5.0.0 Page 59 of 84
Field Name Opt. Value Constraints
ParticipantObjectTypeCode R MUST be "2" (System Object)
ParticipantObjectTypeCodeRole R MUST be "4" (Resource)
ParticipantObjectDataLifeCycle R MUST be "14" (logical deletion)
ParticipantObjectIDTypeCode R MUST be "12" (URI)
ParticipantObjectID R MUST be string-encoded UUIDs of the discarded documents
3.5.3 Protocol Requirements
The eHealth DSI Dispensation Service request and response messages will be transmitted
using synchronous Web Services Exchange, according to the requirements specified in
section 4.3 of this document.
Port types and bindings MUST be used as defined in the WSDLs given in sections 6.3 of
this document. According to this the eHealth DSI Dispensation Service operations’ request
and response data MUST be contained within the message body as follows:
eHealth DSI Dispensation Service Message Body
Put and Discard request ProvideAndRegisterDocumentSet-b_Message (see section 6.3)
Put and Discard response ProvideAndRegisterDocumentSet-bResponse_Message
(see section 6.4.3)
eHealth DSI Dispensation Service request messages MUST be protected by the service
consumer (NCP-B) according to the eHealth DSI message security considerations as
defined in section 4.3.5.2 of this document. eHealth DSI Dispensation Service response
messages MUST be protected by the service provider (NCP-A) according to the eHealth
DSI message security considerations as defined in section 4.3.5.2 of this document.
3.6 eHealth DSI Original Clinical Document Service
Figure 10 - OrCD Service Interface
The eHealth DSI Original Clinical Document Service is used to share documents
which faced no modification following its creation in the Country of Affiliation.
Authorized Original Clinical Documents are:
Laboratory results
Hospital discharge reports
Medical imaging reports (with or without access to referenced images
Medical images
The implementation of the eHealth DSI Dispensation Service is based on the following
standards:
NCPeH_Components_Specifications_v5.0.0 Page 60 of 84
- ebRIM: OASIS/ebXML Registry Information Model v3.0 [OASIS ebRIM 3.0]
- ebRS: OASIS/ebXML Registry Services Specifications v3.013 [OASIS ebRS
3.0]
- MTOM: SOAP Message Transmission Optimization Mechanism [W3C MTOM]
- XOP: XML-binary Optimized Packaging [W3C XOP]
and is compliant with the IHE profiles:
- XDR: IHE Cross-Enterprise Reliable Exchange [IHE ITI TF-1] [IHE ITI TF-2b]
For discovery and localisation of the Original Clinical Document Service instance that
is responsible for providing access to the identified patient’s data see section 2.1.4 of
this document.
3.6.1 List() Operation
The eHealth DSI Original Clinical Document Service list() operation is implemented
as IHE XCF Cross-Gateway Fetch transaction. It is fully compliant with the ebRS 3.0
standard. The eHealth DSI Patient Service list() operation includes the documents
listed in the response meta-data, just like they would have been included in Cross-
Gateway Fetch (SOAP 1.2 MTOP with XOP encoding attachments).
3.6.1.1 Request Message
The list() request is initiated by an HP in the country of care for retrieving the original
clinical document of an identified patient. The respective request message builds upon
the IHE XCF Cross-Gateway Fetch request message.
The <AdhocQueryRequest/> element that encapsulates the query parameters MUST
be used as follows for eHealth DSI:
Element Name eHealth DSI Usage Convention
ResponseOption/@returnComposedObjects MUST be "true"
ResponseOption/@returnType MUST be "LeafClassWithRepositoryItem" (XCF)
AdhocQuery Container for holding the ebML stored query
arguments. All arguments MUST be encoded as query
slots (see table below).
AdhocQuery@id MUST be "urn:uuid:f2072993-9478-41df-a603-
8f016706efe8" which indicates a Fetch (which is an
adaption of the findDocuments Query as defined in ITI
TF-2a:3.18.1)
Only synchronous web services exchange MUST be used. The XDS Affinity Domain
Option only applies to the national environment. Therefore it MUST NOT be used for
NCP-2-NCP message exchange.
Stored query argument slots MUST be defined for the patient identifier and the
document class code. The document format code and the document type code MAY
be given. Other argument slots than the ones listed below MUST be ignored by the
service provider and SHOULD NOT be issued by the service consumer.
13
The integration of ebRS and MTOM as used by eHealth DSI is not compatible with the current version of OASIS
ebRS.
NCPeH_Components_Specifications_v5.0.0 Page 61 of 84
Slot Name Opt Slot Value
$XDSDocumentEntryPatientId R Equals to the patient identifier that was provided by the eHealth DSI
Identification Service (encoded as HL7 v3 II data type)
$XDSDocumentEntryStatus R Only approved documents MUST be returned:
'urn:oasis:names:tc:ebxml-regrep: StatusType:Approved'
$XDSDocumentEntryClassCode R A LOINC code for the defined Original Clinical Documents must be
used:
laboratory results – '11502-2'
hospital discharge reports – '34105-7'
medical imaging reports (with or without access to referenced
images) – '18748-4'
medical images – 'x-clinical-image'
As classification scheme 2.16.840.1.113883.6.1 MUST be used:
e.g. for a laboratory result: '11502-2^^2.16.840.1.113883.6.1'
$XDSDocumentEntryTypeCode O A LOINC code for the defined Original Clinical Documents must be
used:
laboratory results – '11502-2'
hospital discharge reports – '34105-7'
medical imaging reports (with or without access to referenced
images) – '18748-4'
medical images – 'x-clinical-image'
As classification scheme 2.16.840.1.113883.6.1 MUST be used:
e.g. for a laboratory result: '11502-2^^2.16.840.1.113883.6.1'
$XDSDocumentEntryFormatCode O Format qualifier; see table below for details on applying these codes to
the retrieval of a patient’s original clinical documents. Only encodings
of the original clinical documents that comply to the requested format
code will be returned by the service provider.
If this stored query slot is omitted the service provider MUST deliver
all available encodings14.
For the document format only the format codes listed in the following table MUST be
used.
Document Format Format Code Document content
eHealth DSI Original Clinical urn:eHDSI:orcd:pdf:2021 CDA-enveloped PDF/A encoding of
Document CDA document the original document without any
format semantic transformation as source
coded PDF with a CDA header per
IHE XDS-SD.
NCPeH_Components_Specifications_v5.0.0 Page 62 of 84
eHealth DSI Original Clinical urn:eHDSI:orcd:png:2021 Original Clinical document in PDF
Document PNG document format.
format
eHealth DSI Original Clinical urn:eHDSI:orcd:jpeg:2021 Original Clinical document in JPEG
Document JPEG document format.
format
3.6.1.2 Example Request Message
The following excerpt from an eHealth DSI Original Clinical Document Service list()
request message shows a cross-NCP query request that contains argument slots for
retrieving the laboratory report original clinical documents (LOINC code 11502-2) of
an identified patient (patient identifier 90378912821). In this example the service
consumer does not specify the requested encoding. Therefore the service provider
MUST deliver all available encodings (e.g. CDA-enveloped PDF document).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ... >
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:query="urn:oasis:names:tc:ebxml-
regrep:xsd:query:3.0" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
<soapenv:Header /> <soapenv:Body>
<query:AdhocQueryRequest>
<query:ResponseOption returnComposedObjects="true" returnType="LeafClassWithRepositoryItem" />
<rim:AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d">
<rim:Slot name="$XDSDocumentEntryPatientId">
<rim:ValueList>
<rim:Value>'90378912821^^^&1.3.6.1.4.1.21367.2005.3.7&ISO'</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryStatus">
<rim:ValueList>
<rim:Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryClassCode">
<rim:ValueList>
<rim:Value>(11502-2^^2.16.840.1.113883.6.1')</rim:Value>
</rim:ValueList>
</rim:Slot>
<!-- Include associations whose sourceObject and targeObject attributes reference ExtrinsicObjects returned –
</rim:AdhocQuery>
</query:AdhocQueryRequest>
</soapenv:Body>
</soapenv:Envelope>
3.6.1.3 Expected actions
The eHealth DSI Original Clinical Document Service provider shall respond to a
ListRequest message with the ListResponse message containing:
the identified patient’s original clinical documents together with a status
notification (full success scenario, see section 3.3.1.4) or
an error message (no patient summary provided, see section 3.3.1.5).
The eHealth DSI Original Clinical Document Service provider MUST verify that the
requesting service user has sufficient rights to access the original clinical document of
the identified patient.
In case of an error that relates to the transmission of the request or the processing of the
eHealth DSI security token, the eHealth DSI Original Clinical Document Service provider
MUST respond with a fault message according to section 4.4 of this document.
NCPeH_Components_Specifications_v5.0.0 Page 63 of 84
3.6.1.4 Response Message (Full Success Scenario)
The eHealth DSI list() response contains all available original clinical documents available
for the patient that correspond with the provided classCode. The respective message builds
upon the IHE XCF Cross-Gateway Fetch response and Cross-Gateway Fetch Response
messages.
NCPeH_Components_Specifications_v5.0.0 Page 64 of 84
The fields defined for the eHealth DSI ListResponse message MUST be used as follows:
Element Name eHealth DSI Usage Convention
Query:AdhocQueryResponse Response message according to IHE XCA Cross-Gateway Access
response message [IHE XCF]
@status For the full success scenario the response status MUST be set to
"urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" or
"urn:ihe:iti:2007:ResponseStatusType:PartialSuccess" (for details see
table below)
rs:RegistryErrorList In case that a warning is given by the service provider, this element
holds the respective warning codes and messages. It must be used
according to section 4.1.13 of [IHE ITI TF-3]
rim:RegistryObjectList This element MUST be provided for the full success scenario. It
MUST
at least contain one child <rim:ExtrinsicObject/> element.
rim:ExtrinsicObject For each instance of an original clinical document a
<rim:ExtrinsicObject/> element MUST be provided.
Each <rim:ExtrinsicObject/> element is described and classified by
metadata according to Table 4 below.
rimext:Document This element MUST appear as the last element child of an
<rim:ExtrinsicObject/> element. It may appear zero or one times. This
element contains the base 64 encoded content of the document. The
document contents are associated with the DocumentEntry
(ExtrinsicObject) metadata by the fact that it is nested inside it within
the XML. The base64 encoded document content MAY be encrypted.
How encryption is applied and how the encryption key is negotiated
should be subject to an additional specification on advanced security
safeguards.
Each provided original clinical document MUST be further classified by metadata. The
following table lists the usage conventions that MUST be followed for the eHealth DSI
Patient Service response message. If not stated otherwise the classification schemes as
defined in section 4.3.1.2 of [IHE ITI TF-3] MUST be used. If no restrictions on metadata
values are given, the metadata elements MUST be used as per [IHE XCF].
3.6.1.4.1 Common metadata elements
Metadata (ebRIM names) Binding Opt. eHealth DSI usage convention
status Attribute R MUST be
"urn:oasis:names:tc:ebxml-
regrep:StatusType:Approved"
mimeType Attribute R MUST be "text/xml" for all original clinical
documents, since they are all embedded in a
CDA document.
Name Main R Must be provided and contain the name of the
document.
Description Main O Can contain additional information about the
document
VersionInfo Main R MUST be "1"
NCPeH_Components_Specifications_v5.0.0 Page 65 of 84
creationTime rim:Slot O MAY be omitted by the service provider and
MAY be ignored by the service consumer. If
given, the value MUST be encoded as HL7 v2
Date Time "YYYY[MM[DD[hh[mm[ss]]]]]"
hash rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
consumer.
languageCode rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
consumer.
repositoryUniqueId rim:Slot O MAY be omitted by the service provider and
MAY be processed by the service consumer in an
IHE-compatible NI-scenario.
serviceStartTime rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
serviceEndTime
consumer.
size rim:Slot O SHOULD be omitted by the service provider
and MUST NOT be processed by the service
consumer.
sourcePatientId rim:Slot R MUST contain the same value as
XDSDocumentEntry.PatientId (see below).
sourcePatientInfo rim:Slot X MUST NOT be used. Future versions of eHealth
DSI MAY define different protection levels for
metadata and documents. Therefore all metadata
elements that might carry medical or social
information MUST be omitted.
classCode Classification R laboratory results – '11502-2'
hospital discharge reports – '34105-7'
medical imaging reports (with or without access
to referenced images) – '18748-4'
medical images – 'x-clinical-image'
As classification scheme
"urn:oid:2.16.840.1.113883.6.1" MUST be used
typeCode Classification O laboratory results – '11502-2'
hospital discharge reports – '34105-7'
medical imaging reports (with or without access
to referenced images) – '18748-4'
medical images – 'x-clinical-image'
As classification scheme
"urn:oid:2.16.840.1.113883.6.1" MUST be used
Could be used for more fine-grained description
of the type of original coded element.
author Classification X MUST NOT be used. Future versions of eHealth
DSI MAY define different protection levels for
metadata and documents. Therefore all metadata
elements that might carry medical or social
information MUST be omitted.
NCPeH_Components_Specifications_v5.0.0 Page 66 of 84
confidentialityCode Classification R MUST be provided for XCF compatibility but
MAY be ignored by the service consumer. Value
SHOULD be set to "N", as long as the Minimal
Metadata Profile is not published.
formatCode Classification R MUST be “urn:eHDSI:orcd:pdf:2021" for CDA-
enveloped PDF document. In the case the
embedded document format is PNG or JPEG, the
formatCode must be “urn:eHDSI:orcd:png:2021”
or “urn:eHDSI:orcd:jpeg:2021”
XDSDocumentEntry.uniqueId ExternalIdentifier R MUST hold the OID of the document. The
document unique id value MUST be the same as
the value of the document’s
<ClinicalDocument/id> CDA header element.
XDSDocumentEntry.patientId ExternalIdentifier R MUST hold the patient identifier. The service
consumer MUST verify that this id matches the
patient Id that was discovered by the eHealth DSI
Identification Service.
Table 1: eHealth DSI Original Clinical Document Common Metadata
3.6.1.4.2 Metadata elements specific to laboratory results
Metadata (ebRIM names) Binding Opt. eHealth DSI usage convention
Author/authorSpeciality Attribute O Can be provided by the service provider. If
possible the specialty text must be provided.
Table 2: eHealth DSI Original Clinical Document Laboratory Results Metadata
3.6.1.4.3 Metadata elements specific to hospital discharge reports
Metadata (ebRIM names) Binding Opt. eHealth DSI usage convention
Author/authorSpeciality Attribute O Can be provided by the service provider. If
possible the specialty text must be provided.
eventCodeList Classification O ClassficationScheme: urn:uuid:2c6b8cb7-8b2a-
4051-b291-b1ae6a575ef4
COULD be used to contain the reason of
hospitalisation.
If possible the reason of hospitalisation COULD
be added in textual form.
Table 3: eHealth DSI Original Clinical Document Hospital Discharge Reports Metadata
3.6.1.4.4 Metadata elements specific to medical imaging reports and medical
images
Metadata (ebRIM names) Binding Opt. eHealth DSI usage convention
Author/authorSpeciality Attribute O Can be provided by the service provider. If
possible the specialty text must be provided.
NCPeH_Components_Specifications_v5.0.0 Page 67 of 84
eventCodeList Classification O ClassficationScheme: urn:uuid:2c6b8cb7-8b2a-
4051-b291-b1ae6a575ef4
COULD be used to contain the reason of
hospitalisation.
If possible the reason of hospitalisation COULD
be added in textual form.
author Classification O ClassficationScheme: urn:uuid:93606bcf-9494-
43ec-9b4e-a7748d1a838d
COULD be used to contain the requester
specialty.
If possible the requester specialty COULD be
added in textual form.
Table 4: eHealth DSI Original Clinical Document Medical Imaging Reports and Medical Images Metadata
Other metadata than the ones listed above SHOULD NOT be provided by the service
provider and MUST NOT be processed by the service consumer.
By definition, several original clinical documents can be provided per patient.
If a warning is to be transmitted to the HP (see section 3.1.4) the ebXML Registry Error
mechanism MUST be used with a syntax as defined in section 3.43.5 of [IHE ITI TF-2b].
As the location of the warning is implied, the respective location attribute SHOULD be
empty.
3.6.1.5 Response Message (No original clinical documents provided)
If the eHealth DSI Original Clinical Document Service provider is unable to respond with
documents of the requested type, in the requested encoding it MUST respond with a
ListResponse message that only contains a <AdhocQueryResponse/RegistryResponse>
element.
For a full list of error messages defined for IHE X* see table 4.1-11 in [IHE ITI TF-3].
The following table lists the additional, eHealth DSI-specific response status types and
error/warning/info codes to be used within the <RegistryErrorList> element.
Condition and Severity Response Message Code Action to be taken
Status
The patient has not given Failure No Consent 4701 The HP SHOULD ask the patient to
consent to the requested give consent to the requested service
service. in country B. If the patient gives
consent, the consent MUST be
transmitted to country-A by using the
respective operation of the eHealth DSI
consent service. If such consent giving
procedure is accepted by country A,
HP SHOULD re-issue the request for
medical data.
NCPeH_Components_Specifications_v5.0.0 Page 68 of 84
Country A requests a higher Failure Weak 4702 If possible, the HP SHOULD log in
authentication trust level than Authentication again with a stronger mechanisms (e.g.
assigned to the HP (e.g. smartcard) and re-issue the request with
password-based login is not the respective identity assertion.
accepted for the requested
operation).
Either the security policy of Failure Insufficient 4703 If the HP can switch to another
country A or a privacy policy of Rights (approriate) role, he SHOULD do so
the patient (that was given in and re-issue the request.
country A) does not allow the
requested operation to be
performed by the HP.
There is no original clinical Success No Data 1101 -
data of the requested type
registered for the given patient
(INFO)
The original clinical document Failure Registry 4103
registry is not accessible Failure
(ERROR)
There is original clinical data of Failure Data Access 4104 The service consumer MAY re-issue
the requested type registered Failure the request.
for the patient but the service
provider is unable to access it
(ERROR)
The service provider is unable Failure Unknown 4204 The service consumer MAY re-issue
to evaluate the given argument Filter the request using another filter
values (ERROR) expression.
3.6.1.6 Example Response Message
The following message is a possible response to the sample request message given in
section 3.3.1.2. The patient’s country of affiliation responds with both encodings. No
MTOM optimization has been done (since this is a wire-format only optimization).
3.6.2 Security Audit Considerations
The service consumer MUST write an audit trail entry according to the HP Assurance
Audit Schema. The service provider MUST write an audit trail entry according to the
Patient Privacy Audit Schema.
The following table defines which categories MUST be filled (R), which MAY be
filled (O) and which categories MUST NOT be used (X).
eHealth DSI Instance Opt. Description
Event R Audited event
Requesting Point of Care R/X HCPO that issued the original request. This category MUST be filled
by the service consumer. It MUST NOT be provided by the service
provider.
Human Requestor R HP that triggered the request
Source Gateway R Service consumer node address at the country of Care
Target Gateway R Service provider node address at the country of the patient’s affiliation
Audit Source R Legal entity that ensures the uniqueness of the identifiers that are
used to identify active participants
Patient R Patient
NCPeH_Components_Specifications_v5.0.0 Page 69 of 84
Event Target R Subject to the Query
Error Message O Only used in case that the request handling was not completed
successfully
For the Event Target Category the following fields MUST be provided:
Field Name Opt. Value Constraints
ParticipantObjectTypeCode R MUST be "2" (System Object)
ParticipantObjectTypeCodeRole R MUST be "24" (Query)
ParticipantObjectIDTypeCode R MUST be "10" (Search Criteria)
ParticipantObjectID R MUST be string-encoded UUIDs of the returned documents
3.6.3 Protocol Requirements
The eHealth DSI Patient Service List() request and response messages will be transmitted
using synchronous Web Services Exchange, according to the requirements specified in
section 4.3 of this document.
Port types and bindings MUST be used as defined in the WSDL given in section 6.4.2 of
this document. Acc. to this the eHealth DSI Patient Service List() operation’s request and
response data MUST be contained within the message body as follows:
eHealth DSI OrCD Service Message Body
List request CrossGatewayQueryRetrieve_Message (see section 6.4.2)
List response CrossGatewayQueryRetrieveResponse_Message (see section 6.4.2)
The request message MUST be protected by the service consumer (NCP-B) according to
the eHealth DSI message security considerations as defined in section 4.3.5.2 of this
document. The response message MUST be protected by the service provider (NCP-A)
according to the eHealth DSI message security considerations as defined in section 4.3.5.2
of this document.
4 eHealth DSI Communication and Messaging
Infrastructure
eHealth DSI service providers and consumers use the eHealth DSI messaging
infrastructure to exchange request and response messages among each other. The message
infrastructure builds upon the eHealth DSI communication infrastructure that connects
the eHealth DSI network of trusted nodes (Figure 13).
Figure 13: eHealth DSI Trusted Nodes and Messaging Infrastructure
The eHealth DSI trusted node infrastructure implements the core eHealth DSI security
NCPeH_Components_Specifications_v5.0.0 Page 70 of 84
services that ensure the confidentiality of medical data transmission and the availability
and authenticity of eHealth DSI services:
physical private network (Testa NG),
message encryption (TLS) and integrity protection, and
mutual NCP authentication.
The eHealth DSI messaging infrastructure provides mechanisms for the implementation
of the derived eHealth DSI security services (e. g. non-repudiation and access control)
and for the standardised enveloping of data and documents:
transmission of authenticated HP attributes,
common message format, and
signature on message elements for auditing and brokering of document
authenticity claims.
It must be noted that only NCPs acting as eHealth DSI service providers and consumers
are part of the eHealth DSI trusted node infrastructure as specified in this document.
Points of Care within country B or national data registries/repositories in country A have
to be connected to the eHealth DSI trusted nodes by means that respect the eHealth DSI
end-to-end privacy, security and data protection requirements. See [Section I - Security
Policies] and [Security Services Specification] for details.
4.1 Audit Trail Implementation
The mutual trust between a service consumer and a service provider is based on a
mutually trusted, secure channel between the underlying network nodes.
The establishment of mutual trust between nodes is performed by:
IPSec [RFC 4301]
Transport Layer Security v1.2 [RFC 5246]
IHE Audit Trail and Node Authentication [IHE ITI TF-2a]
4.1.1 TLS Configuration
All network nodes running eHealth DSI service consumers or service providers MUST be
implemenented as IHE Secure Node actors acc. to the IHE ATNA profile. The
establishment of mutual trust and the setup of the secure transport layer channel between
two eHealth DSI nodes are always initiated by a service consumer that connects to a service
provider.
The messages for the establishment of the basic transport layer secure channel correspond
to the TLS handshake protocol as profiled in the IHE ATNA Integration profile (transaction
ITI-19 as specified in section 3.19 of [IHE ITI TF 2a]).
With respect to the ITI-19 transaction specification the following constraints and
extensions apply:
Algorithms and key lengths MUST be used acc. to [Cryptographic Algorithms].
The node certificates MUST comply with the eHealth DSI Node Authentication
Certificate Profile
[X.509 Certificate Profiles]
The issuing CA and all components and services for managing the lifecycle of the
eHealth DSI Node Authentication Certificates must comply with the respective
eHealth DSI security policies (see [Security Services Specification]).
4.2 Time Synchronisation
Time synchronisation within the network of eHealth DSI gateways is performed by:
Network Time Protocol (Version3) [RFC 1305] as described in the
IHE Consistent Time Integration Profile [IHE ITI TF-2a]
NCPeH_Components_Specifications_v5.0.0 Page 71 of 84
Stratum 2 time servers (Consistent Time Mediators) SHOULD by operated by NCPs. All
services that rely on consistent time within the eHealth DSI Circle of Trust MUST be
operated on a node that acts as a stratum 3 time server (Consistent Time Consumer). This
in particular holds for
services that apply or verify digital signatures on messages, medical data or
assertions,
services that contribute to the security audit trail.
eHealth DSI time synchronisation for Consistent Time Consumers is handled by respective
mechanisms of the underlying operating systems. The messages exchanged correspond to
the NTP transactions described in detail in RFC 1305 and http://www.ntp.org. The
underlying network protocol is UDP (port 123). Authentication MAY be enabled with the
ntp authenticate command
Consistent Time servers that represent a Stratum n+1 server SHOULD have a configuration
with a default polling interval of 4096 seconds at a minimum in order to synchronize the
eHealth DSI reference time to all nodes. Following time servers SHOULD only configure
a polling interval of 65536 seconds.
Each Consistent Time Mediator SHOULD accept a maximum clock skew of 256 seconds.
With respect to lower the system resources (due to incoming requests) of the Consistent
Time Source, Consistent Time Mediators SHOULD peer themselves.
4.3 eHealth DSI Common Message Format
The eHealth DSI Common Message Format defines the structure and characteristics of the
messages exchanged through eHealth DSI and establishes the preconditions for successful
communication. The eHealth DSI Common Message Format describes only the structure
of messages as they flow between service consumers and service providers. Messages
within NCP's or national infrastructures may use any format desired, and need to be
translated to the eHealth DSI Common Message Format before transmission to another
NCP.
4.3.1 Transport Layer Profile
All messages MUST be sent over HTTP 1.1 connections that are layered on top of the
eHealth DSI trusted node infrastructure (see section 4.1).
4.3.2 Message Layer Profile
The eHealth DSI Common Message Format is a SOAP 1.2 [W3C SOAP 1.2] message
contained as the body of an HTPP 1.1 [RFC 2616] message.
All messages MUST be SOAP Envelopes with an XML payload in the SOAP Body.
Optional binary data MUST be carried as Base 64 encoded octets within the XML payload
if not otherwise stated for the respective operations. Request messages MUST be sent
using an HTTP POST, response messages are carried over the backchannel, i.e. the HTTP
response.
The encoding of the containing XML document MUST be set to UTF-815.
All eHealth DSI SOAP messages MUST comply with the WS-I Basic Profile 1.116 [WSI
BP 1.1].
All eHealth DSI SOAP messages MUST comply with the WS-I Basic Security Profile
1.1 [WSI SBP 1.1].
15
UTF-8 is more efficient than UTF-16 for European languages. Older encodings such as ISO-8859-x do not cover all
languages in a single encoding, and will only pose interoperability problems. UTF-8 is the default in XML, and coverage is
a requirement of the XML specification.
16
While WSI Basic profile 1.1 does not formally support SOAP 1.2, it takes into consideration SOAP 1.2 by having
requirements which are specifically for compatibility with SOAP 1.2. IHE and eHealth DSI plan to consider adoption of
WS-I BP 2.0 [WSI BP 2.0] as soon as it is approved by WSI.
NCPeH_Components_Specifications_v5.0.0 Page 72 of 84
4.3.3 XML Message Schema Format
All eHealth DSI SOAP message MUST be described in a WSDL 1.1 [W3C WSDL 1.1]
Service Description.
All WSDL type definitions MUST be in XML Schema format. One Schema must be
provided for the request message, and one for the response message.
For better maintainability, an XML Schema import or include statement in the WSDL file
SHOULD be used, so the XML Schema can be maintained and reused as a separate entity.
If the XML Schema is small, and reuse is not expected, the entire Schema MAY be
specified in the WSDL types section (especially in the case of RPC-style transactions
where one or a few parameters of rather simple types are used).
4.3.4 SOAP Binding
For all messages a SOAP 1.2 HTTP Binding MUST be provided in the WSDL. All SOAP
Bindings in the WSDL MUST specify style="document".
All SOAP Bindings in the WSDL MUST specify use="literal".
The naming of the messages MUST be as defined for the used standard.
The "soapenv:mustUnderstand="1"" attribute MUST be set as defined for the used standard.
4.3.5 Embedding of Security Token
Each SOAP message MUST include a <wsse:Security> section within the SOAP header.
4.3.5.1 SAML Assertions
Request messages are safeguarded by up to two SAML assertions that attest the
authenticity of the user and the existence of a treatment relationship (See chapter 2 on
which assertions are required for each operation).
SAML assertions are contained within the <wsse:Security> section of the SOAP header.
The HP Identity Assertion always takes the role of a Supporting Token.
The saml:Advice element MUST be used to define the linkage between the two assertions
(see [SAML Profile]). Both assertions MUST have been issued for the same subject.
The relying party MUST verify the correct linkage of the SAML assertions and the match
of the <Subject> elements’ contents.
4.3.5.2 Message Signature
To preserve the integrity and authenticity of a message and to attest the NCP origin of the
message, elements of each message MAY be signed by the protection token. If WS
SecurityPolicy is used, a signed elements assertion MUST be used to refer to the message
parts to be signed 17.
The following table defines which token MUST be used as protection token and which
elements of the message MUST be covered by the signature.
Request Message Response Message
Protection Token X.509 Token of NCP-B X.509 Token of NCP-A
Signed Elements /Envelope/Body /Envelope/Body
/Envelope/Header/Security/Assertion
Signatures MUST be placed within a XML-Signature compliant <ds:Signature/> element
inside the SOAP security header. The recommendations given in section 8 of [OASIS WS-
Security 1.1] SHOULD be considered. In addition the following constraints apply:
17
Only in cases where the framework does not allow for multiple XPath expressions, a signed parts assertion SHOULD be used.
NCPeH_Components_Specifications_v5.0.0 Page 73 of 84
Signature Parameter Usage Convention
CanonicalizationMethod SHOULD be "http://www.w3.org/2001/10/xml-exc-c14n#"
Transformation Exclusive XML canonicalization SHOULD be used
(http://www.w3.org/2001/10/xml-exc- c14n#, acc. [W3C XMLDSig] and [W3C
XML-EXC 1.0]). As inclusive namespaces other prefixes than the ones defined in
section 3.1.6 of this document MUST NOT be used.
SignatureMethod The signature method MUST comply with the eHealth DSI recommendations on
algorithms and key lengths (see [Cryptographic Algorithms]). For signing message
elements the signature method
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
SHALL be used.
DigestMethod The hash algorithm MUST comply with the eHealth DSI recommendations on
algorithms and key lengths (see [Cryptographic Algorithms]). For signing message
elements the digest method
http://www.w3.org/2001/04/xmlenc#sha256
SHALL be used.
KeyInfo This element MUST contain a wsse:SecurityTokenReference element which
references the protection token.
4.3.6 Processing of SOAP Messages
A sending service consumer SHOULD add SOAP Message Headers in the order in which
the receiving service provider is expected to process them.
A receiving service provider MUST not rely on a specific order of SOAP Message
Headers for correct processing.
A receiving service provider MAY rely on a specific order of SOAP Message Headers
for faster processing.
4.4 Exception Handling
In general eHealth DSI distinguishes between four coarse grained failure situations that
MAY require an exchange of respective fault messages between NCPs:
- Communication failures: The message cannot be delivered to the designated
service; e.g. because the establishment of a secure communication link failed or
a link is broken.
- eHealth DSI Message encoding and consistency failures: The message was
received but it cannot be processed; e.g. because the security token is broken or
the message does not comply with the eHealth DSI message encoding and
security rules
- Message processing failures: The message was decoded but it cannot be
processed; e.g. because of security/privacy reasons or because the request does
not match with the states of the affected security and business objects
- Document encoding failures: The message can be processed but the requested
document cannot be completely encoded as specified in [CDA templates].
General system failures are handled basd on their implication (e.g. if a message cannot be
delivered due to a buffer error, the communication failure mechansim is used to propagate
the error; if the same failure occurs during message processing, the message processing
failure mechanism is used).
NCPeH_Components_Specifications_v5.0.0 Page 74 of 84
In the following sections it is defined, how failures of the first three kinds are handled by
eHealth DSI. Failures of the fourth kind are handled within the documents (e.g. by
nullifying fields or using specific error codes; see [CDA templates]).
4.4.1 Communication Failures
Communication failures are raised by the existing mechanisms of the communication and
messaging protocols. They are handled on the layer where they occurred. eHealth DSI does
not define new error codes for these kinds of failures and eHealth DSI does not define any
requirements for raising and processing these errors that are beyond the presetting of the
respective standards. This includes that errors of this kind can occur at both communicating
gateways and MAY require action to be taken by both gateways.
In case of a communication failure an audit trail entry MUST be written at NCP-B:
eHealth DSI Instance Opt. Description
Event R Service that was to be called
Requesting Point of Care R HCPO that issued the original request.
Human Requestor R HP that triggered the request
Source Gateway R Service consumer node address at the country of Care
Target Gateway R Service provider node that did not respond to the request
Audit Source X -
Patient R Patient
Event Target X -
Error Message R Error data as provided by the layer that detected the
communication failure
4.4.2 Encoding and Consistency Failures
Encoding and consistency problems are detected at the protocol terminator or other eHealth
DSI-side internal components at the service providing NCP. Errors that origin in an
improper encoding of the message (envelope, header) or in an inaccurate use of security
objects are covered by the SOAP error mechanism.
4.4.2.1 SOAP Error Profile
Information on faults that occurred during the processing of a request are placed into a
SOAP response message body as SOAP 1.2 faults. The respective data type MUST be
instantiated as defined in [W3C SOAP 1.2]. eHealth DSI specific error information is
encoded with the following elements:
Element name Format Opt. Content
Code/Subcode/Value QName R eHealth DSI error code; see tables below for the
defined values
Reason/Text QName R Description of the error (by default the error code is
used as the error description; nevertheless a NCP
implementation MAY provide the error condition
(see tables below) or even more detailed information
on the reason of the failure in this element)
NCPeH_Components_Specifications_v5.0.0 Page 75 of 84
Node URI O URI of the system component that caused the failure
or (URI encoded) OID of the object that caused the
error. The semantics of this entry MUST be
determinable by the error code.
By default this element holds the URI of the Service
Provider where the error was detected.
Table 11: Usage conventions for SOAP faults
Further details on the error MAY be given in a <detail/> element. The receiver of the fault
message MUST NOT process the <detail/> element but SHOULD dump its contents into
the respective field of the audit trail entry.
4.4.2.2 General Message Handling Errors
General message handling faults are detected upon receipt of a message. Usually they
are not specific for a certain transaction and usually origin in weaknesses related to the
implementation, configuration and operation of the eHealth DSI NCP.
The following table lists all general message handling errors. These errors MUST be
handled acc. to the eHealth DSI SOAP error profile (see section 4.4.2.1).
Condition Code Subcode Action to be taken
The service provider is not able to Receiver Busy Both NCPs MUST write an audit
fulfil the request due to an internal trail entry. The service requestor
problem. SHOULD send the request again.
The service provider cannot write an Receiver Audit Log The service consumer MUST
audit trail entry. Failure write an audit trail entry. The
service provider MUST write a
log entry to the systems log. The
system administrator MUST
process this failure because it
indicates a mis-configuration or
software error.
4.4.2.3 SOAP Message Encoding and Addressing Errors
Message encoding and addressing faults are detected upon receipt of a message or at the
protocol terminator. Usually they are not specific for a certain transaction and usually
origin in weaknesses related to the implementation, configuration and operation of the
eHealth DSI NCP.
The following table lists all message encoding and addressing errors. These errors MUST
be handled acc. to the eHealth DSI SOAP error profile (see section 4.4.2.1).
Condition Code Subcode Action to be taken
The protocol terminator cannot decode MustUnderstand or Decoding No audit trails are written. The
the message because of a schema DataEncodingUnknow Failure service consumer MUST write a
violation in the SOAP envelope n (depending on the log entry to the systems log. The
source of the error) system administrator MUST
process this failure because it
indicates a mis-configuration or
software error.
NCPeH_Components_Specifications_v5.0.0 Page 76 of 84
The protocol terminator cannot DataEncodingUnknown Unknown No audit trails are written. The
validate a message because of an Schema service consumer MUST write a
unknown namespace or schema log entry to the systems log. The
system administrator MUST
process this failure because it
indicates a mis-configuration or
software error.
The protocol terminator cannot process MustUnderstand or Unknown No audit trails are written. The
the message because it does not know DataEncodingUnknow Transactio service consumer MUST write a
or not support the requested service. n (depending on the n log entry to the systems log. The
source of the error) system administrator MUST
process this failure because it
indicates a mis-configuration or
software error.
The protocol terminator rejects the MustUnderstand or Version No audit trails are written. The
message because of a ver- sion DataEncodingUnknow Mismatch service consumer MUST write a
mismatch (e. g. service consumer uses n (depending on the log entry to the systems log. The
deprecated ver- sion of the spec) source of the error) system administrator MUST
process this failure because it
indicates a mis-configuration or
software error.
4.4.2.4 Security Header Encoding and Consistency Errors
Security header encoding and consistency errors are detected by the security manager
component. Usually they are not specific for a certain transaction and usually origin in
weaknesses related to the implementation, configuration and operation of the eHealth DSI
NCP.
The following table lists all security header related errors. These errors MUST be handled
acc. to the eHealth DSI SOAP error profile (see section 4.4.2.1).
Condition Code Subcode Action to be taken
The provided HP Identity Assertion Sender HP Missing Both service consumer and
does not contain all of the required Attributes service provider MUST write an
attributes. audit trail entry. The service
consumer SHOULD request a
new authentication of the HP.
The provided HP Identity Assertion Sender Invalid Both service consumer and
is not valid or timed out. Security service provider MUST write an
Token audit trail entry. The service
consumer SHOULD request a
new HP authentication.
The patient identifier is not valid. Sender Unknown Both service consumer and
Patient service provider MUST write an
audit trail entry. The HP at the
country of care SHOULD identify
the patient again, establish a new
security context and retry the
request.
NCPeH_Components_Specifications_v5.0.0 Page 77 of 84
An attesting (message) signature Sender or Receiver Invalid Both service consumer and
cannot be verified. (depending on the NCP service provider MUST write an
source of the failure) Signature audit trail entry. The service
provider MUST write a log entry
to the systems log. The system
administrator MUST process this
failure because it indicates a mis-
configuration or software error.
The use of SHA-1 as a digesting Sender or Receiver Weak Both service consumer and
method is not allowed. (depending on the Digest service provider MUST write an
source of the failure) audit trail entry. The service
provider MUST write a log entry
to the systems log. The service
consumer SHOULD re-issue the
request using SHA-2 for digesting
(message signature and assertion
signatures). The service provider
SHOULD use the same digesting
method for message signatures as
the service consumer.
The requestor provided a Confirmation Sender Weak Both service consumer and
Assertion which is not accepted by Authorisa service provider MUST write an
the service provider. tion audit trail entry. The HP
SHOULD trigger the issuance of
a new TRC assertion by NCP-B
and re-issue the request.
4.4.2.5 Audit Trail Considerations
In case of a general message handling error, NCP-B MUST write a full audit trail including
an error section as defined in chapter 4.4.3.
NCP-A MUST fill all audit trail information that could be decoded from the request
message.
If the requested operation cannot be decoded the Event Identification section of the HP
Assurance Audit Schema MUST be used as follows:
Field Name Value Constraints
EventID MUST be set to EV( EHDSI-00, "unknown", unknown )
EventActionCode MUST be set to E (execute).
EventDateTime Time of the occurrence of the failure
EventOutcomeIndicator Acc. RFC 3881. MUST be "4" for temporal or recoverable failures
and "8" for permanent failures.
If the HP identity cannot be decoded from the HP Identity Assertion, the Human Requestor
section of the HP Assurance Audit Schema MUST be used as follows:
Field Name Value Constraints
UserID Subject and issuer MUST be set to "unknown".
UserName MUST be set to "unknown"
UserIsRequestor "true"
RoleIDCode MUST be omitted.
NCPeH_Components_Specifications_v5.0.0 Page 78 of 84
If the patient identity cannot be decoded from the request, the Patient section of the HP
Assurance Audit Schema MUST be used as follows:
Field Name Value Constraints
ParticipantObjectTypeCode MUST be "1" (Person)
ParticipantObjectTypeCodeRole MUST be "1" (Patient)
ParticipantObjectIDTypeCode EV( 2, RFC-3881, "Patient Number" )
ParticipantObjectID MUST be "unknown"
5 eHealth DSI Profiles on Assertions and Certificates
eHealth DSI security mechanisms build upon SAML assertions and digital certificates as
core security objects. This chapter provides the respective eHealth DSI security object
profiles on SAML and X.509.
5.1 Cryptographic keys and Algorithms
All cryptographic keys and algorithms used for eHealth DSI and its implementations
MUST fulfil at least the requirements of [ECRYPT-II D.SPA.20] for Level-5 (Legacy
Standard) security. This corresponds to 96-bit security (symmetric equivalent).
For more information on cryptographic keys and algorithms, please check [Cryptographic
Algorithms].
5.2 HP Identity Assertion
The HP Identity Assertion is a profiled SAML v2.0 assertion. It has Sender-Vouches
configured as the confirmation method.
For more information on HP Identity Assertion, please check [SAML Profile].
5.3 Treatment Relationship Confirmation Assertion
The Confirmation Assertion is a profiled SAML v2.0 assertion. It attests the existence of
a treatment relationship between a patient and a HCPO and provides information about the
context of a certain treatment scenario.
For more information on Confirmation Assertion, please check [SAML Profile].
5.4 eHealth DSI Certificate Profiles
The following sections define how to set up eHealth DSI compliant X.509 certificates.
All certificates issued by a CA that are used for eHealth DSI are compliant X.509
certificates.
For more information on X.509 certificates, please check [X.509 Certificate Profiles].
6 Appendix
6.1 Coding Conventions (Normative)
6.1.1 Country Codes
Fields carrying country code values MUST be coded in accordance with [ISO 3166-
1] Alpha 2 codes.
NCPeH_Components_Specifications_v5.0.0 Page 79 of 84
Country Code (normative)
BE
BG
CZ
DK
DE
EE
IE
GR
ES
FR
HR
IT
CY
LV
LT
LU
HU
MT
NL
AT
PL
PT
RO
SL
SK
FI
SE
The following exceptions apply:
- For Greece the country codes "GR" and "EL" are allowed.
6.2 eHealth DSI Identifiers (Normative)
6.2.1 Uniform Resource Names (URNs)
The following URNs are defined:
NCPeH_Components_Specifications_v5.0.0 Page 80 of 84
URN Description
urn:epsos:names:wp3.4:subject:healthcare-facility-type Signals that a SAML attribute refers to the kind of
the healthcare facility assigned to the subject. See
[SAML Profile] for details.
urn:epsos:names:wp3.4:subject:clinical-speciality Signals that a SAML attribute refers to the kind of
the clinical speciality of the subject. See [SAML
Profile] for details.
urn:epsos:names:wp3.4:subject:on-behalf-of Signals that a SAML attribute refers to the
person who authorized the subject's access to
eHealth DSI services. See [SAML Profile] for
details.
6.2.2 eHealth DSI OIDS
The following OIDs are defined:
OID Type Values / Description
1.3.6.1.4.1.12559.11.10.1.3.2.2.1 Code list {"AdditionalDemographicsRequested",
"DemographicsQueryNotAllowed",
"EHICDataRequested", "InsufficientRights",
"PrivacyViolation", AnswerNotAvailable",
PolicyViolation", "PatientAuthenticationRequired"
}
1.3.6.1.4.1.12559.11.10.1.3.2.2.2 Code list {"Hospital", "Resident Physician", "Pharmacy",
"Other" }
1.3.6.1.4.1.12559.11.10.1.3.2.3.1 Code list { "eHDSI pivot" }
1.3.6.1.4.1.12559.11.10.1.3.2.4.1 Coded values 1: Opt-In Policy
2: Opt-Out Policy
6.2.3 eHealth DSI CDA Documents and Codes
eHealth DSI Consumer Display Name Coding Scheme Node Representation
Document
Patient Summary Patient Summary 2.16.840.1.113883.6.1 60591-5
eDispensation eDispensation 2.16.840.1.113883.6.1 60593-1
ePrescription ePrescription 2.16.840.1.113883.6.1 57833-6
eDispensation Discard eDispensation Discard 2.16.840.1.113883.6.1 DISCARD-60593-1
6.3 WSDLs
This section lists the WSDLs for the eHealth DSI messages. The schemas for the
messages and contained data types are available at the [eHDSI Technical Guidelines].
7 References
7.1 Normative References
[BSI TR-3116] Bundesamt für Sicherheit in der Informationstechnik: BSI -
Technische Richtlinie 03116 für die eCard-Projekte der
Bundesregierung. Version 3.0. April 2009.
NCPeH_Components_Specifications_v5.0.0 Page 81 of 84
[DICOM Sup95] Digital Imaging and Communications in Medicine (DI-
COM): Supple- ment 95 – Audit Trail Messages. 18. June
2004.
[ECRYPT-II D.SPA.20] Ecrypt-II NoE: ECRYPT2 Yearly Report on Algorithms
and Keysizes. September 2012.
http://www.ecrypt.eu.org/documents/D.SPA.20.pdf
[ETSI TS 102 231] ETSI Technical Committee Electronic Signatures and
Infrastructures (ESI), ETSI TS 102 231 Version 3.1.2 -
Electronic Signatures and Infrastructures (ESI): Provision
of harmonized Trust-service status Information, ETSI,
2009.
[FNISA CryptMech] Secrétariat général de la défense nationale: Mécanismes
cryptogra- phiques - Règles et recommandations
concernant le choix et le di- mensionnement des
mécanismes cryptographiques de niveau de ro- bustesse
standard. Version 1.1. December 2006.
[HITSP C80 2.0] Healthcare Information Technology Standard Panel :
HITSP C80 - Clinical Document and Message Terminology
Component v2.0. Ja- nuary 2010.
http://www.hitsp.org/Handlers/HitspFileServer.aspx?File
Guid=886331bd-2eba-4ded-a1ed-24b35ecebb6
[IHE ITI TF-1] IHE International: IHE IT Infrastructure (ITI) Technical
Framework. Volume 1: Integration Profiles. August 2009
https://www.ihe.net/Technical_Framework/upload/IHE_IT
I_TF_Rev9-0_Vol1_FT_2012-08-31.pdf
[IHE ITI TF-2a] IHE International: IHE IT Infrastructure (ITI) Technical
Framework. Volume 2a: Transactions. August 2009
https://www.ihe.net/Technical_Framework/upload/IHE_IT
I_TF_Rev9-0_Vol2a_FT_2012-08-31.pdf
[IHE ITI TF-2b] IHE International: IHE IT Infrastructure (ITI) Technical
Framework. Volume 2b: Transactions. August 2009
https://www.ihe.net/Technical_Framework/upload/IHE_IT
I_TF_Rev9-0_Vol2b_FT_2012-08-31.pdf
[IHE ITI TF-3] IHE International: IHE IT Infrastructure (ITI) Technical
Framework. Volume 3 – Document Content Profiles.
October 2008
https://www.ihe.net/Technical_Framework/upload/IHE_IT
I_TF_Rev9-0_Vol3_FT_2012-08-31.pdf
[IHE PIX/PDQ v3] IHE International: Patient Identifier Cross-Reference (PIX)
and Pa- tient Demographic Query (PDQ) HL7 v3. August
2009
NCPeH_Components_Specifications_v5.0.0 Page 82 of 84
[IHE XCPD] IHE International: Cross-Community Patient Discovery
(XCPD). Au- gust 2009.
[IHE XCF] IHE International: Cross-Community Fetch (XCF). August
2011
[IHE XUA++] IHE International: Cross-Enterprise User Assertion –
Attribute Exten- sion. Revision 1.0. August 2010.
[ISO OID] ISO/IEC 9834-1:2005: Procedures for the operation of OSI
Registra- tion Authorities: General procedures and top arcs
of the ASN.1 Ob- ject Identifier tree.
[NIST SP800.57/1] E. Barker, W. Barker, W. Burr, W. Polk, and M. Smid
(Eds.): NIST Special Publication 800-57: Recommendation
for Key Management – Part 1: General. March 2007.
[OASIS SAML 2.0] S. Cantor, J. Kemp, R. Philpott, and E. Maler, Assertions
and Proto- cols for the OASIS Security Assertion Markup
Language (SAML) V2.0, 2005.
[OASIS WS-Security 1.1] OASIS Security TC: Web Services Security - SOAP
Message Secu- rity 1.1 (WS-Security 2004). OASIS
Standard Specification, February 2006.
[RFC 1305] D. Mills: Network Time Protocol (Version 3) Specification,
Implemen- tation and Analysis. March 1992.
[RFC 2119] Bradner, S.: Key words for use in RFCs to Indicate
Requirement Levels; Harvard University, Boston,
Massachusetts, 1997.
[RFC 2246] T. Dierks, C. Allen: The TLS Protocol. Version 1.0.
January 1999.
[RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
Leach, T. Berners-Lee: Hypertext Transfer Protocol -
HTTP/1.1. June 1999.
[RFC 3881] Marshall, G.: Security Audit and Access Accountability
Message XML Data Definitions for Healthcare
Applications. Version 1.0. September 2004.
[RFC 5246] T. Dierks, E. Rescorla: The Transport Layer Security (TLS)
Protocol. Version 1.2. August 2008
[W3C SOAP 1.2] M. Gudgin et al: SOAP Version 1.2 Part 1: Messaging
Framework (Second Edition). W3C Recommendation.
April 2007. http://www.w3.org/TR/soap12-part1/
NCPeH_Components_Specifications_v5.0.0 Page 83 of 84
[W3C WSDL 1.1] E. Christensen, F. Curbera, G. Meredith, S Weerawarana:
Web Ser- vices Description Language (WSDL). Version
1.1. March 2001
[WSI BP 1.1] Web Services Interoperability Organization: WS-I Basic
Profile. Ver- sion 1.1. August 2004.
[WSI BP 2.0] Web Services Interoperability Organization: WS-I Basic
Profile. Ver- sion 2.0. Working Group Draft. October 2007.
[WSI SBP 1.1] Web Services Interoperability Organization: WS-I Basic
Security Pro- file. Version 1.1. January 2010.
[WS SecurityPolicy] A. Nadalin, et al.: WS-Trust. Version 1.3. March 2007.
http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-
1.3-os.pdf
[XML-EXC 1.0] J. Boyer et al: Exclusive XML Canonicalization. Version
1.0. W3C Recommendation, July 2002.
https://www.w3.org/TR/2002/REC-xml-exc-c14n-
0020718/
[W3C XMLDSig] F. Hirsch, P. Datta: XML Signature Best Practices. W3C
Working Draft. Februray 2010.
https://www.w3.org/TR/xmldsig-bestpractices/
NCPeH_Components_Specifications_v5.0.0 Page 84 of 84
PATIENT SUMMARY SERVICE
Introduction
A portal for cross-border Patient Summary (PS) exchange needs to be created. The portal is for
national use and only in Estonian. The portal will be used only by doctors and the main
workflow will be to identify a foreign person and view his / her Patient Summary.
The primary purpose of electronic patient summary id to provide the healthcare professional
(HP) with a data set of key health information at the point of care to deliver safe patient care
during unscheduled care. The content of the PS is not the entire medical record, but the essential
patient information to provide treatment.
The portal is only used in desktop version.
Main page without logging in
The portal is only for logged in users. Therefore, only the login option is available on the front
page of the portal.
The doctor logs in
Login is via Keycloak. In other words, the portal directs the user to Keycloak and this forwards
to TARA, where authentication takes place. Keycloak and TARA are separate applications.
After authentication, the user is authorized. This is done against the records of the Health
Board. These are backend queries.
In the design view, the user has a login button. The button directs it to other applications. When
the user returns to the PS portal, the user is already authenticated and authorized.
The portal displays possible countries
If the user (doctor) is logged in, he/she will be taken to the front page of the logged in view. The
user can:
See that he is logged in
Possibility to log out
Select the country whose patient is to be identified.
By logging in, the portal offers possible countries whose patients can be identified. In the first
stage, in addition to Estonia, the following countries will participate: Czech Republic, Portugal,
Malta, Croatia, Luxembourg. It must be taken into account that all European countries can
participate and the list of countries is inconclusive and increasing over time.
The doctor identifies the patient
Once the country is selected, the portal offers a different number of
patient identification fields according to the selected country. For example, a Finnish patient
can only be identified by personal identification code. For Austria, the patient is needed to
identify the patient's ID, name, first name and date of birth. Fields can be mandatory or
optional. Fields can have a required length (minimum and maximum length) or a required
format.
Examples:
When starting the search, it is possible to mark the symbol "hädaolukord". This feature is
indicated when the person is incapable of contact and failure to provide assistance endangers
the person's life. If the patient is conscious, the purpose of use is “ravi”.
When searching for a patient, usually only one patient comes up (but for some countries,
depending on the search criteria, several patients may come up).
Patients may not be found. An appropriate information will be given then.
The doctor opens the Patient Summary
If the patient is found, the user selects a specific patient and moves to the view of the patients
“patient summary” (patient summary query is launched when the user clicks “vali”. The answer
is a PS or an error message).
The PS document display is already designed and cannot be changed/designed. The existing
design opens in a portal window.
When displaying the PS, it must be possible to see who is the subject and when the PS was
created. It must also be possible to print the PS and open the original document. The original
document is always in the patient's home language and in PDF format.
The PS request may also give an error message or a warning message. In this case, the error
code and descriptions are displayed. Possible error messages are:
Condition and Severity Response Message Code
Status
The patient has not given consent to the requested Failure No Consent 4701
service. (ERROR)
Country A requests a higher authentication trust Failure Weak 4702
level than assigned to the HP ( eg password-based Authentication
login is not accepted for the requested
operation). (ERROR)
Either the security policy of the country A or a Failure Insufficient 4703
privacy policy of the patient (that was given in Rights
country A) does not allow the requested operation
to be performed by the HP (ERROR).
No patient summary is registered for the given Success No Data 1102
patient. (WARNING)
If PDF-coded patient summary is requested: Success Unsupported 4201
Country A does not provide the (optional) source Feature
coded version of the patient summary (INFO)
The query argument slots used by the service Failure Unknown 4202
consumer are not supported by the service Signifier
provider. (ERROR)
The requested encoding cannot be provided due Failure Transcoding 4203
to a transcoding error. (ERROR) Error
The service provider is un- able to evaluate the Failure Unknown Filter 4204
given argument values (ERROR).
Other
Test subjects
49406240016 Kati Piiriülene (27.a)
38507220018 Toomas Piiriülene (36.a)
49203030010 Mari Piiriülene-Läbu (29.a)
Hea koostööpartner!
Tervise- ja Heaolu Infosüsteemide Keskus teeb Teile käesolevaga ettepaneku esitada pakkumus
väikeostul „Turvatestimise ja testiraportite kontrollimine“.
1. Üldised nõuded
1.1. Hangitava töö sisu ja töö teostamise tingimused on kirjeldatud käesolevas pakkumuskutses ja
lisades Tehniline kirjeldus (lisa 1), nõuded pakkuja meeskonnale (lisa 2) ning hankelepingu
projektis (lisa 3).
1.2. Pakkumuse esitamisega kinnitab pakkuja, et nõustub üle võtma kõik hanke alusdokumentides
kirjeldatud tingimused ja teostama hangitava töö hankija poolt kirjeldatud tingimustel.
Alternatiivsete pakkumuste esitamine ei ole lubatav.
1.3. Pakkumuse esitamisega kinnitab pakkuja, et tal on kõik hankelepingu täitmiseks vajalikud
intellektuaalse omandi õigused.
1.4. Esitatud pakkumus peab olema jõus minimaalselt 90 kalendripäeva.
1.5. Pakkumuse esitamisega kinnitab pakkuja, et tema osas puuduvad RHS § 95 lg 1 sätestatud
kõrvaldamise alused. Kui hankijale saavad sellised kõrvaldamise alused teatavaks, on hankijal
õigus lükata pakkumus tagasi ja mitte sõlmida sellise pakkujaga hankelepingut.
1.6. Vajadusel märgib pakkuja pakkumuse esitamisel, milline osa tema pakkumuses on ärisaladus.
Kui pakkuja ei ole ärisaladust määranud, eeldab hankija, et pakkumuses ärisaladust ei sisaldu.
2. Vastavustingimused
2.1. Pakkumus tunnistatakse vastavaks, kui see on kooskõlas kõikide hankedokumentides esitatud
tingimustega. Hankija võib vastavaks tunnistada pakkumuse, milles ei esine hankija jaoks olulisi
sisulisi kõrvalekaldumisi hankedokumentides esitatud tingimustest.
2.2. Pakkumuse osana tuleb esitada:
2.2.1. Täidetud maksumusvorm (vt p 5);
2.2.2. Meeskonna andmed etteantud CV vormidel (vt lisa 2);
2.2.3. Lepingusse lisatavate kontaktide nimistu ja allkirjastaja informatsioon;
3. Pakkumuste hindamine
3.1. Hankija hindab kõiki vastavaks tunnistatud pakkumusi.
3.2. Edukaks tunnistatakse ja hankeleping sõlmitakse ühe madalaima kogumaksumusega
pakkumuse esitajaga (vt p 5 maksumusvorm).
3.3. Võrdsete pakkumuste puhul eelistatakse pakkumust, mis on hankijale ajaliselt varem saabunud.
4. Töid teostava meeskonna andmed
4.1. Meeskonnale seatud tingimused on kirjeldatud lisatud dokumendis „Nõuded pakkuja
meeskonnale“ (lisa 2).
4.2. Pakkuja esitab töid teostava meeskonna andmed etteantud CV vormidel ja andmekoosseisus,
juhindudes lisas 2 toodud tingimustest.
4.3. Kui meeskonnale seatud tingimused ei ole täidetud või hankija ei suuda esitatud andmete alusel
tingimustele vastamist üheselt tuvastada, on hankijal õigus tunnistada pakkumus
mittevastavaks.
5. Maksumusvorm
Kogumaksumus sisaldab kõiki töid vastavalt
tehnilises kirjelduses ja hankelepingu projektis
sätestatule ning on hankijale lõplik.
Kogumaksumus käibemaksuta
Kogumaksumus koos käibemaksuga
6. Pakkumuste tagasi lükkamise tingimused ja menetluse kehtetuks tunnistamine
6.1. Hankija lükkab tagasi ja jätab hindamata pakkumuse(d):
6.1.1. mis ei vasta hankedokumentides esitatud ühele või mitmele tingimusele või
pakkumusest või selgitustest ei ole võimalik üheselt tuvastada pakkumuse vastavust või
pakkuja on esitanud tõele mittevastavaid andmeid;
6.1.2. mis ei ole esitatud tähtaegselt.
6.2. Hankija võib väikeostu menetluse kehtetuks tunnistada, kui:
6.2.1. hankemenetluse toimumise ajal on hankijale saanud teatavaks uued asjaolud, mis
välistavad või muudavad hankemenetluse lõpule viimise hankedokumentides esitatud
tingimustel ebaotstarbekaks;
6.2.2. pakkumuse(d) ületavad hankija rahalisi vahendeid hankelepingu täitmiseks;
6.2.3. kui selleks on muu põhjendatud vajadus.
7. Pakkumuse esitamine
7.1. Pakkumuse esitamise tähtaeg: 23.08.2021 kell 12:00.
7.2. Pakkumuse palume esitada eesti keeles e-posti aadressile
[email protected].
7.3. Hanke alusdokumentide, hankelepingu projekti ja nendega seonduva lisainfo saamiseks palume
pöörduda enne pakkumuste esitamise tähtaega Tervise ja Heaolu Infosüsteemide Keskuse poole
aadressil
[email protected].
LISAD käesoleva pakkumusettepaneku juurde:
1. Tehniline kirjeldus koos lisadega
2. Nõuded pakkuja meeskonnale
3. Hankelepingu projekt
Tehniline kirjeldus
Turvatestimine ja testiraportite kontrollimine
1 Lepingu ese .......................................................................................................................... 2
1.1 Testitava süsteemi kirjeldus .......................................................................................... 2
1.1.1 Teenuse eesmärk ja olemus ...................................................................................... 2
1.1.2 Teenuse kasutajad................................................................................................. 2
1.1.3 Arhitektuur................................................................................................................. 3
1.1.4 Funktsionaalsus ..................................................................................................... 4
1.1.5 Integratsioon ............................................................................................................. 4
1.1.6 Testimise skoop..................................................................................................... 4
1.1.7 Lisa dokumendid ................................................................................................... 4
2 Mõisted .................................................................................................................................5
3 Tähtajad ................................................................................................................................5
4 Töö teostamise nõuded .........................................................................................................5
4.1 Turvatestimine ...............................................................................................................5
4.2 Testiraportite kontrollimine ...........................................................................................5
4.3 Testiraporti koostamine ................................................................................................ 6
4.4 Aruande koostamine ..................................................................................................... 6
5 Tööde dokumenteerimine .................................................................................................... 6
1
1 Lepingu ese
Lepingu esemeks on infosüsteemide käsitsi turvatestimine OWASP (Open Web Application
Security Project) ASVS (Application Security Verification Standard Project) versiooni 4.0 või kõrgem
tase 2 ja tellija teiste lepingupartnerite poolt teostatud testiraportite kvaliteedi kontrollimine ning
nende osas kirjaliku testiraporti ja aruande koostamine.
1.1 Testitava süsteemi kirjeldus
2017. aastal alustasid Euroopa riigid (sh Eesti) projektiga, mille eesmärgiks on realiseerida
Euroopas jätkusuutlik piiriülene terviseandmete vahetus. Eesmärk on realiseerida andmevahetus
kahe teenusena:
1) Digiretseptide ja väljamüügi andmete edastamine, mis võimaldab patsiendil välja osta
talle välja kirjutatud ravimid teises, teenusega kaetud riigi apteegis ning edastada
väljamüügi info patsiendi koduriigi retseptikeskusesse. Apteekrile võimaldatakse
teenusega retsept tõlgituna selle riigi keelde.
2) Patsiendi terviseandmete kokkuvõtete edastamine, mis võimaldab edastada patsiendi
olulisemate meditsiiniliste andmete kokkuvõtte teise riigi tervishoiutöötajatele ning
kuvada need andmed tervishoiutöötajatele kohalikku keelde tõlgituna, tagades seeläbi
kvaliteetsem ja efektiivsem ravi (eriti erakorralises olukorras).
Andmevahetus toimub Euroopa Komisjoni hallataval andmevahetusplatvormil OpenNCP (sh ka
Eesti-Soome vaheliseks terviseandmete vahetamiseks kasutatakse seda platvormi mitte X-teed).
1.1.1 Teenuse eesmärk ja olemus
1.1.1.1 Andmevahetusteenuse eesmärk on võimaldada riik-B tervishoiutöötajal
saada juhuvisiidi ajal tervishoiuteenust otsiva patsiendilt riigilt (riik-A) patsiendi
terviseandmetest kokkuvõte.
1.1.1.2 Patsiendi terviseandmete kokkuvõtte sisu ei kata tervet patsiendi
haiguslugu, vaid olulisemat teavet (kiir)abi osutamiseks (andmekoosseisud on
kirjeldatud siin: https://www.riigiteataja.ee/akt/120112018003?leiaKehtiv).
1.1.1.3 Patsient esitab välisriigi terviseasutusse tulles oma pildiga dokumendi,
millel on tema unikaalne isikukood või mingite täiendavate tunnuste kogum (nt.
sünnikuupäev + kood). Tegevuseks volitatud tervishoiutöötaja informeerib
patsiendi tema isikuandmete töötlemisest ning patsiendi nõusolekul sisestab need
vajalikud andmed patsiendi kohta (mis on riigi-A poolt eelnevalt kindlaks
määratud) ning saadab päringu riiki-A. Riik-A kontrollib päringut vastu võttes, kas
selliste tunnustega patsient eksisteerib ning kas tal on olemas kehtiv nõusolek
andmevahetuseks ning edastab vastuseks patsiendi üldandmed. Nende alusel on
tervishoiuteenuse osutajal võimalik veenduda, et patsiendi dokumendi ja päringu
vastuseks saadud andmed vastavad teineteisele.
1.1.1.4 Järgmise sammuna on tervishoiutöötajal võimalik pärida riigist-A
patsiendi saadaolevate terviseandmete kokkuvõtet. Riik-A koostab vastavalt
eHDSI nõuetele kokkuvõtte, mis edastatakse riiki-B ja kuvatakse omakorda
tervishoiutöötajale.
1.1.2 Teenuse kasutajad
1.1.2.1 Teenuse lõppkasutajad on vastavalt
https://www.riigiteataja.ee/akt/128122019014?leiaKehtiv kõik, kellel on tervise
2
infosüsteemi (TIS) andmetele juurdepääs võimaldatud (päringu tegemisel TIS kontrollib,
kas nad on registreeritud kui tervishoiutöötajad TAM registris
https://mveeb.sm.ee/Tervishoiutootajad/):
1.1.2.1.1 arst-resident eriarstiabi, üldarstiabi ja kiirabi osutamisel töötava eriarsti
juhendamisel ja vastutusel, kellel on vähemalt viieaastane töökogemus juhendatava
läbitavale praktilisele koolitusele vastavalt erialal;
1.1.2.1.2 arstiõppe üliõpilane, kes on läbinud õppekavas olevad 4 kursuse
kohustuslikud ained, arsti juhendamisel ja vastutusel;
1.1.2.1.3 arst, hambaarst, õe ja ämmaemanda tööpraktikal viibija, kes on
omandanud kvalifikatsiooni väljaspool Euroopa Majanduspiirkonna liikmesriiki või
Šveitsi, arsti, hambaarsti, õe või ämmaemanda juhendamisel ja vastutusel.
1.1.2.2 Tervishoiuteenusel osalejateks vastavalt kutse- või erialade pädevusele võivad
spetsialisti või tehnikuna tervishoiuteenuse osutamisel osaleda järgmised isikud:
1.1.2.2.1 füsioterapeut;
1.1.2.2.2 tegevusterapeut;
1.1.2.2.3 kliiniline psühholoog;
1.1.2.2.4 radioloogiatehnik;
1.1.2.2.5 kliiniline logopeed;
1.1.2.2.6 optometrist.
1.1.3 Arhitektuur
1.1.3.1 Osapooled Eestis:
1.1.3.1.1 Tervise ja Heaolu Infosüsteemide Keskus (kogu teenuse toimimine,
TARA);
1.1.3.1.2 Sotsiaalministeerium (sh piiriülese juhtrühm);
1.1.3.1.3 Ravimiamet (ravimiregister, ravimikäitlejate register) – võimaldab
kasutada teenuses riigis müügiloaga ravimite registrit;
1.1.3.1.4 Terviseamet (tervishoiutöötajad) – võimaldab autentida piiriülest
andmevahetusteenust kasutada soovivat arsti või õde vastavalt tema koodile;
1.1.3.1.5 Riigi Infosüsteemi Amet – teenuses kasutatakse olemasolevat X-tee
andmevahetuskihti, samuti pakub RIA kogu võrguteenust st laivõrgu ja TESTA
võrgu teenust;
1.1.3.1.6 Haigekassa – Eestis vastutav retseptikeskuse arenduse ja halduse eest,
võimaldab Eesti digiretseptide andmete edastamise teise riiki;
1.1.3.1.7 SK ID Solutions AS – sertifitseerimisteenus.
3
Joonis 1. Arhitektuur
1.1.4 Funktsionaalsus
1.1.4.1 Veebirakenduse PIPA skoop on pärida patsienti (kellel on antud nõusolek
piiriüleseks andmevahetuseks) ja vaadata leitud patsiendi terviseandmete kokkuvõtte
dokumenti (Eesti kui riik B).
1.1.4.2 Lisaks saab kontrollida seda, et patsient on lubanud piiriülese andmevahetust.
1.1.4.3 Veebirakendus PIPA sisaldavad funktsioonid on kirjeldatud dokumendis PS portal
scope en.docx.
1.1.5 Integratsioon
1.1.5.1 Tervishoiuasutus (TTO) autentimine ja autoriseerimine (SK Solustions) ja
Terviseameti registritest tegevuslubade ja tervishoiutöötajate kontroll.
1.1.5.2 Lisaks patsiendi nõusoleku kontroll (dokument UC143 Tahteavalduse koostamine
seoses terviseandmete juurdepääsu muutmisega.doc).
1.1.6 Testimise skoop
1.1.6.1 Testimisel on veebirakenduse PIPA funktsionaalsus (vt. 1.1.4) ja integratsioon (vt.
1.1.5).
1.1.6.2 Testandmed on loodud Eesti patsientidele (info on dokumendis PS portal scope
en.docx).
1.1.6.3 Dokumentatsioonile ja kasutusjuhtudele antakse ligipääs (viimased kasutuslood
on arendajal pooleli ja saadab need meile peale puhkust augusti alguses).
1.1.6.4 Testkeskkonna rakenduse PIPA logidele võimaldatakse ligipääs.
1.1.7 Lisa dokumendid
1.1.7.1 eHDSI Requirements Catalogue – ainult Patsient Summary (lühend PS) -
https://ec.europa.eu/cefdigital/wiki/display/EHOPERATIONS/1.+eHDSI+Requirements+C
atalogue .
4
1.1.7.2 System Architecture Specification – ainult Patsient Summary (lühend PS) –
System Architecture Specification_V2.1.0.pdf.
1.1.7.3 NCPeH Components Specification –
eHDSI_NCPeH_Components_Specifications_V5.0.0.RC_TC.docx.
1.1.7.4 PIPA UI disaini prototüüp – PIPA UI disaini prototüüb.zip.
2 Mõisted
2.1 Testiraport – sisaldab turvatestimise tulemust ja koostamise nõuded vt. 5.1.
2.2 Aruanne – sisaldab tellija lepingupartnerite testiraportite kvaliteedi kontrolli ülevaatust ja
koostamise nõuded vt. 5.2.
3 Tähtajad
3.1 Turvatestimisega alustab täitja lepingu jõustumisel. Testiraport tuleb tellijale esitada
lepingu sõlmimisest alates 3 nädala jooksul.
3.2 Testraportid kontrollimiseks edastab tellija täitjale pärast täitja testraporti kättesaamist.
Testraportite kontrollimise aruanne tuleb tellijale esitada testraportite saatmisest alates
2 nädala jooksul.
4 Töö teostamise nõuded
4.1 Turvatestimine
4.1.1 Selle hankelepingu alusel tellitakse turvatestimine. Testitava toote/lahenduse
omapärad ei pruugi automaatsete vahenditega testimisel tõepäraseid tulemusi anda ja
töö eesmärgiks on käsitsi turvatestimine.
4.1.2 Metoodilise turvatestimise käigus tuleb hinnata kõiki potentsiaalseid turvavigu ja
need tuleb aruandes detailselt välja tuua koos võimalike lahenduste ja soovitustega.
4.1.3 Metoodiline turvatestimise kontrollimine peab olema tehtud hankelepingu ajal
kehtiva OWASP ASVS versioon 4.0 või kõrgem tase 2 verifikatsiooninõuete käsitsi
turvatestimise kontrollimise verifikatsiooninõuetele testimise metoodika alusel.
4.1.4 Tööde käigus tuleb täitjal kontrollida, et testitava rakenduste võimalike
haavatavuste kaudu ei ole võimalik juurde pääseda andmetele, mis asuvad väljaspool
testitava rakenduse funktsionaalsust.
4.1.5 Turvatestimine hõlmab ka kasutajate horisontaalset ja vertikaalset õiguste
ületamise turvatestimise kontrollimist.
4.1.6 Täitja annab kriitilistest vigadest või vigadest, mille parandamine on keskmisest
ajamahukam, teada jooksvalt turvatestimise käigus, kasutades selleks krüpteeritud
turvalist andmekandjat või suhtluskanalit.
4.1.7 Turvatestimine viiakse läbi tellija testkeskkonnas. Vajadusel luuakse tellija ja täitja
süsteemide vahel turvatud kanal infosüsteemidele ligipääsemiseks.
4.1.8 Turvatestimise läbiviimiseks peab täitja esitama IP aadressid, millelt hakatakse
turvatestimist kontrollima. Tellija avab ligipääsud vastavalt IP aadressidelt testitavatele
süsteemidele ning teeb vajadusel vajalikud testkasutajad.
4.2 Testiraportite kontrollimine
4.2.1 Selle hankelepingu alusel tellitakse testiraportite kontrollimine. Testitava
toote/lahenduse omapärad ei pruugi automaatsete vahenditega testimisel tõepäraseid
tulemusi anda ja töö eesmärgiks on käsitsi testiraporti kontrollimine. Käsitsi testiraportite
kontrollimise all peab tellija silmas, et täitja tutvub talle kontrollimiseks saadetud
raportitega ja analüüsib neid, võrdleb enda leitud tulemustega ja toob välja, mis on
5
põhilised erisused ja/või puudujäägid ning mis oli positiivne. Täitja võib eeltoodule lisaks
märkida olulised asjaolud, mis talle kontrollimise käigus tähelepanu äratavad.
4.2.2 Kontrolli on vaja teostada tellija kahe (2) lepingupartneri poolt teostatud
testiraportite kvaliteedile.
4.3 Testiraporti koostamine
4.3.1 Turvatestimise lõppedes edastab täitja testitavate toodete/lahenduste testiraporti
tellijale krüpteeritud kujul.
4.4 Aruande koostamine
4.4.1 Testiraportite kvaliteedi kontrolli lõppedes edastab täitja testitavate
toodete/lahenduste aruande tellijale krüpteeritud kujul.
5 Tööde dokumenteerimine
5.1 Käsitsi turvatestimise järel peab täitja üle andma turvatestimise raporti, mis peab
sisaldama järgnevat infot:
5.1.1 millist testitava toote/lahenduse osa/komponenti ja millise tehnilise nõude vastu
testiti;
5.1.2 kuidas testitava toote/lahenduse osa/komponenti testiti, millist tehnilist nõuet
testiti ja kuidas tuvastatud potentsiaalset turvaviga saab reprodutseerida;
5.1.3 mis tulemus saadi, hinnata tuleb kõiki potentsiaalseid turvavigasid ja määrata
veale kriitilisus;
5.1.4 detailselt potentsiaalseid turvavigu ning välja tuua võimalike lahenduste ja
soovitustega parandusettepanekud.
5.2 Käsitsi testiraportite kontrollimise järel peab täitja üle andma aruande, mis peab sisaldama
järgnevat infot:
5.2.1 Hinnang kahele testiraportile, kas nendes on arvestatud kõiki turvatestimise
nõudeid punktides 4.1.2, 4.1.3, 4.1.4 ja 4.1.5.
5.2.2 Hinnang kahele testiraportile, kas nendes on täidetud testiraporti
dokumenteerimise nõudeid 5.1.1, 5.1.2, 5.1.3 ja 5.1.4.
5.2.3 Lisa info hinnangule, mida ei saa välja tuua nõuetes 5.2.1 ja 5.2.2.
5.2.4 Aruandes peavad olema mõlema kontrollimiseks saadetud testiraportite
kvaliteedi kontrolli kohta käiv info eristatav üksteisest ja täidetud peavad olema
nõuded 5.2.1, 5.2.2 ja 5.2.3.
6
PROJEKT
HANKELEPING nr.....
Tervise ja Heaolu Infosüsteemide Keskus (edaspidi tellija), registrikood 70009770, aadress Uus-
Tatari 25, 10134 Tallinn, keda esindab põhimääruse alusel direktor Katrin Reinhold ja
________, (edaspidi täitja), registrikood______, aadress______, keda esindab ______,
edaspidi koos või eraldi nimetatud ka pool või pooled, sõlmisid tellija läbiviidud väikeostu
„Turvatestimise ja testiraportite kontrollimine“ käesoleva hankelepingu (edaspidi leping)
alljärgnevas:
1. Lepingu eesmärk ja ese
1.1. Tellija poolt korraldatud väikeostu „Turvatestimise ja testiraportite kontrollimine“ alusel
sõlmitud lepingu eesmärk on infosüsteemide käsitsi turvatestimise OWASP (Open Web
Application Security Project) ASVS (Application Security Verification Standard Project)
versiooni 4.0 või kõrgem tase 2 ja testiraportite (kahe pakkuja testiraportid) üle
kontrollimine.
1.2. Lepingu esemeks on turvatestimise ja testiraportite kontrollimise teenus (edaspidi teenus).
Teenuse kirjeldus, lepingu täitmise tingimused, teenuse tulem ja konkreetsed
realiseerimistähtajad on sätestatud tehnilises kirjelduses.
1.3. Leping jõustub sõlmimisel ja kehtib kuni poolte poolt oma kohustuste täitmiseni.
2. Üldtingimused
2.1. Lepingu juurde kuuluvateks lahutamatuteks osadeks loetakse kõik lisad ja väikeostu
alusdokumendid ning täitja esitatud pakkumus ja pooltevahelised kirjalikud teated, mida
lepingu lisadena eraldi ei allkirjastata.
2.2. Lepingu täitmisel lähtutakse lepingu ja selle juurde kuuluvate lahutamatute osade
tingimustest.
2.3. Pooled teevad lepingu täitmiseks ja lepingu eesmärkide saavutamiseks koostööd. Pooled
kohustuvad tegema kõik vajalikud pingutused, et täita leping õigeaegselt ja vastavalt
kokkulepetele.
2.4. Pooled võivad kokkuleppel kaasata lepingu täitmise kvaliteedi või teenuse vastuvõtmise
hindamiseks mõlema poole poolt aktsepteeritud sõltumatu eksperdi või audiitori. Kui
tellija hinnang teenuse kvaliteedile või teenuse vastuvõtmisele osutub ekspertiisi
tulemusel põhjendamatuks, hüvitab tellija ekspertiisikulud. Kui ekspertiis kinnitab tellija
hinnangut kvaliteedile või teenuse vastuvõtmisele, jäävad ekspertiisikulud täitja kanda.
2.5. Täitja kohustub osutama teenust kvaliteetselt ning vastavalt valdkonna headele tavadele
ja praktikale. Tellija eeldab, et täitja on valdkonna professionaal, kes saab aru ning võtab
teadlikult enda kanda lepingu funktsionaalsete ja mittefunktsionaalsete nõuete
täidetavuse ja tulemuse saavutatavuse riski. Sellest tulenevalt laieneb täitjale ka selliste
1
teenuse osutamise kohustus, mida ei ole lepingus kokku lepitud, kuid mis oma olemusest
lähtuvalt kuuluvad lepinguga seotud teenuse hulka. Nimetatud teenuse osutamine ei kuulu
eraldi tasustamisele ning täitja osutab kirjeldatud teenuse lepingu täitmise raames.
2.6. Kui lepingu täitmisel tekivad täitja ja tellija vahel erimeelsused, lähtutakse lepingu
eesmärkidest tellija seisukohalt.
2.7. Poolel on õigus teha teisele poolele ettepanekuid lepingu täitmise kvaliteedi tõstmiseks.
Kui pool on esitanud teisele poolele lepingu täitmisega seotud küsimuses päringu, on pool
kohustatud sellele sisuliselt reageerima (asjakohast tagasisidet andma) võimalikult kiiresti,
kuid hiljemalt 3 tööpäeva jooksul, v.a juhul kui pöördumine nõuab täiendavat analüüsi või
info süstematiseerimist.
2.8. Pooltel on kohustus osa võtta töökoosolekutest lepingu täitmise käigus tekkinud
probleemide lahendamiseks ja infovahetuseks tellija juures kohapeal või virtuaalselt.
Töökoosolekutel osalemist tellija ei tasusta, v.a juhul, kui lepingus on kokku lepitud teisiti.
2.9. Lepingu täitmise keel on eesti keel, muuhulgas on see ka lepingu sõlmimise,
töökoosolekute jm suhtluse ning teenuse dokumenteerimise keel.
2.10. Nõuded dokumentatsioonile tulenevad tehnilisest kirjeldusest ja tellija poolt kodulehel
avaldatud vastavatest nõuetest.1
3. Poolte õigused ja kohustused
3.1. Täitja kohustub:
3.1.1. osutama teenust lepingus kokkulepitud tingimustel ja ulatuses, sh tagama teenuse
õigeaegse alustamise, osutamise, valmimise ja tellijale üleandmise;
3.1.2. tagama lepingu täitmiseks vajalike ressursside olemasolu, sh tagama lepingu täitmise
kõrge professionaalse taseme ning vajaliku tehnoloogia ja metoodikate väga hea
tundmise ning osutatud teenuse dokumenteerimise vastavalt tellija suunistele, samuti
omama lepingu täitmiseks sobivaid keskkondi, koos kõige sinna juurde kuuluvaga, sh
kasutatava tarkvara litsentsid, või kasutama tellija olemasolevaid jagatud keskkondi;
3.1.3. tegema koostööd kolmandate osapooltega pidades silmas tellija vajadusi (nt
äritellijaga, teiste tellija arenduspartneritega jne);
3.1.4. teavitama viivitamatult tellijat lepingu täitmist takistavatest asjaoludest, mis segavad
lepingus toodud teenuse osutamist ja tähtaegadest kinnipidamist või püstitatud eesmärgi
saavutamist;
3.1.5. andma selgitusi ja konsultatsioone osutatud teenuse kohta;
3.1.6. juhinduma tellija suunistest lepingu eesmärkide saavutamisel, pöördudes selleks
vajadusel tellija poole;
3.1.7. lepingu täitmise käigus tuvastatud vastuolu korral teavitab täitja vastuolu esinemisest
tellijale viivitamatult;
3.1.8. osutama tellijale osutatud teenuse osas tuge, sh pakkuma konsultatsiooni kuni
garantiiaja lõpuni;
3.1.9. täitma kõiki tellija juures kehtivaid ja õigusaktidest tulenevaid andmekaitsealaseid ja
andmete turvalisust puudutavaid eeskirju, kui need on täitjale teatavaks tehtud;
3.1.10. osutama teenust kuni kokku lepitud tulemi üleandmise ja vastuvõtmiseni oma
ressursside arvel, kui pooled ei ole kokku leppinud teisiti;
1
https://www.tehik.ee/meist/meistnouded-arendustele/
2
3.1.11. teostama tööd kvaliteetselt ning vastavalt valdkonna headele tavadele ja praktikale.
Tellija eeldab, et täitja on valdkonna professionaal, kes saab aru ning võtab teadlikult enda
kanda lepingu funktsionaalsete ja mittefunktsionaalsete nõuete täidetavuse ja tulemuse
saavutatavuse riski. Sellest tulenevalt laieneb täitjale ka selliste tööde tegemise kohustus,
mida ei ole lepingus kokku lepitud, kuid mis oma olemusest lähtuvalt kuuluvad lepinguga
seotud tööde hulka. Nimetatud tööde tegemine ei kuulu eraldi tasustamisele ning täitja
teostab kirjeldatud tööd lepingu täitmise raames.
3.1.12. teavitama kirjalikku taasesitamist võimaldavas vormis oma mistahes huvist, mis võib
põhjustada lepingu täitmisel huvide konflikti tekkimist.
3.2. Täitjal on õigus:
3.2.1. saada lepingu täitmise eest lepingus kokkulepitud ulatuses ja korras tasu;
3.2.2. kasutada lepingu täitmisel alltöövõtjaid, kooskõlastades alltöövõtjate kasutamise
eelnevalt tellijaga. Alltöövõtjate tegevuse ja tegevusetuse eest vastutab tellija ees täitja;
3.2.3. anda arve esitamise õiguse üle kolmandale isikule lepingu muudatust sõlmimata, kui
ta on tellijale esitanud sellekohase teate.
3.3. Tellija kohustub:
3.3.1. tasuma täitjale lepingu täitmise eest lepingus kokkulepitud ulatuses ja korras;
3.3.2. tagama täitjale ligipääsu (sh kaugjuurdepääsu) lepingu täitmiseks oluliste tellija
hallatavate keskkondade olemasolu ja toimimise;
3.3.3. võtma aktiga vastu täitja poolt üle antud puudusteta teenuse mõistliku aja jooksul;
3.3.4. teavitama täitjale üle antud teenuses esinevatest puudustest ja andma puuduste
kõrvaldamiseks mõistliku täiendava tähtaja, kui tähtaeg ei tulene muudest kokkulepetest.
3.4. Tellijal on õigus:
3.4.1. kontrollida jooksvalt lepingu täitmist ja anda täitjale selleks suuniseid või nõuda
täitjalt sellekohast informatsiooni;
3.4.2. keelduda osaliselt või täielikult tasu maksmisest, kui täitja ei teostanud
nõuetekohaselt teenust kokku lepitud tähtajaks ja täitja poolne rikkumine ei ole
objektiivselt põhjendatud (nt on tegemist objektiivse põhjendusega, kui lepingu täitmine
on viibinud tellija või kolmanda osapoole tegevuse tõttu);
3.4.3. kaasata lepingu täitmiseks tellija poolel kolmandaid osapooli, nt teisi riigiasutusi.
Kolmanda osapoole kaasamine tellija poolt ei ole käsitletav lepingu muutmisena
riigihangete seaduse mõttes.
4. Teenuse osutamise, tulemi üleandmise ja vastuvõtmise kord
4.1. Täitja annab teenuse tulemi üle kahes osas vastavalt lisas 1 sätestatud tähtaegadele.
Tulemina antakse üle nõuetekohane dokumentatsioon, intellektuaalomandi õigused ja
muu lepingus kokkulepitu.
4.2. Teenuse tulemid ja vajadusel teenuse teostamise käik dokumenteeritakse ning hallatakse
tellija dokumendihalduskeskkonnas ja/ või koodihalduskeskkonnas (näiteks Confluence,
GitLab, SVN).
4.3. Täitja annab tulemi üle omalt poolt allkirjastatud aktiga.
4.4. Tellija võtab teenuse vastu akti allkirjastamisega pärast tulemi kvaliteedi kontrollimist.
4.5. Teenus loetakse nõuetekohaselt teostatuks, kui teenus vastab lepingule ja teenus on
aktiga tellija poolt vastu võetud.
3
4.6. Tellija võib teenuse vastu võtta, kui teenuses esineb üksikuid ja tellija jaoks väheolulisi
pisivigasid, mis fikseeritakse aktis. Tellija poolne pisivigadega teenuse vastuvõtmine ei
vabasta täitjat kohustusest vead kõrvaldada ning üle anda vigadeta teenust. Tellijal
määrab mõistliku tähtaja pisivigade parandamiseks.
4.7. Tellijal on õigus keelduda teenuse vastuvõtmisest kui teenus ei vasta esitatud nõuetele.
4.8. Kui tellija esitab vastuväited teenusele, peab täitja teenuse parandama tellija poolt
määratud mõistliku tähtaja jooksul. Kui täitja ei ole tellija antud tähtaja jooksul
kõrvaldanud avastatud vigu, võib tellija teenuse ise parandada või lasta seda teha
kolmandatel isikutel ja nõuda täitjalt selleks tehtud mõistlike kulutuste hüvitamist.
5. Täitja meeskond
5.1. Lepingu täitmisel osalevad pakkumuses esitatud meeskonnaliikmed, v.a juhul, kui täitjast
mittesõltuval asjaolul ei ole seda võimalik teha ja meeskonnaliige on asendatud tellija
kirjalikku taasesitamist võimaldaval nõusolekul uue, hanke tingimustele vastava
meeskonnaliikmega.
5.2. Kui ilmneb vajadus vahetada meeskonnaliige, kelle kogemusi hankemenetluse käigus
hinnati, asendatakse isik samaväärse meeskonnaliikmega tellija kirjalikku taasesitamist
võimaldava nõusoleku saamisel. Kui hankemenetluses ei hinnatud meeskonnaliikmeid,
võib meeskonnaliikme asendada isikuga, kes vastab hanke tingimustele, saades selleks
tellijalt kirjalikku taasesitamist võimaldava nõusoleku.
5.3. Täitja asendab tellija nõudmisel ja määratud tähtajaks meeskonnaliikme, kui isik osutub
tellija põhjendatud arvamuse kohaselt lepingujärgsete ülesannete täitmiseks
ebakompetentseks või ebasobivaks või kui tema lepingujärgsete ülesannete täitmine
kahjustab pidevalt lepingu täitmist. Täitja kannab kõik asendusega kaasnevad kulud.
5.4. Täitja võib tellija kirjalikku taasesitamist võimaldaval nõusolekul kaasata täiendavaid
meeskonnaliikmeid, kui riigihankes pakkumusega esitatud meeskonnaliikmed on tellitud
teenuse täitmisega hõivatud. Täiendavalt kaasatud meeskonnaliikmed peavad vastama
rollile seatud hanketingimustele.
5.5. Täitja garanteerib riigihankes isikuliselt mitte välja toodud meeskonnaliikmete olemasolu
ja vastavuse riigihankes nõutud kvalifikatsioonile/varasemale töökogemusele ning esitab
teenuse osutajad nimeliselt lepingu sõlmimisel.
6. Lepingu hind
6.1. Tellija tasub lepingu alusel tellitud teenuse eest kokku ühes osas _____ (maksumus
sõnadega) eurot käibemaksuta.
6.2. Teenus antakse üle järgmistes etappides:
6.2.1. turvatestimine;
6.2.2. testimisraportite kontrollimise aruanne.
6.3. Täitjal on õigus esitada e-arve pärast mõlema teenuse aktiga vastu võtmist. Arvel tuleb
märkida riigihanke nimetus, lepingu number ning kontaktisiku andmed.
6.4. Arve tasumiseks annab täitja minimaalselt tähtaja 21 kalendripäeva alates arve
laekumisest.
4
7. Intellektuaalomand
7.1. Täitja kinnitab lepingu allkirjastamisega, et talle kuuluvad lepingu täitmiseks vajalikud
autoriõigused, litsentsid ja muud intellektuaalse omandi õigused, mis on vajalikud lepingu
järgsete teenuse osutamiseks ja õiguste loovutamiseks tellijale ning nende suhtes ei ole
õigusi ega nõudeid kolmandatel isikutel.
7.2. Tasu intellektuaalse omandi varaliste õiguste loovutamise ja litsentsi andmise eest sisaldub
lepingu hinnas.
7.3. Täitja loovutab tellijale lepingu täitmise käigus loodud kõik mistahes vormis teenuse osad,
mis puutuvad teenuse osutamisse, kõik autori varalised õigused ning annab lihtlitsentsi
autori isiklikele õigustele koos all-litsentsi andmise õigusega kogu autoriõiguste kehtivuse
ajaks ilma geograafiliste piiranguteta teenuse üleandmise hetkest, loobudes sellega
lepingu alusel üle antud originaalteoste osas õiguste kasutamisest.
7.4. Täitja tagab, et isiklikud õigused on ilma täitja nõusolekuta teostatavad muuhulgas
järgnevas ulatuses:
7.4.1. tellijal on õigus teenuse tulemit kasutada mis tahes eesmärgil ja viisil;
7.4.2. tellijal või tellija tellimusel kolmandatel isikutel on õigus teha üle antud teenuse
tulemis muudatusi ning neid täiendada;
7.4.3. tellijal või tellija tellimusel kolmandatel isikutel on õigus osutatud teenust muuta või
teenusele lisada tellija või kolmandate isikute poolt loodud teenuse tulemit;
7.4.4. teenuse üleandmisega tellijale kinnitab täitja, et teenuse tulem on üldsusele
avaldamiseks valmis.
7.5. Täitja tagab tellijale kõik vajalikud õigused lepingu täitmise käigus loodavate teenuse
kontrollimiseks ka ajal, mil teenus on vastuvõtutestimiseks üle antud, kuid ei ole veel tellija
poolt aktiga vastu võetud.
7.6. Täitja on kohustatud tagama intellektuaalse omandi õiguste (eeskätt autoriõiguste)
olemasolu ja kehtivuse, samuti nende ülemineku tellijale viisil, mis võimaldab tellijal
lepingu lõppedes üle võtta täitja funktsioonid.
7.7. Täitja kohustub lahendama kõikvõimalikud lepingujärgsete teenusega seotud
intellektuaalse omandi õigustest tekkivad vaidlused kolmandate isikute või oma töötajate
või koostööpartneritega.
7.8. Kõik tellijale kaasnevad otsesed ja kaudsed kahjud, mis tulenevad sellest, et kolmandal
isikul on või väidetavalt on varalisi või mittevaralisi intellektuaalsest omandist tulenevaid
õigusi lepingu alusel üle antavate intellektuaalse omandi objektide suhtes, kannab täitja.
7.9. Selles alapeatükis kirjeldatud õigused ja litsentsid loetakse tellijale lõplikult üle läinuks
pärast teenuse vastuvõtmist.
8. Vastutus
8.1. Pool vastutab oma lepingulise kohustuse rikkumise eest, välja arvatud juhul, kui rikkumine
on vabandatav vääramatu jõu või muu objektiivse asjaolu tõttu. Nimetatud asjaolu
esinemist peab tõendama pool, kes sellele tugineda soovib.
8.2. Pool vastutab oma lepingulise kohustuse rikkumise eest, mis tuleneb tema poolt lepingu
täitmisse kaasatud isikute tegevusest.
8.3. Pool ei vastuta lepinguliste kohustuste rikkumise eest, mis tulenes teise poole kohustuste
rikkumisest või kolmandate isikute tegevusest või tegemata jätmistest. Kui tellija viivitab
5
omapoolsete kohustuste täitmisega ja nende kohustuste mittetähtaegne täitmine ei
võimalda täitjal omapoolseid kohustusi tähtaegselt täita, pikendatakse teenuse
üleandmise tähtaega vastava aja võrra. Nimetatud asjaolu esinemist peab tõendama pool,
kes sellele tugineda soovib.
8.4. Kohustuse rikkumisel on teisel poolel õigus kasutada kõiki seadusest või lepingust
tulenevaid õiguskaitsevahendeid vastavalt võlaõigusseadusele.
8.5. Poolte rahaline koguvastutus on piiratud lepingu kogumaksumusega, kuid see piirang ei
kehti süülisel rikkumisel, sh süülisel rikkumisel seoses intellektuaalomandiõiguse või
andmekaitsealaste kohustustega.
8.6. Tasu maksmisega viivitamisel on täitjal õigus nõuda viivist võlaõigusseaduses sätestatud
määras konkreetse teenuse eest maksmisele kuuluvast tasust iga tasumisega viivitatud
kalendripäeva eest. Viivise maksimaalne määr on 25% konkreetsete teenuse eest
tasumisele kuuluvast kogusummast. Viivise nõue tuleb esitada allkirjastatult.
8.7. Täitja poolse lepinguliste kohustuste rikkumisena käsitletakse eeskätt olukorda, kus üle
antud teenus ei vasta osaliselt või täielikult lepingu tingimustele või esineb muid täitja
poolseid lepingu rikkumisi.
8.8. Kui täitja rikub lepingulist kohustust, on tellijal õigus nõuda leppetrahvi tasumist, mille
suuruseks on 200 eurot iga rikkumises oldud kalendripäeva eest, kuid mitte rohkem kui
25% lepingu kogumaksumusest. Kui lepingu täitmine on kokku lepitud etappide kaupa, siis
mitte rohkem kui 25% etapi kogumaksumusest.
8.9. Juhul kui täitja poolsetest viivitustest tingitult ei ole teenuse tulemi kasutuselevõtt enam
realistlik või vajalik, on tellijal õigus lepingust taganeda vastavalt võlaõigusseaduse § 116
lõikele 1 ning täitja on kohustatud tegema juba makstud osa eest tellijale tagasimakse.
8.10. Lepingu olulise rikkumise korral on tellijal õigus esitada täitjale leppetrahvi nõue 10 000
eurot iga rikkumise eest. Täitja poolse olulise lepingu rikkumise korral ei pea tellija
määrama täitjale lepingu täitmiseks võlaõigusseaduse §-s 114 nimetatud täiendavat
tähtaega ning tellijal on muu hulgas õigus leping üles öelda või lepingust taganeda.
8.11. Oluliseks rikkumiseks loevad pooled lisaks võlaõigusseaduses sätestatule muuhulgas:
8.11.1. mõjuva põhjuseta teenuse vastu võtmata jätmine või täitmisele mitte asumine;
8.11.2. valeinfo esitamine;
8.11.3. lepingu täitmiseks vajalike õiguste (sealhulgas load, litsentsid, intellektuaalse omandi
õigused) puudumine;
8.11.4. intellektuaalse omandi õiguste ja nende kasutamise tingimuste rikkumine;
8.11.5. korduv (vähemalt kahel korral) meeskonnaliikme asendamine isikuga, kes ei vasta
kokku lepitud nõuetele või meeskonnaliikme asendamine ilma tellija eelneva vähemalt
kirjalikku taasesitamist võimaldavas vormis antud nõusolekuta;
8.11.6. konfidentsiaalsuskohustuse rikkumine;
8.11.7. lepingujärgsete kohustuste korduvat (vähemalt kahel korral) täitmata jätmist;
8.11.8. tähtaegselt lepingu täitmata jätmist selliselt, et tehnilises kirjelduses sätestatud
eesmärgi täitmine ei ole enam tähtaegselt realistik ja/või täitja poolse tegevuse või
tegevusetuse tõttu ei ole võimalik enam kasutada lepingu rahastamiseks ettenähtud
vahendeid;
8.11.9. lepingujärgsete kohustuste üleandmine kolmandale isikule ilma tellija
digiallkirjastatud nõusolekuta.
6
8.12. Teenuse vastuvõtmine tellija poolt ei vabasta ega vähenda täitja vastutust lepingu
rikkumise eest.
8.13. Kui täitja ei täida lepingut nõuetekohaselt ja selle alusel teeb rakendusasutus toetuse
vähendamise või tagasinõude otsuse, on tellijal õigus täitjalt tagasi nõuda
mitteabikõlbulikud kulud tagasimakse nõude ulatuses.
8.14. Leppetrahvi nõude kohustub tellija esitama mõistliku aja jooksul, kuid mitte hiljem kui 3
kuu jooksul alates päevast, mil tellija sai teadlikuks leppetrahvi nõude aluseks olevast
asjaolust. Leppetrahvi nõude vaidlustamine ei vabasta täitjat selle maksmise kohustusest
enne vastava kohtuotsuse jõustumist.
8.15. Täitja on kohustatud leppetrahvi tasuma 2 nädala jooksul alates tellija poolt vastava nõude
esitamisest, kui leppetrahvi nõudes ei ole määratud teisiti.
8.16. Tellijal on õigus tasaarvestada leppetrahvi summa täitjale lepingu täitmise eest tasumisele
kuuluvate maksetega. Tasaarvestamise korral ei rakendata leppetrahvi tasumise
kohustust.
9. Konfidentsiaalsuskohustus
9.1. Pooled kohustuvad vastastikku hoidma salajas ja mitte avaldama kolmandatele isikutele
ükskõik missugust konfidentsiaalseks peetavat informatsiooni, mis on saadud teiselt
poolelt lepingu alusel tellitud teenuse osutamise käigus või muul viisil või juhuslikult.
9.2. Täitja peab võtma kasutusele isikuandmete ja tellija infosüsteemide kaitseks
organisatsioonilisi, füüsilisi ja infotehnilisi turvameetmeid, lähtudes muuhulgas
kehtivatest õigusaktidest. Täitja ei tohi töödelda arenduskeskkondades reaalseid ja
isikustatud andmeid.
9.3. Juhul, kui lepingu täitmise raames osutub vajalikuks isikuandmete töötlemine, lepivad
pooled isikuandmete töötlemise tingimused kokku, juhindudes isikuandmete kaitse
üldmääruse2 artiklis 28 kirjeldatust.
9.4. Konfidentsiaalse informatsiooni all mõistavad pooled igasugust informatsiooni (sh
ärisaladusi, isikuandmeid, lepingute andmeid, infosüsteeme, turvasüsteemide kirjeldusi,
riistvara ja tarkvara kirjeldusi, pakkumuse kirjeldusi, kasutatavaid tehnoloogiaid,
spetsifikatsioone jms), mis on saadud seoses lepingu täitmisega ja mille sattumine
kolmandate isikute kätte võib pooltele põhjustada turvariske või majanduslikku kahju või
kolmandate isikute (eelkõige tellija klientide) eraelu puutumatuse rikkumist. Kahtluse
korral eeldatakse informatsiooni konfidentsiaalsust.
9.5. Konfidentsiaalne informatsioon ei hõlma endas informatsiooni, mille avalikustamise
kohustus tuleneb õigusaktidest või mille avalikustamiseks pooled on andnud nõusoleku.
9.6. Pooled võivad edastada konfidentsiaalset informatsiooni ainult nendele isikutele, kes on
tellitud teenuse osutamisega otseselt seotud. Täitja kohustub tagama, et isikud, keda ta
oma kohustuste täitmisel kasutab, oleksid konfidentsiaalsuse kohustusest teadlikud ning
nõudma nimetatud isikutelt selle kohustuse tingimusteta ja tähtajatut täitmist. Vastutus
konfidentsiaalsuskohustuste täitmise eest lasub täitjal.
9.7. Pooled ei kasuta lepingu täitmisel neile teatavaks saanud konfidentsiaalset informatsiooni
oma huvides ega muul eesmärgil, kui tellitud teenuse osutamiseks.
2
Euroopa Parlamendi ja Nõukogu määrus nr (EL) 2016/679.
7
9.8. Konfidentsiaalsuskohustuse rikkumise korral kohustub täitja hüvitama kõik kahjud, mis
sellise rikkumise tagajärjel tellijale või kolmandale isikule tekkisid, sõltumata sellest, kas
rikkumine pandi toime lepingu kehtivuse ajal või lepinguliste kohustuste lõppemise
järgselt.
9.9. Täitja on teadlik, et leping ja kokkulepped on avalikud, v.a osades, mis on avaliku teabe
seadusest tulenevatel alustel määratud asutusesiseseks kasutamiseks või märgitud täitja
poolt ärisaladuseks.
9.10. Konfidentsiaalsuskohustus kehtib tähtajatult.
10. Lepingu kehtivus
10.1. Leping jõustub sõlmimisel.
10.2. Lepingut muudetakse poolte vahelise kirjaliku kokkuleppega lepinguga samas vormis,
arvestades riigihangete seaduses toodut.
10.3. Kui mõni lepingu tingimus peaks osutuma osaliselt või täielikult kehtetuks või täitmisele
mittepööratavaks, ei mõjuta see teiste lepingu tingimuste kehtivust ning lepingu ülejäänud
tingimused jäävad kehtima ja täitmisele pööratavaks. Sel juhul võimalusel asendatakse
kehtetu või täitmisele mittepööratav tingimus õiguslikult kehtiva tingimusega, mis on
sisult võimalikult lähedane poolte kavatsustele ja kehtetu tingimuse majanduslikule
mõjule.
10.4. Tellija võib lepingu igal ajal sõltumata põhjusest lõpetada, teatades sellest kirjalikku
taasesitamist võimaldavas vormis ette 30 päeva. Lepingu lõpetamine vabastab pooled
käesoleva lepinguga sätestatud kohustuste täitmisest.
10.5. Tellijal on õigus leping ühepoolselt etteteatamistähtaega järgimata üles öelda või sellest
taganeda, kui täitja on oluliselt lepingut rikkunud või juhul, kui täitja:
10.5.1. suhtes on algatatud pankrotimenetlus;
10.5.2. pankrot on välja kuulutatud;
10.5.3. täitja varad arestitakse;
10.5.4. täitja finantsseisund halveneb tellija põhjendatud hinnangul oluliselt ja see muudab
lepingu nõuetekohase täitmise vähetõenäoliseks.
10.6. Lepingu lõppemisel mistahes alusel ja põhjusel on täitja kohustatud tellijale üle andma
kogu teenusega seotud informatsiooni ja dokumentatsioon (nii digitaalselt kui
paberkandjal, samuti informatsiooni, mida ei ole salvestatud eelnimetatud
infokandjatele). Üleantav info ja dokumentatsioon peab olema süstematiseeritud. Täitja
on kohustatud andma ammendavad selgitused eelkirjeldatud informatsiooni haldamise ja
kasutamise kohta, tehes seda tellija nõudmisel kirjalikult.
11. Teadete edastamine ja kontaktisikud
11.1. Teadete edastamine toimub üldjuhul e-posti teel, lähtudes kodukorra tingimustest selle
olemasolul. E-posti teel, sh digitaalselt allkirjastatud dokumentide, saatmise korral
loetakse teade kättesaaduks kohale jõudmise teates märgitud kellaajal või e-kirjas
näidatud saatmise kellaajal.
11.2. Juhul, kui teate edastamisel on olulised õiguslikud tagajärjed, peab teade olema edastatud
digiallkirjastatult poole allkirjaõigusliku isiku poolt. Informatiivset teadet võib edastada ka
telefoni teel. Informatiivseks loetakse teade, millega ei kaasne õiguslikke tagajärgi.
8
11.3. Kirjalik teade loetakse poole poolt kättesaaduks, kui see on üle antud allkirja vastu või kui
teade on saadetud postiasutuse poolt tähitud kirjaga poole poolt teatatud aadressil ja
postitamisest on möödunud 5 kalendripäeva.
11.4. Tellija kontaktisik(ud) on: …. …, telefon …., e-post: …. või tema asendaja;
11.5. Täitja kontaktisik(ud) on: …, …., telefon … e-post: …. või tema asendaja;
11.6. Kontaktisikute pädevuses on anda teisele poolele vajaliku informatsiooni ja juhiseid oma
pädevuse piires, anda nõusolek meeskonnaliikme vahetamiseks, kontrollida teostatud
lepingu kvaliteeti, anda lepingu ese üle ja võtta vastu ning allkirjastada akt.
11.7. Kontaktisiku muutumisest teavitab pool kirjalikult teist poolt viivitamatult.
12. Lõppsätted
12.1. Täitjal puudub volitus tegeleda lepingu raames avalike suhetega ning anda teateid
Lepinguga seotud vaidlused, mida pooled ei ole suutnud läbirääkimiste teel lahendada,
antakse lahendamiseks Harju Maakohtule.
12.2. Lepingule kohaldub Eesti õigus.
12.3. Lepinguga reguleerimata küsimustes või olukorras, kus mõni lepingu säte on vastuolus
seadusega, lähtutakse Eesti Vabariigis kehtivast seadusandlusest.
13. Lisad (ei allkirjastata)
13.1. Lisa 1 – Tehniline kirjeldus ja selle lisad;
13.2. Lisa 2 - Üleandmise-vastuvõtmise akt;
13.3. Lisa 3 – Pakkumus.
14. Poolte allkirjad
Tellija Täitja
/allkirjastatud digitaalselt/ /allkirjastatud digitaalselt/
9