ncs_mdes_warehouse 0.6.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (416) hide show
  1. data/CHANGELOG.md +12 -0
  2. data/generated_models/ncs_navigator/warehouse/models/three_point_zero.rb +817 -0
  3. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/address.rb +101 -0
  4. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit.rb +365 -0
  5. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_2.rb +359 -0
  6. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_3.rb +368 -0
  7. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_baby_name.rb +47 -0
  8. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_baby_name_2.rb +50 -0
  9. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_baby_name_3.rb +50 -0
  10. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_decorate_room.rb +29 -0
  11. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_decorate_room_2.rb +32 -0
  12. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_decorate_room_3.rb +32 -0
  13. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_diagnose_2_3.rb +35 -0
  14. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_ethnic_origin_3.rb +29 -0
  15. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_household_3.rb +50 -0
  16. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li.rb +374 -0
  17. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li_baby_name.rb +50 -0
  18. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li_decorate_room.rb +32 -0
  19. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li_renovate_room.rb +32 -0
  20. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_race_new_3.rb +32 -0
  21. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_renovate_room.rb +29 -0
  22. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_renovate_room_2.rb +32 -0
  23. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_renovate_room_3.rb +32 -0
  24. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/contact.rb +77 -0
  25. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/drf_therm_verification.rb +50 -0
  26. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/dwelling_unit.rb +53 -0
  27. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother.rb +350 -0
  28. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_2.rb +350 -0
  29. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_cond.rb +29 -0
  30. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_detail.rb +50 -0
  31. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_detail_2.rb +50 -0
  32. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_habits.rb +164 -0
  33. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_habits_2.rb +173 -0
  34. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_lice.rb +29 -0
  35. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_lice_2.rb +29 -0
  36. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_mold.rb +32 -0
  37. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_mold_2.rb +32 -0
  38. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_otc.rb +47 -0
  39. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_otc_2.rb +47 -0
  40. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_pet_type.rb +32 -0
  41. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_pet_type_2.rb +32 -0
  42. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_prescr.rb +47 -0
  43. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_prescr_2.rb +47 -0
  44. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_renovate_room.rb +32 -0
  45. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_renovate_room_2.rb +32 -0
  46. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_room_mold.rb +32 -0
  47. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_room_mold_2.rb +32 -0
  48. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_saq.rb +260 -0
  49. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_suppl.rb +47 -0
  50. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_suppl_2.rb +47 -0
  51. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/email.rb +74 -0
  52. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/env_equipment.rb +47 -0
  53. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/env_equipment_prob_log.rb +50 -0
  54. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/event.rb +68 -0
  55. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1.rb +374 -0
  56. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_2.rb +380 -0
  57. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_cancer.rb +29 -0
  58. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_cancer_2.rb +29 -0
  59. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_educ.rb +29 -0
  60. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_race.rb +29 -0
  61. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_race_2.rb +32 -0
  62. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration.rb +239 -0
  63. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration_age_elig.rb +38 -0
  64. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration_hidden_du.rb +50 -0
  65. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration_pregnant.rb +38 -0
  66. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_inventory.rb +203 -0
  67. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_inventory_age.rb +35 -0
  68. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_inventory_age_elig.rb +35 -0
  69. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_unit.rb +53 -0
  70. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/incident.rb +98 -0
  71. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/incident_media.rb +35 -0
  72. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/incident_unanticipated.rb +29 -0
  73. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/institution.rb +68 -0
  74. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/instrument.rb +74 -0
  75. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/internet_usage.rb +92 -0
  76. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/internet_usage_participate.rb +29 -0
  77. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_contact.rb +41 -0
  78. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_household_dwelling.rb +38 -0
  79. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_household.rb +38 -0
  80. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_institute.rb +38 -0
  81. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_participant.rb +38 -0
  82. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_provider.rb +47 -0
  83. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/listing_unit.rb +38 -0
  84. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/low_high_script.rb +119 -0
  85. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/multi_mode.rb +62 -0
  86. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/nine_mth_mother.rb +65 -0
  87. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/nine_mth_mother_detail.rb +143 -0
  88. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_provider.rb +80 -0
  89. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_provider_refusal.rb +32 -0
  90. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_respondent.rb +152 -0
  91. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_respondent_influ.rb +32 -0
  92. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt.rb +128 -0
  93. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_dutype.rb +32 -0
  94. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_noaccess.rb +32 -0
  95. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_refusal.rb +32 -0
  96. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_vacant.rb +32 -0
  97. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach.rb +98 -0
  98. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_eval.rb +32 -0
  99. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_lang2.rb +29 -0
  100. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_race.rb +32 -0
  101. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_staff.rb +29 -0
  102. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_target.rb +32 -0
  103. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant.rb +62 -0
  104. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_auth.rb +44 -0
  105. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_consent.rb +95 -0
  106. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_consent_reconsideration.rb +47 -0
  107. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_consent_sample.rb +35 -0
  108. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_rvis.rb +74 -0
  109. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_verif.rb +215 -0
  110. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_verif_child.rb +41 -0
  111. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_verif_diff.rb +29 -0
  112. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_vis_consent.rb +53 -0
  113. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment.rb +275 -0
  114. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_2.rb +275 -0
  115. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_info_source.rb +32 -0
  116. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_info_source_2.rb +29 -0
  117. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_source.rb +32 -0
  118. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_source_2.rb +29 -0
  119. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_svc.rb +32 -0
  120. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_svc_2.rb +32 -0
  121. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_samp_frame.rb +299 -0
  122. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener.rb +293 -0
  123. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_day1.rb +29 -0
  124. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_day2.rb +29 -0
  125. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_employ.rb +32 -0
  126. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_ethnic_orig.rb +29 -0
  127. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_pr_office.rb +62 -0
  128. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_race.rb +32 -0
  129. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_list.rb +89 -0
  130. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person.rb +119 -0
  131. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person_ethnic_origin.rb +29 -0
  132. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person_race.rb +32 -0
  133. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person_race_new.rb +32 -0
  134. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_cati.rb +98 -0
  135. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_details.rb +41 -0
  136. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_saq.rb +92 -0
  137. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_status_history.rb +47 -0
  138. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg.rb +422 -0
  139. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_cool.rb +32 -0
  140. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_heat2.rb +32 -0
  141. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_pdecorate_room.rb +32 -0
  142. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_prenovate_room.rb +32 -0
  143. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_room_mold.rb +32 -0
  144. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_saq.rb +116 -0
  145. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_sp_race.rb +32 -0
  146. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_screening_performed.rb +38 -0
  147. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/prec_therm_cert.rb +41 -0
  148. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh.rb +350 -0
  149. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_2.rb +362 -0
  150. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_know_ncs.rb +29 -0
  151. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_know_ncs_2.rb +32 -0
  152. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_race.rb +29 -0
  153. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_race_2.rb +32 -0
  154. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi.rb +371 -0
  155. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_2.rb +380 -0
  156. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_know_ncs.rb +29 -0
  157. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_know_ncs_2.rb +32 -0
  158. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_race.rb +29 -0
  159. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_race_2.rb +32 -0
  160. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb.rb +371 -0
  161. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_2.rb +380 -0
  162. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_know_ncs.rb +29 -0
  163. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_know_ncs_2.rb +32 -0
  164. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_race.rb +29 -0
  165. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_race_2.rb +32 -0
  166. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1.rb +521 -0
  167. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_2.rb +497 -0
  168. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_3.rb +422 -0
  169. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_commute.rb +29 -0
  170. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_commute_2.rb +32 -0
  171. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_commute_3.rb +32 -0
  172. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_cool.rb +29 -0
  173. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_cool_2.rb +32 -0
  174. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_cool_3.rb +32 -0
  175. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_diagnose_2.rb +29 -0
  176. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_diagnose_2_2.rb +29 -0
  177. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_ethnic_origin_3.rb +29 -0
  178. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_heat2.rb +29 -0
  179. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_heat2_2.rb +32 -0
  180. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_heat2_3.rb +32 -0
  181. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_local_trav.rb +29 -0
  182. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_local_trav_2.rb +32 -0
  183. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_local_trav_3.rb +32 -0
  184. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_nonenglish2_2.rb +32 -0
  185. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pdecorate_room.rb +29 -0
  186. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pdecorate_room_2.rb +32 -0
  187. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pdecorate_room_3.rb +32 -0
  188. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pet_type.rb +29 -0
  189. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pet_type_2.rb +32 -0
  190. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pet_type_3.rb +32 -0
  191. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate2_room.rb +29 -0
  192. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate_room.rb +29 -0
  193. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate_room_2.rb +32 -0
  194. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate_room_3.rb +32 -0
  195. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_race_new_3.rb +32 -0
  196. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_room_mold.rb +29 -0
  197. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_room_mold_2.rb +32 -0
  198. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_room_mold_3.rb +32 -0
  199. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq.rb +188 -0
  200. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq_2.rb +236 -0
  201. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq_3.rb +236 -0
  202. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq_4.rb +227 -0
  203. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_ethnic_origin_3.rb +29 -0
  204. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_race.rb +29 -0
  205. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_race_2.rb +32 -0
  206. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_race_new_3.rb +32 -0
  207. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2.rb +452 -0
  208. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_2.rb +440 -0
  209. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_3.rb +359 -0
  210. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_cool.rb +29 -0
  211. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_cool_2.rb +32 -0
  212. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_cool_3.rb +32 -0
  213. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_diagnose_2.rb +29 -0
  214. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_diagnose_2_2.rb +32 -0
  215. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_diagnose_2_3.rb +32 -0
  216. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_heat2.rb +29 -0
  217. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_heat2_2.rb +32 -0
  218. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_heat2_3.rb +32 -0
  219. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_pdecorate2_room.rb +29 -0
  220. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_pdecorate2_room_2.rb +32 -0
  221. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_pdecorate2_room_3.rb +32 -0
  222. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_prenovate_room.rb +29 -0
  223. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_prenovate_room_2.rb +32 -0
  224. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_prenovate_room_3.rb +32 -0
  225. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_room_mold.rb +29 -0
  226. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_room_mold_2.rb +32 -0
  227. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_room_mold_3.rb +32 -0
  228. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq.rb +116 -0
  229. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq_2.rb +116 -0
  230. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq_3.rb +116 -0
  231. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq_4.rb +110 -0
  232. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li.rb +350 -0
  233. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li_2.rb +350 -0
  234. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li_cool.rb +29 -0
  235. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li_cool_2.rb +32 -0
  236. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider.rb +77 -0
  237. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider_logistics.rb +32 -0
  238. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider_role.rb +32 -0
  239. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider_role_pbs.rb +32 -0
  240. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/psu.rb +29 -0
  241. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ref_freezer_verification.rb +62 -0
  242. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_dist.rb +74 -0
  243. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_dist_samp.rb +50 -0
  244. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_receipt_confirm.rb +53 -0
  245. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_receipt_store.rb +65 -0
  246. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_shipping.rb +53 -0
  247. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sampled_persons_ineligibility.rb +44 -0
  248. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_mother.rb +281 -0
  249. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_mother_detail.rb +266 -0
  250. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_mother_pet.rb +32 -0
  251. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq.rb +218 -0
  252. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_2.rb +221 -0
  253. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_3.rb +221 -0
  254. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_formula_type.rb +29 -0
  255. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_formula_type_2.rb +29 -0
  256. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_formula_type_3.rb +29 -0
  257. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_supp.rb +32 -0
  258. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_supp_2.rb +32 -0
  259. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_supp_3.rb +32 -0
  260. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_water.rb +29 -0
  261. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_water_2.rb +29 -0
  262. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_water_3.rb +29 -0
  263. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood.rb +194 -0
  264. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_2.rb +197 -0
  265. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_draw.rb +29 -0
  266. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_draw_2.rb +29 -0
  267. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_hemolyze.rb +29 -0
  268. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_hemolyze_2.rb +29 -0
  269. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube.rb +38 -0
  270. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube_2.rb +38 -0
  271. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube_comments.rb +29 -0
  272. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube_comments_2.rb +29 -0
  273. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood.rb +110 -0
  274. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_2.rb +110 -0
  275. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_3.rb +122 -0
  276. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_specimen.rb +29 -0
  277. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_specimen_2.rb +35 -0
  278. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_specimen_3.rb +35 -0
  279. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_equipment.rb +38 -0
  280. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_pickup.rb +47 -0
  281. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_receipt.rb +80 -0
  282. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_shipping.rb +56 -0
  283. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_spsc_info.rb +26 -0
  284. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_storage.rb +62 -0
  285. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_urine.rb +110 -0
  286. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/srsc_info.rb +26 -0
  287. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ssu.rb +29 -0
  288. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff.rb +65 -0
  289. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_cert_training.rb +47 -0
  290. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_exp_data_cllctn_tasks.rb +44 -0
  291. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_exp_mngmnt_tasks.rb +38 -0
  292. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_language.rb +32 -0
  293. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_validation.rb +38 -0
  294. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_weekly_expense.rb +44 -0
  295. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/study_center.rb +26 -0
  296. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/subsample_doc.rb +29 -0
  297. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf.rb +152 -0
  298. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_2.rb +155 -0
  299. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_blank_collected.rb +29 -0
  300. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_blank_collected_2.rb +29 -0
  301. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_collected.rb +29 -0
  302. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_collected_2.rb +29 -0
  303. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_filled.rb +29 -0
  304. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_filled_2.rb +29 -0
  305. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_n_collected.rb +29 -0
  306. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_n_collected_2.rb +29 -0
  307. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled.rb +29 -0
  308. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled2.rb +29 -0
  309. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled2_2.rb +29 -0
  310. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled_2.rb +29 -0
  311. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_sample.rb +32 -0
  312. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_sample_2.rb +32 -0
  313. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_saq.rb +98 -0
  314. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_saq_eat.rb +29 -0
  315. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_saq_prob.rb +32 -0
  316. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_subsamples.rb +29 -0
  317. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_subsamples_2.rb +29 -0
  318. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq.rb +143 -0
  319. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_2.rb +146 -0
  320. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_blank_collected.rb +29 -0
  321. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_blank_collected_2.rb +29 -0
  322. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_collected.rb +29 -0
  323. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_collected_2.rb +29 -0
  324. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_filled.rb +29 -0
  325. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_filled_2.rb +29 -0
  326. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_n_collected.rb +29 -0
  327. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_n_collected_2.rb +29 -0
  328. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled.rb +29 -0
  329. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled2.rb +29 -0
  330. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled2_2.rb +29 -0
  331. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled_2.rb +29 -0
  332. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_sample.rb +32 -0
  333. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_sample_2.rb +32 -0
  334. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_saq.rb +98 -0
  335. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_saq_prob.rb +32 -0
  336. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_subsamples.rb +29 -0
  337. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_subsamples_2.rb +29 -0
  338. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/telephone.rb +83 -0
  339. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother.rb +92 -0
  340. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_2.rb +92 -0
  341. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_detail.rb +59 -0
  342. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_detail_2.rb +59 -0
  343. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_habits.rb +185 -0
  344. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_habits_2.rb +185 -0
  345. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_race.rb +32 -0
  346. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_race_2.rb +32 -0
  347. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tracing_int.rb +395 -0
  348. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/trh_meter_calibration.rb +77 -0
  349. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tsu.rb +29 -0
  350. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother.rb +302 -0
  351. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_2.rb +305 -0
  352. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_detail.rb +302 -0
  353. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_detail_2.rb +302 -0
  354. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_lice.rb +29 -0
  355. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_lice_2.rb +29 -0
  356. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_renovate_room.rb +32 -0
  357. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_renovate_room_2.rb +32 -0
  358. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_room_mold.rb +32 -0
  359. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_room_mold_2.rb +32 -0
  360. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq.rb +293 -0
  361. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_2.rb +296 -0
  362. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_brand.rb +32 -0
  363. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_brand_2.rb +32 -0
  364. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_type.rb +29 -0
  365. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_type_2.rb +29 -0
  366. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_supplement.rb +32 -0
  367. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_supplement_2.rb +32 -0
  368. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_water.rb +29 -0
  369. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_water_2.rb +32 -0
  370. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother.rb +350 -0
  371. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_2.rb +353 -0
  372. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_cond.rb +29 -0
  373. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_detail.rb +50 -0
  374. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_detail_2.rb +50 -0
  375. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_habits.rb +194 -0
  376. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_habits_2.rb +200 -0
  377. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_mold.rb +32 -0
  378. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_mold_2.rb +32 -0
  379. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_otc.rb +47 -0
  380. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_otc_2.rb +47 -0
  381. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_prescr.rb +47 -0
  382. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_prescr_2.rb +47 -0
  383. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_suppl.rb +47 -0
  384. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_suppl_2.rb +47 -0
  385. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_pet_type.rb +32 -0
  386. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_pet_type_2.rb +32 -0
  387. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_renovate_room.rb +32 -0
  388. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_renovate_room_2.rb +32 -0
  389. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_room_mold.rb +32 -0
  390. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_room_mold_2.rb +32 -0
  391. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_saq.rb +245 -0
  392. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag.rb +131 -0
  393. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_2.rb +137 -0
  394. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_outside.rb +32 -0
  395. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_outside_2.rb +32 -0
  396. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_saq.rb +89 -0
  397. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_saq_outside.rb +32 -0
  398. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_saq_prob.rb +32 -0
  399. data/generated_models/ncs_navigator/warehouse/models/three_point_zero/validation_ins.rb +233 -0
  400. data/lib/ncs_navigator/warehouse/configuration.rb +21 -0
  401. data/lib/ncs_navigator/warehouse/transformers.rb +2 -0
  402. data/lib/ncs_navigator/warehouse/transformers/enum_transformer.rb +130 -29
  403. data/lib/ncs_navigator/warehouse/transformers/foreign_key_index.rb +126 -0
  404. data/lib/ncs_navigator/warehouse/transformers/foreign_key_index/database_key_provider.rb +16 -0
  405. data/lib/ncs_navigator/warehouse/transformers/foreign_key_index/static_key_provider.rb +20 -0
  406. data/lib/ncs_navigator/warehouse/transformers/sql/sql_statements.treetop +27 -0
  407. data/lib/ncs_navigator/warehouse/transformers/sql_transformer.rb +107 -0
  408. data/lib/ncs_navigator/warehouse/version.rb +1 -1
  409. data/ncs_mdes_warehouse.gemspec +3 -1
  410. data/spec/ncs_navigator/warehouse/configuration_spec.rb +13 -0
  411. data/spec/ncs_navigator/warehouse/transformers/enum_transformer_spec.rb +160 -9
  412. data/spec/ncs_navigator/warehouse/transformers/foreign_key_index/database_key_provider_spec.rb +18 -0
  413. data/spec/ncs_navigator/warehouse/transformers/foreign_key_index_spec.rb +115 -0
  414. data/spec/ncs_navigator/warehouse/transformers/sql_transformer_spec.rb +157 -0
  415. data/spec/spec_helper.rb +1 -0
  416. metadata +431 -12
@@ -1,5 +1,5 @@
1
1
  module NcsNavigator
2
2
  module Warehouse
3
- VERSION = '0.6.2'
3
+ VERSION = '0.7.0'
4
4
  end
5
5
  end
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
16
  s.require_paths = ["lib", "generated_models"]
17
17
 
18
- s.add_dependency 'ncs_mdes', '~> 0.6', '>= 0.6.1'
18
+ s.add_dependency 'ncs_mdes', '~> 0.7'
19
19
  s.add_dependency 'ncs_navigator_configuration', '~> 0.2'
20
20
 
21
21
  # Post-3.2.4 breaks DataMapper due to https://github.com/rails/rails/pull/6857
@@ -40,6 +40,8 @@ Gem::Specification.new do |s|
40
40
  s.add_dependency 'bcdatabase', '~> 1.1'
41
41
  s.add_dependency 'actionmailer', '~> 3.0'
42
42
 
43
+ s.add_dependency 'treetop'
44
+
43
45
  s.add_development_dependency 'rspec', '~> 2.6'
44
46
  s.add_development_dependency 'rake', '~> 0.9.2'
45
47
  s.add_development_dependency 'yard', '~> 0.7.2'
@@ -41,6 +41,19 @@ module NcsNavigator::Warehouse
41
41
  end
42
42
  end
43
43
 
44
+ describe '#foreign_key_index' do
45
+ it 'provides an index by default' do
46
+ config.foreign_key_index.should respond_to(:record_and_verify)
47
+ end
48
+
49
+ it 'allows the index to be overridden' do
50
+ i = Transformers::ForeignKeyIndex.new
51
+
52
+ config.foreign_key_index = i
53
+ config.foreign_key_index.should be(i)
54
+ end
55
+ end
56
+
44
57
  describe 'add_post_etl_hook' do
45
58
  let(:success_hook) {
46
59
  Object.new.tap do |o|
@@ -13,14 +13,39 @@ module NcsNavigator::Warehouse::Transformers
13
13
  property :name, String, :required => true
14
14
  end
15
15
 
16
+ class Subsample
17
+ include ::DataMapper::Resource
18
+
19
+ property :id, Integer, :key => true
20
+ property :name, String
21
+ property :age, Integer
22
+ belongs_to :sample,
23
+ 'NcsNavigator::Warehouse::Transformers::Sample', :child_key => [ :sample_id ], :required => false
24
+ end
25
+
16
26
  before(:all) do
17
27
  DataMapper.finalize
18
28
  end
19
29
 
30
+ shared_examples 'a foreign key index updater' do
31
+ it 'records the IDs of saved records as seen' do
32
+ expected_saved_record_ids.each do |id|
33
+ foreign_key_index.seen?(Sample, id).should be_true
34
+ end
35
+ end
36
+
37
+ it 'does not record the IDs of not-saved records as seen' do
38
+ expected_not_saved_record_ids.each do |id|
39
+ foreign_key_index.seen?(Sample, id).should be_false
40
+ end
41
+ end
42
+ end
43
+
20
44
  describe '#transform' do
21
45
  let(:config) {
22
46
  NcsNavigator::Warehouse::Configuration.new.tap do |c|
23
47
  c.log_file = tmpdir + 'enum_transformer_test.log'
48
+ c.foreign_key_index = foreign_key_index
24
49
  end
25
50
  }
26
51
  let(:records) { [
@@ -29,6 +54,7 @@ module NcsNavigator::Warehouse::Transformers
29
54
  Sample.new(:id => 3, :psu_id => '20000030', :name => 'Three')
30
55
  ] }
31
56
  let(:transform_status) { NcsNavigator::Warehouse::TransformStatus.memory_only('test') }
57
+ let(:foreign_key_index) { ForeignKeyIndex.new(:existing_key_provider => nil) }
32
58
  subject { EnumTransformer.new(config, records) }
33
59
 
34
60
  it 'saves valid records when all are valid' do
@@ -82,6 +108,11 @@ module NcsNavigator::Warehouse::Transformers
82
108
  it 'saves the other instances' do
83
109
  # in `before`
84
110
  end
111
+
112
+ let(:expected_saved_record_ids) { [1, 2] }
113
+ let(:expected_not_saved_record_ids) { [3] }
114
+
115
+ include_examples 'a foreign key index updater'
85
116
  end
86
117
 
87
118
  describe 'with an instance with an invalid PSU' do
@@ -91,28 +122,25 @@ module NcsNavigator::Warehouse::Transformers
91
122
  records[2].should_receive(:save).and_return(true)
92
123
 
93
124
  records[1].psu_id = '20000041'
125
+
126
+ subject.transform(transform_status)
94
127
  end
95
128
 
96
129
  it 'does not save that instance' do
97
- subject.transform(transform_status)
130
+ # in before
98
131
  end
99
132
 
100
133
  it 'saves the other instances' do
101
- subject.transform(transform_status)
134
+ # in before
102
135
  end
103
136
 
104
137
  it 'records an error' do
105
- subject.transform(transform_status)
106
138
  transform_status.transform_errors.collect(&:record_id).should == ['2']
107
139
  end
108
140
 
109
141
  describe 'the recorded error' do
110
142
  let(:error) { transform_status.transform_errors.first }
111
143
 
112
- before do
113
- subject.transform(transform_status)
114
- end
115
-
116
144
  it 'has the correct model class' do
117
145
  error.model_class.should == Sample.to_s
118
146
  end
@@ -134,6 +162,30 @@ module NcsNavigator::Warehouse::Transformers
134
162
  error.attribute_value.should == '"20000041"'
135
163
  end
136
164
  end
165
+
166
+ let(:expected_saved_record_ids) { [1, 3] }
167
+ let(:expected_not_saved_record_ids) { [2] }
168
+
169
+ include_examples 'a foreign key index updater'
170
+ end
171
+
172
+ describe 'with an unsatisfied foreign key' do
173
+ let(:error) { transform_status.transform_errors.first }
174
+
175
+ before do
176
+ records << Subsample.new(:id => 3, :sample_id => 912)
177
+
178
+ records.each do |m|
179
+ m.stub!(:valid?).and_return(true)
180
+ m.stub!(:save).and_return(true)
181
+ end
182
+
183
+ subject.transform(transform_status)
184
+ end
185
+
186
+ it 'reports the unsatisfied foreign key' do
187
+ error.message.should =~ /Unsatisfied foreign key sample_id=912/
188
+ end
137
189
  end
138
190
 
139
191
  describe 'with an unsaveable instance' do
@@ -155,6 +207,11 @@ module NcsNavigator::Warehouse::Transformers
155
207
  it 'saves the saveable instances' do
156
208
  # in `before`
157
209
  end
210
+
211
+ let(:expected_saved_record_ids) { [1, 3] }
212
+ let(:expected_not_saved_record_ids) { [2] }
213
+
214
+ include_examples 'a foreign key index updater'
158
215
  end
159
216
 
160
217
  describe 'with an instance that errors on save' do
@@ -177,6 +234,11 @@ module NcsNavigator::Warehouse::Transformers
177
234
  it 'saves the saveable instances' do
178
235
  # in `before`
179
236
  end
237
+
238
+ let(:expected_saved_record_ids) { [2, 3] }
239
+ let(:expected_not_saved_record_ids) { [1] }
240
+
241
+ include_examples 'a foreign key index updater'
180
242
  end
181
243
 
182
244
  describe 'with an enumeration that throws an exception' do
@@ -262,8 +324,14 @@ module NcsNavigator::Warehouse::Transformers
262
324
  EnumTransformer.new(config, records, :filters => filters)
263
325
  end
264
326
 
265
- it 'applies all the filters' do
327
+ before do
328
+ records.each do |r|
329
+ r.stub!(:valid?).and_return(true)
330
+ r.stub!(:save).and_return(true)
331
+ end
332
+ end
266
333
 
334
+ it 'applies all the filters' do
267
335
  transformer_with_filters(filter_one, filter_two).transform(transform_status)
268
336
 
269
337
  records.each { |m| m.name.should == 'filtered' }
@@ -272,10 +340,93 @@ module NcsNavigator::Warehouse::Transformers
272
340
  it 'saves only the results from the filter' do
273
341
  records[0].should_not_receive(:save)
274
342
  records[2].should_not_receive(:save)
275
- records[1].should_receive(:save).exactly(3).times
343
+ records[1].should_receive(:save).exactly(3).times.and_return(true)
276
344
 
277
345
  transformer_with_filters(replacing_filter).transform(transform_status)
278
346
  end
347
+
348
+ context do
349
+ before do
350
+ transformer_with_filters(replacing_filter).transform(transform_status)
351
+ end
352
+
353
+ let(:expected_saved_record_ids) { [2] }
354
+ let(:expected_not_saved_record_ids) { [1, 3] }
355
+
356
+ include_examples 'a foreign key index updater'
357
+ end
358
+ end
359
+
360
+ describe 'duplicates modes' do
361
+ let(:sample_1_en) { Subsample.new(:id => 1, :name => 'One', :age => 80) }
362
+ let(:sample_1_es) { Subsample.new(:id => 1, :name => 'Uno', :age => nil) }
363
+
364
+ let(:records) { [sample_1_en, sample_1_es] }
365
+
366
+ def transformer_for_dups(mode)
367
+ EnumTransformer.new(config, records, :duplicates => mode)
368
+ end
369
+
370
+ it 'defaults the duplicates mode to :error' do
371
+ EnumTransformer.new(config, records).duplicates.should == :error
372
+ end
373
+
374
+ it 'accepts a duplicates mode option' do
375
+ transformer_for_dups(:ignore).duplicates.should == :ignore
376
+ end
377
+
378
+ it 'fails for an unknown duplicates mode' do
379
+ lambda { transformer_for_dups(:explode) }.
380
+ should raise_error(/Unknown duplicates mode :explode\./)
381
+ end
382
+
383
+ describe ':error' do
384
+ it 'tries to save everything' do
385
+ sample_1_en.should_receive(:save).and_return(true)
386
+ sample_1_es.should_receive(:save).and_return(true)
387
+
388
+ # If we weren't mocking, the transaction commit would result in
389
+ # an exception. I don't think it's important to test that here.
390
+ transformer_for_dups(:error).transform(transform_status)
391
+ transform_status.transform_errors.should == []
392
+ end
393
+ end
394
+
395
+ describe ':ignore' do
396
+ it 'does not try to save the duplicate' do
397
+ sample_1_en.should_receive(:save).and_return(true)
398
+ sample_1_es.should_not_receive(:save)
399
+
400
+ transformer_for_dups(:ignore).transform(transform_status)
401
+ transform_status.transform_errors.should == []
402
+ end
403
+ end
404
+
405
+ describe ':replace' do
406
+ let(:reloaded_sample) { sample_1_en.clone }
407
+
408
+ before do
409
+ sample_1_en.should_receive(:save).once.and_return(true)
410
+ sample_1_es.should_not_receive(:save)
411
+
412
+ Subsample.should_receive(:get).with(1).and_return(reloaded_sample)
413
+ reloaded_sample.should_receive(:save).once.and_return(true)
414
+
415
+ transformer_for_dups(:replace).transform(transform_status)
416
+ end
417
+
418
+ it 'loads and updates the existing record' do
419
+ transform_status.transform_errors.should == []
420
+ end
421
+
422
+ it 'replaces a set property with a new value' do
423
+ reloaded_sample.name.should == 'Uno'
424
+ end
425
+
426
+ it 'replaces a nil property with nil' do
427
+ reloaded_sample.age.should be_nil
428
+ end
429
+ end
279
430
  end
280
431
  end
281
432
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ class NcsNavigator::Warehouse::Transformers::ForeignKeyIndex
4
+ describe DatabaseKeyProvider, :slow, :use_mdes, :use_database, :modifies_warehouse_state do
5
+ let(:provider) { DatabaseKeyProvider.new }
6
+ let(:psu_model) { mdes_model(:Psu) }
7
+
8
+ before do
9
+ DataMapper.repository(:mdes_warehouse_working) do
10
+ psu_model.new(:sc_id => '20000013', :psu_id => '20000054', :recruit_type => '-4').save.should be_true
11
+ end
12
+ end
13
+
14
+ it 'provides the existing IDs for a model out of the working repo' do
15
+ provider.existing_keys(psu_model).should == %w(20000054)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ module NcsNavigator::Warehouse::Transformers
4
+ describe ForeignKeyIndex, :modifies_warehouse_state do
5
+ class Addr
6
+ include ::DataMapper::Resource
7
+
8
+ property :psu_id, String
9
+ property :id, Integer, :key => true
10
+
11
+ belongs_to :old_one, self, :child_key => [ :old_one_id ]
12
+ belongs_to :frob, 'NcsNavigator::Warehouse::Transformers::Frob', :child_key => [ :frob_id ]
13
+ end
14
+
15
+ class Frob
16
+ include ::DataMapper::Resource
17
+
18
+ property :psu_id, String
19
+ property :id, Integer, :key => true
20
+ end
21
+
22
+ before(:each) do
23
+ DataMapper.finalize
24
+ end
25
+
26
+ let(:fk_index) { ForeignKeyIndex.new(:existing_key_provider => key_provider) }
27
+ let(:key_provider) { ForeignKeyIndex::StaticKeyProvider.new(Addr.to_s => [120, 180]) }
28
+ let(:transform_status) { NcsNavigator::Warehouse::TransformStatus.memory_only('test') }
29
+ let(:errors) { transform_status.transform_errors }
30
+
31
+ describe '#initialize' do
32
+ describe ':existing_key_provider' do
33
+ it 'defaults to a database provider' do
34
+ ForeignKeyIndex.new.existing_key_provider.should be_a ForeignKeyIndex::DatabaseKeyProvider
35
+ end
36
+
37
+ it 'uses the provided instance' do
38
+ fk_index.existing_key_provider.should be key_provider
39
+ end
40
+
41
+ it 'disables existing key resolution when set to nil explicitly' do
42
+ provider = ForeignKeyIndex.new(:existing_key_provider => nil).existing_key_provider
43
+ provider.existing_keys(Addr).should be_nil
44
+ end
45
+ end
46
+ end
47
+
48
+ describe 'reporting errors' do
49
+ before do
50
+ fk_index.record_and_verify(Frob.new(:id => 8))
51
+ fk_index.record_and_verify(Frob.new(:id => 16))
52
+ end
53
+
54
+ it 'does not report for a key which is satisfied when it is first recorded' do
55
+ fk_index.record_and_verify(Addr.new(:frob_id => 8, :id => 1))
56
+ fk_index.report_errors(transform_status)
57
+
58
+ errors.should == []
59
+ end
60
+
61
+ it 'does not report for a key which is not initially satisfied but is later' do
62
+ fk_index.record_and_verify(Addr.new(:frob_id => 4, :id => 1))
63
+ fk_index.record_and_verify(Frob.new(:id => 4))
64
+ fk_index.report_errors(transform_status)
65
+
66
+ errors.should == []
67
+ end
68
+
69
+ it 'does not report for a key which is provided by the external key provider' do
70
+ fk_index.record_and_verify(Addr.new(:id => 8, :old_one_id => 120))
71
+ fk_index.report_errors(transform_status)
72
+
73
+ errors.should == []
74
+ end
75
+
76
+ describe 'when a key is never satisfied' do
77
+ before do
78
+ fk_index.record_and_verify(Addr.new(:frob_id => 4, :id => 1))
79
+ fk_index.report_errors(transform_status)
80
+ end
81
+
82
+ it 'reports the error' do
83
+ errors.size.should == 1
84
+ end
85
+
86
+ it 'includes the correct model_class' do
87
+ errors.first.model_class.should == Addr.to_s
88
+ end
89
+
90
+ it 'includes the correct record_id' do
91
+ errors.first.record_id.should == '1'
92
+ end
93
+
94
+ it 'includes a useful message' do
95
+ errors.first.message.should ==
96
+ 'Unsatisfied foreign key frob_id=4 referencing NcsNavigator::Warehouse::Transformers::Frob.'
97
+ end
98
+
99
+ it 'only reports the error once if #report_errors is called multiple times' do
100
+ fk_index.report_errors(transform_status)
101
+
102
+ errors.size.should == 1
103
+ end
104
+ end
105
+
106
+ it 'reports multiple failed references for a single record' do
107
+ fk_index.record_and_verify(Addr.new(:id => 1, :frob_id => 2, :old_one_id => 3))
108
+ fk_index.report_errors(transform_status)
109
+
110
+ errors.collect { |e| e.message.match(/foreign key (\S+)/)[1] }.sort.should ==
111
+ %w(frob_id=2 old_one_id=3)
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,157 @@
1
+ require 'spec_helper'
2
+
3
+ module NcsNavigator::Warehouse::Transformers
4
+ describe SqlTransformer do
5
+ describe '.extract_statements' do
6
+ it 'splits on semicolons' do
7
+ SqlTransformer.extract_statements("SELECT 1; SELECT 2; SELECT 'A';").should == [
8
+ 'SELECT 1',
9
+ 'SELECT 2',
10
+ "SELECT 'A'"
11
+ ]
12
+ end
13
+
14
+ it 'includes the last statement even if it does not end with a semicolon' do
15
+ SqlTransformer.extract_statements("SELECT 3; SELECT 7; SELECT 'B'").should == [
16
+ 'SELECT 3',
17
+ 'SELECT 7',
18
+ "SELECT 'B'"
19
+ ]
20
+ end
21
+
22
+ it 'ignores semicolons inside of string literals' do
23
+ SqlTransformer.extract_statements("SELECT ';'; SELECT 7;").should == [
24
+ "SELECT ';'",
25
+ 'SELECT 7'
26
+ ]
27
+ end
28
+
29
+ it 'handles strings with escaped quotes properly' do
30
+ SqlTransformer.extract_statements("SELECT 'Fred'';s'; SELECT '7';").should == [
31
+ "SELECT 'Fred'';s'",
32
+ "SELECT '7'"
33
+ ]
34
+ end
35
+
36
+ it 'handles E-strings with escaped quotes properly'
37
+ end
38
+
39
+ let(:options) { { :adapter => mock('adapter') } }
40
+ let(:transformer) { SqlTransformer.new(spec_config, options) }
41
+
42
+ describe '#initialize' do
43
+ it 'accepts an array of statements' do
44
+ options[:statements] = ['SELECT 1', 'SELECT 8']
45
+
46
+ transformer.statements.should == ['SELECT 1', 'SELECT 8']
47
+ end
48
+
49
+ it 'accepts and splits a string containing a script' do
50
+ options[:script] = "SELECT 1; SELECT ';'"
51
+
52
+ transformer.statements.should == ['SELECT 1', "SELECT ';'"]
53
+ end
54
+
55
+ it 'can read a script from a file' do
56
+ filename = tmpdir + 'a_script.sql'
57
+
58
+ filename.open('w') do |f|
59
+ f.puts "SELECT 1;"
60
+ f.puts "SELECT ';';"
61
+ end
62
+
63
+ options[:file] = filename.to_s
64
+
65
+ transformer.statements.should == ['SELECT 1', "SELECT ';'"]
66
+ end
67
+
68
+ it 'accepts a name' do
69
+ options[:statements] = []
70
+ options[:name] = 'Foo'
71
+ transformer.name.should == 'Foo'
72
+ end
73
+
74
+ it 'provides a default name' do
75
+ options[:statements] = []
76
+ transformer.name.should == 'SQL Transformer with 0 statements'
77
+ end
78
+ end
79
+
80
+ describe '#transform', :use_database do
81
+ let(:adapter) { mock('adapter') }
82
+
83
+ let(:statements) {
84
+ [
85
+ 'UPDATE a SET x=42',
86
+ 'UPDATE b SET y=42',
87
+ 'UPDATE c SET z=42'
88
+ ]
89
+ }
90
+
91
+ let(:transformer) {
92
+ SqlTransformer.new(spec_config, :statements => statements, :adapter => adapter)
93
+ }
94
+
95
+ let(:transform_status) {
96
+ NcsNavigator::Warehouse::TransformStatus.memory_only('test')
97
+ }
98
+
99
+ def result(count)
100
+ mock('result').tap do |m|
101
+ m.stub!(:affected_rows).and_return(count)
102
+ end
103
+ end
104
+
105
+ describe 'when successful' do
106
+ before do
107
+ adapter.should_receive(:execute).with(statements[0]).ordered.and_return(result(4))
108
+ adapter.should_receive(:execute).with(statements[1]).ordered.and_return(result(7))
109
+ adapter.should_receive(:execute).with(statements[2]).ordered.and_return(result(1))
110
+
111
+ transformer.transform(transform_status)
112
+ end
113
+
114
+ it 'executes all statements in series' do
115
+ # in before
116
+ end
117
+
118
+ it 'stores the total affected record count' do
119
+ transform_status.record_count.should == (4 + 7 + 1)
120
+ end
121
+ end
122
+
123
+ describe 'when there is an error' do
124
+ before do
125
+ adapter.should_receive(:execute).with(statements[0]).ordered.and_return(result(4))
126
+ adapter.should_receive(:execute).with(statements[1]).ordered.and_raise('Give up now')
127
+ adapter.should_not_receive(:execute).with(statements[2])
128
+
129
+ transformer.transform(transform_status)
130
+ end
131
+
132
+ it 'stops on the first statement with an error' do
133
+ # in before
134
+ end
135
+
136
+ it 'records a transform error' do
137
+ transform_status.transform_errors.size.should == 1
138
+ end
139
+
140
+ describe 'the error' do
141
+ let(:the_error) {
142
+ transform_status.transform_errors.first
143
+ }
144
+
145
+ it 'has an appropriate message' do
146
+ the_error.message.should =~
147
+ /^Exception while executing SQL statement "UPDATE b SET y=42" \(2 of 3\).\s+RuntimeError: Give up now/
148
+ end
149
+ end
150
+
151
+ it 'records the record count up to that point' do
152
+ transform_status.record_count.should == 4
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end