Giter VIP home page Giter VIP logo

opal's Introduction

Opal Build Status

Opal is OBiBa’s core database application for biobanks or epidemiological studies.

Developers

Set up a development environment:

  • Make sure Java8 is available.
  • Make sure you have a MongoDB, MySQL or MariaDB database running.
  • Compile with make all
  • Get the obiba-home repository to have some seeding material.
  • Prepare execution environment: make prepare (do it only once, this will create a opal_home directory)
  • Run in debug mode: make debug
  • Login http://localhost:8080 with administrator/password credentials.
  • Declare the databases (only at the first connection)
  • Go to obiba-home project and make seed-opal

There are many other targets, just check the Makefile and change variables to match your environment.

Mailing list

Have a question? Ask on our mailing list!

[email protected]

http://groups.google.com/group/obiba-users

License

OBiBa software are open source and made available under the GPL3 licence. OBiBa software are free of charge.

OBiBa acknowledgments

If you are using OBiBa software, please cite our work in your code, websites, publications or reports.

"The work presented herein was made possible using the OBiBa suite (www.obiba.org), a software suite developed by Maelstrom Research (www.maelstrom-research.org) and Epigeny (www.epigeny.io)"

opal's People

Contributors

aa542 avatar alchimystic avatar apruden avatar aymandf avatar cthiebault avatar dependabot[bot] avatar emorency avatar firone avatar jankanis avatar kazoompa avatar meek0 avatar mennodekker avatar nuwimana avatar obiba-ci avatar plaflamme avatar programmax avatar rima-b avatar tonydebat avatar ymarcon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opal's Issues

OPAL-31: Revisit Opal Key schema for simplification

Jira issue originally created by user @plaflamme:

The Opal Key SQL schema is somewhat difficult to navigate and understand. There is a need to revisit the Hibernate Annotations to reduce the resulting SQL schema's complexity.

A discussion about this is available on obiba-dev group. Please refer to this discussion before investigating this issue.

OPAL-17: Implement opalkey's decrypt command

Jira issue originally created by user dspathis:

Includes implementation of:

  • OpalKeyClient
  • DecryptCommand
  • DecryptCommandOptions
  • opalkey.bat (script to launch opalkey)

DecryptCommand will have an associated strategy (see earlier sub-tasks) that it will use to acquire an unencrypted InputStream of the targeted file. It will then read that InputStream and write out the data to another file.

Note that most of the work here involves pulling together code implemented in the other sub-tasks.

OPAL-9: Code Review

Jira issue originally created by user nemond:

See comments for code review notes.

OPAL-25: Opal startup scripts don't work with JRE

Jira issue originally created by user @plaflamme:

The startup scripts use java.ext.dir to setup the classpath. The JVM's ext dir is different when using a JDK or JRE:

JDK:
$JAVA_HOME/jre/ext

JRE:
$JAVA_HOME/ext

The use of ext dir is probably not the solution here. We should build the classpath by concatenating jar files located within the lib dir.

This is very easy to implement for bash. Windows batch files are more tricky. Solution is to look at how Tomcat builds its classpath in startup.bat file: it uses an external batch file to build the classpath.

OPAL-36: Extraction and Mart Building

Jira issue originally created by user @plaflamme:

Using the basic semantic mapping, Opal should allow extracting data based on DataItem selection and filtgering

See report definition in wiki to determine the requirements.

Spring Batch should be used to define the extraction jobs. An «export» command should be added to the list of available cli commands.

OPAL-49: Normalize occurrence IDs during onyx-import

Jira issue originally created by user @plaflamme:

When loading occurrences from onyx, the DataPoint occurrence IDs should be normalized, starting at 1.

That is, the first occurrence of a variable should have 1 as its occurrence ID, the second 2 and so on.

OPAL-50: Do not rely on default storage engine value in MySQL

Jira issue originally created by user @plaflamme:

The default storage engine in MySQL is configurable (--default-storage-engine). As such, jdbc-mart cannot rely that the default engine is MyISAM. It should force it to MyISAM.

This could be conditional, depending on the amounts of columns being created.

OPAL-32: Create unique code per variable

Jira issue originally created by user @plaflamme:

Each variable must have a unique code. This code must be automatically generated by Opal and should be sequential. It should have a configurable prefix and a series of digits.

For example:
CAG-2947
OHS-17880

Notes:

  • The variable code's string length will vary. If we try to prefix the number with zeroes, we end up either limiting the quantity of variables the system can accept or having to manage the number of zeroes to add to codes. This complicates the issue needlessly.
  • Advancing the sequence of codes should probably be done outside the transaction that is creating the variables. Unless the database supports sequences, this is required because two processes creating variables must not end up generating the same code.

OPAL-35: Handle variables marked as "keys" in Onyx catalogue

Jira issue originally created by user @plaflamme:

Some variables are marked as "keys" in the Onyx catalogue. These are variables for which there should be no DataPoint as they contain identifiable values.

The value should be registered within the key database, but no DataPoint should be produced.

OPAL-30: Add support for Onyx variable data occurrence

Jira issue originally created by user @plaflamme:

The onyx-import job does not handle occurrences yet. That is, some variables allow repeated values for the same participant. Each repetition is an occurrence of the variable. When storing these values, we must store the repetition's ordinal (sequence within the repetition).

Given the following variable structure:
BP
|-SYSTOLIC
`-DIASTOLIC

Values will be provided as follows:

766
767



120


120




100


100

In this example, there are 2 occurrences of the BP variable, which creates 2 occurrences for each of its child variable. The DataPoints produced should have their "occurrence" property set. The first should have "1" and the second "2" (and not "766" and "767").

OPAL-28: Keystore credentials should be prompted "just in time"

Jira issue originally created by user @plaflamme:

Keystore credentials are now passed through an instance of OnyxDataInputContext. The credentials should actually be setup so that a console prompt appears when required.

This is achieved by using the KeyStore.CallbackHandlerProtection class during KeyStore.load().

OPAL-5: Participant Service

Jira issue originally created by user nemond:

-Define method for updating and querying participant key map
-method for generating dcc participant id (configurable)?
-DefaultParticipantServiceImpl

OPAL-34: Add install steps for schema creation

Jira issue originally created by user @plaflamme:

Using Upgrade Manager, add the following install steps:

  • Upgrade Manager schema creation (for persisting opal version)
  • Hibernate Schema Creation (see LocalSessionFactoryBean for programatically creating the schema)
  • Spring Batch Schema Creation.

OPAL-24: The "opalkey decrypt" command no longer works

Jira issue originally created by user tdebat:

The "opalkey decrypt" command no longer works. This occurred after the file reorganization intended to separate onyx specific code from opal core. In order to fix this problem we will need a way to "lazily" load Spring configuration. For example "opalkey decrypt" does not need the database, so there is no need to load database beans in order to run this command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.