To make sure that your new SHRINE instance can communicate with the i2b2 instance, there are a couple of places that we will address. First, you will need to make sure the PM, ONT, CRC cell urls are correctly defined within the shrine.conf file. These urls are what SHRINE uses to communicate with the i2b2 backend:
- In the main shrine {} section:
Code Block |
---|
|
pmEndpoint {
url = "http://localhost:9090/i2b2/services/PMService/getServices"
}
ontEndpoint {
url = "http://localhost:9090/i2b2/services/OntologyService"
} |
- In the adapter {} section:
Code Block |
---|
|
crcEndpoint {
url = "http://localhost:9090/i2b2/services/QueryToolService"
} |
Next, you will need to add the SHRINE project into the pm_project_data table within the i2b2pm schema:
Code Block |
---|
|
$ psql -U postgres i2b2
i2b2=# set search_path = i2b2pm;
i2b2=# insert into PM_PROJECT_DATA (project_id, project_name, project_wiki, project_path, status_cd) values ('SHRINE', 'SHRINE', 'http://open.med.harvard.edu/display/SHRINE', '/SHRINE', 'A'); |
After loading the ontology into SHRINE, you will need to add a SHRINE CRC connection to the pm_cell_data table within the i2b2pm schema:
Code Block |
---|
|
$ psql -U postgres i2b2
i2b2=# set search_path = i2b2pm;
i2b2=# insert into PM_CELL_DATA (cell_id, project_path, name, method_cd, url, can_override, status_cd) values ('CRC', '/SHRINE', 'SHRINE Federated Query', 'REST', 'https://your_shrine_url:6443/shrine/rest/i2b2/', 1, 'A');
|
This should result in something that looks like this:
Image Added
After doing that, you will also need to add the Shrine Ontology data source (DS) to the ont-ds.xml file within the i2b2 instance. This file should be located within your i2b2 deployments directory (/opt/wildfly/standalone/deployments):
Code Block |
---|
|
<datasource jta="false" jndi-name="java:/ShrineOntologyDS" pool-name="ShrineOntologyDS" enabled="true" use-ccm="false">
<connection-url>jdbc:postgresql://localhost:5432/i2b2</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql-9.2-1002.jdbc4.jar</driver>
<security>
<user-name>shrine_ont</user-name>
<password>demouser</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource> |
Next, you will need to template the i2b2_config_data.js file to reflect the correct PM cell url for logging into the SHRINE webclient. The file is located in /opt/shrine/tomcat/webapps/shrine-webclient/i2b2_config_data.js. It should look like this:
Code Block |
---|
|
{
urlProxy: "/shrine-proxy/request",
urlFramework: "js-i2b2/",
loginTimeout: 15, // in seconds
username_label:"SHRINE Username:", //Username Label
password_label:"SHRINE Password:", //Password Label
clientHelpUrl: 'help/pdf/shrine-client-guide.pdf',
networkHelpUrl:'help/pdf/shrine-network-guide.pdf',
wikiBaseUrl: 'https://open.med.harvard.edu/wiki/display/SHRINE/',
obfuscation: 10,
resultName: "patients",
// -------------------------------------------------------------------------------------------
// THESE ARE ALL THE DOMAINS A USER CAN LOGIN TO
lstDomains: [
{ domain: "i2b2demo",
name: "SHRINE",
urlCellPM: "http://localhost:9090/i2b2/services/PMService/",
allowAnalysis: false,
debug: true,
isSHRINE: true
}
]
// -------------------------------------------------------------------------------------------
} |
Once all of that is done, you will need to restart WildFly and Tomcat.