1
1
###############################################################################
2
- # Copyright 2015-2019 University of Florida. All rights reserved.
2
+ # Copyright 2015-2020 University of Florida. All rights reserved.
3
3
# This file is part of UF CTS-IT's NACCulator project.
4
4
# Use of this source code is governed by the license found in the LICENSE file.
5
5
###############################################################################
6
6
7
+ import sys
8
+
7
9
from nacc .ftld .fvp import forms as ftld_fvp_forms
8
10
from nacc .uds3 import packet as ftld_fvp_packet
9
11
10
12
11
- def build_ftld_fvp_form (record : dict ):
13
+ def build_ftld_fvp_form (record : dict , err = sys . stderr ):
12
14
''' Converts REDCap CSV data into a packet (list of FVP Form objects) '''
13
15
packet = ftld_fvp_packet .Packet ()
14
16
@@ -21,6 +23,35 @@ def build_ftld_fvp_form(record: dict):
21
23
and int (record ['visitday' ]) >= 1 ):
22
24
raise ValueError ('Form date cannot precede March 1, 2015.' )
23
25
26
+ add_z1x (record , packet )
27
+ # Forms B3F, B9F, C1F, C2F, C3F, E2F, and E3F are REQUIRED.
28
+ # Forms A3A, C4F, C5F, and C6F are OPTIONAL and must be specifically
29
+ # marked as present for nacculator to process them
30
+ if record ['ivp_z1x_complete' ] in ['1' , '2' ]:
31
+ if record ['ftda3afs' ] == '1' :
32
+ add_a3a (record , packet )
33
+ add_b3f (record , packet )
34
+ add_b9f (record , packet )
35
+ add_c1f (record , packet )
36
+ add_c2f (record , packet )
37
+ add_c3f (record , packet )
38
+ if record ['ftdc4fs' ] == '1' :
39
+ add_c4f (record , packet )
40
+ if record ['ftdc5fs' ] == '1' :
41
+ add_c5f (record , packet )
42
+ if record ['ftdc6fs' ] == '1' :
43
+ add_c6f (record , packet )
44
+ else :
45
+ print ("ptid " + str (record ['ptid' ]) +
46
+ ": No Z1X form found." , file = err )
47
+ add_e2f (record , packet )
48
+ add_e3f (record , packet )
49
+ update_header (record , packet )
50
+
51
+ return packet
52
+
53
+
54
+ def add_z1x (record , packet ):
24
55
Z1X = ftld_fvp_forms .FormZ1X ()
25
56
Z1X .LANGA1 = record ['fu_langa1' ]
26
57
Z1X .LANGA2 = record ['fu_langa2' ]
@@ -71,8 +102,10 @@ def build_ftld_fvp_form(record: dict):
71
102
Z1X .LANGE3F = record ['fu_lange3f' ]
72
103
Z1X .LANGCLS = record ['fu_langcls' ]
73
104
Z1X .CLSSUB = record ['fu_clssub' ]
74
- packet .append ( Z1X )
105
+ packet .insert ( 0 , Z1X )
75
106
107
+
108
+ def add_a3a (record , packet ):
76
109
A3a = ftld_fvp_forms .FormA3a ()
77
110
A3a .FTDRELCO = record ['fu_ftdrelco' ]
78
111
A3a .FTDSIBBY = record ['fu_ftdsibby' ]
@@ -82,6 +115,8 @@ def build_ftld_fvp_form(record: dict):
82
115
A3a .FTDCOMME = record ['fu_ftdcomme' ]
83
116
packet .append (A3a )
84
117
118
+
119
+ def add_b3f (record , packet ):
85
120
B3F = ftld_fvp_forms .FormB3F ()
86
121
B3F .FTDLTFAS = record ['fu_ftdltfas' ]
87
122
B3F .FTDLIMB = record ['fu_ftdlimb' ]
@@ -93,6 +128,8 @@ def build_ftld_fvp_form(record: dict):
93
128
B3F .FTDGTYPX = record ['fu_ftdgtypx' ]
94
129
packet .append (B3F )
95
130
131
+
132
+ def add_b9f (record , packet ):
96
133
B9F = ftld_fvp_forms .FormB9F ()
97
134
B9F .FTDPPASL = record ['fu_ftdppasl' ]
98
135
B9F .FTDPPAPO = record ['fu_ftdppapo' ]
@@ -122,6 +159,8 @@ def build_ftld_fvp_form(record: dict):
122
159
B9F .FTDPABVF = record ['fu_ftdpabvf' ]
123
160
packet .append (B9F )
124
161
162
+
163
+ def add_c1f (record , packet ):
125
164
C1F = ftld_fvp_forms .FormC1F ()
126
165
C1F .FTDWORRC = record ['fu_ftdworrc' ]
127
166
C1F .FTDWORRS = record ['fu_ftdworrs' ]
@@ -150,6 +189,8 @@ def build_ftld_fvp_form(record: dict):
150
189
C1F .FTDREAPR = record ['fu_ftdreapr' ]
151
190
packet .append (C1F )
152
191
192
+
193
+ def add_c2f (record , packet ):
153
194
C2F = ftld_fvp_forms .FormC2F ()
154
195
C2F .FTDCPC2F = record ['fu_ftdcpc2f' ]
155
196
C2F .FTDhAIRD = record ['fu_ftdhaird' ]
@@ -180,6 +221,8 @@ def build_ftld_fvp_form(record: dict):
180
221
C2F .FTDSNRAT = record ['fu_ftdsnrat' ]
181
222
packet .append (C2F )
182
223
224
+
225
+ def add_c3f (record , packet ):
183
226
C3F = ftld_fvp_forms .FormC3F ()
184
227
C3F .FTDSELF = record ['fu_ftdself' ]
185
228
C3F .FTDBADLY = record ['fu_ftdbadly' ]
@@ -235,6 +278,8 @@ def build_ftld_fvp_form(record: dict):
235
278
C3F .FTDLENGT = record ['fu_ftdlengt' ]
236
279
packet .append (C3F )
237
280
281
+
282
+ def add_c4f (record , packet ):
238
283
C4F = ftld_fvp_forms .FormC4F ()
239
284
C4F .FTDCPC4F = record ['fu_ftdcpc4f' ]
240
285
C4F .FTDWORKU = record ['fu_ftdworku' ]
@@ -247,6 +292,8 @@ def build_ftld_fvp_form(record: dict):
247
292
C4F .FTDBIST = record ['fu_ftdbist' ]
248
293
packet .append (C4F )
249
294
295
+
296
+ def add_c5f (record , packet ):
250
297
C5F = ftld_fvp_forms .FormC5F ()
251
298
C5F .FTDCPC5F = record ['fu_ftdcpc5f' ]
252
299
C5F .FTDINSEX = record ['fu_ftdinsex' ]
@@ -271,6 +318,8 @@ def build_ftld_fvp_form(record: dict):
271
318
C5F .FTDIRIPT = record ['fu_ftdiript' ]
272
319
packet .append (C5F )
273
320
321
+
322
+ def add_c6f (record , packet ):
274
323
C6F = ftld_fvp_forms .FormC6F ()
275
324
C6F .FTDCPC6F = record ['fu_ftdcpc6f' ]
276
325
C6F .FTDALTER = record ['fu_ftdalter' ]
@@ -291,6 +340,8 @@ def build_ftld_fvp_form(record: dict):
291
340
C6F .FTDRSMST = record ['fu_ftdrsmst' ]
292
341
packet .append (C6F )
293
342
343
+
344
+ def add_e2f (record , packet ):
294
345
E2F = ftld_fvp_forms .FormE2F ()
295
346
E2F .FTDSMRI = record ['fu_ftdsmri' ]
296
347
E2F .FTDSMMO = record ['fu_ftdsmmo' ]
@@ -340,6 +391,8 @@ def build_ftld_fvp_form(record: dict):
340
391
E2F .FTDOTANS = record ['fu_ftdotans' ]
341
392
packet .append (E2F )
342
393
394
+
395
+ def add_e3f (record , packet ):
343
396
E3F = ftld_fvp_forms .FormE3F ()
344
397
E3F .FTDIDIAG = record ['fu_ftdidiag' ]
345
398
E3F .FTDSMRIO = record ['fu_ftdsmrio' ]
@@ -402,9 +455,6 @@ def build_ftld_fvp_form(record: dict):
402
455
E3F .FTDOThIS = record ['fu_ftdothis' ]
403
456
packet .append (E3F )
404
457
405
- update_header (record ,packet )
406
- return packet
407
-
408
458
409
459
def update_header (record , packet ):
410
460
for header in packet :
0 commit comments