CTS2-LE Installation and Deployment: Unterschied zwischen den Versionen

Aus CTS2-LE
Zur Navigation springen Zur Suche springen
K (cts2_conf.xml)
K
Zeile 2: Zeile 2:
  
  
= General settings =
+
 
  
 
<!--== Configure roles and users ==
 
<!--== Configure roles and users ==
Zeile 13: Zeile 13:
 
-->
 
-->
  
== Encoding ==
+
= 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.
 
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.
  
Zeile 20: Zeile 20:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== 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'''.
 
  
export CATALINA_OPTS="-Xms512m -Xmx900m"
 
  
= Setting the resource root =
+
= Setting the Resource Root and Increasing Java Heap Space=
 
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'''.
 
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'''.
 
<div style="margin:0; border:2px solid #bfbfbf; padding: 1em 1em 1em 1em; background-color:#F8E3E3; align:center; ">
 
<div style="margin:0; border:2px solid #bfbfbf; padding: 1em 1em 1em 1em; background-color:#F8E3E3; align:center; ">
Zeile 34: Zeile 31:
 
  CTS2LE_RESOURCE_ROOT=/path/to/directory
 
  CTS2LE_RESOURCE_ROOT=/path/to/directory
 
  export CTS2LE_RESOURCE_ROOT
 
  export CTS2LE_RESOURCE_ROOT
 +
 +
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''' by adding the following lines to the '''setenv.sh''' script:
 +
 
  #permanently increase heap space
 
  #permanently increase heap space
 
  CATALINA_OPTS="-Xms512m -Xmx900m"
 
  CATALINA_OPTS="-Xms512m -Xmx900m"
Zeile 40: Zeile 40:
 
It is also recommended to follow [https://help.ubuntu.com/community/EnvironmentVariables these instructions] for setting environment variables system-wide.
 
It is also recommended to follow [https://help.ubuntu.com/community/EnvironmentVariables these instructions] for setting environment variables system-wide.
  
Extract the delivered resources (see below) to the defined destination '''CTS2LE_RESOURCE_ROOT''' and set access rights recursively:
+
= Delivered Resources =
 +
A customer will reveice two zip-compressed archives namely:
 +
# load-vocabs.zip (denoted by '''''<VOCABS-ZIP>''''' in the following)
 +
# WebCts2LE-resource-root.zip (denoted by '''''<RESOURCE-ROOT-ZIP>''''' in the following)  
 +
 
 +
Extract '''''<RESOURCE-ROOT-ZIP>''''' to the destination defined by means of the environment variable '''CTS2LE_RESOURCE_ROOT''' and set access rights recursively:
 
  sudo chmod -R <pattern> $CTS2LE_RESOURCE_ROOT
 
  sudo chmod -R <pattern> $CTS2LE_RESOURCE_ROOT
<pattern> has to be set accordingly, such that the server have read/write access to the resources.
+
<pattern> has to be set accordingly, such that the server has read/write access to the resources.
  
= Delivered resources =
+
Extract '''''<VOCABS-ZIP>''''' to $CTS2LE_RESOURCE_ROOT/../load-vocabs.
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:
+
Make sure the folders are structured as presented below:
<span style="color:#ff7f24">/bin</span>
 
    <span style="color:#ff7f24">WebCts2LE.war</span>
 
    <span style="color:#ff7f24">WebCts2LEStarter.sh</span>
 
/signatures
 
/queries
 
 
  /load-vocabs
 
  /load-vocabs
  <span style="color:#ff7f24">cts2_conf.xml</span>
+
  /<$CTS2LE_RESOURCE_ROOT>
<span style="color:#ff7f24">grouping.json</span>
+
  <span style="color:#ff7f24">/bin</span>
setting.json
+
      <span style="color:#ff7f24">WebCts2LE.war</span>
 +
      <span style="color:#ff7f24">WebCts2LEStarter.sh</span>
 +
  /meta
 +
  <span style="color:#ff7f24">cts2_conf.xml</span>
 +
  <span style="color:#ff7f24">grouping.json</span>
 +
  setting.json
 +
 +
 
  
 
You should leave most of the directories untouched. Only adapt or execute the <span style="color:#ff7f24">highlighted</span> files as described in the section.
 
You should leave most of the directories untouched. Only adapt or execute the <span style="color:#ff7f24">highlighted</span> files as described in the section.

Version vom 15. Mai 2017, 16:21 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.



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"/>


Setting the Resource Root and Increasing Java Heap Space

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

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 by adding the following lines to the setenv.sh script:

#permanently increase heap space
CATALINA_OPTS="-Xms512m -Xmx900m"
export CATALINA_OPTS

It is also recommended to follow these instructions for setting environment variables system-wide.

Delivered Resources

A customer will reveice two zip-compressed archives namely:

  1. load-vocabs.zip (denoted by <VOCABS-ZIP> in the following)
  2. WebCts2LE-resource-root.zip (denoted by <RESOURCE-ROOT-ZIP> in the following)

Extract <RESOURCE-ROOT-ZIP> to the destination defined by means of the environment variable 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 has read/write access to the resources.

Extract <VOCABS-ZIP> to $CTS2LE_RESOURCE_ROOT/../load-vocabs. Make sure the folders are structured as presented below:

/load-vocabs
/<$CTS2LE_RESOURCE_ROOT>
  /bin
     WebCts2LE.war 
     WebCts2LEStarter.sh 
  /meta
  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" fresh="true" index="true" sigCheck="true">
		<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.