Onyx Development

obiba.org

Onyx source code

https://github.com/obiba/onyx

https://github.com/obiba/onyx-demo

Technologies

  • Java
  • Maven build tool
  • Hibernate object/relational mapping framework to abstract database interactions
  • Spring dependency injection framework
  • Wicket component-oriented web UI framework
  • Magma home-made data abstraction layer

Onyx sub-projects

  • onyx-core
  • onyx-util
  • onyx-modules
  • onyx-webapp

onyx-core

Core classes, stage type independent

  • domain (participant, interview, user...)
  • stage state machine based on this paper
  • data import (participant, external data sources...)
  • data export and purge
  • reusable UI components (wicket)
  • various utilities (upgrade, math, pdf, cryptography...)

onyx-util

Basic utility classes

  • file
  • string
  • date
  • data converters
  • ...

onyx-modules

  • marble electronic consent
  • jade instrument (manual/electronic)
  • quartz questionnaire
  • ruby biosamples registration

onyx-modules

Java packages found in each of the modules (jade, quartz...)

  • domain module specific data definition
  • service module specific configuration, business logic and data persistence
  • engine module specific states and transitions
  • wicket module specific UI
  • magma module specific variables

marble

Electronic or manual consent

  • signature pad
  • PDF form (capture and data extraction)

jade

Instrument interaction

  • Java Web Start for starting a java application on client side for data collection
  • Spring for data communication between client and server
  • onyx-parent contains implementations of various jade client applications
  • Documentation Integrating an instrument

quartz

Questionnaire

  • editor
  • multi-media (sound, video)
  • multi-language
  • conditions

ruby

Biosamples definition and validation

  • samples types
  • characterisation
  • numbering
  • comment

onyx-webapp

Wicket application

  • Model data to be captured or rendered
  • View template based (html files is src/resources)
  • Controller UI components: takes a Model, apply some business logic (Spring injection of services) and render it in a View

onyx-demo

Example project

  • modules configuration files
  • questionnaires
  • instruments integration
  • stage dependencies
  • participant management
  • webapp overlay to build a custom application

Resources

Made with Slides.com