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