🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

edc-lab

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

edc-lab

LIMS/lab classes for clinicedc/edc projects

1.0.5
PyPI
Maintainers
2

|pypi| |actions| |codecov| |downloads|

edc-lab

Add to settings:

.. code-block:: python

INSTALLED_APPS = [
    ...
    'edc_lab.apps.AppConfig',
    ...
]

Configuration

Create aliquot types:

.. code-block:: python

# aliquot types
wb = AliquotType(name='whole_blood', alpha_code='WB', numeric_code='02')
bc = AliquotType(name='buffy_coat', alpha_code='BC', numeric_code='16')
pl = AliquotType(name='plasma', alpha_code='PL', numeric_code='32')

Add possible derivatives to an aliquot type:

.. code-block:: python

# in this case, plasma and buffy coat are possible derivatives
wb.add_derivatives(pl, bc)

Set up a processing profile:

.. code-block:: python

viral_load = ProcessingProfile(
    name='viral_load', aliquot_type=wb)
process_bc = Process(aliquot_type=bc, aliquot_count=4)
process_pl = Process(aliquot_type=pl, aliquot_count=2)
viral_load.add_processes(process_bc, process_pl)

Create apanel that uses the processing profile:

.. code-block:: python

panel = RequisitionPanel(
    name='Viral Load',
    processing_profile=viral_load)

Add the panel (and others) to a lab profile:

.. code-block:: python

lab_profile = LabProfile(
    name='lab_profile',
    requisition_model='edc_lab.subjectrequisition')
lab_profile.add_panel(panel)

Register the lab_profile with the site global:

.. code-block:: python

site_labs.register(lab_profile)

Usage

Create a requisition model instance:

.. code-block:: python

requisition = SubjectRequisition.objects.create(
    subject_visit=self.subject_visit,
    panel_name=self.panel.name,
    is_drawn=YES)

Pass the requisition to Specimen

.. code-block:: python

specimen = Specimen(requisition=requisition)

Process:

.. code-block:: python

specimen.process()

Aliquots have been created according to the configured processing profile:

.. code-block:: python

>>> specimen.primary_aliquot.identifier
'99900GV63F00000201'

>>> for aliquot in specimen.aliquots.order_by('count'):
       print(aliquot.aliquot_identifier)
'99900GV63F00000201'
'99900GV63F02013202'
'99900GV63F02013203'
'99900GV63F02011604'
'99900GV63F02011605'
'99900GV63F02011606'
'99900GV63F02011607'

.. |pypi| image:: https://img.shields.io/pypi/v/edc-lab.svg :target: https://pypi.python.org/pypi/edc-lab

.. |actions| image:: https://github.com/clinicedc/edc-lab/actions/workflows/build.yml/badge.svg :target: https://github.com/clinicedc/edc-lab/actions/workflows/build.yml

.. |codecov| image:: https://codecov.io/gh/clinicedc/edc-lab/branch/develop/graph/badge.svg :target: https://codecov.io/gh/clinicedc/edc-lab

.. |downloads| image:: https://pepy.tech/badge/edc-lab :target: https://pepy.tech/project/edc-lab

Keywords

django

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts