[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.

[Deprecated] Configuration of the documentation of MBV

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

The administrator is able to configure the documentation of XDS/DSUB constraints and rules

First the user shall be logged in as an administrator.

Then, go to administration -> Constraints Management -> Constraints-admin

 

The user shall then upload the XML file generated from the model of constraints into the tool by using the add button from the previous page.

After the upload is ended, click on the button "Delete and Generate". This button will delete all the constraints related to packages that are mentioned into the uploaded XML file. If there are some constraints related to other packages, they won’t be deleted. The information into the XML document is inserted in the database of the tool.