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
- Onyx developer guide
- Source code
- Issue tracker
- obiba-users@googlegroups.com (public)
- support@obiba.org (private)
Onyx Development
By Yannick Marcon
Onyx Development
Onyx development general presentation
- 2,847