Data Model
The IRB Exchange uses a simple data model to manage the collaboration of insitutions and study information. The data model consists of three object types:
Organizations
An organization represents any institution or company that has registered with Huron Consulting Group and set up an account to use the IRB Exchange. An organization may be assigned one of two roles within the IRB Exchange system: a participating site (pSite) role, or a single IRB of record (sIRB) role.
Name | Type | Description |
---|---|---|
id | string (uuid) | A system-defined unique identifier for the organization |
name | string | The name of the organization |
url | string (url) | A self-referencing link to this organization resource |
certificateUrl | string (url) | A link to the organization's public certificate |
thumbprint | string (base16) | The thumbprint for the organization's certificate |
isSirb | boolean | A flag that indicates whether or not the organization is registered as a single IRB of record |
isDisabled | boolean | A flag that indicates whether or not the organization is disabled |
createdAt | dateTime | The timestamp for when the organization was created |
updatedAt | dateTime | The timestamp for when the organization was last modified |
Containers
A container is the primary object that allows organizations to collaborate on a multi-site study. Any sIRB organization is authorized to create new containers, invite other organizations, and add information to the container as structured messages and file attachments.
Name | Type | Description |
---|---|---|
id | string (uuid) | A system-defined unique identifier for the container |
url | string (url) | A self-referencing link to this organization resource |
itemsUrl | string (url) | A link to the collection of items in this container |
ownerUrl | string (url) | A link to the organization that owns this container |
organizationsUrl | string (url) | A link to the list of organizations that have access to this container |
ownerId | string (uuid) | The owning organization's ID |
createdAt | dateTime | The timestamp for when the container was created |
updatedAt | dateTime | The timestamp for when the container was last modified |
Items
An item represents any piece of organizational information that is stored within a container. An item may contain structured information such as JSON, XML, or any other data format. An item can also be used to store documents, images, videos, etc. All items stored within the IRB Exchange are encrypted and only accessible to the collaborating institutions of your choosing.
Because an item may contain any sort of data, it can be difficult to determine the contents of the item. For this reason, an item is split into two parts; the header, and the content. The item header should be a structured message that contains enough information to determine how to process the content.
The Click® IRB application uses a simple JSON structure for the item headers. For more specific information about how the Click® IRB application uses the IRB Exchange, please consult the IRB data model.
Name | Type | Description |
---|---|---|
id | string | A user- or system-defined identifier. This ID must be unique within the context of a container. |
url | string (url) | A self-referencing link to this item resource |
containerUrl | string (url) | A link to the container resource in which this item is stored |
contentUrl | string (url) | A link to the primary content for this item |
ownerUrl | string (url) | A link to the organization that created and owns this item |
permissionsUrl | string (url) | A link to the list of organizations that have access to this item |
header | string (base64) | The symmetrically-encrypted header. The key value must be decrypted and then used to decrypt this value. |
headerHash | string (base16) | The hash of the unencrypted header |
headerHashAlgorithm | string | The name of the hash algorithm used to compute the headerHash value |
content | string (base64) | The symmetrically encrypted content. The key must be decrypted and then used to decrypt this value. |
contentHash | string (base16) | The hash of the unencrypted content |
contentHashAlgorithm | string | The name of the hash algorithm used to compute the contentHash value |
iv | string (base16) | The initialization vector used with the symmetric key |
algorithm | string | The name of the symmetric key algorithm that was used to encrypt the header and content values |
key | string (base64) | The asymmetrically-encrypted symmetric key. This field is dependent upon the organization making a request for an item. |
keyHash | string (base16) | The hash of the unencrypted symmetric key |
keyHashAlgorithm | string | The name for the hash algorithm used to compute the keyHash value |
createdAt | dateTime | The timestamp for when the item was created |
updatedAt | dateTime | The timestamp for when the item was last modified |