[Deprecated] CDAGenerator - Installation & Configuration

Gazelle tools documentation is now maintained at https://gazelle.ihe.net/gazelle-documentation/

Here is a guide to help you installing CDAGenerator

Requirements

  • Debian squeeze or ubuntu 12.04 64bits with an Internet access.
  • Database : PostGresql 9.1
  • Java virtual machine : JDK 1.6
  • Application server : Jboss 5.1.0-GA
    • It must be installed in: /usr/local/jboss
    • A server named gazelle must be here: /usr/local/jboss/server/gazelle/

To install those requirements you can use run this as root:

wget http://gazelle.ihe.net/jenkins/job/gazelle-public-release/ws/gazelle-tm-ear/src/main/scripts/setup.sh
chmod +x setup.sh
./setup.sh

Quick start

CDAGenerator can be installed using gazelle user on your server:

  • checkout the sources of CDAGenerator : svn checkout https://scm.gforge.inria.fr/anonscm/svn/gazelle/Maven/CDAGenerator/trunk CDAGenerator
  • execute on the root of the project : mvn clean install
  • create a database : cda-generator, in postgresql (createdb -U gazelle -EUTF8 cda-generator)
  • copy the ear from CDAGenerator-ear/target/CDAGenerator.ear to /usr/local/jboss/server/gazelle/deploy
  • start your jboss

Folder Creation

Per default the CDA generator is using the folder /opt/CDAGenerator in order to store files and to access XSD and XSL files. The tar file to be installed is located here.

mkdir /opt/CDAGenerator
cd /opt/CDAGenerator
tar zxvf cda-generator-init-files.tgz

Database creation and initialization

The names of the databases are defined in the pom.xml file. Use the following commands :

su postgresql
psql
postgres=# CREATE USER gazelle;
postgres=# ALTER USER gazelle WITH ENCRYPTED PASSWORD 'password';
postgres=# CREATE DATABASE "cda-generator" OWNER gazelle ENCODING UTF-8;
postgres=# \q
exit

 

Insert configuration values

To insert values you can connect to the database

psql -U gazelle cda-generator

Then copy paste the folowing script:

--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

SET search_path = public, pg_catalog;

--
-- Data for Name: cmn_application_preference; Type: TABLE DATA; Schema: public; Owner: gazelle
--

INSERT INTO cmn_application_preference VALUES (1, 'java.lang.Boolean', '', 'application_database_initialization_flag', 'true');
INSERT INTO cmn_application_preference VALUES (2, 'java.lang.String', '', 'application_name', 'CDAGenerator');
INSERT INTO cmn_application_preference VALUES (3, 'java.lang.String', '', 'application_admin_name', 'Eric Poiseau');
INSERT INTO cmn_application_preference VALUES (4, 'java.lang.String', '', 'application_admin_email', 'epoiseau@irisa.fr');
INSERT INTO cmn_application_preference VALUES (5, 'java.lang.String', '', 'application_email_account_for_history', 'epoiseau@irisa.Fr');
INSERT INTO cmn_application_preference VALUES (6, 'java.lang.String', '', 'application_issue_tracker_url', 'jira');
INSERT INTO cmn_application_preference VALUES (7, 'java.lang.String', '', 'application_gazelle_release_notes_url', 'http://gazelle.ihe.net/jira/browse/CDAGEN#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel');
INSERT INTO cmn_application_preference VALUES (8, 'java.lang.String', '', 'time_zone', 'time_zone');
INSERT INTO cmn_application_preference VALUES (9, 'java.lang.String', '', 'application_zone', 'dd');
INSERT INTO cmn_application_preference VALUES (10, 'java.lang.String', '', 'application_profile', 'prod');
INSERT INTO cmn_application_preference VALUES (11, 'java.lang.String', '', 'application_admin_name', 'Eric Poiseau');
INSERT INTO cmn_application_preference VALUES (12, 'java.lang.String', '', 'dds_ws_endpoint', 'http://gazelle.ihe.net/DDSWS/DemographicDataServerBean?wsdl');
INSERT INTO cmn_application_preference VALUES (14, 'java.lang.String', '', 'schematron_validator', 'http://jumbo.irisa.fr:8080/SchematronValidator-SchematronValidator-ejb/GazelleObjectValidatorWS?wsdl');
INSERT INTO cmn_application_preference VALUES (15, 'java.lang.String', '', 'gazelle_bin', '/opt/gazelle/bin');
INSERT INTO cmn_application_preference VALUES (16, 'java.lang.String', '', 'cda_result_detail', 'http://gazelle.ihe.net/EVSClient/xsl/schematronResultStylesheet.xsl');
INSERT INTO cmn_application_preference VALUES (13, 'java.lang.String', '', 'xsl_path', 'http://gazelle.ihe.net/xsl/');
INSERT INTO cmn_application_preference VALUES (17, 'java.lang.String', '', 'sex_oid', '1.3.6.1.4.1.21367.101.101');
INSERT INTO cmn_application_preference VALUES (18, 'java.lang.String', '', 'religion_oid', '1.3.6.1.4.1.21367.101.122');
INSERT INTO cmn_application_preference VALUES (19, 'java.lang.String', '', 'race_oid', '1.3.6.1.4.1.21367.101.102');
INSERT INTO cmn_application_preference VALUES (21, 'java.lang.String', '', 'application_url', 'http://gazelle.ihe.net/CDAGenerator');
INSERT INTO cmn_application_preference VALUES (25, 'java.lang.String', '', 'evs_url', 'http://gazelle.ihe.net/EVSClient');
INSERT INTO cmn_application_preference VALUES (23, 'java.lang.String', '', 'cda_xsd', '/opt/CDAGenerator/xsd/ihe_lab/infrastructure/cda/LabCDA.xsd');
INSERT INTO cmn_application_preference VALUES (24, 'java.lang.String', '', 'cdaepsos_xsd', '/opt/CDAGenerator/xsd/cda_epsos/CDA_extended.xsd');
INSERT INTO cmn_application_preference VALUES (26, 'java.lang.String', '', 'doc_path', '/opt/CDAGenerator/doc/');
INSERT INTO cmn_application_preference VALUES (22, 'java.lang.String', '', 'svs_repository_url', 'http://gazelle.ihe.net');
INSERT INTO cmn_application_preference VALUES (27, 'java.lang.String ', '', 'app_documentation', 'http://gazelle.ihe.net');
INSERT INTO cmn_application_preference VALUES (31, 'java.lang.String', '', 'cdapharm_xsd', '/opt/CDAGenerator/xsd/xsd-pharm-tiani/extendedschemas/CDA_extended_pharmacy.xsd');
INSERT INTO cmn_application_preference VALUES (35, 'java.lang.Boolean', 'Enable or Disable http security headers', 'security-policies', 'false');
INSERT INTO cmn_application_preference VALUES (36, 'java.lang.String', 'Sites can use this to avoid clickjacking attacks, by ensuring that their content is not embedded into other sites', 'X-Frame-Options', 'SAMEORIGIN');
INSERT INTO cmn_application_preference VALUES (34, 'java.lang.String', '', 'svs_endpoint', 'http://gazelle.ihe.net/SVSSimulator/rest/RetrieveValueSetForSimulator');
INSERT INTO cmn_application_preference VALUES (37, 'java.lang.String', 'Application should return caching directives instructing browsers not to store local copies of any sensitive data.', 'Cache-Control', 'private, no-cache, no-store, must-revalidate, max-age=0');
INSERT INTO cmn_application_preference VALUES (38, 'java.lang.String', 'is a security feature that lets a web site tell browsers that it should only be communicated with using HTTPS, instead of using HTTP', 'Strict-Transport-Security', 'max-age=31536000 ; includeSubDomains');
INSERT INTO cmn_application_preference VALUES (39, 'java.lang.String', ' is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks', 'X-Content-Security-Policy', '');
INSERT INTO cmn_application_preference VALUES (40, 'java.lang.String', 'Chrome flag, uses X-Content-Security-Policy values', 'X-WebKit-CSP', 'Use X-Content-Security-Policy values');
INSERT INTO cmn_application_preference VALUES (41, 'java.lang.String', 'Chrome flag, uses X-Content-Security-Policy-Report-Only values', 'X-WebKit-CSP-Report-Only', 'Use X-Content-Security-Policy-Report-Only values');
INSERT INTO cmn_application_preference VALUES (42, 'java.lang.String', 'Configuring Content Security Policy involves deciding what policies you want to enforce, and then configuring them and using X-Content-Security-Policy to establish your policy.', 'X-Content-Security-Policy-Report-Only', 'default-src ''self'' *.ihe.net www.epsos.eu; script-src ''self'' ''unsafe-eval'' ''unsafe-inline''; style-src ''self'' ''unsafe-inline'';');
INSERT INTO cmn_application_preference VALUES (43, 'java.lang.Boolean', 'Enable or Disable Sql Injection filter', 'sql_injection_filter_switch', 'false');
INSERT INTO cmn_application_preference VALUES (44, 'java.lang.String', '', 'assertion_manager_url', 'http://gazelle.ihe.net/AssertionManager');
INSERT INTO cmn_application_preference VALUES (45, 'java.lang.String', '', 'svs_simulator_restful_url', 'http://gazelle.ihe.net/SVSSimulator/rest/RetrieveValueSetForSimulator');
INSERT INTO cmn_application_preference VALUES (29, 'java.lang.String', '', 'ip_login_admin', '.*');
INSERT INTO cmn_application_preference VALUES (28, 'java.lang.Boolean', '', 'ip_login', 'f');
INSERT INTO cmn_application_preference VALUES (48, 'java.lang.Boolean', '', 'cas_enabled', 'true');
INSERT INTO cmn_application_preference VALUES (47, 'java.lang.String', '', 'application_works_without_cas', 'false');
INSERT INTO cmn_application_preference VALUES (46, 'java.lang.String', '', 'cas_url', 'https://gazelle.ihe.net/cas/');


--
-- PostgreSQL database dump complete
--

 

 

variable Description type default
app_documentation link to documentation of the tool java.lang.String http://gazelle.ihe.net/content/cda-model-based-validation
application_admin_email email of the admin java.lang.String epoiseau@irisa.fr
application_admin_name name of the admin java.lang.String Eric Poiseau
application_database_initialization_flag inserted by the application java.lang.Boolean true
application_email_account_for_history email of the admin java.lang.String eric.poiseau@inria.fr
application_gazelle_release_notes_url release notes' url java.lang.String http://gazelle.ihe.net/jira/browse/CDAGEN#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel
application_issue_tracker_url issue tracker url java.lang.String jira
application_name application's name java.lang.String CDAGenerator
application_profile application's profile (always prod) java.lang.String prod
application_url application's URL java.lang.String https://k-project.ihe-europe.net/CDAGenerator
application_works_without_cas cas configuration java.lang.Boolean false
application_zone application zone java.lang.String GMT+1
assertion_manager_url link to assertion manager java.lang.String https://k-project.ihe-europe.net/AssertionManagerGui
Cache-Control Application should return caching directives instructing browsers not to store local copies of any sensitive data. java.lang.String private, no-cache, no-store, must-revalidate, max-age=0
cas_enabled cas configuration java.lang.Boolean true
cas_url cas url java.lang.String https://k-project.ihe-europe.net/cas
cda_result_detail link to cda stylesheet result java.lang.String https://k-project.ihe-europe.net/EVSClient/xsl/schematronResultStylesheet.xsl
cda_xsd path to schema java.lang.String /opt/CDAGenerator/xsd/ihe_lab/infrastructure/cda/LabCDA.xsd

Compile

Before compiling, go to the directory CDAGenerator and edit the file pom.xml. Open this file and adapt the properties of profile prod to your case :

  • jdbc.connection.url : jdbc:postgresql:cda-generator
  • jdbc.connection.user / jdbc.connection.password : credentials for database access

Then, create the EAR archive with the command line:

cd CDAGenerator
mvn clean package

The archive (EAR) and the distribution file are created and placed into CDAGenerator /CDAGenerator-ear/target directory.

5. Deployment

Copy the CDAGenerator.ear into the "server/gazelle/deploy" directory of your JBoss server. Finally, start your server.

When the application is deployed, open a browser and go to http://yourserver/CDAGenerator.

If the deployment and the database initialization are successful you should see the home page.