3 METHODS
The Dicoogle version 3 aims to an enterprise solution
enabling the exchange of DICOM objects (images
and studies) between healthcare institutions. Typi-
cally, the DICOM objects are stored locally in the
PACS of the healthcare institutions that operate over a
private network (intranet). Therefore, the most com-
mon scenario will be islands of DICOM object repos-
itories. As consequence, the bigger percentage of Di-
coogle peers will be delimitated by virtual barriers
such as NATs and firewalls (figure 3).
3.1 NATs and Firewalls
In order to a machine inside a private network access
the internet it requires a public IP address, however
the internal machine only holds a private IP address.
The NAT process allows the router to translate private
IP address into public IP addresses. When an internal
computer requests access to the Internet, the requests
private IP is placed by the router’s public IP address.
When the response from a request arrives it is for-
ward to the internal computer. This is only possible
when the internal computer starts the process, outside
responses with no request are discarded. Besides the
NAT there is also the firewall. The firewall job is to re-
strict traffic coming from the Internet into the private
network and many times also restrict the traffic go-
ing from the private network to the internet (Gradecki
and Gradecki, 2002), by closing all the ports to send
data. Only specific ports are commonly open such
as the email and the web server ports. These ports
are open to send data from the inside to the outside
of the intranet, but not the reverse. As result, peers
from different private networks cannot communicate
”directly”. The solution for this problem is the intro-
duction of a relay peer in the middle of the communi-
cation between peers in different intranets (figure 4).
The relay peer becomes a bridge, enabling the inter-
action of Dicoogle peers of different privatenetworks.
To implement the relay peer we looked which tech-
nology is more appropriate based on Dicoogle’s relay
peer requirements:
1. The relay peer has to be accessible to all peers;
2. The relay peer has to communicate through de-
fault open ports of the firewall;
3. The relay has to support secure data transition.
Analyzing the relay requisites and after some tests we
concluded that an email server would be suitable for
developing the relay peer, because:
1. Email servers are reliable in terms of access;
2. Email may be sent through firewalls without any
change in their set rules
3. Email already has encryption protocols for data
exchange.
Furthermore, email accounts are free, trustworthy and
offer an acceptable storage capacity (e.g. Gmail over
7 Giga bytes of available space). But more impor-
tant the relay process is really similar to the email
paradigm: The peers send addressed messages to re-
lay peer and the relay peer holds the messages until
the addressed peer fetch them. Therefore, Dicoogle
P2P system implements the relay peer over an email
account.
3.2 Components
Dicoogle is a Java open source project developed over
some open source libraries. Figure 2 show all the
software components used by the Dicoogle frame-
work. Dicoogle uses the Apache Lucene index en-
gine (Hatcher and Gospodnetic, 2004) to index the
DICOM files stored in each archive (Dicoogle peer).
The P2P functionalities are supported by the Jxta
framework (Sun Microsystems, 2004b; Gradecki and
Gradecki, 2002). Jxta allows firewall crossing, this is
achieved by communicating with a relay peer, outside
the intranet, through the port 80 or 8080 (HTTP/S).
The specifications of Jxta make it the ideal platform,
in theory, to fulfil the Dicoogle’s P2P requirements.
Although, in the paper, Jxta is a powerful and co-
hesive idea, the reality is that its implementation is
not stable enough for a P2P enterprise solution. In
spite of the fact some sources pointed Jxta version 2.5
as unstable (Ferrante, 2008) we analyzed anyway the
framework. Our conclusions were concordant with
the previous ones, Jxta version 2.5 has still to mature.
However, we were able to create a relative stable solu-
tion for the private network scenario. Therefore, Di-
coogle v3 only uses Jxta for treating the P2P issues
within the intranet. We designed a relay peer based in
IMAP - using the JavaMail API (Sun Microsystems,
2004a). With the IMAP protocol we created trans-
parent communication channels between the partici-
pant intranets enabling inter-institutional peer interac-
tion. Every message sent to the relay peer is encrypted
using the Advance Encryption Standard (AES). The
messages are encrypted using a private key present
in every Dicoogle peer and unreachable to the users.
The private key is created using the email password as
seed for a key generator algorithm. This way the mes-
sages are impossible to read by other entities besides
the Dicoogle peers. Finally, to carry the implementa-
tion of DICOM services and DICOM standard related
issues we used the dcm4che SDK (Zeilinger, 2006).
HEALTHINF 2010 - International Conference on Health Informatics
312