The SHRINE web client is the users' gateway into a SHRINE network. The web client code was forked from the i2b2 web client several years ago, allowing users who are familiar with the use of i2b2 to be comfortable using SHRINE. The first step in a user's interaction with SHRINE is to authenticate using his username and password to the i2b2 PM cell. Once this authentication occurs, the user's session information is included in all requests that the web client sends to the SHRINE Query Entry Point and is propagated throughout the network.
The web client can be used to browse the user's previous query history, navigate the network ontology, and to formulate and execute queries. All communication between the web client and the SHRINE network is performed via the SHRINE Query Entry Point.
Query Entry Point
The Query Entry Point (QEP) is the service entry-point into a SHRINE network. The QEP implements a subset of the i2b2 CRC messaging protocol and is therefore compatible with many components that have been written to produce and consume these messages (most notably including the SHRINE webclient). The QEP also supports a SHRINE specific, RESTful API that is used by several of our tools including the Batch Query Tool and the Heartbeat monitor.
The QEP will authenticate all incoming requests according to the method specified in the QEP's configuration. In most cases, this involves checking with i2b2 PM cell to make sure that the credentials (i2b2 SessionKey) included with the request are valid. After authenticating the request, the QEP will forward that request on to the SHRINE Hub for broadcasting throughout the network.
When the QEP receives the collected results back from the Hub, it will aggregate the results into a single response to the client (web or tool).
The Hub's job is to broadcast requests sent by QEPs to the Adapters in the network. The Hub also buffers the responses from the Adapters before returning the collection of results back to the QEP. Upon receiving a request from a trusted QEP, the Hub will duplicate and forward that request to all of its downstream nodes and await their responses. As the responses are received, the Hub collects them into a result buffer that is then sent back to the calling QEP.
The Adapter is the component that acts as a facade or entry point to an institution's i2b2 hive. The Adapter receives requests from the Hub and then translates them into local terminology. The type of translation depends on the nature of the request. The most obvious translation occurs during a query and involves translating the central SHRINE network terms into local i2b2 terms. Other types of translation include mapping between network and local IDs for query masters and query results.
After translating the request, the Adapter will either service the request itself or contact the i2b2 hive to service the request. When the request has been serviced, it will return the result and status to the Hub.