def build_uds3_fvp_form(record): """ Converts REDCap CSV data into a packet (list of FVP Form objects) """ packet = fvp_packet.Packet() # Set up the forms add_z1_or_z1x(record, packet) add_a1(record, packet) if record['fu_a2_sub'] == '1' or record['fu_a2sub'] == '1': add_a2(record, packet) if record['fu_a3_sub'] == '1' or record['fu_a3sub'] == '1': add_a3(record, packet) if record['fu_a4_sub'] == '1' or record['fu_a4sub'] == '1': add_a4(record, packet) if record['fu_b1_sub'] == '1' or record['fu_b1sub'] == '1': add_b1(record, packet) add_b4(record, packet) if record['fu_b5_sub'] == '1' or record['fu_b5sub'] == '1': add_b5(record, packet) if record['fu_b6_sub'] == '1' or record['fu_b6sub'] == '1': add_b6(record, packet) if record['fu_b7_sub'] == '1' or record['fu_b7sub'] == '1': add_b7(record, packet) add_b8(record, packet) add_b9(record, packet) add_c1s_or_c2(record, packet) add_d1(record, packet) add_d2(record, packet) clsform.add_cls(record, packet, fvp_forms) update_header(record, packet) return packet
def test_cls_added_when_filled(self): """Add filled CLS form to IVP and FVP.""" record = make_filled_record() ipacket = packet.Packet() clsform.add_cls(record, ipacket, ivp_forms) self.assertEqual(len(ipacket), 1, "Expected packet to have CLS") fpacket = packet.Packet() clsform.add_cls(record, fpacket, fvp_forms) self.assertEqual(len(fpacket), 1, "Expected packet to have CLS")
def test_cls_blank_not_added_to_ivp(self): """Don't add blank CLS form to IVP.""" record = make_blank_record() record['hispanic'] = '1' # Subject is Hispanic/Latino. ipacket = packet.Packet() clsform.add_cls(record, ipacket, ivp_forms) self.assertEqual(len(ipacket), 0, "Expected packet to be empty") fpacket = packet.Packet() clsform.add_cls(record, fpacket, fvp_forms) self.assertEqual(len(fpacket), 0, "Expected packet to be empty")
def test_cls_form_marked_complete(self): """If the completed CLS form is not marked complete, raise.""" record = make_filled_record() record['form_cls_linguistic_history_of_subject_complete'] = '0 or 1' ipacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, ipacket, ivp_forms) fpacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, fpacket, fvp_forms)
def test_partial_cls_raises_error(self): """Partially completed CLS should raise an exception.""" record = make_filled_record() record['eng_preferred_language'] = ' ' # Make form partially complete. ipacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, ipacket, ivp_forms) fpacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, fpacket, fvp_forms)
def test_cls_proficiency_must_be_100(self): """Language proficiency percentages must sum to 100.""" record = make_filled_record() record['eng_percentage_english'] = '20' record['eng_percentage_spanish'] = '9001' ipacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, ipacket, ivp_forms) fpacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, fpacket, fvp_forms)
def test_check_cls_date(self): """ Having a CLS with a visit date before June 1, 2017 raises an exception. """ record = make_filled_record() record['visityr'] = '2016' ipacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, ipacket, ivp_forms) fpacket = packet.Packet() with self.assertRaises(Exception): clsform.add_cls(record, fpacket, fvp_forms)
def test_partial_cls_has_warning(self): """Partially completed CLS should create a warning.""" record = make_filled_record() record['eng_preferred_language'] = ' ' # Make form partially complete. ipacket = packet.Packet() itrap = StringIO() clsform.add_cls(record, ipacket, ivp_forms, itrap) assert itrap.getvalue() == "[WARNING] CLS form is incomplete for PTID: unknown\n" itrap.close() fpacket = packet.Packet() ftrap = StringIO() clsform.add_cls(record, fpacket, fvp_forms, ftrap) assert ftrap.getvalue() == "[WARNING] CLS form is incomplete for PTID: unknown\n" ftrap.close()
def test_cls_not_added_if_not_hispanic(self): """ Do not add Form CLS if the subject is not Hispanic/Latino. https://www.alz.washington.edu/NONMEMBER/UDS/DOCS/VER3/CLS/CLS_en.pdf """ record = make_blank_record() record['hispanic'] = '0' # Subject is not Hispanic/Latino. ipacket = packet.Packet() clsform.add_cls(record, ipacket, ivp_forms) self.assertEqual(len(ipacket), 0, "Expected packet to be empty") fpacket = packet.Packet() clsform.add_cls(record, fpacket, fvp_forms) self.assertEqual(len(fpacket), 0, "Expected packet to be empty")
def test_cls_proficiency_not_100_has_warning(self): """If language proficiency percentages do not add to 100, create a warning.""" record = make_filled_record() record['eng_percentage_english'] = '20' record['eng_percentage_spanish'] = '91' ipacket = packet.Packet() itrap = StringIO() clsform.add_cls(record, ipacket, ivp_forms, itrap) assert itrap.getvalue() == "[WARNING] language proficiency percentages do not equal 100 for PTID : unknown\n" itrap.close() fpacket = packet.Packet() ftrap = StringIO() clsform.add_cls(record, ipacket, ivp_forms, ftrap) assert ftrap.getvalue() == "[WARNING] language proficiency percentages do not equal 100 for PTID : unknown\n" ftrap.close()
def build_uds3_ivp_form(record): """ Converts REDCap CSV data into a packet (list of IVP Form objects) """ packet = ivp_packet.Packet() # Set up us the forms a1 = ivp_forms.FormA1() a1.REASON = record['reason'] a1.REFERSC = record['refersc'] a1.LEARNED = record['learned'] a1.PRESTAT = record['prestat'] a1.PRESPART = record['prespart'] a1.SOURCENW = record['source'] a1.BIRTHMO = record['birthmo'] a1.BIRTHYR = record['birthyr'] a1.SEX = record['sex'] a1.HISPANIC = record['hispanic'] a1.HISPOR = record['hispor'] a1.HISPORX = record['hisporx'] a1.RACE = record['race'] a1.RACEX = record['racex'] a1.RACESEC = record['racesec'] a1.RACESECX = record['racesecx'] a1.RACETER = record['raceter'] a1.RACETERX = record['raceterx'] a1.PRIMLANG = record['primlang'] a1.PRIMLANX = record['primlanx'] a1.EDUC = record['educ'] a1.MARISTAT = record['maristat'] a1.LIVSITUA = record['livsitua'] a1.INDEPEND = record['independ'] a1.RESIDENC = record['residenc'] a1.ZIP = record['zip'] a1.HANDED = record['handed'] packet.append(a1) a2 = ivp_forms.FormA2() a2.INBIRMO = record['inbirmo'] a2.INBIRYR = record['inbiryr'] a2.INSEX = record['insex'] a2.INHISP = record['inhisp'] a2.INHISPOR = record['inhispor'] a2.INHISPOX = record['inhispox'] a2.INRACE = record['inrace'] a2.INRACEX = record['inracex'] a2.INRASEC = record['inrasec'] a2.INRASECX = record['inrasecx'] a2.INRATER = record['inrater'] a2.INRATERX = record['inraterx'] a2.INEDUC = record['ineduc'] a2.INRELTO = record['inrelto'] a2.INKNOWN = record['inknown'] a2.INLIVWTH = record['inlivwth'] a2.INVISITS = record['invisits'] a2.INCALLS = record['incalls'] a2.INRELY = record['inrely'] packet.append(a2) a3 = ivp_forms.FormA3() a3.AFFFAMM = record['afffamm'] a3.FADMUT = record['fadmut'] a3.FADMUTX = record['fadmutx'] a3.FADMUSO = record['fadmuso'] a3.FADMUSOX = record['fadmusox'] a3.FFTDMUT = record['fftdmut'] a3.FFTDMUTX = record['fftdmutx'] a3.FFTDMUSO = record['fftdmuso'] a3.FFTDMUSX = record['fftdmusx'] a3.FOTHMUT = record['fothmut'] a3.FOTHMUTX = record['fothmutx'] a3.FOTHMUSO = record['fothmuso'] a3.FOTHMUSX = record['fothmusx'] a3.MOMMOB = record['mommob'] a3.MOMYOB = record['momyob'] a3.MOMDAGE = record['momdage'] a3.MOMNEUR = record['momneur'] a3.MOMPRDX = record['momprdx'] a3.MOMMOE = record['mommoe'] a3.MOMAGEO = record['momageo'] a3.DADMOB = record['dadmob'] a3.DADYOB = record['dadyob'] a3.DADDAGE = record['daddage'] a3.DADNEUR = record['dadneur'] a3.DADPRDX = record['dadprdx'] a3.DADMOE = record['dadmoe'] a3.DADAGEO = record['dadageo'] a3.SIBS = record['sibs'] a3.SIB1MOB = record['sib1mob'] a3.SIB1YOB = record['sib1yob'] a3.SIB1AGD = record['sib1agd'] a3.SIB1NEU = record['sib1neu'] a3.SIB1PDX = record['sib1pdx'] a3.SIB1MOE = record['sib1moe'] a3.SIB1AGO = record['sib1ago'] a3.SIB2MOB = record['sib2mob'] a3.SIB2YOB = record['sib2yob'] a3.SIB2AGD = record['sib2agd'] a3.SIB2NEU = record['sib2neu'] a3.SIB2PDX = record['sib2pdx'] a3.SIB2MOE = record['sib2moe'] a3.SIB2AGO = record['sib2ago'] a3.SIB3MOB = record['sib3mob'] a3.SIB3YOB = record['sib3yob'] a3.SIB3AGD = record['sib3agd'] a3.SIB3NEU = record['sib3neu'] a3.SIB3PDX = record['sib3pdx'] a3.SIB3MOE = record['sib3moe'] a3.SIB3AGO = record['sib3ago'] a3.SIB4MOB = record['sib4mob'] a3.SIB4YOB = record['sib4yob'] a3.SIB4AGD = record['sib4agd'] a3.SIB4NEU = record['sib4neu'] a3.SIB4PDX = record['sib4pdx'] a3.SIB4MOE = record['sib4moe'] a3.SIB4AGO = record['sib4ago'] a3.SIB5MOB = record['sib5mob'] a3.SIB5YOB = record['sib5yob'] a3.SIB5AGD = record['sib5agd'] a3.SIB5NEU = record['sib5neu'] a3.SIB5PDX = record['sib5pdx'] a3.SIB5MOE = record['sib5moe'] a3.SIB5AGO = record['sib5ago'] a3.SIB6MOB = record['sib6mob'] a3.SIB6YOB = record['sib6yob'] a3.SIB6AGD = record['sib6agd'] a3.SIB6NEU = record['sib6neu'] a3.SIB6PDX = record['sib6pdx'] a3.SIB6MOE = record['sib6moe'] a3.SIB6AGO = record['sib6ago'] a3.SIB7MOB = record['sib7mob'] a3.SIB7YOB = record['sib7yob'] a3.SIB7AGD = record['sib7agd'] a3.SIB7NEU = record['sib7neu'] a3.SIB7PDX = record['sib7pdx'] a3.SIB7MOE = record['sib7moe'] a3.SIB7AGO = record['sib7ago'] a3.SIB8MOB = record['sib8mob'] a3.SIB8YOB = record['sib8yob'] a3.SIB8AGD = record['sib8agd'] a3.SIB8NEU = record['sib8neu'] a3.SIB8PDX = record['sib8pdx'] a3.SIB8MOE = record['sib8moe'] a3.SIB8AGO = record['sib8ago'] a3.SIB9MOB = record['sib9mob'] a3.SIB9YOB = record['sib9yob'] a3.SIB9AGD = record['sib9agd'] a3.SIB9NEU = record['sib9neu'] a3.SIB9PDX = record['sib9pdx'] a3.SIB9MOE = record['sib9moe'] a3.SIB9AGO = record['sib9ago'] a3.SIB10MOB = record['sib10mob'] a3.SIB10YOB = record['sib10yob'] a3.SIB10AGD = record['sib10agd'] a3.SIB10NEU = record['sib10neu'] a3.SIB10PDX = record['sib10pdx'] a3.SIB10MOE = record['sib10moe'] a3.SIB10AGO = record['sib10ago'] a3.SIB11MOB = record['sib11mob'] a3.SIB11YOB = record['sib11yob'] a3.SIB11AGD = record['sib11agd'] a3.SIB11NEU = record['sib11neu'] a3.SIB11PDX = record['sib11pdx'] a3.SIB11MOE = record['sib11moe'] a3.SIB11AGO = record['sib11ago'] a3.SIB12MOB = record['sib12mob'] a3.SIB12YOB = record['sib12yob'] a3.SIB12AGD = record['sib12agd'] a3.SIB12NEU = record['sib12neu'] a3.SIB12PDX = record['sib12pdx'] a3.SIB12MOE = record['sib12moe'] a3.SIB12AGO = record['sib12ago'] a3.SIB13MOB = record['sib13mob'] a3.SIB13YOB = record['sib13yob'] a3.SIB13AGD = record['sib13agd'] a3.SIB13NEU = record['sib13neu'] a3.SIB13PDX = record['sib13pdx'] a3.SIB13MOE = record['sib13moe'] a3.SIB13AGO = record['sib13ago'] a3.SIB14MOB = record['sib14mob'] a3.SIB14YOB = record['sib14yob'] a3.SIB14AGD = record['sib14agd'] a3.SIB14NEU = record['sib14neu'] a3.SIB14PDX = record['sib14pdx'] a3.SIB14MOE = record['sib14moe'] a3.SIB14AGO = record['sib14ago'] a3.SIB15MOB = record['sib15mob'] a3.SIB15YOB = record['sib15yob'] a3.SIB15AGD = record['sib15agd'] a3.SIB15NEU = record['sib15neu'] a3.SIB15PDX = record['sib15pdx'] a3.SIB15MOE = record['sib15moe'] a3.SIB15AGO = record['sib15ago'] a3.SIB16MOB = record['sib16mob'] a3.SIB16YOB = record['sib16yob'] a3.SIB16AGD = record['sib16agd'] a3.SIB16NEU = record['sib16neu'] a3.SIB16PDX = record['sib16pdx'] a3.SIB16MOE = record['sib16moe'] a3.SIB16AGO = record['sib16ago'] a3.SIB17MOB = record['sib17mob'] a3.SIB17YOB = record['sib17yob'] a3.SIB17AGD = record['sib17agd'] a3.SIB17NEU = record['sib17neu'] a3.SIB17PDX = record['sib17pdx'] a3.SIB17MOE = record['sib17moe'] a3.SIB17AGO = record['sib17ago'] a3.SIB18MOB = record['sib18mob'] a3.SIB18YOB = record['sib18yob'] a3.SIB18AGD = record['sib18agd'] a3.SIB18NEU = record['sib18neu'] a3.SIB18PDX = record['sib18pdx'] a3.SIB18MOE = record['sib18moe'] a3.SIB18AGO = record['sib18ago'] a3.SIB19MOB = record['sib19mob'] a3.SIB19YOB = record['sib19yob'] a3.SIB19AGD = record['sib19agd'] a3.SIB19NEU = record['sib19neu'] a3.SIB19PDX = record['sib19pdx'] a3.SIB19MOE = record['sib19moe'] a3.SIB19AGO = record['sib19ago'] a3.SIB20MOB = record['sib20mob'] a3.SIB20YOB = record['sib20yob'] a3.SIB20AGD = record['sib20agd'] a3.SIB20NEU = record['sib20neu'] a3.SIB20PDX = record['sib20pdx'] a3.SIB20MOE = record['sib20moe'] a3.SIB20AGO = record['sib20ago'] a3.KIDS = record['kids'] a3.KID1MOB = record['kid1mob'] a3.KID1YOB = record['kid1yob'] a3.KID1AGD = record['kid1agd'] a3.KID1NEU = record['kid1neu'] a3.KID1PDX = record['kid1pdx'] a3.KID1MOE = record['kid1moe'] a3.KID1AGO = record['kid1ago'] a3.KID2MOB = record['kid2mob'] a3.KID2YOB = record['kid2yob'] a3.KID2AGD = record['kid2agd'] a3.KID2NEU = record['kid2neu'] a3.KID2PDX = record['kid2pdx'] a3.KID2MOE = record['kid2moe'] a3.KID2AGO = record['kid2ago'] a3.KID3MOB = record['kid3mob'] a3.KID3YOB = record['kid3yob'] a3.KID3AGD = record['kid3agd'] a3.KID3NEU = record['kid3neu'] a3.KID3PDX = record['kid3pdx'] a3.KID3MOE = record['kid3moe'] a3.KID3AGO = record['kid3ago'] a3.KID4MOB = record['kid4mob'] a3.KID4YOB = record['kid4yob'] a3.KID4AGD = record['kid4agd'] a3.KID4NEU = record['kid4neu'] a3.KID4PDX = record['kid4pdx'] a3.KID4MOE = record['kid4moe'] a3.KID4AGO = record['kid4ago'] a3.KID5MOB = record['kid5mob'] a3.KID5YOB = record['kid5yob'] a3.KID5AGD = record['kid5agd'] a3.KID5NEU = record['kid5neu'] a3.KID5PDX = record['kid5pdx'] a3.KID5MOE = record['kid5moe'] a3.KID5AGO = record['kid5ago'] a3.KID6MOB = record['kid6mob'] a3.KID6YOB = record['kid6yob'] a3.KID6AGD = record['kid6agd'] a3.KID6NEU = record['kid6neu'] a3.KID6PDX = record['kid6pdx'] a3.KID6MOE = record['kid6moe'] a3.KID6AGO = record['kid6ago'] a3.KID7MOB = record['kid7mob'] a3.KID7YOB = record['kid7yob'] a3.KID7AGD = record['kid7agd'] a3.KID7NEU = record['kid7neu'] a3.KID7PDX = record['kid7pdx'] a3.KID7MOE = record['kid7moe'] a3.KID7AGO = record['kid7ago'] a3.KID8MOB = record['kid8mob'] a3.KID8YOB = record['kid8yob'] a3.KID8AGD = record['kid8agd'] a3.KID8NEU = record['kid8neu'] a3.KID8PDX = record['kid8pdx'] a3.KID8MOE = record['kid8moe'] a3.KID8AGO = record['kid8ago'] a3.KID9MOB = record['kid9mob'] a3.KID9YOB = record['kid9yob'] a3.KID9AGD = record['kid9agd'] a3.KID9NEU = record['kid9neu'] a3.KID9PDX = record['kid9pdx'] a3.KID9MOE = record['kid9moe'] a3.KID9AGO = record['kid9ago'] a3.KID10MOB = record['kid10mob'] a3.KID10YOB = record['kid10yob'] a3.KID10AGD = record['kid10agd'] a3.KID10NEU = record['kid10neu'] a3.KID10PDX = record['kid10pdx'] a3.KID10MOE = record['kid10moe'] a3.KID10AGO = record['kid10ago'] a3.KID11MOB = record['kid11mob'] a3.KID11YOB = record['kid11yob'] a3.KID11AGD = record['kid11agd'] a3.KID11NEU = record['kid11neu'] a3.KID11PDX = record['kid11pdx'] a3.KID11MOE = record['kid11moe'] a3.KID11AGO = record['kid11ago'] a3.KID12MOB = record['kid12mob'] a3.KID12YOB = record['kid12yob'] a3.KID12AGD = record['kid12agd'] a3.KID12NEU = record['kid12neu'] a3.KID12PDX = record['kid12pdx'] a3.KID12MOE = record['kid12moe'] a3.KID12AGO = record['kid12ago'] a3.KID13MOB = record['kid13mob'] a3.KID13YOB = record['kid13yob'] a3.KID13AGD = record['kid13agd'] a3.KID13NEU = record['kid13neu'] a3.KID13PDX = record['kid13pdx'] a3.KID13MOE = record['kid13moe'] a3.KID13AGO = record['kid13ago'] a3.KID14MOB = record['kid14mob'] a3.KID14YOB = record['kid14yob'] a3.KID14AGD = record['kid14agd'] a3.KID14NEU = record['kid14neu'] a3.KID14PDX = record['kid14pdx'] a3.KID14MOE = record['kid14moe'] a3.KID14AGO = record['kid14ago'] a3.KID15MOB = record['kid15mob'] a3.KID15YOB = record['kid15yob'] a3.KID15AGD = record['kid15agd'] a3.KID15NEU = record['kid15neu'] a3.KID15PDX = record['kid15pdx'] a3.KID15MOE = record['kid15moe'] a3.KID15AGO = record['kid15ago'] packet.append(a3) # Form A4D and A4G are special in that our REDCap implementation (IVP A4) # combines them by asking if the subject is taking any medications (which # corresponds to A4G.ANYMEDS), then has 50 fields to specify each # medication used, which we turn each one into a FormA4D object. a4g = ivp_forms.FormA4G() a4g.ANYMEDS = record['anymeds'] packet.append(a4g) if a4g.ANYMEDS == 1: for i in range(1, 51): key = 'drugid_' + str(i) if record[key]: a4d = ivp_forms.FormA4D() a4d.DRUGID = record[key] packet.append(a4d) a5 = ivp_forms.FormA5() a5.TOBAC30 = record['tobac30'] a5.TOBAC100 = record['tobac100'] a5.SMOKYRS = record['smokyrs'] a5.PACKSPER = record['packsper'] a5.QUITSMOK = record['quitsmok'] a5.ALCOCCAS = record['alcoccas'] a5.ALCFREQ = record['alcfreq'] a5.CVHATT = record['cvhatt'] a5.HATTMULT = record['hattmult'] a5.HATTYEAR = record['hattyear'] a5.CVAFIB = record['cvafib'] a5.CVANGIO = record['cvangio'] a5.CVBYPASS = record['cvbypass'] a5.CVPACDEF = record['cvpacdef'] a5.CVCHF = record['cvchf'] a5.CVANGINA = record['cvangina'] a5.CVHVALVE = record['cvhvalve'] a5.CVOTHR = record['cvothr'] a5.CVOTHRX = record['cvothrx'] a5.CBSTROKE = record['cbstroke'] a5.STROKMUL = record['strokmul'] a5.STROKYR = record['strokyr'] a5.CBTIA = record['cbtia'] a5.TIAMULT = record['tiamult'] a5.TIAYEAR = record['tiayear'] a5.PD = record['pd'] a5.PDYR = record['pdyr'] a5.PDOTHR = record['pdothr'] a5.PDOTHRYR = record['pdothryr'] a5.SEIZURES = record['seizures'] a5.TBI = record['tbi'] a5.TBIBRIEF = record['tbibrief'] a5.TBIEXTEN = record['tbiexten'] a5.TBIWOLOS = record['tbiwolos'] a5.TBIYEAR = record['tbiyear'] a5.DIABETES = record['diabetes'] a5.DIABTYPE = record['diabtype'] a5.HYPERTEN = record['hyperten'] a5.HYPERCHO = record['hypercho'] a5.B12DEF = record['b12def'] a5.THYROID = record['thyroid'] a5.ARTHRIT = record['arthrit'] a5.ARTHTYPE = record['arthtype'] a5.ARTHTYPX = record['arthtypx'] a5.ARTHUPEX = record['arthupex'] a5.ARTHLOEX = record['arthloex'] a5.ARTHSPIN = record['arthspin'] a5.ARTHUNK = record['arthunk'] a5.INCONTU = record['incontu'] a5.INCONTF = record['incontf'] a5.APNEA = record['apnea'] a5.RBD = record['rbd'] a5.INSOMN = record['insomn'] a5.OTHSLEEP = record['othsleep'] a5.OTHSLEEX = record['othsleex'] a5.ALCOHOL = record['alcohol'] a5.ABUSOTHR = record['abusothr'] a5.ABUSX = record['abusx'] a5.PTSD = record['ptsd'] a5.BIPOLAR = record['bipolar'] a5.SCHIZ = record['schiz'] a5.DEP2YRS = record['dep2yrs'] a5.DEPOTHR = record['depothr'] a5.ANXIETY = record['anxiety'] a5.OCD = record['ocd'] a5.NPSYDEV = record['npsydev'] a5.PSYCDIS = record['psycdis'] a5.PSYCDISX = record['psycdisx'] if a5.ARTHRIT == 0: a5.ARTHUPEX = '' a5.ARTHLOEX = '' a5.ARTHSPIN = '' a5.ARTHUNK = '' packet.append(a5) b1 = ivp_forms.FormB1() b1.HEIGHT = record['height'] b1.WEIGHT = record['weight'] b1.BPSYS = record['bpsys'] b1.BPDIAS = record['bpdias'] b1.HRATE = record['hrate'] b1.VISION = record['vision'] b1.VISCORR = record['viscorr'] b1.VISWCORR = record['viswcorr'] b1.HEARING = record['hearing'] b1.HEARAID = record['hearaid'] b1.HEARWAID = record['hearwaid'] packet.append(b1) b4 = ivp_forms.FormB4() b4.MEMORY = record['memory'] b4.ORIENT = record['orient'] b4.JUDGMENT = record['judgment'] b4.COMMUN = record['commun'] b4.HOMEHOBB = record['homehobb'] b4.PERSCARE = record['perscare'] b4.CDRSUM = record['cdrsum'] b4.CDRGLOB = record['cdrglob'] b4.COMPORT = record['comport'] b4.CDRLANG = record['cdrlang'] packet.append(b4) b5 = ivp_forms.FormB5() b5.NPIQINF = record['npiqinf'] b5.NPIQINFX = record['npiqinfx'] b5.DEL = record['del'] b5.DELSEV = record['delsev'] b5.HALL = record['hall'] b5.HALLSEV = record['hallsev'] b5.AGIT = record['agit'] b5.AGITSEV = record['agitsev'] b5.DEPD = record['depd'] b5.DEPDSEV = record['depdsev'] b5.ANX = record['anx'] b5.ANXSEV = record['anxsev'] b5.ELAT = record['elat'] b5.ELATSEV = record['elatsev'] b5.APA = record['apa'] b5.APASEV = record['apasev'] b5.DISN = record['disn'] b5.DISNSEV = record['disnsev'] b5.IRR = record['irr'] b5.IRRSEV = record['irrsev'] b5.MOT = record['mot'] b5.MOTSEV = record['motsev'] b5.NITE = record['nite'] b5.NITESEV = record['nitesev'] b5.APP = record['app'] b5.APPSEV = record['appsev'] packet.append(b5) b6 = ivp_forms.FormB6() b6.NOGDS = record['nogds'] b6.SATIS = record['satis'] b6.DROPACT = record['dropact'] b6.EMPTY = record['empty'] b6.BORED = record['bored'] b6.SPIRITS = record['spirits'] b6.AFRAID = record['afraid'] b6.HAPPY = record['happy'] b6.HELPLESS = record['helpless'] b6.STAYHOME = record['stayhome'] b6.MEMPROB = record['memprob'] b6.WONDRFUL = record['wondrful'] b6.WRTHLESS = record['wrthless'] b6.ENERGY = record['energy'] b6.HOPELESS = record['hopeless'] b6.BETTER = record['better'] b6.GDS = record['gds'] packet.append(b6) b7 = ivp_forms.FormB7() b7.BILLS = record['bills'] b7.TAXES = record['taxes'] b7.SHOPPING = record['shopping'] b7.GAMES = record['games'] b7.STOVE = record['stove'] b7.MEALPREP = record['mealprep'] b7.EVENTS = record['events'] b7.PAYATTN = record['payattn'] b7.REMDATES = record['remdates'] b7.TRAVEL = record['travel'] packet.append(b7) b8 = ivp_forms.FormB8() b8.NORMEXAM = record['normexam'] b8.PARKSIGN = record['parksign'] b8.RESTTRL = record['resttrl'] b8.SLOWINGL = record['slowingl'] b8.RIGIDL = record['rigidl'] b8.RESTTRR = record['resttrr'] b8.SLOWINGR = record['slowingr'] b8.RIGIDR = record['rigidr'] b8.BRADY = record['brady'] b8.PARKGAIT = record['parkgait'] b8.POSTINST = record['postinst'] b8.CVDSIGNS = record['cvdsigns'] b8.CORTDEF = record['cortdef'] b8.SIVDFIND = record['sivdfind'] b8.CVDMOTL = record['cvdmotl'] b8.CORTVISL = record['cortvisl'] b8.SOMATL = record['somatl'] b8.CVDMOTR = record['cvdmotr'] b8.CORTVISR = record['cortvisr'] b8.SOMATR = record['somatr'] b8.POSTCORT = record['postcort'] b8.PSPCBS = record['pspcbs'] b8.EYEPSP = record['eyepsp'] b8.DYSPSP = record['dyspsp'] b8.AXIALPSP = record['axialpsp'] b8.GAITPSP = record['gaitpsp'] b8.APRAXSP = record['apraxsp'] b8.APRAXL = record['apraxl'] b8.CORTSENL = record['cortsenl'] b8.ATAXL = record['ataxl'] b8.ALIENLML = record['alienlml'] b8.DYSTONL = record['dystonl'] b8.MYOCLLT = record['myocllt'] b8.APRAXR = record['apraxr'] b8.CORTSENR = record['cortsenr'] b8.ATAXR = record['ataxr'] b8.ALIENLMR = record['alienlmr'] b8.DYSTONR = record['dystonr'] b8.MYOCLRT = record['myoclrt'] b8.ALSFIND = record['alsfind'] b8.GAITNPH = record['gaitnph'] b8.OTHNEUR = record['otherneur'] b8.OTHNEURX = record['otherneurx'] packet.append(b8) b9 = ivp_forms.FormB9() b9.DECSUB = record['decsub'] b9.DECIN = record['decin'] b9.DECCLCOG = record['decclcog'] b9.COGMEM = record['cogmem'] b9.COGORI = record['cogori'] b9.COGJUDG = record['cogjudg'] b9.COGLANG = record['coglang'] b9.COGVIS = record['cogvis'] b9.COGATTN = record['cogattn'] b9.COGFLUC = record['cogfluc'] b9.COGFLAGO = record['cogflago'] b9.COGOTHR = record['cogothr'] b9.COGOTHRX = record['cogothrx'] b9.COGFPRED = record['cogfpred'] b9.COGFPREX = record['cogfprex'] b9.COGMODE = record['cogmode'] b9.COGMODEX = record['cogmodex'] b9.DECAGE = record['decage'] b9.DECCLBE = record['decclbe'] b9.BEAPATHY = record['beapathy'] b9.BEDEP = record['bedep'] b9.BEVHALL = record['bevhall'] b9.BEVWELL = record['bevwell'] b9.BEVHAGO = record['bevhago'] b9.BEAHALL = record['beahall'] b9.BEDEL = record['bedel'] b9.BEDISIN = record['bedisin'] b9.BEIRRIT = record['beirrit'] b9.BEAGIT = record['beagit'] b9.BEPERCH = record['beperch'] b9.BEREM = record['berem'] b9.BEREMAGO = record['beremago'] b9.BEANX = record['beanx'] b9.BEOTHR = record['beothr'] b9.BEOTHRX = record['beothrx'] b9.BEFPRED = record['befpred'] b9.BEFPREDX = record['befpredx'] b9.BEMODE = record['bemode'] b9.BEMODEX = record['bemodex'] b9.BEAGE = record['beage'] b9.DECCLMOT = record['decclmot'] b9.MOGAIT = record['mogait'] b9.MOFALLS = record['mofalls'] b9.MOTREM = record['motrem'] b9.MOSLOW = record['moslow'] b9.MOFRST = record['mofrst'] b9.MOMODE = record['momode'] b9.MOMODEX = record['momodex'] b9.MOMOPARK = record['momopark'] b9.PARKAGE = record['parkage'] b9.MOMOALS = record['momoals'] b9.ALSAGE = record['alsage'] b9.MOAGE = record['moage'] b9.COURSE = record['course'] b9.FRSTCHG = record['frstchg'] b9.LBDEVAL = record['lbdeval'] b9.FTLDEVAL = record['ftldeval'] packet.append(b9) add_c1s_or_c2(record, packet) clsform.add_cls(record, packet, ivp_forms) d1 = ivp_forms.FormD1() d1.DXMETHOD = record['dxmethod'] d1.NORMCOG = record['normcog'] d1.DEMENTED = record['demented'] d1.AMNDEM = record['amndem'] d1.PCA = record['pca'] d1.PPASYN = record['ppasyn'] d1.PPASYNT = record['ppasynt'] d1.FTDSYN = record['ftdsyn'] d1.LBDSYN = record['lbdsyn'] d1.NAMNDEM = record['namndem'] d1.MCIAMEM = record['mciamem'] d1.MCIAPLUS = record['mciaplus'] d1.MCIAPLAN = record['mciaplan'] d1.MCIAPATT = record['mciapatt'] d1.MCIAPEX = record['mciapex'] d1.MCIAPVIS = record['mciapvis'] d1.MCINON1 = record['mcinon1'] d1.MCIN1LAN = record['mcin1lan'] d1.MCIN1ATT = record['mcin1att'] d1.MCIN1EX = record['mcin1ex'] d1.MCIN1VIS = record['mcin1vis'] d1.MCINON2 = record['mcinon2'] d1.MCIN2LAN = record['mcin2lan'] d1.MCIN2ATT = record['mcin2att'] d1.MCIN2EX = record['mcin2ex'] d1.MCIN2VIS = record['mcin2vis'] d1.IMPNOMCI = record['impnomci'] d1.AMYLPET = record['amylpet'] d1.AMYLCSF = record['amylcsf'] d1.FDGAD = record['fdgad'] d1.HIPPATR = record['hippatr'] d1.TAUPETAD = record['taupetad'] d1.CSFTAU = record['csftau'] d1.FDGFTLD = record['fdgftld'] d1.TPETFTLD = record['tpetftld'] d1.MRFTLD = record['mrftld'] d1.DATSCAN = record['datscan'] d1.OTHBIOM = record['othbiom'] d1.OTHBIOMX = record['othbiomx'] d1.IMAGLINF = record['imaglinf'] d1.IMAGLAC = record['imaglac'] d1.IMAGMACH = record['imagmach'] d1.IMAGMICH = record['imagmich'] d1.IMAGMWMH = record['imagmwmh'] d1.IMAGEWMH = record['imagewmh'] d1.ADMUT = record['admut'] d1.FTLDMUT = record['ftldmut'] d1.OTHMUT = record['othmut'] d1.OTHMUTX = record['othmutx'] d1.ALZDIS = record['alzdis'] d1.ALZDISIF = record['alzdisif'] d1.LBDIS = record['lbdis'] d1.LBDIF = record['lbdif'] d1.PARK = record['park'] d1.MSA = record['msa'] d1.MSAIF = record['msaif'] d1.PSP = record['psp'] d1.PSPIF = record['pspif'] d1.CORT = record['cort'] d1.CORTIF = record['cortif'] d1.FTLDMO = record['ftldmo'] d1.FTLDMOIF = record['ftldmoif'] d1.FTLDNOS = record['ftldnos'] d1.FTLDNOIF = record['ftldnoif'] d1.FTLDSUBT = record['ftldsubt'] d1.FTLDSUBX = record['ftldsubx'] d1.CVD = record['cvd'] d1.CVDIF = record['cvdif'] d1.PREVSTK = record['prevstk'] d1.STROKDEC = record['strokedec'] d1.STKIMAG = record['stkimag'] d1.INFNETW = record['infnetw'] d1.INFWMH = record['infwmh'] d1.ESSTREM = record['esstrem'] d1.ESSTREIF = record['esstreif'] d1.DOWNS = record['downs'] d1.DOWNSIF = record['downsif'] d1.HUNT = record['hunt'] d1.HUNTIF = record['huntif'] d1.PRION = record['prion'] d1.PRIONIF = record['prionif'] d1.BRNINJ = record['brninj'] d1.BRNINJIF = record['brninjif'] d1.BRNINCTE = record['brnincte'] d1.HYCEPH = record['hyceph'] d1.HYCEPHIF = record['hycephif'] d1.EPILEP = record['epilep'] d1.EPILEPIF = record['epilepif'] d1.NEOP = record['neop'] d1.NEOPIF = record['neopif'] d1.NEOPSTAT = record['neopstat'] d1.HIV = record['hiv'] d1.HIVIF = record['hivif'] d1.OTHCOG = record['othcog'] d1.OTHCOGIF = record['othcogif'] d1.OTHCOGX = record['othcogx'] d1.DEP = record['dep'] d1.DEPIF = record['depif'] d1.DEPTREAT = record['deptreat'] d1.BIPOLDX = record['bipoldx'] d1.BIPOLDIF = record['bipoldif'] d1.SCHIZOP = record['schizop'] d1.SCHIZOIF = record['schizoif'] d1.ANXIET = record['anxiet'] d1.ANXIETIF = record['anxietif'] d1.DELIR = record['delir'] d1.DELIRIF = record['delirif'] d1.PTSDDX = record['ptsddx'] d1.PTSDDXIF = record['ptsddxif'] d1.OTHPSY = record['othpsy'] d1.OTHPSYIF = record['othpsyif'] d1.OTHPSYX = record['othpsyx'] d1.ALCDEM = record['alcdem'] d1.ALCDEMIF = record['alcdemif'] d1.ALCABUSE = record['alcabuse'] d1.IMPSUB = record['impsub'] d1.IMPSUBIF = record['impsubif'] d1.DYSILL = record['dysill'] d1.DYSILLIF = record['dysillif'] d1.MEDS = record['meds'] d1.MEDSIF = record['medsif'] d1.COGOTH = record['cogoth'] d1.COGOTHIF = record['cogothif'] d1.COGOTHX = record['cogothx'] d1.COGOTH2 = record['cogoth2'] d1.COGOTH2F = record['cogoth2f'] d1.COGOTH2X = record['cogoth2x'] d1.COGOTH3 = record['cogoth3'] d1.COGOTH3F = record['cogoth3f'] d1.COGOTH3X = record['cogoth3x'] packet.append(d1) d2 = ivp_forms.FormD2() d2.CANCER = record['cancer'] d2.CANCSITE = record['cancsite'] d2.DIABET = record['diabet'] d2.MYOINF = record['myoinf'] d2.CONGHRT = record['conghrt'] d2.AFIBRILL = record['afibrill'] d2.HYPERT = record['hypert'] d2.ANGINA = record['angina'] d2.HYPCHOL = record['hypchol'] d2.VB12DEF = record['vb12def'] d2.THYDIS = record['thydis'] d2.ARTH = record['arth'] d2.ARTYPE = record['artype'] d2.ARTYPEX = record['artypex'] d2.ARTUPEX = record['artupex'] d2.ARTLOEX = record['artloex'] d2.ARTSPIN = record['artspin'] d2.ARTUNKN = record['artunkn'] d2.URINEINC = record['urineinc'] d2.BOWLINC = record['bowlinc'] d2.SLEEPAP = record['sleepap'] d2.REMDIS = record['remdis'] d2.HYPOSOM = record['hyposom'] d2.SLEEPOTH = record['sleepoth'] d2.SLEEPOTX = record['sleepotx'] d2.ANGIOCP = record['angiocp'] d2.ANGIOPCI = record['angiopci'] d2.PACEMAKE = record['pacemake'] d2.HVALVE = record['hvalve'] d2.ANTIENC = record['antienc'] d2.ANTIENCX = record['antiencx'] d2.OTHCOND = record['othcond'] d2.OTHCONDX = record['othcondx'] packet.append(d2) add_z1_or_z1x(record, packet) update_header(record, packet) return packet
def build_uds3_fvp_form(record): """ Converts REDCap CSV data into a packet (list of FVP Form objects) """ packet = fvp_packet.Packet() #Set up the forms. a1 = fvp_forms.FormA1() a1.BIRTHMO = record['fu_birthmo'] a1.BIRTHYR = record['fu_birthyr'] a1.MARISTAT = record['fu_maristat'] a1.SEX = record['fu_sex'] a1.LIVSITUA = record['fu_livsitua'] a1.INDEPEND = record['fu_independ'] a1.RESIDENC = record['fu_residenc'] a1.ZIP = record['fu_zip'] packet.append(a1) a2 = fvp_forms.FormA2() a2.INBIRMO = record['fu_inbirmo'] a2.INBIRYR = record['fu_inbiryr'] a2.INSEX = record['fu_insex'] a2.NEWINF = record['fu_newinf'] a2.INHISP = record['fu_inhisp'] a2.INHISPOR = record['fu_inhispor'] a2.INHISPOX = record['fu_inhispox'] a2.INRACE = record['fu_inrace'] a2.INRACEX = record['fu_inracex'] a2.INRASEC = record['fu_inrasec'] a2.INRASECX = record['fu_inrasecx'] a2.INRATER = record['fu_inrater'] a2.INRATERX = record['fu_inraterx'] a2.INEDUC = record['fu_ineduc'] a2.INRELTO = record['fu_inrelto'] a2.INKNOWN = record['fu_inknown'] a2.INLIVWTH = record['fu_inlivwth'] a2.INVISITS = record['fu_invisits'] a2.INCALLS = record['fu_incalls'] a2.INRELY = record['fu_inrely'] packet.append(a2) a3 = fvp_forms.FormA3() a3.NWINFMUT = record['fu_nwinfmut'] a3.FADMUT = record['fu_fadmut'] a3.FADMUTX = record['fu_fadmutx'] a3.FADMUSO = record['fu_fadmuso'] a3.FADMUSOX = record['fu_fadmusox'] a3.FFTDMUT = record['fu_fftdmut'] a3.FFTDMUTX = record['fu_fftdmutx'] a3.FFTDMUSO = record['fu_fftdmuso'] a3.FFTDMUSX = record['fu_fftdmusx'] a3.FOTHMUT = record['fu_fothmut'] a3.FOTHMUTX = record['fu_fothmutx'] a3.FOTHMUSO = record['fu_fothmuso'] a3.FOTHMUSX = record['fu_fothmusx'] a3.NWINFPAR = record['fu_nwinfpar'] a3.MOMMOB = record['fu_mommob'] a3.MOMYOB = record['fu_momyob'] a3.MOMDAGE = record['fu_momdage'] a3.MOMNEUR = record['fu_momneur'] a3.MOMPRDX = record['fu_momprdx'] a3.MOMMOE = record['fu_mommoe'] a3.MOMAGEO = record['fu_momageo'] a3.DADMOB = record['fu_dadmob'] a3.DADYOB = record['fu_dadyob'] a3.DADDAGE = record['fu_daddage'] a3.DADNEUR = record['fu_dadneur'] a3.DADPRDX = record['fu_dadprdx'] a3.DADMOE = record['fu_dadmoe'] a3.DADAGEO = record['fu_dadageo'] a3.SIBS = record['fu_sibs'] a3.NWINFSIB = record['fu_nwinfsib'] a3.SIB1MOB = record['fu_sib1mob'] a3.SIB1YOB = record['fu_sib1yob'] a3.SIB1AGD = record['fu_sib1agd'] a3.SIB1NEU = record['fu_sib1neu'] a3.SIB1PDX = record['fu_sib1pdx'] a3.SIB1MOE = record['fu_sib1moe'] a3.SIB1AGO = record['fu_sib1ago'] a3.SIB2MOB = record['fu_sib2mob'] a3.SIB2YOB = record['fu_sib2yob'] a3.SIB2AGD = record['fu_sib2agd'] a3.SIB2NEU = record['fu_sib2neu'] a3.SIB2PDX = record['fu_sib2pdx'] a3.SIB2MOE = record['fu_sib2moe'] a3.SIB2AGO = record['fu_sib2ago'] a3.SIB3MOB = record['fu_sib3mob'] a3.SIB3YOB = record['fu_sib3yob'] a3.SIB3AGD = record['fu_sib3agd'] a3.SIB3NEU = record['fu_sib3neu'] a3.SIB3PDX = record['fu_sib3pdx'] a3.SIB3MOE = record['fu_sib3moe'] a3.SIB3AGO = record['fu_sib3ago'] a3.SIB4MOB = record['fu_sib4mob'] a3.SIB4YOB = record['fu_sib4yob'] a3.SIB4AGD = record['fu_sib4agd'] a3.SIB4NEU = record['fu_sib4neu'] a3.SIB4PDX = record['fu_sib4pdx'] a3.SIB4MOE = record['fu_sib4moe'] a3.SIB4AGO = record['fu_sib4ago'] a3.SIB5MOB = record['fu_sib5mob'] a3.SIB5YOB = record['fu_sib5yob'] a3.SIB5AGD = record['fu_sib5agd'] a3.SIB5NEU = record['fu_sib5neu'] a3.SIB5PDX = record['fu_sib5pdx'] a3.SIB5MOE = record['fu_sib5moe'] a3.SIB5AGO = record['fu_sib5ago'] a3.SIB6MOB = record['fu_sib6mob'] a3.SIB6YOB = record['fu_sib6yob'] a3.SIB6AGD = record['fu_sib6agd'] a3.SIB6NEU = record['fu_sib6neu'] a3.SIB6PDX = record['fu_sib6pdx'] a3.SIB6MOE = record['fu_sib6moe'] a3.SIB6AGO = record['fu_sib6ago'] a3.SIB7MOB = record['fu_sib7mob'] a3.SIB7YOB = record['fu_sib7yob'] a3.SIB7AGD = record['fu_sib7agd'] a3.SIB7NEU = record['fu_sib7neu'] a3.SIB7PDX = record['fu_sib7pdx'] a3.SIB7MOE = record['fu_sib7moe'] a3.SIB7AGO = record['fu_sib7ago'] a3.SIB8MOB = record['fu_sib8mob'] a3.SIB8YOB = record['fu_sib8yob'] a3.SIB8AGD = record['fu_sib8agd'] a3.SIB8NEU = record['fu_sib8neu'] a3.SIB8PDX = record['fu_sib8pdx'] a3.SIB8MOE = record['fu_sib8moe'] a3.SIB8AGO = record['fu_sib8ago'] a3.SIB9MOB = record['fu_sib9mob'] a3.SIB9YOB = record['fu_sib9yob'] a3.SIB9AGD = record['fu_sib9agd'] a3.SIB9NEU = record['fu_sib9neu'] a3.SIB9PDX = record['fu_sib9pdx'] a3.SIB9MOE = record['fu_sib9moe'] a3.SIB9AGO = record['fu_sib9ago'] a3.SIB10MOB = record['fu_sib10mob'] a3.SIB10YOB = record['fu_sib10yob'] a3.SIB10AGD = record['fu_sib10agd'] a3.SIB10NEU = record['fu_sib10neu'] a3.SIB10PDX = record['fu_sib10pdx'] a3.SIB10MOE = record['fu_sib10moe'] a3.SIB10AGO = record['fu_sib10ago'] a3.SIB11MOB = record['fu_sib11mob'] a3.SIB11YOB = record['fu_sib11yob'] a3.SIB11AGD = record['fu_sib11agd'] a3.SIB11NEU = record['fu_sib11neu'] a3.SIB11PDX = record['fu_sib11pdx'] a3.SIB11MOE = record['fu_sib11moe'] a3.SIB11AGO = record['fu_sib11ago'] a3.SIB12MOB = record['fu_sib12mob'] a3.SIB12YOB = record['fu_sib12yob'] a3.SIB12AGD = record['fu_sib12agd'] a3.SIB12NEU = record['fu_sib12neu'] a3.SIB12PDX = record['fu_sib12pdx'] a3.SIB12MOE = record['fu_sib12moe'] a3.SIB12AGO = record['fu_sib12ago'] a3.SIB13MOB = record['fu_sib13mob'] a3.SIB13YOB = record['fu_sib13yob'] a3.SIB13AGD = record['fu_sib13agd'] a3.SIB13NEU = record['fu_sib13neu'] a3.SIB13PDX = record['fu_sib13pdx'] a3.SIB13MOE = record['fu_sib13moe'] a3.SIB13AGO = record['fu_sib13ago'] a3.SIB14MOB = record['fu_sib14mob'] a3.SIB14YOB = record['fu_sib14yob'] a3.SIB14AGD = record['fu_sib14agd'] a3.SIB14NEU = record['fu_sib14neu'] a3.SIB14PDX = record['fu_sib14pdx'] a3.SIB14MOE = record['fu_sib14moe'] a3.SIB14AGO = record['fu_sib14ago'] a3.SIB15MOB = record['fu_sib15mob'] a3.SIB15YOB = record['fu_sib15yob'] a3.SIB15AGD = record['fu_sib15agd'] a3.SIB15NEU = record['fu_sib15neu'] a3.SIB15PDX = record['fu_sib15pdx'] a3.SIB15MOE = record['fu_sib15moe'] a3.SIB15AGO = record['fu_sib15ago'] a3.SIB16MOB = record['fu_sib16mob'] a3.SIB16YOB = record['fu_sib16yob'] a3.SIB16AGD = record['fu_sib16agd'] a3.SIB16NEU = record['fu_sib16neu'] a3.SIB16PDX = record['fu_sib16pdx'] a3.SIB16MOE = record['fu_sib16moe'] a3.SIB16AGO = record['fu_sib16ago'] a3.SIB17MOB = record['fu_sib17mob'] a3.SIB17YOB = record['fu_sib17yob'] a3.SIB17AGD = record['fu_sib17agd'] a3.SIB17NEU = record['fu_sib17neu'] a3.SIB17PDX = record['fusib17pdx'] a3.SIB17MOE = record['fu_sib17moe'] a3.SIB17AGO = record['fu_sib17ago'] a3.SIB18MOB = record['fu_sib18mob'] a3.SIB18YOB = record['fu_sib18yob'] a3.SIB18AGD = record['fu_sib18agd'] a3.SIB18NEU = record['fu_sib18neu'] a3.SIB18PDX = record['fu_sib18pdx'] a3.SIB18MOE = record['fu_sib18moe'] a3.SIB18AGO = record['fu_sib18ago'] a3.SIB19MOB = record['fu_sib19mob'] a3.SIB19YOB = record['fu_sib19yob'] a3.SIB19AGD = record['fu_sib19agd'] a3.SIB19NEU = record['fu_sib19neu'] a3.SIB19PDX = record['fu_sib19pdx'] a3.SIB19MOE = record['fu_sib19moe'] a3.SIB19AGO = record['fu_sib19ago'] a3.SIB20MOB = record['fu_sib20mob'] a3.SIB20YOB = record['fu_sib20yob'] a3.SIB20AGD = record['fu_sib20agd'] a3.SIB20NEU = record['fu_sib20neu'] a3.SIB20PDX = record['fu_sib20pdx'] a3.SIB20MOE = record['fu_sib20moe'] a3.SIB20AGO = record['fu_sib20ago'] a3.KIDS = record['fu_kids'] a3.NWINFKID = record['fu_nwinfkid'] a3.KID1MOB = record['fu_kid1mob'] a3.KID1YOB = record['fu_kid1yob'] a3.KID1AGD = record['fu_kid1agd'] a3.KID1NEU = record['fu_kid1neu'] a3.KID1PDX = record['fu_kid1pdx'] a3.KID1MOE = record['fu_kid1moe'] a3.KID1AGO = record['fu_kid1ago'] a3.KID2MOB = record['fu_kid2mob'] a3.KID2YOB = record['fu_kid2yob'] a3.KID2AGD = record['fu_kid2agd'] a3.KID2NEU = record['fu_kid2neu'] a3.KID2PDX = record['fu_kid2pdx'] a3.KID2MOE = record['fu_kid2moe'] a3.KID2AGO = record['fu_kid2ago'] a3.KID3MOB = record['fu_kid3mob'] a3.KID3YOB = record['fu_kid3yob'] a3.KID3AGD = record['fu_kid3agd'] a3.KID3NEU = record['fu_kid3neu'] a3.KID3PDX = record['fu_kid3pdx'] a3.KID3MOE = record['fu_kid3moe'] a3.KID3AGO = record['fu_kid3ago'] a3.KID4MOB = record['fu_kid4mob'] a3.KID4YOB = record['fu_kid4yob'] a3.KID4AGD = record['fu_kid4agd'] a3.KID4NEU = record['fu_kid4neu'] a3.KID4PDX = record['fu_kid4pdx'] a3.KID4MOE = record['fu_kid4moe'] a3.KID4AGO = record['fu_kid4ago'] a3.KID5MOB = record['fu_kid5mob'] a3.KID5YOB = record['fu_kid5yob'] a3.KID5AGD = record['fu_kid5agd'] a3.KID5NEU = record['fu_kid5neu'] a3.KID5PDX = record['fu_kid5pdx'] a3.KID5MOE = record['fu_kid5moe'] a3.KID5AGO = record['fu_kid5ago'] a3.KID6MOB = record['fu_kid6mob'] a3.KID6YOB = record['fu_kid6yob'] a3.KID6AGD = record['fu_kid6agd'] a3.KID6NEU = record['fu_kid6neu'] a3.KID6PDX = record['fu_kid6pdx'] a3.KID6MOE = record['fu_kid6moe'] a3.KID6AGO = record['fu_kid6ago'] a3.KID7MOB = record['fu_kid7mob'] a3.KID7YOB = record['fu_kid7yob'] a3.KID7AGD = record['fu_kid7agd'] a3.KID7NEU = record['fu_kid7neu'] a3.KID7PDX = record['fu_kid7pdx'] a3.KID7MOE = record['fu_kid7moe'] a3.KID7AGO = record['fu_kid7ago'] a3.KID8MOB = record['fu_kid8mob'] a3.KID8YOB = record['fu_kid8yob'] a3.KID8AGD = record['fu_kid8agd'] a3.KID8NEU = record['fu_kid8neu'] a3.KID8PDX = record['fu_kid8pdx'] a3.KID8MOE = record['fu_kid8moe'] a3.KID8AGO = record['fu_kid8ago'] a3.KID9MOB = record['fu_kid9mob'] a3.KID9YOB = record['fu_kid9yob'] a3.KID9AGD = record['fukid9agd'] a3.KID9NEU = record['fu_kid9neu'] a3.KID9PDX = record['fu_kid9pdx'] a3.KID9MOE = record['fu_kid9moe'] a3.KID9AGO = record['fu_kid9ago'] a3.KID10MOB = record['fu_kid10mob'] a3.KID10YOB = record['fu_kid10yob'] a3.KID10AGD = record['fu_kid10agd'] a3.KID10NEU = record['fu_kid10neu'] a3.KID10PDX = record['fu_kid10pdx'] a3.KID10MOE = record['fu_kid10moe'] a3.KID10AGO = record['fu_kid10ago'] a3.KID11MOB = record['fu_kid11mob'] a3.KID11YOB = record['fu_kid11yob'] a3.KID11AGD = record['fu_kid11agd'] a3.KID11NEU = record['fu_kid11neu'] a3.KID11PDX = record['fu_kid11pdx'] a3.KID11MOE = record['fu_kid11moe'] a3.KID11AGO = record['fu_kid11ago'] a3.KID12MOB = record['fu_kid12mob'] a3.KID12YOB = record['fu_kid12yob'] a3.KID12AGD = record['fu_kid12agd'] a3.KID12NEU = record['fu_kid12neu'] a3.KID12PDX = record['fu_kid12pdx'] a3.KID12MOE = record['fu_kid12moe'] a3.KID12AGO = record['fu_kid12ago'] a3.KID13MOB = record['fu_kid13mob'] a3.KID13YOB = record['fu_kid13yob'] a3.KID13AGD = record['fu_kid13agd'] a3.KID13NEU = record['fu_kid13neu'] a3.KID13PDX = record['fu_kid13pdx'] a3.KID13MOE = record['fu_kid13moe'] a3.KID13AGO = record['fu_kid13ago'] a3.KID14MOB = record['fu_kid14mob'] a3.KID14YOB = record['fu_kid14yob'] a3.KID14AGD = record['fu_kid14agd'] a3.KID14NEU = record['fu_kid14neu'] a3.KID14PDX = record['fu_kid14pdx'] a3.KID14MOE = record['fu_kid14moe'] a3.KID14AGO = record['fu_kid14ago'] a3.KID15MOB = record['fu_kid15mob'] a3.KID15YOB = record['fu_kid15yob'] a3.KID15AGD = record['fu_kid15agd'] a3.KID15NEU = record['fu_kid15neu'] a3.KID15PDX = record['fu_kid15pdx'] a3.KID15MOE = record['fu_kid15moe'] a3.KID15AGO = record['fu_kid15ago'] packet.append(a3) # Form A4D and A4G are special in that our REDCap implementation (FVP A4) # combines them by asking if the subject is taking any medications (which # corresponds to A4G.ANYMEDS), then has 50 fields to specify each # medication used, which we turn each one into a FormA4D object. a4g = fvp_forms.FormA4G() a4g.ANYMEDS = record['fu_anymeds'] packet.append(a4g) for i in range(1, 51): key = 'fu_drugid_' + str(i) if record[key]: a4d = fvp_forms.FormA4D() a4d.DRUGID = record[key] packet.append(a4d) b1 = fvp_forms.FormB1() b1.HEIGHT = record['fu_height'] b1.WEIGHT = record['fu_weight'] b1.BPSYS = record['fu_bpsys'] b1.BPDIAS = record['fu_bpdias'] b1.HRATE = record['fu_hrate'] b1.VISION = record['fu_vision'] b1.VISCORR = record['fu_viscorr'] b1.VISWCORR = record['fu_viswcorr'] b1.HEARING = record['fu_hearing'] b1.HEARAID = record['fu_hearaid'] b1.HEARWAID = record['fu_hearwaid'] packet.append(b1) b4 = fvp_forms.FormB4() b4.MEMORY = record['fu_memory'] b4.ORIENT = record['fu_orient'] b4.JUDGMENT = record['fu_judgment'] b4.COMMUN = record['fu_commun'] b4.HOMEHOBB = record['fu_homehobb'] b4.PERSCARE = record['fu_perscare'] b4.CDRSUM = record['fu_cdrsum'] b4.CDRGLOB = record['fu_cdrglob'] b4.COMPORT = record['fu_comport'] b4.CDRLANG = record['fu_cdrlang'] packet.append(b4) b5 = fvp_forms.FormB5() b5.NPIQINF = record['fu_npiqinf'] b5.NPIQINFX = record['fu_npiqinfx'] b5.DEL = record['fu_del'] b5.DELSEV = record['fu_delsev'] b5.HALL = record['fu_hall'] b5.HALLSEV = record['fu_hallsev'] b5.AGIT = record['fu_agit'] b5.AGITSEV = record['fu_agitsev'] b5.DEPD = record['fu_depd'] b5.DEPDSEV = record['fu_depdsev'] b5.ANX = record['fu_anx'] b5.ANXSEV = record['fu_anxsev'] b5.ELAT = record['fu_elat'] b5.ELATSEV = record['fu_elatsev'] b5.APA = record['fu_apa'] b5.APASEV = record['fu_apasev'] b5.DISN = record['fu_disn'] b5.DISNSEV = record['fu_disnsev'] b5.IRR = record['fu_irr'] b5.IRRSEV = record['fu_irrsev'] b5.MOT = record['fu_mot'] b5.MOTSEV = record['fu_motsev'] b5.NITE = record['fu_nite'] b5.NITESEV = record['fu_nitesev'] b5.APP = record['fu_app'] b5.APPSEV = record['fu_appsev'] packet.append(b5) b6 = fvp_forms.FormB6() b6.NOGDS = record['fu_nogds'] b6.SATIS = record['fu_satis'] b6.DROPACT = record['fu_dropact'] b6.EMPTY = record['fu_empty'] b6.BORED = record['fu_bored'] b6.SPIRITS = record['fu_spirits'] b6.AFRAID = record['fu_afraid'] b6.HAPPY = record['fu_happy'] b6.HELPLESS = record['fu_helpless'] b6.STAYHOME = record['fu_stayhome'] b6.MEMPROB = record['fu_memprob'] b6.WONDRFUL = record['fu_wondrful'] b6.WRTHLESS = record['fu_wrthless'] b6.ENERGY = record['fu_energy'] b6.HOPELESS = record['fu_hopeless'] b6.BETTER = record['fu_better'] b6.GDS = record['fu_gds'] packet.append(b6) b7 = fvp_forms.FormB7() b7.BILLS = record['fu_bills'] b7.TAXES = record['fu_taxes'] b7.SHOPPING = record['fu_shopping'] b7.GAMES = record['fu_games'] b7.STOVE = record['fu_stove'] b7.MEALPREP = record['fu_mealprep'] b7.EVENTS = record['fu_events'] b7.PAYATTN = record['fu_payattn'] b7.REMDATES = record['fu_remdates'] b7.TRAVEL = record['fu_travel'] packet.append(b7) b8 = fvp_forms.FormB8() b8.NORMEXAM = record['fu_normexam'] b8.PARKSIGN = record['fu_parksign'] b8.RESTTRL = record['fu_resttrl'] b8.RESTTRR = record['fu_resttrr'] b8.SLOWINGL = record['fu_slowingl'] b8.SLOWINGR = record['fu_slowingr'] b8.RIGIDL = record['fu_rigidl'] b8.RIGIDR = record['fu_rigidr'] b8.BRADY = record['fu_brady'] b8.PARKGAIT = record['fu_parkgait'] b8.POSTINST = record['fu_postinst'] b8.CVDSIGNS = record['fu_cvdsigns'] b8.CORTDEF = record['fu_cortdef'] b8.SIVDFIND = record['fu_sivdfind'] b8.CVDMOTL = record['fu_cvdmotl'] b8.CVDMOTR = record['fu_cvdmotr'] b8.CORTVISL = record['fu_cortvisl'] b8.CORTVISR = record['fu_cortvisr'] b8.SOMATL = record['fu_somatl'] b8.SOMATR = record['fu_somatr'] b8.POSTCORT = record['fu_postcort'] b8.PSPCBS = record['fu_pspcbs'] b8.EYEPSP = record['fu_eyepsp'] b8.DYSPSP = record['fu_dyspsp'] b8.AXIALPSP = record['fu_axialpsp'] b8.GAITPSP = record['fu_gaitpsp'] b8.APRAXSP = record['fu_apraxsp'] b8.APRAXL = record['fu_apraxl'] b8.APRAXR = record['fu_apraxr'] b8.CORTSENL = record['fu_cortsenl'] b8.CORTSENR = record['fu_cortsenr'] b8.ATAXL = record['fu_ataxl'] b8.ATAXR = record['fu_ataxr'] b8.ALIENLML = record['fu_alienlml'] b8.ALIENLMR = record['fu_alienlmr'] b8.DYSTONL = record['fu_dystonl'] b8.DYSTONR = record['fu_dystonr'] b8.ALSFIND = record['fu_alsfind'] b8.GAITNPH = record['fu_gaitnph'] b8.OTHNEUR = record['fu_othneur'] b8.OTHNEURX = record['fu_othneurx'] packet.append(b8) b9 = fvp_forms.FormB9() b9.DECSUB = record['fu_decsub'] b9.DECIN = record['fu_decin'] b9.DECCLCOG = record['fu_decclcog'] b9.COGMEM = record['fu_cogmem'] b9.COGORI = record['fu_cogori'] b9.COGJUDG = record['fu_cogjudg'] b9.COGLANG = record['fu_coglang'] b9.COGVIS = record['fu_cogvis'] b9.COGATTN = record['fu_cogattn'] b9.COGFLUC = record['fu_cogfluc'] b9.COGFLAGO = record['fu_cogflago'] b9.COGOTHR = record['fu_cogothr'] b9.COGOTHRX = record['fu_cogothrx'] b9.COGFPRED = record['fu_cogfpred'] b9.COGFPREX = record['fu_cogfprex'] b9.COGMODE = record['fu_cogmode'] b9.COGMODEX = record['fu_cogmodex'] b9.DECAGE = record['fu_decage'] b9.DECCLBE = record['fu_decclbe'] b9.BEAPATHY = record['fu_beapathy'] b9.BEDEP = record['fu_bedep'] b9.BEVHALL = record['fu_bevhall'] b9.BEVWELL = record['fu_bevwell'] b9.BEVHAGO = record['fu_bevhago'] b9.BEAHALL = record['fu_beahall'] b9.BEDEL = record['fu_bedel'] b9.BEDISIN = record['fu_bedisin'] b9.BEIRRIT = record['fu_beirrit'] b9.BEAGIT = record['fu_beagit'] b9.BEPERCH = record['fu_beperch'] b9.BEREM = record['fu_berem'] b9.BEREMAGO = record['fu_beremago'] b9.BEANX = record['fu_beanx'] b9.BEOTHR = record['fu_beothr'] b9.BEOTHRX = record['fu_beothrx'] b9.BEFPRED = record['fu_befpred'] b9.BEFPREDX = record['fu_befpredx'] b9.BEMODE = record['fu_bemode'] b9.BEMODEX = record['fu_bemodex'] b9.BEAGE = record['fu_beage'] b9.DECCLMOT = record['fu_decclmot'] b9.MOGAIT = record['fu_mogait'] b9.MOFALLS = record['fu_mofalls'] b9.MOTREM = record['fu_motrem'] b9.MOSLOW = record['fu_moslow'] b9.MOFRST = record['fu_mofrst'] b9.MOMODE = record['fu_momode'] b9.MOMODEX = record['fu_momodex'] b9.MOMOPARK = record['fu_momopark'] b9.PARKAGE = record['fu_parkage'] b9.MOMOALS = record['fu_momoals'] b9.ALSAGE = record['fu_alsage'] b9.MOAGE = record['fu_moage'] b9.COURSE = record['fu_course'] b9.FRSTCHG = record['fu_frstchg'] b9.LBDEVAL = record['fu_lbdeval'] b9.FTLDEVAL = record['fu_ftldeval'] packet.append(b9) add_c1s_or_c2(record, packet) clsform.add_cls(record, packet, fvp_forms) d1 = fvp_forms.FormD1() d1.DXMETHOD = record['fu_dxmethod'] d1.NORMCOG = record['fu_normcog'] d1.DEMENTED = record['fu_demented'] d1.AMNDEM = record['fu_amndem'] d1.PCA = record['fu_pca'] d1.PPASYN = record['fu_ppasyn'] d1.PPASYNT = record['fu_ppasynt'] d1.FTDSYN = record['fu_ftdsyn'] d1.LBDSYN = record['fu_lbdsyn'] d1.NAMNDEM = record['fu_namndem'] d1.MCIAMEM = record['fu_mciamem'] d1.MCIAPLUS = record['fu_mciaplus'] d1.MCIAPLAN = record['fu_mciaplan'] d1.MCIAPATT = record['fu_mciapatt'] d1.MCIAPEX = record['fu_mciapex'] d1.MCIAPVIS = record['fu_mciapvis'] d1.MCINON1 = record['fu_mcinon1'] d1.MCIN1LAN = record['fu_mcin1lan'] d1.MCIN1ATT = record['fu_mcin1att'] d1.MCIN1EX = record['fu_mcin1ex'] d1.MCIN1VIS = record['fu_mcin1vis'] d1.MCINON2 = record['fu_mcinon2'] d1.MCIN2LAN = record['fu_mcin2lan'] d1.MCIN2ATT = record['fu_mcin2att'] d1.MCIN2EX = record['fu_mcin2ex'] d1.MCIN2VIS = record['fu_mcin2vis'] d1.IMPNOMCI = record['fu_impnomci'] d1.AMYLPET = record['fu_amylpet'] d1.AMYLCSF = record['fu_amylcsf'] d1.FDGAD = record['fu_fdgad'] d1.HIPPATR = record['fu_hippatr'] d1.TAUPETAD = record['fu_taupetad'] d1.CSFTAU = record['fu_csftau'] d1.FDGFTLD = record['fu_fdgftld'] d1.TPETFTLD = record['fu_tpetftld'] d1.MRFTLD = record['fu_mrftld'] d1.DATSCAN = record['fu_datscan'] d1.OTHBIOM = record['fu_othbiom'] d1.OTHBIOMX = record['fu_othbiomx'] d1.IMAGLINF = record['fu_imaglinf'] d1.IMAGLAC = record['fu_imaglac'] d1.IMAGMACH = record['fu_imagmach'] d1.IMAGMICH = record['fu_imagmich'] d1.IMAGMWMH = record['fu_imagmwmh'] d1.IMAGEWMH = record['fu_imagewmh'] d1.ADMUT = record['fu_admut'] d1.FTLDMUT = record['fu_ftldmut'] d1.OTHMUT = record['fu_othmut'] d1.OTHMUTX = record['fu_othmutx'] d1.ALZDIS = record['fu_alzdis'] d1.ALZDISIF = record['fu_alzdisif'] d1.LBDIS = record['fu_lbdis'] d1.LBDIF = record['fu_lbdif'] d1.PARK = record['fu_park'] d1.MSA = record['fu_msa'] d1.MSAIF = record['fu_msaif'] d1.PSP = record['fu_psp'] d1.PSPIF = record['fu_pspif'] d1.CORT = record['fu_cort'] d1.CORTIF = record['fu_cortif'] d1.FTLDMO = record['fu_ftldmo'] d1.FTLDMOIF = record['fu_ftldmoif'] d1.FTLDNOS = record['fu_ftldnos'] d1.FTLDNOIF = record['fu_ftldnoif'] d1.FTLDSUBT = record['fu_ftldsubt'] d1.FTLDSUBX = record['fu_ftldsubx'] d1.CVD = record['fu_cvd'] d1.CVDIF = record['fu_cvdif'] d1.PREVSTK = record['fu_prevstk'] d1.STROKDEC = record['fu_strokdec'] d1.STKIMAG = record['fu_stkimag'] d1.INFNETW = record['fu_infnetw'] d1.INFWMH = record['fu_infwmh'] d1.ESSTREM = record['fu_esstrem'] d1.ESSTREIF = record['fu_esstreif'] d1.DOWNS = record['fu_downs'] d1.DOWNSIF = record['fu_downsif'] d1.HUNT = record['fu_hunt'] d1.HUNTIF = record['fu_huntif'] d1.PRION = record['fu_prion'] d1.PRIONIF = record['fu_prionif'] d1.BRNINJ = record['fu_brninj'] d1.BRNINJIF = record['fu_brninjif'] d1.BRNINCTE = record['fu_brnincte'] d1.HYCEPH = record['fu_hyceph'] d1.HYCEPHIF = record['fu_hycephif'] d1.EPILEP = record['fu_epilep'] d1.EPILEPIF = record['fu_epilepif'] d1.NEOP = record['fu_neop'] d1.NEOPIF = record['fu_neopif'] d1.NEOPSTAT = record['fu_neopstat'] d1.HIV = record['fu_hiv'] d1.HIVIF = record['fu_hivif'] d1.OTHCOG = record['fu_othcog'] d1.OTHCOGIF = record['fu_othcogif'] d1.OTHCOGX = record['fu_othcogx'] d1.DEP = record['fu_dep'] d1.DEPIF = record['fu_depif'] d1.DEPTREAT = record['fu_deptreat'] d1.BIPOLDX = record['fu_bipoldx'] d1.BIPOLDIF = record['fu_bipoldif'] d1.SCHIZOP = record['fu_schizop'] d1.SCHIZOIF = record['fu_schizoif'] d1.ANXIET = record['fu_anxiet'] d1.ANXIETIF = record['fu_anxietif'] d1.DELIR = record['fu_delir'] d1.DELIRIF = record['fu_delirif'] d1.PTSDDX = record['fu_ptsddx'] d1.PTSDDXIF = record['fu_ptsddxif'] d1.OTHPSY = record['fu_othpsy'] d1.OTHPSYIF = record['fu_othpsyif'] d1.OTHPSYX = record['fu_othpsyx'] d1.ALCDEM = record['fu_alcdem'] d1.ALCDEMIF = record['fu_alcdemif'] d1.ALCABUSE = record['fu_alcabuse'] d1.IMPSUB = record['fu_impsub'] d1.IMPSUBIF = record['fu_impsubif'] d1.DYSILL = record['fu_dysill'] d1.DYSILLIF = record['fu_dysillif'] d1.MEDS = record['fu_meds'] d1.MEDSIF = record['fu_medsif'] d1.COGOTH = record['fu_cogoth'] d1.COGOTHIF = record['fu_cogothif'] d1.COGOTHX = record['fu_cogothx'] d1.COGOTH2 = record['fu_cogoth2'] d1.COGOTH2F = record['fu_cogoth2f'] d1.COGOTH2X = record['fu_cogoth2x'] d1.COGOTH3 = record['fu_cogoth3'] d1.COGOTH3F = record['fu_cogoth3f'] d1.COGOTH3X = record['fu_cogoth3x'] packet.append(d1) d2 = fvp_forms.FormD2() d2.CANCER = record['fu_cancer'] d2.CANCSITE = record['fu_cancsite'] d2.DIABET = record['fu_diabet'] d2.MYOINF = record['fu_myoinf'] d2.CONGHRT = record['fu_conghrt'] d2.AFIBRILL = record['fu_afibrill'] d2.HYPERT = record['fu_hypert'] d2.ANGINA = record['fu_angina'] d2.HYPCHOL = record['fu_hypchol'] d2.VB12DEF = record['fu_vb12def'] d2.THYDIS = record['fu_thydis'] d2.ARTH = record['fu_arth'] d2.ARTYPE = record['fu_artype'] d2.ARTYPEX = record['fu_artypex'] d2.ARTUPEX = record['fu_artupex'] d2.ARTLOEX = record['fu_artloex'] d2.ARTSPIN = record['fu_artspin'] d2.ARTUNKN = record['fu_artunkn'] d2.URINEINC = record['fu_urineinc'] d2.BOWLINC = record['fu_bowlinc'] d2.SLEEPAP = record['fu_sleepap'] d2.REMDIS = record['fu_remdis'] d2.HYPOSOM = record['fu_hyposom'] d2.SLEEPOTH = record['fu_sleepoth'] d2.SLEEPOTX = record['fu_sleepotx'] d2.ANGIOCP = record['fu_angiocp'] d2.ANGIOPCI = record['fu_angiopci'] d2.PACEMAKE = record['fu_pacemake'] d2.HVALVE = record['fu_hvalve'] d2.ANTIENC = record['fu_antienc'] d2.ANTIENCX = record['fu_antiencx'] d2.OTHCOND = record['fu_othcond'] d2.OTHCONDX = record['fu_othcondx'] packet.append(d2) post_Z1X = False if (int(record['visityr'])>2018) or (int(record['visityr'])==2018 and int(record['visitmo'])>4) or \ (int(record['visityr'])==2018 and int(record['visitmo'])==4 and int(record['visitday'])>=2): post_Z1X = True if post_Z1X: if(len(record['a1lang'].strip())==0 or len(record['clssubmitted'].strip())==0): ptid = record['ptid'] message = "Could not parse packet as Z1X form is missing data" message = message + " for PTID : " + ("unknown" if not ptid else ptid) raise Exception(message) else: addZ1X(record, packet) else: if(len(record['a2sub'].strip())==0 or len(record['b7sub'].strip())==0): ptid = record['ptid'] message = "Could not parse packet as Z1 form is missing data" message = message + " for PTID : " + ("unknown" if not ptid else ptid) raise Exception(message) else: addZ1(record, packet) update_header(record, packet) return packet