|
|
OverviewWhat is Opal ?Opal is OBiBa's core database application for biobanks. Participant data, once collected either from OBiBa's Onyx application, must be integrated and stored in a central data repository under a uniform model. Opal is such a central repository. Current Opal version can import, process, and copy data. Opal is typically used in a research center to analyze the data acquired at assessment centres. Its ultimate purpose is to achieve seamless data-sharing among biobanks. For more information on Opal future, see Opal description on OBiBa. Functional UnitsFollowing the OBiBa paradigm of separation of concerns, the concept of "Functional Units" defines how to protect participant's privacy while exchanging data with Opal. The exchanges can be in both directions: imports and exports. Current version of Opal only support imports. A functional unit may be part of your organization or not. Participants privacy is ensured by:
Data EncryptionTo protect participants privacy the file that is exchanged between two units and that contains some participants identifiers with data, should be encrypted. It is part of the functional unit description in Opal to define a unit's keystore that contains the encryption key pairs (private key and certificate). Specifying the unit from which data are imported, in addition to allow Participant Key Separation, also allows to decrypt the imported file. The importation process of Opal is the following:
Participant Key SeparationParticipant's privacy involves several identifiers:
Opal separates the participant identifiers from the participant's data in two databases:
One participant is identified in these two databases by a unique identifier which is the Opal participant's private key. Opal is able to find a participant from a given shared key. The importation process of Opal is the following for one participant:
Integration with OnyxOnyx is the OBiBa's solution for collecting participants data. Data exported by Onyx can be directly imported in Opal. It is not necessary to define a functional unit per assessment centre site: one functional unit will describe all of them, and this unit's keystore will contain the encryption key pairs for all the sites. Variables OrganizationThe variables are organized in an abstract way, independently of the way they are persisted. The following diagram presents a 'traditional' view of what is a table:
The following diagram shows the relationships between the different concepts:
Variables and CategoriesA variable describes a set of values. The values of a variable are all of the same type. Possible value types are:
A variable is about an entity, i.e. all the values for a variable are from the same entity type. Possible entity types are:
A category describe some of the possible values of a variable. A category is associated to one and only one variable. Datasources and TablesA variable is in one and only one table. A table has several variables and is in one and only one datasource. A datasource has several tables. A datasource is not a database: it can be persisted in a database, using different schema. It can also be persisted in a file in xml or Excel formats. It is important to understand that Opal separates the formal description of the variables from the way they are persisted. This gives to Opal a lot of versatility. The copy command will allow to copy variables from one table to another table in a different datasource. AttributesDatasources, variables and categories have attributes. These attributes provide additional meta-information. An attribute is made of:
Example Example of a variable asked_age which has the following attributes:
The variable asked_age has also some categories (with their attributes):
EntitiesThe entities can be of different types:
Each entity has a unique identifier. An entity can have several value sets, but only one value set for a particular table. Value TypesThe following table gives more information about the textual representation of a value, given a value type:
Value Sets and ValuesA value is associated to a variable and is part of a value set. Each value set is for a particular entity and a particular table. An entity has a maximum of one value set in one table. Fully Qualified NamesEach of these elements has a short name. A fully qualified name will identify them uniquely:
The fully qualified name might be useful for disambiguation. Examples Following the example of the asked_age variable, its fully qualified name could be: opal-data.IdentificationQuestionnaire:asked_age Derived VariablesA derived variable is a variable which values are computed using a script. This script is expressed using the Magma Javascript API. ViewsOpal deals with variables and values in tables. Views are here to:
These virtual tables are then manipulated just like standard tables (for instance they can be copied to a datasource). Given one table:
A view can be defined so that the resulting 'table' may be:
or:
|
Search Opal Documentation |
General Concepts
Labels:
None