CTS2-LE Installation and Deployment: Unterschied zwischen den Versionen

Aus CTS2-LE
Zur Navigation springen Zur Suche springen
Zeile 85: Zeile 85:
 
For example, the terminology loaders which import the German and English ICD and the alphabetical directory as an expansion of the German ICD individually specify the 'ICD' group membership. Groups can be hidden in the navigator by commenting out the corresponding JSON structures but reassigning a code system (e.g. any ICD related system should be grouped in a 'Diseases' section) cannot be achieved by editing the file.  
 
For example, the terminology loaders which import the German and English ICD and the alphabetical directory as an expansion of the German ICD individually specify the 'ICD' group membership. Groups can be hidden in the navigator by commenting out the corresponding JSON structures but reassigning a code system (e.g. any ICD related system should be grouped in a 'Diseases' section) cannot be achieved by editing the file.  
  
The below snippet leads to the following grouping in the navigator.
+
The snippet above leads to the following grouping in the navigator.
 
[[File:Grouping.png|thumb|center|500px|Code System grouping]]
 
[[File:Grouping.png|thumb|center|500px|Code System grouping]]
 
[[File:GroupingVS.png|thumb|center|500px|Value Set grouping]]
 
[[File:GroupingVS.png|thumb|center|500px|Value Set grouping]]

Version vom 29. Dezember 2015, 19:27 Uhr

This section describes how to install and deploy a CTS2-LE server instance along with the navigator front-end. It has to be ensured that the system fulfils the defined prerequisites. The following steps are aligned to the recommended system environment and hence offer commands on the basis of an Ubuntu-like OS.


General settings

Encoding

Make sure, the correct encoding for requests and responses is set. In /var/lib/tomcat7/conf/server.xml check the attribute URIEncoding in the connector tag.

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

Increasing Java heap space

Experience has shown that increasing the heap space for tomcat positively influences the servers efficiency. Therefore, it is recommended to permanently set the environment variable CATALINA_OPTS.

CATALINA_OPTS="-Xms512m -Xmx900m"

Setting the resource root

Select a directory where the terminology store instances will be located. The directory has to be specified by setting an environment variable called CTS2LE_RESOURCE_ROOT.

Since the resource root is one of the building blocks of CTS2-LE, no arbitrary manipulation of the files within the directory should be done. Only apply changes to the files which are described in this section.

In order to permanently set the environment variable, it is recommended to create a setenv.sh script in the $CATALINA_HOME/bin directory and add the following lines:

#!/bin/bash
CTS2LE_RESOURCE_ROOT=/path/to/directory
export CTS2LE_RESOURCE_ROOT
#permanently increase heap space
CATALINA_OPTS="-Xms512m -Xmx900m"
export CATALINA_OPTS

Extract the delivered resources (see below) to the defined destination CTS2LE_RESOURCE_ROOT and set access rights recursively:

sudo chmod -R <pattern> $CTS2LE_RESOURCE_ROOT

<pattern> has to be set accordingly, such that the server have read/write access to the resources.

Delivered resources

You will be receiving a zip-compressed archive that combines several resources that allow for a fast and clean installation of CTS2-LE. The archive file has to be unzipped in the $CTS2LE_RESOURCE_ROOT directory and then shows the following structure:

/bin
    WebCts2LE.war 
    WebCts2LEStarter.sh 
/signatures
/queries
/load-vocabs
/jdbm2
cts2_conf.xml
grouping.json
setting.json

You should leave most of the directories untouched. Only adapt or execute the highlighted files as described in the section.

grouping.json

This file determines how the loaded terminologies and value sets are grouped inside the navigator. By default, the file is structured as shown below.

{
    groups: [
    {
        _id: 'csvGroups',
        children: [
           {
               name: 'ICD', relGroup: 'ICD'
           },
           {
               name: 'Example', relGroup: 'EXA'
           }
        ]
   },
   {
        _id: 'vsGroups',
        children: [
           {
               name: 'FHIR', relGroup: 'FHIR-vs'
           }
        ]
   }
   ]
}

A loaded resource either belongs to the group of code systems (_id: 'csvGroups' ) or is a child of the value set group (_id: 'vsGroups' ). The assignment of terminologies and value sets to groups is either defined in specific terminology loaders or by means of a FHIR definition file. The latter one allows for a flexible reassignment whereas for core terminologies, a change proposal has to be issued to the contact partner at Fraunhofer FOKUS. For example, the terminology loaders which import the German and English ICD and the alphabetical directory as an expansion of the German ICD individually specify the 'ICD' group membership. Groups can be hidden in the navigator by commenting out the corresponding JSON structures but reassigning a code system (e.g. any ICD related system should be grouped in a 'Diseases' section) cannot be achieved by editing the file.

The snippet above leads to the following grouping in the navigator.

Code System grouping
Value Set grouping


cts2_conf.xml

All standard terminological resources (ICD-10, LOINC, HL7v3, FHIR etc.) require the user to obtain an individual license. Therefore such terminologies are not part of the CTS2-LE distribution but have to be licenced and loaded by the CTS2-LE customer. To ease this process, the CTS2-LE distribution includes a set of "terminology loaders" which allow for an automatic integration of the most common standard terminologies into CTS2-LE. This section describes how these loaders can be activated for loading standard terminologies and value sets into CTS2-LE.

When receiving a CTS2-LE distribution, this file will comprise a reference to any terminology for which the user has obtained a license. The XML-structured file lists the available terminologies under the element vocabularies. A specific vocabulary is defined by a friendly-name and a resourceID, e.g. the Example code system will appear as the following line:

<conf>	
	<vocabularies loadAll="false">
		<vocabulary load="true" friendly-name="Example code system" resourceID="exa"/>
	</vocabularies>
</conf>

The friendly name is a human readable name for a terminology and may be modified by the user if he prefers a different designation. However, the attribute resourceID must not be changed as it is a system intern identifier for the terminology.

To load a vocabulary, the attribute load has to be set to true.

Mark any desired vocabulary by following this strategy (or load all terminologies by enabling loadAll in the <vocabularies> element) and save the file.

WebCts2LE.war and WebCts2LEStarter.sh

The web application archive WebCts2LE.war has to be deployed in a servlet container. Because there are further activities that come along with the deployment, a script (WebCts2LEStarter) is provided.

Deployment

The delivered script WebCts2LEStarter.sh serves 2 use cases:

  1. it automatically deploys the war-file
  2. it faciliates the process of loading core terminologies

Before starting the script, open it and check the value of the tomcat version and tomcat home-directory.

NAME=tomcat7
CATALINA_BASE=/var/lib/$NAME

Ensure that the script is executable by running the following command:

chmod +x WebCts2LEStarter.sh

Finally, start the script by appending the war-file as an argument.

./WebCts2LEStarter.sh WebCts2LE.war

Ensure that CTS2LE_RESOURCE_ROOT is accessible from the script and that sudo is installed.

Troubleshooting

  • Do not run the starter script with root privileges.