In [7]:
from td_lab.models import InfantRequisition
In [8]:
infant_requisition = InfantRequisition.objects.all()
In [9]:
rs_fields = [
'subject_identifier', 'maternal_identifier', 'dob', 'gender', 'subject_type']
visit_fields = [
'visit_datetime', 'study_status', 'reason', 'survival_status', 'last_alive_date', 'infant_visit_id']
visit_defination_fields = ['visit_code', 'visit_title', 'time_point']
appointment_fields = ['appt_status', 'appt_datetime', 'timepoint_datetime', 'best_appt_datetime']
In [10]:
requisition_fields = ['created',
'modified',
'user_created',
'user_modified',
'hostname_created',
'hostname_modified',
'revision',
'id',
'report_datetime',
'exported',
'exported_datetime',
'export_change_type',
'export_uuid',
'subject_identifier',
'requisition_identifier',
'requisition_datetime',
'specimen_identifier',
'protocol',
'study_site',
'clinician_initials',
'priority',
'is_drawn',
'reason_not_drawn',
'drawn_datetime',
'item_type',
'item_count_total',
'estimated_volume',
'comments',
'is_receive',
'is_receive_datetime',
'is_packed',
'is_labelled',
'is_labelled_datetime',
'is_lis',
'packing_list_id',
'aliquot_type_id',
'panel_name',
'reason_not_drawn_other',
'test_code']
header = rs_fields + visit_fields + visit_defination_fields + appointment_fields + requisition_fields
data = [header]
for m_requisition in infant_requisition:
visit = m_requisition.infant_visit
appointment = visit.appointment
rs = appointment.registered_subject
visit_defination = appointment.visit_definition
# Registered_subject data
rs_data = []
for rs_f in rs_fields:
if rs_f == 'maternal_identifier':
subject_identifier = rs.subject_identifier
rs_data.append(subject_identifier[:-3])
else:
rs_data.append(getattr(rs, rs_f))
# Visit data
v_data = []
for v_f in visit_fields:
if v_f == 'infant_visit_id':
v_data.append(getattr(visit, 'id'))
elif v_f == 'visit_datetime':
v_data.append(getattr(visit, 'report_datetime'))
else:
v_data.append(getattr(visit, v_f))
# Visit defination data
vdef_data = []
for vdef_f in visit_defination_fields:
if vdef_f == 'visit_code':
vdef_data.append(getattr(visit_defination, 'code'))
elif vdef_f == 'visit_title':
vdef_data.append(getattr(visit_defination, 'title'))
else:
vdef_data.append(getattr(visit_defination, vdef_f))
# Appointment data
app_data = []
for ap_f in appointment_fields:
app_data.append(getattr(appointment, ap_f))
# Requisition data
requisition_data = []
for req_f in requisition_fields:
if req_f == 'panel_name':
requisition_data.append(m_requisition.panel.name)
else:
value = getattr(m_requisition, req_f)
if not value:
value = '.'
requisition_data.append(value)
all_data = rs_data + v_data + vdef_data + app_data + requisition_data
data.append(all_data)
In [11]:
print(len(data))
import csv
with open('td_lab_infantrequisition.csv', 'w+') as f:
writer = csv.writer(f)
writer.writerows(data)
In [ ]: