Eureka! Clinical Registry Service

Parent pom.xml for all Eureka! Clinical projects with standard dependencies

License

License

Categories

Categories

CLI User Interface Eureka Container Microservices
GroupId

GroupId

org.eurekaclinical
ArtifactId

ArtifactId

eurekaclinical-registry-service
Last Version

Last Version

1.5-Alpha-2
Release Date

Release Date

Type

Type

war
Description

Description

Eureka! Clinical Registry Service
Parent pom.xml for all Eureka! Clinical projects with standard dependencies
Project URL

Project URL

https://github.com/eurekaclinical/eurekaclinical-registry-service.git
Project Organization

Project Organization

Emory University
Source Code Management

Source Code Management

https://github.com/eurekaclinical/eurekaclinical-registry-service.git

Download eurekaclinical-registry-service

How to add to project

<!-- https://jarcasting.com/artifacts/org.eurekaclinical/eurekaclinical-registry-service/ -->
<dependency>
    <groupId>org.eurekaclinical</groupId>
    <artifactId>eurekaclinical-registry-service</artifactId>
    <version>1.5-Alpha-2</version>
    <type>war</type>
</dependency>
// https://jarcasting.com/artifacts/org.eurekaclinical/eurekaclinical-registry-service/
implementation 'org.eurekaclinical:eurekaclinical-registry-service:1.5-Alpha-2'
// https://jarcasting.com/artifacts/org.eurekaclinical/eurekaclinical-registry-service/
implementation ("org.eurekaclinical:eurekaclinical-registry-service:1.5-Alpha-2")
'org.eurekaclinical:eurekaclinical-registry-service:war:1.5-Alpha-2'
<dependency org="org.eurekaclinical" name="eurekaclinical-registry-service" rev="1.5-Alpha-2">
  <artifact name="eurekaclinical-registry-service" type="war" />
</dependency>
@Grapes(
@Grab(group='org.eurekaclinical', module='eurekaclinical-registry-service', version='1.5-Alpha-2')
)
libraryDependencies += "org.eurekaclinical" % "eurekaclinical-registry-service" % "1.5-Alpha-2"
[org.eurekaclinical/eurekaclinical-registry-service "1.5-Alpha-2"]

Dependencies

compile (6)

Group / Artifact Type Version
org.eurekaclinical : eurekaclinical-common jar 5.1-Alpha-1
org.eurekaclinical : eurekaclinical-standard-apis jar 4.1-Alpha-1
org.eurekaclinical : eurekaclinical-registry-client jar 1.6-Alpha-2
com.sun.xml.bind : jaxb-core jar 2.3.0.1
javax.xml.bind : jaxb-api jar 2.3.1
com.sun.xml.bind : jaxb-impl jar 2.3.1

provided (1)

Group / Artifact Type Version
javax.servlet : javax.servlet-api jar 4.0.1

Project Modules

There are no modules declared in this project.

Eureka! Clinical Registry Service

Atlanta Clinical and Translational Science Institute (ACTSI), Emory University, Atlanta, GA

The registry service provides a list of deployed Eureka! Clinical components. Its initial purpose is for resource discovery such as populating menus and other lists of available components.

Version history

Latest release: Latest release

Version 1.1

The properties in the application.properties were named in a non-standard way in version 1.0, starting with eurekaclinical.registry.service rather than eurekaclinical.registryservice. Version 1.1 added standard property names. It responds to either, and it prioritizes the original non-standard names if both are present. The non-standard property names are deprecated and will be removed in a future release.

We also updated the README.md.

Version 1.0

Initial release.

Manages registering a user with this service for authorization purposes.

Call-dependent

Yes

Properties:

  • id: unique number identifying the user (set by the server on object creation, and required thereafter).
  • username: required username string.
  • roles: array of numerical ids of roles.

All calls use standard names, return values and status codes as specified in the Eureka! Clinical microservice specification

Returns an array of all User objects. Requires the admin role.

Returns a specified User object by the value of its id property, which is unique. Requires the admin role to return any user record. Otherwise, it will only return the user's own record.

Returns a specified User object by its username, which is unique. Requires the admin role to return any user record. Otherwise, it will only return the user's own record.

Returns the User object for the currently authenticated user.

Creates a new user. The User object is passed in as the body of the request. Returns the URI of the created User object. Requires the admin role.

Updates the user object with the specified id. The User object is passed in as the body of the request. Requires the admin role.

Manages roles for this service. It is read-only.

No.

Yes

Properties:

  • id: unique number identifying the role.
  • name: the role's name string.

All calls use standard names, return values and status codes as specified in the Eureka! Clinical microservice specification

Returns an array of all User objects.

Returns a specified Role object by the value of its id property, which is unique.

Returns a specified Role object by its name, which is unique.

The project uses the maven build tool. Typically, you build it by invoking mvn clean install at the command line. For simple file changes, not additions or deletions, you can usually use mvn install. See https://github.com/eurekaclinical/dev-wiki/wiki/Building-Eureka!-Clinical-projects for more details.

You can run this project in an embedded tomcat by executing mvn process-resources cargo:run -Ptomcat after you have built it. It will be accessible in your web browser at https://localhost:8443/eurekaclinical-registry-service/. Your username will be superuser.

A Liquibase changelog is provided in src/main/resources/dbmigration/ for creating the schema and objects. Liquibase 3.3 or greater is required.

Perform the following steps:

  1. Create a schema in your database and a user account for accessing that schema.
  2. Get a JDBC driver for your database and put it the liquibase lib directory.
  3. Run the following:
./liquibase \
      --driver=JDBC_DRIVER_CLASS_NAME \
      --classpath=/path/to/jdbcdriver.jar:/path/to/eurekaclinical-registry-service.war \
      --changeLogFile=dbmigration/changelog-master.xml \
      --url="JDBC_CONNECTION_URL" \
      --username=DB_USER \
      --password=DB_PASS \
      update
  1. Add the following Resource tag to Tomcat's context.xml file:
<Context>
...
    <Resource name="jdbc/EurekaClinicalServiceRegistryService" auth="Container"
            type="javax.sql.DataSource"
            driverClassName="JDBC_DRIVER_CLASS_NAME"
            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            url="JDBC_CONNECTION_URL"
            username="DB_USER" password="DB_PASS"
            initialSize="3" maxActive="20" maxIdle="3" minIdle="1"
            maxWait="-1" validationQuery="SELECT 1" testOnBorrow="true"/>
...
</Context>

The validation query above is suitable for PostgreSQL. For Oracle and H2, use SELECT 1 FROM DUAL.

This service is configured using a properties file located at /etc/ec-registry/application.properties. It supports the following properties:

It also supports the following deprecated properties:

  • eurekaclinical.registry.service.callbackserver: replaced by eurekaclinical.registryservice.callbackserver
  • eurekaclinical.registry.service.url: replaced by eurekaclinical.registryservice.url

These deprecated properties will be removed in a future release.

A Tomcat restart is required to detect any changes to the configuration file.

  1. Stop Tomcat.
  2. Remove any old copies of the unpacked war from Tomcat's webapps directory.
  3. Copy the warfile into the tomcat webapps directory, renaming it to remove the version. For example, rename eurekaclinical-registry-service-1.0-SNAPSHOT.war to eurekaclinical-registry-service.war.
  4. Start Tomcat.
<dependency>
    <groupId>org.eurekaclinical</groupId>
    <artifactId>eurekaclinical-registry-service</artifactId>
    <version>version</version>
</dependency>

Feel free to contact us at [email protected].

org.eurekaclinical

Eureka! Clinical

Microservices for clinical and translational research

Versions

Version
1.5-Alpha-2
1.4
1.4-Alpha-3
1.3
1.2
1.2-Beta-3
1.2-Beta-2
1.2-Beta-1
1.1
1.0
1.0-Alpha-10
1.0-Alpha-9
1.0-Alpha-8
1.0-Alpha-7
1.0-Alpha-6
1.0-Alpha-5
1.0-Alpha-4
1.0-Alpha-3
1.0-Alpha-2
1.0-Alpha-1