ncs_mdes 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ##
4
+ # A script to generate disposition_codes.yml from the MDES 3.2
5
+ # spreadsheet's Dispositions tab.
6
+ #
7
+ # This script requires the 'roo' gem, which is not included in
8
+ # ncs_mdes's gemspec because it has a huge number of dependencies and
9
+ # is not needed at runtime.
10
+
11
+ require 'rubygems'
12
+ require 'roo'
13
+ require 'yaml'
14
+
15
+ MDES_XLSX = ARGV.first or fail 'Please provide the path to the MDES spreadsheet'
16
+ TARGET = File.expand_path('../disposition_codes.yml', __FILE__)
17
+ SHEET_NAME = 'Dispositions'
18
+
19
+ MAPPED_COLUMNS = {
20
+ 'A' => 'final_category',
21
+ 'B' => 'sub_category',
22
+ 'C' => 'disposition'
23
+ }
24
+
25
+ def normalize_whitespace(s)
26
+ s.strip.gsub(/\s+/, " ")
27
+ end
28
+
29
+ book = Excelx.new(MDES_XLSX)
30
+
31
+ # This is the array of hashes that will eventually be serialized to
32
+ # disposition_codes.yml.
33
+ dispositions = []
34
+
35
+ current_event = nil
36
+ current_category_code = nil
37
+ 1.upto(book.last_row(SHEET_NAME)) do |row_number|
38
+ a, b = %w(A B).collect { |col| book.cell(row_number, col, SHEET_NAME) }
39
+ if a =~ /Category\s+(\d)\s+\((.*?)\)\s+Disposition\s+Codes/
40
+ current_event = normalize_whitespace $2
41
+ current_category_code = $1.to_i
42
+ puts "Collecting for category #{current_event} (#{current_category_code})"
43
+ elsif b =~ /\S/ && a !~ /FINAL/
44
+ disposition_hash = MAPPED_COLUMNS.inject({}) do |h, (col, key)|
45
+ h[key] = normalize_whitespace(book.cell(row_number, col, SHEET_NAME)); h
46
+ end
47
+ disposition_hash['event'] = current_event
48
+ disposition_hash['category_code'] = current_category_code
49
+ disposition_hash['interim_code'], disposition_hash['final_code'] =
50
+ normalize_whitespace(book.cell(row_number, 'D', SHEET_NAME)).split('/')
51
+
52
+ dispositions << disposition_hash
53
+ end
54
+ end
55
+
56
+ File.open(TARGET, 'w') do |f|
57
+ f.write dispositions.sort_by { |h| [h['category_code'], h['final_code']] }.to_yaml
58
+ end
@@ -0,0 +1,736 @@
1
+ variable_type_references:
2
+ link_child_partic_org:
3
+ p_id: ncs:foreignKeyTypeRequired
4
+ organization_id: ncs:foreignKeyTypeRequired
5
+
6
+ foreign_keys:
7
+ birth_visit:
8
+ new_address_id: address
9
+ mail_address_id: address
10
+ new_address_b_id: address
11
+
12
+ birth_visit_2:
13
+ new_address_id: address
14
+ mail_address_id: address
15
+ new_address_b_id: address
16
+
17
+ birth_visit_3:
18
+ cwork_address_id: address
19
+ work_address_id: address
20
+
21
+ birth_visit_4:
22
+ cwork_address_id: address
23
+ work_address_id: address
24
+
25
+ birth_visit_baby_name:
26
+ bv_id: birth_visit
27
+
28
+ birth_visit_baby_name_2:
29
+ bv_id: birth_visit_2
30
+
31
+ birth_visit_decorate_room:
32
+ bv_id: birth_visit
33
+
34
+ birth_visit_decorate_room_2:
35
+ bv_id: birth_visit_2
36
+
37
+ birth_visit_li:
38
+ new_address_id: address
39
+ mail_address_id: address
40
+ new_address_b_id: address
41
+
42
+ birth_visit_li_2:
43
+ cwork_address_id: address
44
+ work_address_id: address
45
+
46
+ birth_visit_renovate_room:
47
+ bv_id: birth_visit
48
+
49
+ birth_visit_renovate_room_2:
50
+ bv_id: birth_visit_2
51
+
52
+ bitsea_saq:
53
+ r_p_id: participant
54
+
55
+ breast_milk_saq:
56
+ r_p_id: participant
57
+
58
+ bsi_saq:
59
+ r_p_id: participant
60
+
61
+ child_anthro:
62
+ r_p_id: participant
63
+
64
+ child_blood:
65
+ r_p_id: participant
66
+ # According to the corresponding instrument, equip_id is manually entered
67
+ # and not a reference to another table.
68
+ equip_id: false
69
+
70
+ child_bp:
71
+ r_p_id: participant
72
+
73
+ child_bp_2:
74
+ r_p_id: participant
75
+
76
+ child_saliva:
77
+ r_p_id: participant
78
+
79
+ child_saliva_saq:
80
+ r_p_id: participant
81
+
82
+ child_urine:
83
+ r_p_id: participant
84
+
85
+ core_quest:
86
+ r_p_id: participant
87
+
88
+ core_quest_2:
89
+ r_p_id: participant
90
+
91
+ core_quest_child_care:
92
+ r_p_id: participant
93
+ c_address_id: address
94
+
95
+ core_quest_child_care_2:
96
+ c_address_id: address
97
+
98
+ core_quest_occupation:
99
+ r_p_id: participant
100
+ work_address_id: address
101
+
102
+ core_quest_occupation_2:
103
+ work_address_id: address
104
+
105
+ drf_therm_verification:
106
+ equip_id: env_equipment
107
+
108
+ eighteen_mth_mother:
109
+ c_addr1_id: address
110
+ c_addr2_id: address
111
+ r_p_id: participant
112
+
113
+ eighteen_mth_mother_2:
114
+ c_addr1_id: address
115
+ c_addr2_id: address
116
+ r_p_id: participant
117
+
118
+ eighteen_mth_mother_3:
119
+ r_p_id: participant
120
+
121
+ eighteen_mth_mother_4:
122
+ r_p_id: participant
123
+
124
+ eighteen_mth_mother_cond:
125
+ eighteen_mth_habits_id: eighteen_mth_mother_habits
126
+
127
+ eighteen_mth_mother_lice_2:
128
+ eighteen_mth_mother_id: eighteen_mth_mother_2
129
+
130
+ eighteen_mth_mother_saq:
131
+ asq18_address_id: address
132
+ r_p_id: participant
133
+
134
+ eighteen_mth_mother_saq_2:
135
+ r_p_id: participant
136
+ asq18_address_id: address
137
+ home_phone_id: telephone
138
+
139
+ env_equipment_prob_log:
140
+ equip_id: env_equipment
141
+ staff_id_reviewer: staff
142
+
143
+ event:
144
+ participant_id: participant
145
+
146
+ fourteen_mth_asq_saq:
147
+ r_p_id: participant
148
+ asq14_address_id: address
149
+ home_phone_id: telephone
150
+
151
+ household_enumeration_hidden_du:
152
+ hdu_address_id: address
153
+
154
+ incident:
155
+ inc_staff_reporter_id: staff
156
+ inc_staff_supervisor_id: staff
157
+ inc_recip_is_participant: participant
158
+ inc_recip_is_du: dwelling_unit
159
+ inc_recip_is_staff: staff
160
+ inc_recip_is_family: person
161
+ inc_recip_is_acquaintance: person
162
+ inc_contact_person: person
163
+
164
+ itsp_saq:
165
+ r_p_id: participant
166
+
167
+ itsp_saq_2:
168
+ r_p_id: participant
169
+
170
+ link_child_partic_org:
171
+ last_update_staff_id: staff
172
+
173
+ m_chat_saq:
174
+ r_p_id: participant
175
+
176
+ multi_mode:
177
+ r_p_id: participant
178
+
179
+ nine_mth_mother:
180
+ r_p_id: participant
181
+
182
+ nine_mth_mother_2:
183
+ r_p_id: participant
184
+
185
+ nine_mth_mother_3:
186
+ r_p_id: participant
187
+
188
+ non_interview_respondent:
189
+ r_p_id: participant
190
+
191
+ non_interview_respondent_2:
192
+ r_p_id: participant
193
+
194
+ participant_consent:
195
+ person_who_consented_id: person
196
+ person_wthdrw_consent_id: person
197
+
198
+ participant_consent_reconsideration:
199
+ r_p_id: participant
200
+
201
+ participant_verif:
202
+ r_p_id: participant
203
+ c_address_id: address
204
+ pa_phone_id: telephone
205
+ s_address_id: address
206
+ sa_phone_id: telephone
207
+
208
+ participant_vis_consent:
209
+ vis_person_who_consented_id: person
210
+
211
+ participant_rvis:
212
+ rvis_person: person
213
+
214
+ pb_recruitment:
215
+ address_pb_id: address
216
+
217
+ pb_recruitment_2:
218
+ address_pb_id: address
219
+
220
+ pb_recruitment_info_source:
221
+ pb_recruitment_id: pb_recruitment
222
+
223
+ pb_recruitment_info_source_2:
224
+ pb_recruitment_id: pb_recruitment_2
225
+
226
+ pb_recruitment_prov_source:
227
+ pb_recruitment_id: pb_recruitment
228
+
229
+ pb_recruitment_prov_source_2:
230
+ pb_recruitment_id: pb_recruitment_2
231
+
232
+ pb_recruitment_prov_svc:
233
+ pb_recruitment_id: pb_recruitment
234
+
235
+ pb_recruitment_prov_svc_2:
236
+ pb_recruitment_id: pb_recruitment_2
237
+
238
+ pb_samp_frame:
239
+ practice_address_id: address
240
+ contact_address_id: address
241
+ contact_email_id: email
242
+ contact_phone_num_id: telephone
243
+ contact_address_larger_id: address
244
+ contact_email_larger_id: email
245
+ contact_phone_num_larger_id: telephone
246
+
247
+ pb_samp_frame_2:
248
+ practice_address_id: address
249
+ contact_address_id: address
250
+ contact_email_id: email
251
+ contact_phone_num_id: telephone
252
+ contact_address_larger_id: address
253
+ contact_email_larger_id: email
254
+ contact_phone_num_larger_id: telephone
255
+
256
+ pbs_elig_screener:
257
+ r_phone_1_id: telephone
258
+ r_phone_2_id: telephone
259
+ r_email_id: email
260
+
261
+ pbs_elig_screener_hosp:
262
+ r_p_id: participant
263
+ r_phone_1_id: telephone
264
+ r_phone_2_id: telephone
265
+ r_email_id: email
266
+
267
+ pbs_elig_screener_pr_office:
268
+ pr_address_id: address
269
+
270
+ pbs_elig_screener_hosp_pr_office:
271
+ pr_address_id: address
272
+
273
+ pbs_participant_verif:
274
+ r_p_id: participant
275
+
276
+ pbs_participant_verif_2:
277
+ r_p_id: participant
278
+
279
+ person:
280
+ new_address_id: address
281
+
282
+ person_special_considerations:
283
+ last_update_staff_id: staff
284
+
285
+ prec_therm_cert:
286
+ equip_id: env_equipment
287
+
288
+ pre_preg:
289
+ c_addr1_id: address
290
+ c_addr2_id: address
291
+
292
+ preg_screen_eh:
293
+ mail_address_id: address
294
+ new_address_id: address
295
+
296
+ preg_screen_eh_2:
297
+ mail_address_id: address
298
+ new_address_id: address
299
+
300
+ preg_screen_eh_know_ncs:
301
+ ps_eh_id: preg_screen_eh
302
+
303
+ preg_screen_eh_know_ncs_2:
304
+ ps_eh_id: preg_screen_eh_2
305
+
306
+ preg_screen_eh_race:
307
+ ps_eh_id: preg_screen_eh
308
+
309
+ preg_screen_eh_race_2:
310
+ ps_eh_id: preg_screen_eh_2
311
+
312
+ preg_screen_hi:
313
+ mail_address_id: address
314
+ new_address_id: address
315
+
316
+ preg_screen_hi_2:
317
+ mail_address_id: address
318
+ new_address_id: address
319
+
320
+ preg_screen_hi_know_ncs:
321
+ ps_hi_id: preg_screen_hi
322
+
323
+ preg_screen_hi_know_ncs_2:
324
+ ps_hi_id: preg_screen_hi_2
325
+
326
+ preg_screen_hi_race:
327
+ ps_hi_id: preg_screen_hi
328
+
329
+ preg_screen_hi_race_2:
330
+ ps_hi_id: preg_screen_hi_2
331
+
332
+ preg_screen_pb:
333
+ mail_address_id: address
334
+ new_address_id: address
335
+
336
+ preg_screen_pb_2:
337
+ mail_address_id: address
338
+ new_address_id: address
339
+
340
+ preg_screen_pb_know_ncs:
341
+ ps_pb_id: preg_screen_pb
342
+
343
+ preg_screen_pb_know_ncs_2:
344
+ ps_pb_id: preg_screen_pb_2
345
+
346
+ preg_screen_pb_race:
347
+ ps_pb_id: preg_screen_pb
348
+
349
+ preg_screen_pb_race_2:
350
+ ps_pb_id: preg_screen_pb_2
351
+
352
+ preg_visit_1:
353
+ b_address_id: address
354
+ c_addr1_id: address
355
+ c_addr2_id: address
356
+
357
+ preg_visit_1_2:
358
+ b_address_id: address
359
+ c_addr1_id: address
360
+ c_addr2_id: address
361
+
362
+ preg_visit_1_3:
363
+ b_address_id: address
364
+ work_address_id: address
365
+
366
+ preg_visit_1_commute:
367
+ pv1_id: preg_visit_1
368
+
369
+ preg_visit_1_commute_2:
370
+ pv1_id: preg_visit_1_2
371
+
372
+ preg_visit_1_cool:
373
+ pv1_id: preg_visit_1
374
+
375
+ preg_visit_1_cool_2:
376
+ pv1_id: preg_visit_1_2
377
+
378
+ preg_visit_1_diagnose_2:
379
+ pv1_id: preg_visit_1
380
+
381
+ preg_visit_1_diagnose_2_2:
382
+ pv1_id: preg_visit_1_2
383
+
384
+ preg_visit_1_heat2:
385
+ pv1_id: preg_visit_1
386
+
387
+ preg_visit_1_heat2_2:
388
+ pv1_id: preg_visit_1_2
389
+
390
+ preg_visit_1_local_trav:
391
+ pv1_id: preg_visit_1
392
+
393
+ preg_visit_1_local_trav_2:
394
+ pv1_id: preg_visit_1_2
395
+
396
+ preg_visit_1_nonenglish2_2:
397
+ pv1_id: preg_visit_1_2
398
+
399
+ preg_visit_1_pdecorate_room:
400
+ pv1_id: preg_visit_1
401
+
402
+ preg_visit_1_pdecorate_room_2:
403
+ pv1_id: preg_visit_1_2
404
+
405
+ preg_visit_1_pet_type:
406
+ pv1_id: preg_visit_1
407
+
408
+ preg_visit_1_pet_type_2:
409
+ pv1_id: preg_visit_1_2
410
+
411
+ preg_visit_1_prenovate2_room:
412
+ pv1_id: preg_visit_1
413
+
414
+ preg_visit_1_prenovate_room:
415
+ pv1_id: preg_visit_1
416
+
417
+ preg_visit_1_prenovate_room_2:
418
+ pv1_id: preg_visit_1_2
419
+
420
+ preg_visit_1_room_mold:
421
+ pv1_id: preg_visit_1
422
+
423
+ preg_visit_1_room_mold_2:
424
+ pv1_id: preg_visit_1_2
425
+
426
+ preg_visit_1_saq_2:
427
+ f_addr_id: address
428
+
429
+ preg_visit_1_saq_3:
430
+ f_addr_id: address
431
+
432
+ preg_visit_1_saq_4:
433
+ f_addr_id: address
434
+ f_phone_id: telephone
435
+
436
+ preg_visit_1_saq_5:
437
+ f_addr_id: address
438
+ f_phone_id: telephone
439
+
440
+ preg_visit_1_sp_race:
441
+ pv1_id: preg_visit_1
442
+
443
+ preg_visit_1_sp_race_2:
444
+ pv1_id: preg_visit_1_2
445
+
446
+ preg_visit_2:
447
+ b_address_id: address
448
+ c_addr1_id: address
449
+ c_addr2_id: address
450
+
451
+ preg_visit_2_2:
452
+ b_address_id: address
453
+ c_addr1_id: address
454
+ c_addr2_id: address
455
+
456
+ preg_visit_2_3:
457
+ b_address_id: address
458
+ work_address_id: address
459
+ cwork_address_id: address
460
+
461
+ preg_visit_2_cool:
462
+ pv2_id: preg_visit_2
463
+
464
+ preg_visit_2_cool_2:
465
+ pv2_id: preg_visit_2_2
466
+
467
+ preg_visit_2_diagnose_2:
468
+ pv2_id: preg_visit_2
469
+
470
+ preg_visit_2_diagnose_2_2:
471
+ pv2_id: preg_visit_2_2
472
+
473
+ preg_visit_2_heat2:
474
+ pv2_id: preg_visit_2
475
+
476
+ preg_visit_2_heat2_2:
477
+ pv2_id: preg_visit_2_2
478
+
479
+ preg_visit_2_pdecorate2_room:
480
+ pv2_id: preg_visit_2
481
+
482
+ preg_visit_2_pdecorate2_room_2:
483
+ pv2_id: preg_visit_2_2
484
+
485
+ preg_visit_2_prenovate_room:
486
+ pv2_id: preg_visit_2
487
+
488
+ preg_visit_2_prenovate_room_2:
489
+ pv2_id: preg_visit_2_2
490
+
491
+ preg_visit_2_room_mold:
492
+ pv2_id: preg_visit_2
493
+
494
+ preg_visit_2_room_mold_2:
495
+ pv2_id: preg_visit_2_2
496
+
497
+ preg_visit_li:
498
+ b_address_id: address
499
+
500
+ preg_visit_li_2:
501
+ b_address_id: address
502
+
503
+ preg_visit_li_cool:
504
+ pv_li_id: preg_visit_li
505
+
506
+ preg_visit_li_cool_2:
507
+ pv_li_id: preg_visit_li_2
508
+
509
+ reconsideration_ins:
510
+ r_p_id: participant
511
+
512
+ ref_freezer_verification:
513
+ equip_id: env_equipment
514
+
515
+ sample_receipt_store:
516
+ equip_id: env_equipment
517
+
518
+ sample_shipping:
519
+ staff_id_track: staff
520
+
521
+ six_mth_mother:
522
+ c_addr1_id: address
523
+ c_addr2_id: address
524
+ r_p_id: participant
525
+
526
+ six_mth_mother_2:
527
+ r_p_id: participant
528
+
529
+ six_mth_mother_3:
530
+ r_p_id: participant
531
+
532
+ six_mth_saq_formula_type:
533
+ six_mth_saq_id: six_mth_saq
534
+
535
+ six_mth_saq_2:
536
+ r_p_id: participant
537
+
538
+ six_mth_saq_3:
539
+ r_p_id: participant
540
+
541
+ six_mth_saq_4:
542
+ r_p_id: participant
543
+
544
+ six_mth_saq_formula_type_2:
545
+ six_mth_saq_id: six_mth_saq_2
546
+
547
+ six_mth_saq_supp:
548
+ six_mth_saq_id: six_mth_saq
549
+
550
+ six_mth_saq_supp_2:
551
+ six_mth_saq_id: six_mth_saq_2
552
+
553
+ six_mth_saq_water:
554
+ six_mth_saq_id: six_mth_saq
555
+
556
+ six_mth_saq_water_2:
557
+ six_mth_saq_id: six_mth_saq_2
558
+
559
+ sixteen_mth_asq_saq:
560
+ r_p_id: participant
561
+ asq16_address_id: address
562
+ home_phone_id: telephone
563
+
564
+ spec_blood:
565
+ # According to the corresponding instrument, equip_id is manually entered
566
+ # and not a reference to another table.
567
+ equip_id: false
568
+
569
+ spec_blood_2:
570
+ # According to the corresponding instrument, equip_id is manually entered
571
+ # and not a reference to another table.
572
+ equip_id: false
573
+
574
+ spec_cord_blood_specimen:
575
+ spec_cord_blood_id: spec_cord_blood
576
+
577
+ spec_cord_blood_specimen_2:
578
+ spec_cord_blood_id: spec_cord_blood_2
579
+
580
+ spec_receipt:
581
+ # Insufficient info to determine what this is supposed to link to
582
+ storage_container_id: false
583
+ equip_id: spec_equipment
584
+
585
+ spec_shipping:
586
+ # Insufficient info to determine what this is supposed to link to
587
+ shipper_id: false
588
+
589
+ spec_storage:
590
+ equip_id: spec_equipment
591
+
592
+ staff_exp_mngmnt_tasks:
593
+ staff_weekly_expense_id: staff_weekly_expense
594
+
595
+ staff_exp_data_cllctn_tasks:
596
+ staff_weekly_expense_id: staff_weekly_expense
597
+
598
+ thirty_month_interview:
599
+ r_p_id: participant
600
+
601
+ thirty_mth_asq_saq:
602
+ r_p_id: participant
603
+ asq30_address_id: address
604
+ home_phone_id: telephone
605
+
606
+ three_mth_mother:
607
+ r_p_id: participant
608
+
609
+ three_mth_mother_2:
610
+ r_p_id: participant
611
+
612
+ three_mth_mother_3:
613
+ r_p_id: participant
614
+
615
+ three_mth_mother_4:
616
+ r_p_id: participant
617
+
618
+ tracing_int:
619
+ r_p_id: participant
620
+ new_address_id: address
621
+ home_phone_id: telephone
622
+ cell_phone_id: telephone
623
+ c_addr1_id: address
624
+ contact_phone_id: telephone
625
+ contact_phone_2_1_id: telephone
626
+ c_addr2_id: address
627
+ contact_phone_2_id: telephone
628
+ contact_phone_2_2_id: telephone
629
+ c_addr3_id: address
630
+ contact_phone_3_id: telephone
631
+ contact_phone_2_3_id: telephone
632
+
633
+ trh_meter_calibration:
634
+ equip_id: spec_equipment
635
+
636
+ twelve_mth_mother:
637
+ c_addr1_id: address
638
+ c_addr2_id: address
639
+ r_p_id: participant
640
+
641
+ twelve_mth_mother_2:
642
+ r_p_id: participant
643
+ c_addr1_id: address
644
+ c_addr2_id: address
645
+
646
+ twelve_mth_mother_3:
647
+ r_p_id: participant
648
+
649
+ twelve_mth_saq_2:
650
+ r_p_id: participant
651
+
652
+ twelve_mth_saq_3:
653
+ r_p_id: participant
654
+
655
+ twelve_mth_saq_formula_brand:
656
+ twelve_mth_saq_id: twelve_mth_saq
657
+
658
+ twelve_mth_saq_formula_brand_2:
659
+ twelve_mth_saq_id: twelve_mth_saq_2
660
+
661
+ twelve_mth_saq_formula_type:
662
+ twelve_mth_saq_id: twelve_mth_saq
663
+
664
+ twelve_mth_saq_formula_type_2:
665
+ twelve_mth_saq_id: twelve_mth_saq_2
666
+
667
+ twelve_mth_saq_supplement:
668
+ twelve_mth_saq_id: twelve_mth_saq
669
+
670
+ twelve_mth_saq_supplement_2:
671
+ twelve_mth_saq_id: twelve_mth_saq_2
672
+
673
+ twelve_mth_saq_water:
674
+ twelve_mth_saq_id: twelve_mth_saq
675
+
676
+ twelve_mth_saq_water_2:
677
+ twelve_mth_saq_id: twelve_mth_saq_2
678
+
679
+ twenty_four_mth_mother:
680
+ c_addr1_id: address
681
+ c_addr2_id: address
682
+ r_p_id: participant
683
+
684
+ twenty_four_mth_mother_2:
685
+ c_addr1_id: address
686
+ c_addr2_id: address
687
+ r_p_id: participant
688
+
689
+ twenty_four_mth_mother_3:
690
+ r_p_id: participant
691
+ work_address_id: address
692
+ work_address_a_id: address
693
+
694
+ twenty_four_mth_mother_4:
695
+ r_p_id: participant
696
+
697
+ twenty_four_mth_mother_habits_4:
698
+ work_address_id: address
699
+ work_address_a_id: address
700
+
701
+ twenty_four_mth_mother_otc:
702
+ twenty_four_mth_mother_id: twenty_four_mth_mother
703
+
704
+ twenty_four_mth_mother_prescr:
705
+ twenty_four_mth_mother_id: twenty_four_mth_mother
706
+
707
+ twenty_four_mth_mother_suppl:
708
+ twenty_four_mth_mother_id: twenty_four_mth_mother
709
+
710
+ twenty_four_mth_saq:
711
+ asq24_address_id: address
712
+ r_p_id: participant
713
+
714
+ twenty_four_mth_saq_2:
715
+ r_p_id: participant
716
+ asq24_address_id: address
717
+ home_phone_id: telephone
718
+
719
+ twenty_mth_asq_saq:
720
+ r_p_id: participant
721
+ asq20_address_id: address
722
+ home_phone_id: telephone
723
+
724
+ twenty_seven_mth_asq_saq:
725
+ r_p_id: participant
726
+ asq27_address_id: address
727
+ home_phone_id: telephone
728
+
729
+ twenty_two_mth_asq_saq:
730
+ r_p_id: participant
731
+ asq22_address_id: address
732
+ home_phone_id: telephone
733
+
734
+ validation_ins_2:
735
+ r_p_id: participant
736
+ phone_nbr_id: telephone