Skip to content

Commit

Permalink
finished readme
Browse files Browse the repository at this point in the history
  • Loading branch information
ridz1208 committed Nov 22, 2024
1 parent 6ba945d commit f5c21c3
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 110 deletions.
163 changes: 53 additions & 110 deletions modules/biobank/README.md
Original file line number Diff line number Diff line change
@@ -1,123 +1,67 @@
# Biobank Module

## Overview
The Biobank Module is a comprehensive system within the LORIS platform designed to manage the collection, processing, storage, and shipment of biological specimens. It integrates seamlessly with existing workflows, ensuring data integrity and facilitating efficient biobank operations across various studies and sites.

## Table of Contents
- [Purpose](#purpose)
- [Architecture](#architecture)
- [Database Schema](#database-schema)
- [Permissions](#permissions)
- [Configuration](#configuration)
- [Installation](#installation)
- [Usage](#usage)
- [Interactions with LORIS](#interactions-with-loris)
- [Scripts and Utilities](#scripts-and-utilities)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## Purpose
The Biobank Module enables the management of biological specimens by providing functionalities for specimen tracking, container management, pooling, and shipment handling. It ensures standardized operations and maintains data integrity within the LORIS ecosystem.

## Architecture
The module is structured into four primary components, each represented as a tab within the interface:
1. **Specimens**
2. **Containers**
3. **Pools**
4. **Shipments**

Each component interacts with specific database tables and follows defined workflows to manage biobank operations effectively.

## Database Schema
The module relies on a robust set of database tables to store and manage data. Below is a comprehensive list of tables involved:

| Table Name | Description |
|-----------------------------------------|---------------------------------------------------------------|
| `biobank_container` | Stores information about individual containers. |
| `biobank_container_capacity` | Defines the capacity of containers. |
| `biobank_container_dimension` | Stores dimensional data of containers. |
| `biobank_container_parent` | Manages parent-child relationships between containers. |
| `biobank_container_shipment_rel` | Links containers to shipments. |
| `biobank_container_status` | Tracks the status of containers (e.g., Active, Inactive). |
| `biobank_container_type` | Defines different types of containers (e.g., Cryotube Vial). |
| `biobank_pool` | Manages pools created from multiple specimens. |
| `biobank_specimen` | Stores information about individual specimens. |
| `biobank_specimen_analysis` | Contains analysis data related to specimens. |
| `biobank_specimen_attribute` | Stores attributes associated with specimens. |
| `biobank_specimen_attribute_datatype` | Defines data types for specimen attributes. |
| `biobank_specimen_collection` | Manages collection data for specimens. |
| `biobank_specimen_freezethaw` | Tracks freeze-thaw cycles for specimens. |
| `biobank_specimen_parent` | Manages parent-child relationships between specimens. |
| `biobank_specimen_pool_rel` | Links specimens to pools. |
| `biobank_specimen_preparation` | Stores preparation data for specimens. |
| `biobank_specimen_process` | Defines processes applied to specimens (e.g., Preparation). |
| `biobank_specimen_project_rel` | Links specimens to projects. |
| `biobank_specimen_protocol` | Associates specimens with specific protocols. |
| `biobank_specimen_protocol_attribute_rel`| Links specimen protocols to their attributes. |
| `biobank_specimen_type` | Defines different types of specimens (e.g., Blood, RNA). |
| `biobank_specimen_type_container_type_rel`| Links specimen types to container types. |
| `biobank_specimen_type_parent` | Manages parent-child relationships between specimen types. |
| `biobank_specimen_type_unit_rel` | Links specimen types to measurement units. |
| `biobank_unit` | Defines measurement units (e.g., µL, mL). |
| `shipment` | Stores shipment records. |
| `shipment_log` | Logs events related to shipments. |
| `shipment_status` | Tracks the status of shipments. |
| `shipment_type` | Defines different types of shipments. |
## Intended Users
The primary users of the Biobank Module are:
- Biobank Managers: Oversee the overall biobank operations, including specimen tracking and inventory management.
- Laboratory Technicians: Handle the processing, storage, and preparation of biological specimens.
- Researchers: Access and utilize specimens for various studies and experiments.
- Site Coordinators: Ensure that specimens are correctly collected, processed, and integrated into the LORIS system across multiple sites.

## Scope
The Biobank Module facilitates the comprehensive management of biological specimens within the LORIS platform. Its functionalities include:

- **Specimen Tracking:** Monitor the lifecycle of each specimen from collection to storage and shipment.
- **Container Management:** Manage storage containers, including their types, capacities, and hierarchical relationships.
- **Pooling:** Combine multiple specimens into pools for efficient processing and analysis.
- **Shipment Handling:** Track the shipment of specimens, including logging shipment events and statuses.

**NOT in scope:**

- Automated quality control of specimens.
- Integration with external laboratory information management systems (LIMS) beyond LORIS.

## Permissions
Access to the Biobank Module is controlled through specific permissions to ensure data security and appropriate access levels.

| Permission ID | Permission Code | Description | Category | Access Level |
|---------------|-----------------------------------|------------------------------|----------|--------------|
| 65 | `biobank_specimen_view` | View Specimen Data | 44 | View |
| 66 | `biobank_specimen_create` | Create Specimens | 44 | Create |
| 67 | `biobank_specimen_update` | Edit/Upload Specimen Data | 44 | Edit/Upload |
| 68 | `biobank_specimen_alter` | Alter Specimen Data | 44 | Edit |
| 69 | `biobank_container_view` | View Container Data | 44 | View |
| 70 | `biobank_container_create` | Create Containers | 44 | Create |
| 71 | `biobank_container_update` | Edit Container Data | 44 | Edit |
| 72 | `biobank_pool_view` | View Pool Data | 44 | View |
| 73 | `biobank_pool_create` | Create Pools | 44 | Create |
| 99 | `biobank_fullsiteaccess` | Full Site Access | 44 | View |
| 100 | `biobank_fullprojectaccess` | Full Project Access | 44 | View |
| Permission Code | Description | Access Level |
|-----------------------------------|------------------------------|---------------|
| `biobank_specimen_view` | View Specimen Data | View |
| `biobank_specimen_create` | Create Specimens | Create |
| `biobank_specimen_edit` | Edit/Upload Specimen Data | Edit/Upload |
| `biobank_container_view` | View Container Data | View |
| `biobank_container_create` | Create Containers | Create |
| `biobank_container_edit` | Edit Container Data | Edit |
| `biobank_pool_view` | View Pool Data | View |
| `biobank_pool_create` | Create Pools | Create |
| `biobank_fullsiteaccess` | Full Site Access | View |
| `biobank_fullprojectaccess` | Full Project Access | View |

*Note: Ensure `Category` and `Access Level` align with your organization's permission schema.*

## Configuration
### Key Configuration Tables
The module's functionality is supported by multiple configuration tables, each serving a specific purpose in managing specimens, containers, pools, and shipments.

- **Specimen Management:**
- `biobank_specimen`
- `biobank_specimen_type`
- `biobank_specimen_attribute`
- `biobank_specimen_process`
- `biobank_specimen_protocol`
- `biobank_specimen_pool_rel`

- **Container Management:**
- `biobank_container`
- `biobank_container_type`
- `biobank_container_parent`
- `biobank_container_capacity`
- `biobank_container_dimension`

- **Pool Management:**
- `biobank_pool`
- `biobank_specimen_pool_rel`

- **Shipment Management:**
- `shipment`
- `shipment_log`
- `shipment_status`
- `shipment_type`
- `biobank_container_shipment_rel`

- **Units and Types:**
- `biobank_unit`
- `biobank_specimen_type_unit_rel`
- `biobank_specimen_type_container_type_rel`
| Table | Configuration | Description |
|---------------------------------------|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| `biobank_specimen_type` | Specimen Types | **Defines various specimen types (e.g., Blood, RNA) and their relationships with parent specimen types via `biobank_specimen_type_parent`.** |
| `biobank_container_capacity` | Container Capacity | **Defines the capacity of containers, specifying how many specimens each container can hold.** |
| `biobank_container_dimension` | Container Dimensions | **Stores dimensional data of containers, including size and volume specifications.** |
| `biobank_container_status` | Container Status | **Tracks the status of containers (e.g., Active, Inactive) to monitor their availability and usage.** |
| `biobank_container_type` | Container Types | **Specifies types of containers used for storing specimens, linked to specimen types through `biobank_specimen_type_container_type_rel`.** |
| `biobank_specimen_attribute` | Specimen Attributes | **Stores attributes related to specimens, such as concentration and quality metrics.** |
| `biobank_specimen_attribute_datatype` | Specimen Attribute Datatypes | **Defines data types for specimen attributes to ensure consistent data entry and validation.** |
| `biobank_specimen_protocol` | Specimen Protocols | **Associates specimens with specific collection and preparation protocols, ensuring standardized handling procedures.** |
| `biobank_specimen_protocol_attribute_rel` | Specimen Protocol Attribute Relations | **Links specimen protocols to their attributes, maintaining data consistency and integrity.** |
| `biobank_specimen_type_container_type_rel` | Specimen Type Container Type Relations | **Links specimen types to container types, ensuring appropriate container usage for each specimen type.** |
| `biobank_specimen_type_parent` | Specimen Type Parent Relations | **Manages parent-child relationships between specimen types, allowing for hierarchical classification and organization.** |
| `biobank_specimen_type_unit_rel` | Specimen Type Unit Relations | **Links specimen types to measurement units, ensuring consistent data entry for specimen measurements.** |
| `biobank_unit` | Measurement Units | **Defines measurement units (e.g., µL, mL) used across the Biobank Module for consistent data entry and reporting.** |
| `shipment_status` | Shipment Statuses | **Tracks the status of shipments (e.g., Pending, Shipped, Delivered) to monitor their progress and completion.** |
| `shipment_type` | Shipment Types | **Defines different types of shipments (e.g., Internal, External) to categorize and manage shipping processes effectively.** |


### Detailed Configuration Settings
- **Specimen Types (`biobank_specimen_type`):** Defines various specimen types (e.g., Blood, RNA) and their relationships with parent specimen types via `biobank_specimen_type_parent`.
Expand All @@ -138,8 +82,7 @@ The module's functionality is supported by multiple configuration tables, each s

- **Data Integrity (`biobank_specimen_protocol_attribute_rel`):** Ensures that specimen protocols are correctly linked to their attributes, maintaining data consistency.

## Installation
1. **Clone the Repository:**
```bash
git clone https://github.com/aces/Loris.git
cd Loris
## Interactions with LORIS
The Biobank Module integrates seamlessly with various components of the LORIS platform to enhance functionality and data management:

- **Links:** Includes links to Session, Sites and Candidate modules.
2 changes: 2 additions & 0 deletions modules/biobank/php/containercontroller.class.inc
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php declare(strict_types=1);

use \LORIS\Http\Response\JSON\BadRequest;

/**
* This class features the code that enables access to the containers of the
* LORIS Biobank Module.
Expand Down

0 comments on commit f5c21c3

Please sign in to comment.