TIES is designed as a three tier client-server architecture that is primarily written in Java. The user interface is implemented in Java Swing and deployed using Java Webstart. The middle-tier consists of OGSA-DAI based encrypted web services, and data processing pipelines. The NLP pipeline is implemented in GATE – General Architecture for Text Engineering. It uses an Apache Lucene Index for search.
At the core of the TIES system are the identified(PHI data) and de-identified databases, and corresponding web-services that are used to access these databases. A typical TIES installation is spread over at least two different server machines, one each to hold the identified and de-identified data. The server holding the identified data and corresponding web service is behind the organization’s firewall and is not accessible from outside the organization. The server holding the de-identified data and its corresponding web-services is outside the firewall, enabling users to access TIES from outside the organization, and for the organization’s TIES node to share its data with other TIES nodes.
TIES uses MySQL as the DBMS, and since MySQL is network accessible, it is possible to store the databases on entirely different servers than the web-services for additional security. It is also possible to install TIES on just one machine.
TIES nodes must be part of a TIES network. The TIES network is managed by the CTRM. In the simplest scenario, a standalone TIES node is part of a single node CTRM. When nodes want to share data with other TIES nodes, they must share a common CTRM.
Reports undergo several stages of processing in TIES in order to be ready for search and retrieval by the users. Each stage is handled by a separate data processing service. Each report has a specific status field in the database that indicates the stage of processing.
DATA PROCESSING STAGES