[Deprecated] XDStarClient - Installation & Configuration

Warning: This documentation is out-dated, newest version of the documentation is available at https://gazelle.ihe.net/gazelle-documentation 

Here is a guide to help you installing XDStarClient.

Requirements

  • Debian squeeze or ubuntu 12.04 64bits with an Internet access.
  • Database : PostGresql 9.1
  • Java virtual machine : JDK 1.7
  • Application server : Jboss 7.2.0.Final
    • It must be installed in: /usr/local/jboss7
    • A server named gazelle must be here: /usr/local/jboss7/standalone/
    • you can get a preconfigured jboss7 from Gazelle team

To install those requirements you need to follow instructions of installation of jboss7 : https://gazelle.ihe.net/content/general-considerations-jboss-7

Quick start

XDStarClient can be installed using gazelle user on your server:

wget https://gazelle.ihe.net/jenkins/job/XDStarClient/ws/install_xdstar_client.sh
wget https://gazelle.ihe.net/jenkins/job/Installer_script/ws/jboss7/common.sh
sudo chmod +x install_xdstar_client.sh
sudo chmod +x common.sh
sudo ./install_xdstar_client.sh $HOSTANDPORT 

 $HOSTANDPORT are the host and the port number to which your application will deployed, you may use the value localhost:8380 if you are testing locally and you have not changed the configuration of your jboss7 installed.

It will: 

  • Backup the previous EAR
  • Get the latest released version of XDStarClient and deploy it in your jboss.
  • Create the database if it doesn't exists.
  • Create /opt/XDStarClient folder (used for validation, samples storage) if this folder is not already there

All these steps are done by the script. The next paragraph are only details of how these steps are done (for developper who need more details).

2. Compile Sources

XDStarClient is an open source project under Apache2 licence. The sources are available on the INRIA's Forge:

svn checkout https://scm.gforge.inria.fr/svn/gazelle/Maven/simulators/XDStar-modules/trunk XDStar-modules
svn checkout https://scm.gforge.inria.fr/svn/gazelle/Maven/simulators/XDStarClient/trunk XDStarClient
cd XDStar-modules
mvn clean install
cd ../XDStarClient
mvn clean package -U -Pproduction

 

If maven cannot download dependencies checkout the maven configuration guide: http://gazelle.ihe.net/content/development-support-tools

3. 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 "xdstar-client" OWNER gazelle ENCODING UTF-8;
postgres=# \q
exit

 

Insert configuration values

To insert values you can connect to the database

psql -U gazelle xdstar-client

Then copy paste the folowing script:

SET statement_timeout = 0;
SET lock_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;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: app_configuration; Type: TABLE; Schema: public; Owner: gazelle; Tablespace: 
--

CREATE TABLE app_configuration (
  id integer NOT NULL,
  value character varying(255),
  variable character varying(255)
);


ALTER TABLE public.app_configuration OWNER TO gazelle;

--
-- Name: app_configuration_pkey; Type: CONSTRAINT; Schema: public; Owner: gazelle; Tablespace: 
--

ALTER TABLE ONLY app_configuration
ADD CONSTRAINT app_configuration_pkey PRIMARY KEY (id);


--
-- Name: variable_unique; Type: CONSTRAINT; Schema: public; Owner: gazelle; Tablespace: 
--

ALTER TABLE ONLY app_configuration
ADD CONSTRAINT variable_unique UNIQUE (variable);

--
-- Data for Name: app_configuration; Type: TABLE DATA; Schema: public; Owner: gazelle
--
INSERT INTO app_configuration VALUES (7, 'cda.xsl', 'cda_xsl_path');
INSERT INTO app_configuration VALUES (8, 'XDR Test Pratician', 'default_pratician_id');
INSERT INTO app_configuration VALUES (13, 'UTC+01', 'application_time_zone');
INSERT INTO app_configuration VALUES (10, 'http://gazelle.ihe.net/jira/browse/XDSTAR', 'application_issue_tracker_url');
INSERT INTO app_configuration VALUES (11, 'XDStarClient', 'application_name');
INSERT INTO app_configuration VALUES (12, 'http://gazelle.ihe.net/jira/browse/XDSTAR#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel', 'application_release_notes_url');
INSERT INTO app_configuration VALUES (29, 'http://gazelle.ihe.net/content/xdstarclient', 'app_documentation');
INSERT INTO app_configuration VALUES (27, 'http://gazelle.ihe.net/xsl/xdsDetailedResult.xsl', 'validation_result_xslt');
INSERT INTO app_configuration VALUES (32, 'NOVAK', 'family');
INSERT INTO app_configuration VALUES (33, 'JAN', 'given');
INSERT INTO app_configuration VALUES (34, '19501201', 'birthdate');
INSERT INTO app_configuration VALUES (35, '', 'root');
INSERT INTO app_configuration VALUES (36, '', 'gender');
INSERT INTO app_configuration VALUES (37, '', 'extension');
INSERT INTO app_configuration VALUES (38, '', 'street');
INSERT INTO app_configuration VALUES (39, '', 'city');
INSERT INTO app_configuration VALUES (40, '', 'country');
INSERT INTO app_configuration VALUES (41, '', 'postalcode');
INSERT INTO app_configuration VALUES (42, '', 'maidenname');
INSERT INTO app_configuration VALUES (19, '50000', 'connection_timeout');
INSERT INTO app_configuration VALUES (47, 'http://gazelle.ihe.net/xsl/mbcdaDetailedResult.xsl', 'cda_mbv_xslt');
INSERT INTO app_configuration VALUES (49, 'http://gazelle.ihe.net/xsl/mbcdaDetailedResult.xsl', 'cda_mbv_xslt');
INSERT INTO app_configuration VALUES (45, '/usr/bin/', 'dicom3tools_validator');
INSERT INTO app_configuration VALUES (26, '/opt/XDStarClient/xsd/IHE/XDSI.b_ImagingDocumentSource.xsd', 'xds_xsd');
INSERT INTO app_configuration VALUES (51, '/opt/XDStarClient/xsd/DSUB/soap-envelope.xsd', 'dsub_xsd');
INSERT INTO app_configuration VALUES (53, '/opt/XDStarClient/', 'server_local_path');
INSERT INTO app_configuration VALUES (9, 'abderrazek.boufahja@ihe-europe.net', 'application_admin_email');
INSERT INTO app_configuration VALUES (21, 'N/A', 'consent_template_path');
INSERT INTO app_configuration VALUES (50, 'N/A', 'dds_web_service');
INSERT INTO app_configuration VALUES (20, 'N/A', 'dispensation_template_path');
INSERT INTO app_configuration VALUES (1, 'N/A', 'epsosFolder');
INSERT INTO app_configuration VALUES (16, '/opt/XDStarClient/uploadedFiles', 'registered_files_directory');
INSERT INTO app_configuration VALUES (2, '/opt/XDStarClient/tmp', 'uploadFolder');
INSERT INTO app_configuration VALUES (54, 'N/A', 'xdstool_xca_query_wsdl');
INSERT INTO app_configuration VALUES (56, 'SAMEORIGIN', 'X-Frame-Options');
INSERT INTO app_configuration VALUES (57, 'private, no-cache, no-store, must-revalidate, max-age=0', 'Cache-Control');
INSERT INTO app_configuration VALUES (58, 'max-age=31536000 ; includeSubDomains', 'Strict-Transport-Security');
INSERT INTO app_configuration VALUES (59, '', 'X-Content-Security-Policy');
INSERT INTO app_configuration VALUES (60, 'Use X-Content-Security-Policy values', 'X-WebKit-CSP');
INSERT INTO app_configuration VALUES (61, 'Use X-Content-Security-Policy-Report-Only values', 'X-WebKit-CSP-Report-Only');
INSERT INTO app_configuration VALUES (63, 'false', 'sql_injection_filter_switch');
INSERT INTO app_configuration VALUES (55, 'true', 'security-policies');
INSERT INTO app_configuration VALUES (15, '/opt/china.jks', 'simu_jks_path');
INSERT INTO app_configuration VALUES (5, 'tomcat', 'key_alias');
INSERT INTO app_configuration VALUES (6, 'password', 'key_pass');
INSERT INTO app_configuration VALUES (4, 'password', 'keystore_pass');
INSERT INTO app_configuration VALUES (64, 'true', 'avoid_nist_validation_ihe');
INSERT INTO app_configuration VALUES (44, 'http://gazelle.ihe.net/SchematronValidator-SchematronValidator-ejb/GazelleObjectValidatorWS?wsdl', 'schematron_validator');
INSERT INTO app_configuration VALUES (62, 'default-src ''self'' *.ihe.net *.ihe-europe.net *.ihe-c.org; script-src ''self'' ''unsafe-eval'' ''unsafe-inline''; style-src ''self'' ''unsafe-inline'';', 'X-Content-Security-Policy-Report-Only');
INSERT INTO app_configuration VALUES (17, '1.3.6.1.4.1.12559.11.13.2.1.', 'document_root_oid');
INSERT INTO app_configuration VALUES (3, '1.3.6.1.4.1.12559.11.13.2.2', 'epsos_source_root_oid');
INSERT INTO app_configuration VALUES (43, '1.3.6.1.4.1.12559.11.13.2.3', 'homeCommunityID');
INSERT INTO app_configuration VALUES (23, '1.3.6.1.4.1.12559.11.13.2.4', 'home_root_oid');
INSERT INTO app_configuration VALUES (25, '1.3.6.1.4.1.12559.11.13.2.5', 'ihe_source_root_oid');
INSERT INTO app_configuration VALUES (18, '1.3.6.1.4.1.12559.11.13.2.6.', 'submission_set_root_oid');
INSERT INTO app_configuration VALUES (14, 'Abderrazek Boufahja', 'application_admin_name');
INSERT INTO app_configuration VALUES (65, 'http://gazelle.ihe.net/AssertionManagerGui', 'assertion_manager_url');
INSERT INTO app_configuration VALUES (66, 'true', 'display_KSA_menu');
INSERT INTO app_configuration VALUES (67, '/opt/XDStarClient/attachments/', 'attachement_files_directory');
INSERT INTO app_configuration VALUES (46, 'http://gazelle.ihe.net/CDAGenerator-CDAGenerator-ejb/CDAValidatorWS?wsdl', 'cda_mbv_wsdl');
INSERT INTO app_configuration VALUES (48, 'http://gazelle.ihe.net/CDAGenerator-CDAGenerator-ejb/CDAValidatorWS?wsdl', 'cda_mbv_wsdl');
INSERT INTO app_configuration VALUES (68, 'http://127.0.0.1:8180/XDStarClient-XDStarClient-ejb/DSUBRecipientWS?wsdl', 'xdstar_dsub_recipient_endpoint');
INSERT INTO app_configuration VALUES (72, '/opt/XDStarClient/', 'gazelle_home_path');
INSERT INTO app_configuration VALUES (70, '2.16.840.1.113883.3.3731.1.1.100.1', 'ksa_aa_oid');
INSERT INTO app_configuration VALUES (73, 'http://127.0.0.1:8180/XDStarClient-XDStarClient-ejb/XDSDeletetWS?wsdl', 'xdstar_delete_doc_endpoint');
INSERT INTO app_configuration VALUES (74, '/home/aboufahj/Téléchargements/36667D66.dcm', 'ksa_manifest_file');
INSERT INTO app_configuration VALUES (24, 'http://gazelle.ihe.net:8180/SVSSimulator/rest/RetrieveValueSetForSimulator', 'svs_repository_url');
INSERT INTO app_configuration VALUES (22, 'https://gazelle.ihe.net/XDStarClient/', 'application_url');
INSERT INTO app_configuration VALUES (52, 'https://gazelle.ihe.net/EVSClient/', 'evs_client_url');
INSERT INTO app_configuration VALUES (71, 'https://gazelle.ihe.net/xdstools2/', 'ksa_xdstools_url');
INSERT INTO app_configuration VALUES (75, 'false', 'display_IHE_RAD_menu');
INSERT INTO app_configuration VALUES (69, 'false', 'display_IHE_ITI_menu');
INSERT INTO app_configuration VALUES (28, 'http://gazelle.ihe.net/cas', 'cas_url');
INSERT INTO app_configuration VALUES (76, 'true', 'ip_login');
INSERT INTO app_configuration VALUES (77, '.*', 'ip_login_admin')

 

Properties Description Default
app_documentation official documentation http://gazelle.ihe.net/content/xdstarclient
application_admin_email email of the admin abderrazek.boufahja@ihe-europe.net
application_admin_name Admin name Abderrazek Boufahja
application_issue_tracker_url issues tracker's url http://gazelle.ihe.net/jira/browse/XDSTAR
application_name application name XDStarClient
application_release_notes_url release notes' url http://gazelle.ihe.net/jira/browse/XDSTAR#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel
application_time_zone time zone UTC+01
application_url the url of XDStarClient (too important as it is used by permanent links) https://gazelle.ihe.net/XDStarClient/
assertion_manager_url URL to the assertion manager used http://gazelle.ihe.net/AssertionManagerGui
attachement_files_directory file directory on the server, where documnent uploaded and downloaded will be saved /opt/XDStarClient/attachments/
avoid_nist_validation_ihe set to false when validation using the nist validator is performed

true

birthdate used for initialization for XCPD request 19501201
Cache-Control security parameter private, no-cache, no-store, must-revalidate, max-age=0
cas_url link to the SSO cas http://gazelle.ihe.net/cas
cda_mbv_wsdl link to the CDA MBV tool ws http://gazelle.ihe.net/CDAGenerator-CDAGenerator-ejb/CDAValidatorWS?wsdl
cda_mbv_xslt link to the stylesheet to render the result of validation of a CDA document http://gazelle.ihe.net/xsl/mbcdaDetailedResult.xsl
cda_xsl_path link to the stylesheet to render a cda document cda.xsl
city used for initialization for XCPD request Valeur de la préférence
connection_timeout When the client want to rich a responder, this represent the time in millisecond, that the client shall wait before closing the connection 50000
country used for initialization for XCPD request Valeur de la préférence
default_pratician_id used for epSOS purpose XDR Test Pratician
dicom3tools_validator path where the dicom3tools is installed /usr/bin/
dispensation_template_path used for epSOS purpose N/A
display_IHE_ITI_menu display, or not, the IHE ITI transactions false
display_IHE_RAD_menu display, or not, the IHE RAD transactions false
document_root_oid unique identifier of documents 1.3.6.1.4.1.12559.11.13.2.1.
dsub_xsd path to the schema of DSUB /opt/XDStarClient/xsd/DSUB/soap-envelope.xsd
epsosFolder used for epSOS purpose N/A
epsos_source_root_oid used for epSOS purpose 1.3.6.1.4.1.12559.11.13.2.2
evs_client_url link to evs client tool https://gazelle.ihe.net/EVSClient/
extension used for initialization for XCPD request Valeur de la préférence
family used for initialization for XCPD request NOVAK
gazelle_home_path path to a folder used by the tool /opt/XDStarClient/
gender used for initialization for XCPD request Valeur de la préférence
given used for initialization for XCPD request JAN
homeCommunityID used by the XSD.b requests 1.3.6.1.4.1.12559.11.13.2.3
home_root_oid used by the XSD.b requests 1.3.6.1.4.1.12559.11.13.2.4
ihe_source_root_oid used by the XSD.b requests 1.3.6.1.4.1.12559.11.13.2.5
ip_login  used to confirm if the connexion is done using a cas or an ip authentification true
ip_login_admin list of accepted ip address .*
key_alias  the alias of the keystore used for ssh connexion with responders tomcat
key_pass  password of the key password
keystore_pass  password of the keystore password
ksa_aa_oid  assigning authority OID, for patients 2.16.840.1.113883.3.3731.1.1.100.1
ksa_manifest_file  Manifest used in test plan, only related to k-project /../36667D66.dcm
ksa_xdstools_url  link to xdstools2 (only related to k-project) https://gazelle.ihe.net/xdstools2/
maidenname  used for initialization of XCPD request Valeur de la préférence
postalcode used for initialization of XCPD request Valeur de la préférence
registered_files_directory  used by the ITI-41 transaction /opt/XDStarClient/uploadedFiles
root used for initialization of XCPD request Valeur de la préférence
schematron_validator path to the ws of schematronValidator http://gazelle.ihe.net/SchematronValidator-SchematronValidator-ejb/GazelleObjectValidatorWS?wsdl
security-policies confirm if security is used true
server_local_path  path to a folder on the server /opt/XDStarClient/
simu_jks_path  path to the keystore /opt/china.jks
sql_injection_filter_switch  security parameter false
street used for initialization of XCPD request Valeur de la préférence
Strict-Transport-Security   security parameter max-age=31536000 ; includeSubDomains
submission_set_root_oid  used by ITI-41 transaction 1.3.6.1.4.1.12559.11.13.2.6.
svs_repository_url  link to SVS rest service http://gazelle.ihe.net:8180/SVSSimulator/rest/RetrieveValueSetForSimulator
uploadFolder  path to folder for uploading file /opt/XDStarClient/tmp
validation_result_xslt  path to xds transformer of validation result http://gazelle.ihe.net/xsl/xdsDetailedResult.xsl
X-Content-Security-Policy  security parameter Valeur de la préférence
X-Content-Security-Policy-Report-Only  security parameter default-src 'self' *.ihe.net *.ihe-europe.net *.ihe-c.org; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline';
xdstar_delete_doc_endpoint  endpoint link to the delete webservice http://127.0.0.1:8180/XDStarClient-XDStarClient-ejb/XDSDeletetWS?wsdl
xdstar_dsub_recipient_endpoint   endpoint link to the dsub recipient webservice http://127.0.0.1:8180/XDStarClient-XDStarClient-ejb/DSUBRecipientWS?wsdl
xds_xsd  link to the schema of XDS-I.b /opt/XDStarClient/xsd/IHE/XDSI.b_ImagingDocumentSource.xsd
X-Frame-Options  security parameter SAMEORIGIN
X-WebKit-CSP   security parameter Use X-Content-Security-Policy values
X-WebKit-CSP-Report-Only  security parameter Use X-Content-Security-Policy-Report-Only values

 

Compile

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

  • jdbc.connection.url : jdbc:postgresql:xdstar-client
  • jdbc.connection.user / jdbc.connection.password : credentials for database access

Then, create the EAR archive with the command line:

cd XDStar-modules
mvn install
cd ..
cd XDStarClient
mvn clean package -Pproduction

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

5. Deployment

Copy the XDStarClient.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/XDStarClient.

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