Add to settings:
INSTALLED_APPS = [
...
'edc_lab.apps.AppConfig',
...
]
Create aliquot types:
# 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:
# in this case, plasma and buffy coat are possible derivatives
wb.add_derivatives(pl, bc)
Set up a processing profile:
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 a``panel`` that uses the processing profile:
panel = RequisitionPanel(
name='Viral Load',
processing_profile=viral_load)
Add the panel (and others) to a lab profile:
lab_profile = LabProfile(
name='lab_profile',
requisition_model='edc_lab.subjectrequisition')
lab_profile.add_panel(panel)
Register the lab_profile
with the site global:
site_labs.register(lab_profile)
Create a requisition model instance:
requisition = SubjectRequisition.objects.create(
subject_visit=self.subject_visit,
panel_name=self.panel.name,
is_drawn=YES)
Pass the requisition to Specimen
specimen = Specimen(requisition=requisition)
Process:
specimen.process()
Aliquots have been created according to the configured processing profile:
>>> specimen.primary_aliquot.identifier
'99900GV63F00000201'
>>> for aliquot in specimen.aliquots.order_by('count'):
print(aliquot.aliquot_identifier)
'99900GV63F00000201'
'99900GV63F02013202'
'99900GV63F02013203'
'99900GV63F02011604'
'99900GV63F02011605'
'99900GV63F02011606'
'99900GV63F02011607'