meta-edc 0.3.27__tar.gz → 0.3.29__tar.gz

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.
Files changed (1196) hide show
  1. {meta_edc-0.3.27 → meta_edc-0.3.29}/CHANGES +13 -1
  2. {meta_edc-0.3.27 → meta_edc-0.3.29}/PKG-INFO +2 -2
  3. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc.egg-info/PKG-INFO +2 -2
  4. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc.egg-info/SOURCES.txt +9 -0
  5. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc.egg-info/requires.txt +1 -1
  6. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/__init__.py +1 -0
  7. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/__init__.py +1 -0
  8. meta_edc-0.3.29/meta_reports/admin/unmanaged/on_study_missing_values_admin/__init__.py +1 -0
  9. meta_edc-0.3.29/meta_reports/admin/unmanaged/on_study_missing_values_admin/unmanaged_model_admin.py +13 -0
  10. meta_edc-0.3.29/meta_reports/migrations/0039_onstudymissingvalues.py +44 -0
  11. meta_edc-0.3.29/meta_reports/migrations/0040_auto_20240824_0412.py +282 -0
  12. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/__init__.py +1 -0
  13. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/__init__.py +1 -0
  14. meta_edc-0.3.29/meta_reports/models/dbviews/glucose_summary/view_definition.py +28 -0
  15. meta_edc-0.3.29/meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py +20 -0
  16. meta_edc-0.3.29/meta_reports/models/dbviews/on_study_missing_values/__init__.py +1 -0
  17. meta_edc-0.3.29/meta_reports/models/dbviews/on_study_missing_values/qa_cases.py +53 -0
  18. meta_edc-0.3.29/meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py +20 -0
  19. meta_edc-0.3.29/meta_reports/models/dbviews/on_study_missing_values/view_definition.py +20 -0
  20. meta_edc-0.3.29/meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py +21 -0
  21. meta_edc-0.3.29/meta_reports/models/dbviews/unattended_three_in_row/view_definition.py +31 -0
  22. meta_edc-0.3.29/meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py +50 -0
  23. meta_edc-0.3.29/meta_reports/models/dbviews/unattended_two_in_row/view_definition.py +30 -0
  24. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/model_mixins/arv_history_model_mixin.py +3 -3
  25. {meta_edc-0.3.27 → meta_edc-0.3.29}/setup.cfg +1 -1
  26. meta_edc-0.3.29/tests/__init__.py +0 -0
  27. meta_edc-0.3.27/meta_reports/models/dbviews/glucose_summary/view_definition.py +0 -73
  28. meta_edc-0.3.27/meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py +0 -55
  29. meta_edc-0.3.27/meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py +0 -55
  30. meta_edc-0.3.27/meta_reports/models/dbviews/unattended_three_in_row/view_definition.py +0 -78
  31. meta_edc-0.3.27/meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py +0 -134
  32. meta_edc-0.3.27/meta_reports/models/dbviews/unattended_two_in_row/view_definition.py +0 -77
  33. {meta_edc-0.3.27 → meta_edc-0.3.29}/.coveragerc +0 -0
  34. {meta_edc-0.3.27 → meta_edc-0.3.29}/.env-tests +0 -0
  35. {meta_edc-0.3.27 → meta_edc-0.3.29}/.github/workflows/build.yml +0 -0
  36. {meta_edc-0.3.27 → meta_edc-0.3.29}/.gitignore +0 -0
  37. {meta_edc-0.3.27 → meta_edc-0.3.29}/.pre-commit-config.yaml +0 -0
  38. {meta_edc-0.3.27 → meta_edc-0.3.29}/.yamllint +0 -0
  39. {meta_edc-0.3.27 → meta_edc-0.3.29}/AUTHORS +0 -0
  40. {meta_edc-0.3.27 → meta_edc-0.3.29}/LICENSE +0 -0
  41. {meta_edc-0.3.27 → meta_edc-0.3.29}/MANIFEST.in +0 -0
  42. {meta_edc-0.3.27 → meta_edc-0.3.29}/README.rst +0 -0
  43. {meta_edc-0.3.27 → meta_edc-0.3.29}/TODO.txt +0 -0
  44. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/celery/celery.live.conf +0 -0
  45. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/celery/celery.uat.conf +0 -0
  46. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/conf/live.conf +0 -0
  47. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/conf/live_sites.conf +0 -0
  48. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/conf/meta.clinicedc.org.conf +0 -0
  49. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/conf/uat.conf +0 -0
  50. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/conf/uat_sites.conf +0 -0
  51. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/www/html/index.html +0 -0
  52. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/www/html/live.meta.clinicedc.org/index.html +0 -0
  53. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/www/html/live.meta.clinicedc.org/tz/index.html +0 -0
  54. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/www/html/live.meta.clinicedc.org/ug/index.html +0 -0
  55. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/www/html/uat.meta.clinicedc.org/tz/index.html +0 -0
  56. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta2/www/html/uat.meta.clinicedc.org/ug/index.html +0 -0
  57. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/conf/live.conf +0 -0
  58. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/conf/live_sites.conf +0 -0
  59. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/conf/meta.clinicedc.org.conf +0 -0
  60. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/conf/uat.conf +0 -0
  61. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/conf/uat_sites.conf +0 -0
  62. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/www/html/index.html +0 -0
  63. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/www/html/live.meta3.clinicedc.org/index.html +0 -0
  64. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/www/html/live.meta3.clinicedc.org/tz/index.html +0 -0
  65. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta3/www/html/uat.meta3.clinicedc.org/tz/index.html +0 -0
  66. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/conf/live.conf +0 -0
  67. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/conf/live_sites.conf +0 -0
  68. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/conf/meta.clinicedc.org.conf +0 -0
  69. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/conf/uat.conf +0 -0
  70. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/conf/uat_sites.conf +0 -0
  71. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/www/html/index.html +0 -0
  72. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/www/html/live.meta3.clinicedc.org/index.html +0 -0
  73. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/www/html/live.meta3.clinicedc.org/tz/index.html +0 -0
  74. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/nginx/meta4/www/html/uat.meta3.clinicedc.org/tz/index.html +0 -0
  75. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/scripts/list_db_files.sh +0 -0
  76. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/scripts/restore_db_file.sh +0 -0
  77. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/scripts/update_edc.sh +0 -0
  78. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/systemd/meta3/gunicorn-live.service +0 -0
  79. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/systemd/meta3/gunicorn-live.socket +0 -0
  80. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/systemd/meta3/gunicorn-uat.service +0 -0
  81. {meta_edc-0.3.27 → meta_edc-0.3.29}/bin/systemd/meta3/gunicorn-uat.socket +0 -0
  82. {meta_edc-0.3.27 → meta_edc-0.3.29}/docs/conda.rst +0 -0
  83. {meta_edc-0.3.27 → meta_edc-0.3.29}/docs/forms_reference.md +0 -0
  84. {meta_edc-0.3.27 → meta_edc-0.3.29}/docs/images/user_groups.png +0 -0
  85. {meta_edc-0.3.27 → meta_edc-0.3.29}/docs/updates/0.1.65/renamed_fields.txt +0 -0
  86. {meta_edc-0.3.27 → meta_edc-0.3.29}/docs/updates/0.1.65/update_1_65_renamed_fields.py +0 -0
  87. {meta_edc-0.3.27 → meta_edc-0.3.29}/docs/updates/pharmacy.sql +0 -0
  88. {meta_edc-0.3.27 → meta_edc-0.3.29}/env.sample +0 -0
  89. {meta_edc-0.3.27 → meta_edc-0.3.29}/holidays.csv +0 -0
  90. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2.25x1.25in/aliquot.lbl +0 -0
  91. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2.25x1.25in/box.lbl +0 -0
  92. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2.25x1.25in/manifest.lbl +0 -0
  93. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2.25x1.25in/requisition.lbl +0 -0
  94. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2.25x1.25in/subject.lbl +0 -0
  95. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2x1cm/aliquot.lbl +0 -0
  96. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2x1cm/box.lbl +0 -0
  97. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2x1cm/manifest.lbl +0 -0
  98. {meta_edc-0.3.27 → meta_edc-0.3.29}/label_templates/2x1cm/requisition.lbl +0 -0
  99. {meta_edc-0.3.27 → meta_edc-0.3.29}/manage.py +0 -0
  100. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/__init__.py +0 -0
  101. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/action_items.py +0 -0
  102. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/__init__.py +0 -0
  103. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/ae_followup_admin.py +0 -0
  104. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/ae_initial_admin.py +0 -0
  105. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/ae_local_review_admin.py +0 -0
  106. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/ae_sponsor_review_admin.py +0 -0
  107. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/ae_susar_admin.py +0 -0
  108. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/ae_tmg_admin.py +0 -0
  109. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/death_report_admin.py +0 -0
  110. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/death_report_tmg_admin.py +0 -0
  111. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/death_report_tmg_second_admin.py +0 -0
  112. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/hospitalization_admin.py +0 -0
  113. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin/modeladmin_mixins.py +0 -0
  114. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/admin_site.py +0 -0
  115. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/apps.py +0 -0
  116. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/baker_recipes.py +0 -0
  117. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/choices.py +0 -0
  118. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/constants.py +0 -0
  119. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/__init__.py +0 -0
  120. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/ae_followup_form.py +0 -0
  121. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/ae_initial_form.py +0 -0
  122. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/ae_local_review_form.py +0 -0
  123. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/ae_sponsor_review_form.py +0 -0
  124. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/ae_susar_form.py +0 -0
  125. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/ae_tmg_form.py +0 -0
  126. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/death_report_form.py +0 -0
  127. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/death_report_tmg_form.py +0 -0
  128. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/death_report_tmg_second_form.py +0 -0
  129. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/hospitalization_form.py +0 -0
  130. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/forms/modelform_mixins.py +0 -0
  131. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/list_data.py +0 -0
  132. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0001_initial.py +0 -0
  133. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0002_auto_20191024_1000.py +0 -0
  134. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0003_auto_20191102_0033.py +0 -0
  135. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0004_auto_20191114_0821.py +0 -0
  136. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0005_auto_20210624_0225.py +0 -0
  137. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0006_aelocalreview_aesponsorreview.py +0 -0
  138. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0007_auto_20210911_2036.py +0 -0
  139. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0008_auto_20211011_1657.py +0 -0
  140. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0009_auto_20220307_1929.py +0 -0
  141. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0010_auto_20220704_1841.py +0 -0
  142. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0011_alter_aefollowup_action_identifier_and_more.py +0 -0
  143. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0012_auto_20220826_0258.py +0 -0
  144. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0013_auto_20220826_0322.py +0 -0
  145. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0014_auto_20220826_0406.py +0 -0
  146. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0015_auto_20220907_0157.py +0 -0
  147. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0016_rename_narrative_aetmg_investigator_narrative_and_more.py +0 -0
  148. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0017_auto_20221130_2257.py +0 -0
  149. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0018_alter_deathreporttmg_cause_of_death_agreed_and_more.py +0 -0
  150. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0019_alter_aefollowup_managers_alter_aeinitial_managers_and_more.py +0 -0
  151. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0020_alter_aesusar_options_alter_aetmg_options_and_more.py +0 -0
  152. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0021_alter_aefollowup_site_alter_aeinitial_site_and_more.py +0 -0
  153. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/0022_historicalhospitalization_hospitalization.py +0 -0
  154. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/migrations/__init__.py +0 -0
  155. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/model_mixins/__init__.py +0 -0
  156. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/model_mixins/ae_review_model_mixin.py +0 -0
  157. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/model_mixins/death_report_model_mixin.py +0 -0
  158. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/__init__.py +0 -0
  159. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/ae_followup.py +0 -0
  160. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/ae_initial.py +0 -0
  161. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/ae_local_review.py +0 -0
  162. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/ae_sponsor_review.py +0 -0
  163. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/ae_susar.py +0 -0
  164. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/ae_tmg.py +0 -0
  165. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/death_report.py +0 -0
  166. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/death_report_tmg.py +0 -0
  167. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/death_report_tmg_second.py +0 -0
  168. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/hospitalization.py +0 -0
  169. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/models/managers.py +0 -0
  170. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/pdf_reports/__init__.py +0 -0
  171. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/pdf_reports/ae_pdf_report.py +0 -0
  172. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/pdf_reports/death_pdf_report.py +0 -0
  173. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/pdf_reports/meta_pdf_report_mixin.py +0 -0
  174. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/templates/meta_ae/bootstrap3/ae_initial_description.html +0 -0
  175. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/templatetags/__init__.py +0 -0
  176. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/templatetags/meta_ae_extras.py +0 -0
  177. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/tests/__init__.py +0 -0
  178. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/tests/holidays.csv +0 -0
  179. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/tests/tests/__init__.py +0 -0
  180. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/tests/tests/test_actions.py +0 -0
  181. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/tests/urls.py +0 -0
  182. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_ae/urls.py +0 -0
  183. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/README.rst +0 -0
  184. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/__init__.py +0 -0
  185. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/constants.py +0 -0
  186. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/__init__.py +0 -0
  187. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/enrolled/__init__.py +0 -0
  188. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/enrolled/get_glucose_df.py +0 -0
  189. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/glucose_endpoints/__init__.py +0 -0
  190. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/glucose_endpoints/constants.py +0 -0
  191. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +0 -0
  192. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +0 -0
  193. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/glucose_endpoints/utils.py +0 -0
  194. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/screening/__init__.py +0 -0
  195. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/screening/get_glucose_tested_only_df.py +0 -0
  196. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/dataframes/screening/get_screening_df.py +0 -0
  197. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/get_tables.py +0 -0
  198. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/notebooks/meta_endpoints.ipynb +0 -0
  199. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tables/__init__.py +0 -0
  200. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tables/eligible.py +0 -0
  201. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tables/enrolled/__init__.py +0 -0
  202. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tables/enrolled/glucose.py +0 -0
  203. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tables/has_dm.py +0 -0
  204. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tests/__init__.py +0 -0
  205. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_analytics/tests/test_endpoints_by_date.py +0 -0
  206. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_auth/__init__.py +0 -0
  207. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_auth/apps.py +0 -0
  208. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_auth/auth_objects.py +0 -0
  209. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_auth/auths.py +0 -0
  210. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_auth/urls.py +0 -0
  211. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/__init__.py +0 -0
  212. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/action_items.py +0 -0
  213. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin/__init__.py +0 -0
  214. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin/actions/__init__.py +0 -0
  215. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin/actions/create_missing_prescriptions.py +0 -0
  216. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin/modeladmin_mixins.py +0 -0
  217. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin/subject_consent_admin.py +0 -0
  218. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin/subject_consent_v1_admin.py +0 -0
  219. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/admin_site.py +0 -0
  220. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/apps.py +0 -0
  221. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/baker_recipes.py +0 -0
  222. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/consents.py +0 -0
  223. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/constants.py +0 -0
  224. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/form_validators/__init__.py +0 -0
  225. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/form_validators/subject_consent_form_validator.py +0 -0
  226. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/forms/__init__.py +0 -0
  227. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/forms/subject_consent_form.py +0 -0
  228. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/forms/subject_consent_v1_form.py +0 -0
  229. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/forms/subject_reconsent_form.py +0 -0
  230. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/locale/sw/LC_MESSAGES/django.po +0 -0
  231. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/management/__init__.py +0 -0
  232. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/management/commands/__init__.py +0 -0
  233. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/management/commands/create_missing_prescriptions.py +0 -0
  234. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0001_initial.py +0 -0
  235. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0002_auto_20191024_1000.py +0 -0
  236. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0003_auto_20200325_0901.py +0 -0
  237. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0004_auto_20210624_0225.py +0 -0
  238. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0005_alter_subjectconsent_options.py +0 -0
  239. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0006_auto_20210911_2036.py +0 -0
  240. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0007_auto_20220128_1719.py +0 -0
  241. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0008_auto_20220412_2151.py +0 -0
  242. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0009_auto_20220704_1841.py +0 -0
  243. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0010_alter_historicalsubjectreconsent_action_identifier_and_more.py +0 -0
  244. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0011_auto_20220826_0258.py +0 -0
  245. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0012_auto_20220826_0322.py +0 -0
  246. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0013_auto_20220826_0406.py +0 -0
  247. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0014_alter_subjectconsent_managers.py +0 -0
  248. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0015_auto_20220914_0542.py +0 -0
  249. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0016_auto_20220914_0547.py +0 -0
  250. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0017_auto_20220929_1742.py +0 -0
  251. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0018_alter_subjectconsent_options_and_more.py +0 -0
  252. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0019_alter_subjectconsent_options_and_more.py +0 -0
  253. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0020_historicalsubjectconsent_model_name_and_more.py +0 -0
  254. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0021_auto_20240111_0442.py +0 -0
  255. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0022_alter_historicalsubjectconsent_site_and_more.py +0 -0
  256. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0023_subjectconsentv1_and_more.py +0 -0
  257. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0024_historicalsubjectconsentv1.py +0 -0
  258. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/0025_alter_historicalsubjectconsent_first_name_and_more.py +0 -0
  259. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/migrations/__init__.py +0 -0
  260. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/models/__init__.py +0 -0
  261. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/models/model_mixins.py +0 -0
  262. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/models/signals.py +0 -0
  263. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/models/subject_consent.py +0 -0
  264. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/models/subject_consent_v1.py +0 -0
  265. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/models/subject_reconsent.py +0 -0
  266. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/tests/__init__.py +0 -0
  267. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/tests/holidays.csv +0 -0
  268. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/tests/tests/__init__.py +0 -0
  269. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/tests/tests/test_form_validators.py +0 -0
  270. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/tests/tests/test_subject_consent.py +0 -0
  271. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/tests/urls.py +0 -0
  272. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_consent/urls.py +0 -0
  273. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/__init__.py +0 -0
  274. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/apps.py +0 -0
  275. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/locale/sw/LC_MESSAGES/django.po +0 -0
  276. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/migrations/__init__.py +0 -0
  277. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/navbars.py +0 -0
  278. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/patterns.py +0 -0
  279. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/add_consent_button.html +0 -0
  280. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/dashboard_button.html +0 -0
  281. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/eligibility_button.html +0 -0
  282. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/refusal_button.html +0 -0
  283. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/screening_button.html +0 -0
  284. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/screening/listboard.html +0 -0
  285. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard/top_bar.html +0 -0
  286. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard.html +0 -0
  287. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templates/meta_dashboard/bootstrap3/subject/listboard.html +0 -0
  288. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templatetags/__init__.py +0 -0
  289. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/templatetags/meta_dashboard_extras.py +0 -0
  290. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/tests/__init__.py +0 -0
  291. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/tests/admin.py +0 -0
  292. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/tests/holidays.csv +0 -0
  293. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/tests/tests/__init__.py +0 -0
  294. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/tests/urls.py +0 -0
  295. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/urls.py +0 -0
  296. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/view_utils/__init__.py +0 -0
  297. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/view_utils/subject_screening_button.py +0 -0
  298. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/__init__.py +0 -0
  299. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/ae/__init__.py +0 -0
  300. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/ae/ae_listboard_view.py +0 -0
  301. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/ae/death_report_listboard_view.py +0 -0
  302. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/screening/__init__.py +0 -0
  303. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/screening/listboard_view.py +0 -0
  304. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/subject/__init__.py +0 -0
  305. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/subject/dashboard/__init__.py +0 -0
  306. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/subject/dashboard/dashboard_view.py +0 -0
  307. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/subject/listboard/__init__.py +0 -0
  308. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_dashboard/views/subject/listboard/listboard_view.py +0 -0
  309. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_data_manager/__init__.py +0 -0
  310. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_data_manager/apps.py +0 -0
  311. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_data_manager/data_manager.py +0 -0
  312. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_data_manager/handlers.py +0 -0
  313. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/__init__.py +0 -0
  314. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/admin.py +0 -0
  315. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/apps.py +0 -0
  316. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/asgi.py +0 -0
  317. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/celery/__init__.py +0 -0
  318. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/celery/debug.py +0 -0
  319. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/celery/live.py +0 -0
  320. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/celery/uat.py +0 -0
  321. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/management/__init__.py +0 -0
  322. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/management/commands/__init__.py +0 -0
  323. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/management/commands/update_forms_reference.py +0 -0
  324. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/meta_version.py +0 -0
  325. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/model_callers.py +0 -0
  326. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/models.py +0 -0
  327. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/navbars.py +0 -0
  328. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/__init__.py +0 -0
  329. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/debug.py +0 -0
  330. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/defaults.py +0 -0
  331. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/live.py +0 -0
  332. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/logging.py +0 -0
  333. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/minimal.py +0 -0
  334. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/settings/uat.py +0 -0
  335. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/templates/meta_edc/bootstrap3/base.html +0 -0
  336. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/templates/meta_edc/bootstrap3/home.html +0 -0
  337. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/tests/__init__.py +0 -0
  338. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/tests/tests/__init__.py +0 -0
  339. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/tests/tests/test_endpoints.py +0 -0
  340. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/urls.py +0 -0
  341. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/utils.py +0 -0
  342. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/views/__init__.py +0 -0
  343. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/views/home_view.py +0 -0
  344. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/wsgi.py +0 -0
  345. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/wsgi_live.py +0 -0
  346. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc/wsgi_uat.py +0 -0
  347. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc.egg-info/dependency_links.txt +0 -0
  348. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc.egg-info/not-zip-safe +0 -0
  349. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_edc.egg-info/top_level.txt +0 -0
  350. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_export/__init__.py +0 -0
  351. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_export/admin_site.py +0 -0
  352. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_export/apps.py +0 -0
  353. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_export/urls.py +0 -0
  354. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/__init__.py +0 -0
  355. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/aliquot_types.py +0 -0
  356. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/apps.py +0 -0
  357. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/lab_profiles.py +0 -0
  358. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/labs.py +0 -0
  359. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/list_data.py +0 -0
  360. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/processing_profiles.py +0 -0
  361. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/reportables.py +0 -0
  362. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/tests/__init__.py +0 -0
  363. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/tests/test_labs.py +0 -0
  364. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/tests/test_reportables.py +0 -0
  365. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_labs/tests/urls.py +0 -0
  366. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/__init__.py +0 -0
  367. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/admin.py +0 -0
  368. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/admin_site.py +0 -0
  369. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/apps.py +0 -0
  370. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/list_data.py +0 -0
  371. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0001_initial.py +0 -0
  372. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0002_auto_20191026_2231.py +0 -0
  373. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0003_auto_20191102_0033.py +0 -0
  374. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0004_auto_20191102_1859.py +0 -0
  375. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0005_auto_20191104_0930.py +0 -0
  376. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0006_auto_20200514_1959.py +0 -0
  377. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0007_auto_20200516_2356.py +0 -0
  378. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0008_auto_20200528_1517.py +0 -0
  379. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0009_auto_20200613_2041.py +0 -0
  380. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0010_auto_20200617_1738.py +0 -0
  381. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0011_auto_20210624_0225.py +0 -0
  382. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0012_auto_20210728_1809.py +0 -0
  383. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0013_transferreasons_and_more.py +0 -0
  384. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0014_auto_20220913_2139.py +0 -0
  385. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0015_abnormalfootappearanceobservations_extra_value_and_more.py +0 -0
  386. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0016_alter_abnormalfootappearanceobservations_options_and_more.py +0 -0
  387. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0017_complications_dmmedications_dmtreatments_and_more.py +0 -0
  388. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/0018_missedreferralreasons.py +0 -0
  389. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/migrations/__init__.py +0 -0
  390. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/models.py +0 -0
  391. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/tests/__init__.py +0 -0
  392. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/tests/test_lists.py +0 -0
  393. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_lists/urls.py +0 -0
  394. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/__init__.py +0 -0
  395. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/apps.py +0 -0
  396. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/constants.py +0 -0
  397. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/migrations/0001_initial.py +0 -0
  398. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/migrations/__init__.py +0 -0
  399. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/models.py +0 -0
  400. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_pharmacy/prepare_meta_pharmacy.py +0 -0
  401. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/__init__.py +0 -0
  402. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/action_items.py +0 -0
  403. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/__init__.py +0 -0
  404. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/dm_referral_admin.py +0 -0
  405. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/end_of_study_admin.py +0 -0
  406. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/loss_to_followup_admin.py +0 -0
  407. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/off_study_medication_admin.py +0 -0
  408. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/offschedule_admin.py +0 -0
  409. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/offschedule_dm_referral_admin.py +0 -0
  410. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/offschedule_postnatal_admin.py +0 -0
  411. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/offschedule_pregnancy_admin.py +0 -0
  412. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/onschedule_admin.py +0 -0
  413. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/onschedule_dm_referral_admin.py +0 -0
  414. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/pregnancy_notification_admin.py +0 -0
  415. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/protocol_incident_admin.py +0 -0
  416. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin/subject_transfer_admin.py +0 -0
  417. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/admin_site.py +0 -0
  418. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/apps.py +0 -0
  419. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/baker_recipes.py +0 -0
  420. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/choices.py +0 -0
  421. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/constants.py +0 -0
  422. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/form_validators/__init__.py +0 -0
  423. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/form_validators/end_of_study.py +0 -0
  424. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/form_validators/protocol_incident.py +0 -0
  425. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/__init__.py +0 -0
  426. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/dm_referral_form.py +0 -0
  427. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/end_of_study_form.py +0 -0
  428. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/loss_to_followup_form.py +0 -0
  429. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/off_study_medication_form.py +0 -0
  430. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/offschedule_dm_referral_form.py +0 -0
  431. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/offschedule_form.py +0 -0
  432. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/offschedule_pregnancy_form.py +0 -0
  433. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/pregnancy_notification_form.py +0 -0
  434. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/protocol_incident_form.py +0 -0
  435. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/forms/subject_transfer_form.py +0 -0
  436. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/list_data.py +0 -0
  437. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0001_initial.py +0 -0
  438. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0002_auto_20191024_1000.py +0 -0
  439. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0003_auto_20200120_2020.py +0 -0
  440. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0004_auto_20200403_0332.py +0 -0
  441. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0005_auto_20200524_1944.py +0 -0
  442. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0006_auto_20210624_0225.py +0 -0
  443. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0007_auto_20210721_0335.py +0 -0
  444. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0008_auto_20210910_0238.py +0 -0
  445. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0009_auto_20210910_0239.py +0 -0
  446. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0010_auto_20210910_1906.py +0 -0
  447. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0011_auto_20210910_1911.py +0 -0
  448. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0012_auto_20210911_0004.py +0 -0
  449. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0013_auto_20210911_2036.py +0 -0
  450. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0014_auto_20211003_1709.py +0 -0
  451. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0015_auto_20211104_1447.py +0 -0
  452. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0016_auto_20220128_1719.py +0 -0
  453. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0017_auto_20220307_1929.py +0 -0
  454. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0018_auto_20220309_2106.py +0 -0
  455. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0019_auto_20220309_2230.py +0 -0
  456. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0020_auto_20220310_0439.py +0 -0
  457. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0021_auto_20220316_2147.py +0 -0
  458. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0022_auto_20220318_0133.py +0 -0
  459. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0023_auto_20220415_1747.py +0 -0
  460. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0024_alter_protocoldeviationviolation_violation.py +0 -0
  461. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0025_alter_historicalprotocoldeviationviolation_options_and_more.py +0 -0
  462. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0026_remove_historicalprotocoldeviationviolation_violation_type_and_more.py +0 -0
  463. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0027_rename_historicalprotocoldeviationviolation_historicalprotocolincident_and_more.py +0 -0
  464. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0028_historicalpregnancynotification_bhcg_date_and_more.py +0 -0
  465. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0029_alter_historicalpregnancynotification_edd_and_more.py +0 -0
  466. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0030_auto_20220627_1119.py +0 -0
  467. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0031_alter_historicaloffschedule_options_and_more.py +0 -0
  468. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0032_historicalegfrnotification_egfrnotification.py +0 -0
  469. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0033_remove_historicalegfrnotification_action_item_and_more.py +0 -0
  470. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0034_auto_20220630_1110.py +0 -0
  471. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0035_auto_20220630_1140.py +0 -0
  472. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0036_remove_endofstudy_meta_prn_en_id_a50384_idx_and_more.py +0 -0
  473. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0037_endofstudy_delivery_date_endofstudy_pregnancy_date_and_more.py +0 -0
  474. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0038_alter_endofstudy_delivery_date_and_more.py +0 -0
  475. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0039_historicaloffstudymedication_reason_other_and_more.py +0 -0
  476. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0040_remove_historicaloffstudymedication_expected_restart_date_and_more.py +0 -0
  477. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0041_endofstudy_transfer_date_and_more.py +0 -0
  478. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0042_remove_endofstudy_investigator_decision_and_more.py +0 -0
  479. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0043_auto_20220704_1841.py +0 -0
  480. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0044_alter_endofstudy_action_identifier_and_more.py +0 -0
  481. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0045_auto_20220826_0258.py +0 -0
  482. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0046_auto_20220826_0322.py +0 -0
  483. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0047_auto_20220826_0406.py +0 -0
  484. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0048_auto_20220922_2236.py +0 -0
  485. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0049_auto_20220929_1742.py +0 -0
  486. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0050_auto_20221004_0629.py +0 -0
  487. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0051_historicalprotocolincident_reasons_withdrawn_and_more.py +0 -0
  488. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0052_alter_historicalprotocolincident_reasons_withdrawn_and_more.py +0 -0
  489. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0053_alter_losstofollowup_options_and_more.py +0 -0
  490. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0054_alter_losstofollowup_options_and_more.py +0 -0
  491. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0055_alter_endofstudy_site_and_more.py +0 -0
  492. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0056_alter_endofstudy_clinical_withdrawal_reason_and_more.py +0 -0
  493. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0057_historicalonscheduledmreferral_and_more.py +0 -0
  494. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0058_dmreferral_referral_note_and_more.py +0 -0
  495. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/0059_alter_historicaloffstudymedication_reason_and_more.py +0 -0
  496. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/migrations/__init__.py +0 -0
  497. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/__init__.py +0 -0
  498. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/dm_referral.py +0 -0
  499. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/end_of_study.py +0 -0
  500. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/loss_to_followup.py +0 -0
  501. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/off_study_medication.py +0 -0
  502. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/offschedule.py +0 -0
  503. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/onschedule.py +0 -0
  504. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/pregnancy_notification.py +0 -0
  505. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/protocol_incident.py +0 -0
  506. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/signals.py +0 -0
  507. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/models/subject_transfer.py +0 -0
  508. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/pregnancy_action_item_mixin.py +0 -0
  509. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/__init__.py +0 -0
  510. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/tests/__init__.py +0 -0
  511. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/tests/test_actions.py +0 -0
  512. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/tests/test_dm_referral.py +0 -0
  513. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/tests/test_manager_order.py +0 -0
  514. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/tests/test_pregnancy_notification.py +0 -0
  515. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/tests/urls.py +0 -0
  516. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_prn/urls.py +0 -0
  517. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/__init__.py +0 -0
  518. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/apps.py +0 -0
  519. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/migrations/0001_initial.py +0 -0
  520. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/migrations/0002_auto_20220704_1841.py +0 -0
  521. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/migrations/0003_auto_20220826_1640.py +0 -0
  522. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/migrations/0004_alter_randomizationlist_options_and_more.py +0 -0
  523. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/migrations/0005_alter_randomizationlist_options_and_more.py +0 -0
  524. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/migrations/__init__.py +0 -0
  525. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/models.py +0 -0
  526. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/randomizers.py +0 -0
  527. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/tests/__init__.py +0 -0
  528. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/tests/tests/__init__.py +0 -0
  529. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_rando/tests/tests/test_randomizers.py +0 -0
  530. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/__init__.py +0 -0
  531. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/endpoints_admin.py +0 -0
  532. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/endpoints_all_admin.py +0 -0
  533. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/list_filters.py +0 -0
  534. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/modeladmin_mixins.py +0 -0
  535. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/glucose_summary_admin.py +0 -0
  536. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/missing_screening_ogtt_admin/__init__.py +0 -0
  537. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/missing_screening_ogtt_admin/note_model_admin.py +0 -0
  538. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/missing_screening_ogtt_admin/unmanaged_model_admin.py +0 -0
  539. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/patient_history_missing_baseline_cd4_admin.py +0 -0
  540. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/unattended_three_in_row2_admin.py +0 -0
  541. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/unattended_three_in_row_admin.py +0 -0
  542. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin/unmanaged/unattended_two_in_row_admin.py +0 -0
  543. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/admin_site.py +0 -0
  544. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/ae_report.py +0 -0
  545. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/apps.py +0 -0
  546. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/death_report.py +0 -0
  547. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/forms/__init__.py +0 -0
  548. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/forms/missing_ogtt_note_form.py +0 -0
  549. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/management/__init__.py +0 -0
  550. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/management/commands/__init__.py +0 -0
  551. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/management/commands/generate_endpoints.py +0 -0
  552. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0001_initial.py +0 -0
  553. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0002_patienthistorymissingbaselinecd4_and_more.py +0 -0
  554. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0003_auto_20240618_0505.py +0 -0
  555. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0004_alter_patienthistorymissingbaselinecd4_table.py +0 -0
  556. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0005_endpoints.py +0 -0
  557. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0006_endpoints_baseline_datetime.py +0 -0
  558. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0007_alter_endpoints_endpoint_label_and_more.py +0 -0
  559. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0008_alter_endpoints_endpoint_label.py +0 -0
  560. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0009_alter_endpoints_options.py +0 -0
  561. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0010_alter_patienthistorymissingbaselinecd4_options_and_more.py +0 -0
  562. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0011_auto_20240813_0156.py +0 -0
  563. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0012_auto_20240813_1516.py +0 -0
  564. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0013_auto_20240813_1516.py +0 -0
  565. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0014_auto_20240813_1517.py +0 -0
  566. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0015_alter_endpoints_site.py +0 -0
  567. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0016_missingscreeningogtt.py +0 -0
  568. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0017_auto_20240819_1711.py +0 -0
  569. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0018_auto_20240819_1713.py +0 -0
  570. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0019_auto_20240819_1721.py +0 -0
  571. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0020_auto_20240819_1811.py +0 -0
  572. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0021_auto_20240819_1817.py +0 -0
  573. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0022_auto_20240819_1832.py +0 -0
  574. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0023_endpoints_meta_report_subject_a56b22_idx.py +0 -0
  575. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0024_glucosesummary.py +0 -0
  576. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0025_auto_20240822_0115.py +0 -0
  577. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0026_auto_20240822_0120.py +0 -0
  578. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0027_auto_20240822_0140.py +0 -0
  579. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0028_alter_glucosesummary_options.py +0 -0
  580. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0029_auto_20240822_0149.py +0 -0
  581. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0030_auto_20240822_1637.py +0 -0
  582. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0031_endpointsproxy.py +0 -0
  583. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0032_alter_endpointsproxy_options.py +0 -0
  584. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0033_auto_20240823_0012.py +0 -0
  585. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0034_auto_20240823_1642.py +0 -0
  586. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0035_historicalmissingogttnote_missingogttnote.py +0 -0
  587. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0036_historicalmissingogttnote_fasting_and_more.py +0 -0
  588. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0037_historicalmissingogttnote_result_status_and_more.py +0 -0
  589. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/0038_alter_historicalmissingogttnote_fasting_and_more.py +0 -0
  590. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/migrations/__init__.py +0 -0
  591. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/README +0 -0
  592. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/glucose_summary/__init__.py +0 -0
  593. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/glucose_summary/unmanaged_model.py +0 -0
  594. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/missing_screening_ogtt/__init__.py +0 -0
  595. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/missing_screening_ogtt/note_model.py +0 -0
  596. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py +0 -0
  597. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py +0 -0
  598. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/patient_history_missing_baseline_cd4/unmanaged_model.py +0 -0
  599. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/unattended_three_in_row/__init__.py +0 -0
  600. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/unattended_three_in_row/unmanaged_model.py +0 -0
  601. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/unattended_three_in_row2/__init__.py +0 -0
  602. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/unattended_three_in_row2/unmanaged_model.py +0 -0
  603. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/unattended_two_in_row/__init__.py +0 -0
  604. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py +0 -0
  605. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/endpoints.py +0 -0
  606. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/endpoints_proxy.py +0 -0
  607. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/README +0 -0
  608. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/__init__.py +0 -0
  609. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.py +0 -0
  610. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.sql +0 -0
  611. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/unattended_three_in_row.py +0 -0
  612. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/unattended_three_in_row.sql +0 -0
  613. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/unattended_three_in_row2.py +0 -0
  614. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/unattended_three_in_row2.sql +0 -0
  615. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/unattended_two_in_row.py +0 -0
  616. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/models/unmanaged/unattended_two_in_row.sql +0 -0
  617. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/pdf_report.py +0 -0
  618. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/tasks.py +0 -0
  619. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/templates/meta_reports/columns/subject_identifier_column.html +0 -0
  620. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/templates/meta_reports/endpoints_all_change_list_note.html +0 -0
  621. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/templates/meta_reports/endpoints_change_list_note.html +0 -0
  622. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/tests/__init__.py +0 -0
  623. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/tests/test_reports.py +0 -0
  624. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/tests/urls.py +0 -0
  625. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_reports/urls.py +0 -0
  626. /meta_edc-0.3.27/meta_screening/__init__.py → /meta_edc-0.3.29/meta_reports/utils.py +0 -0
  627. {meta_edc-0.3.27/meta_screening/migrations → meta_edc-0.3.29/meta_screening}/__init__.py +0 -0
  628. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/__init__.py +0 -0
  629. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/fieldsets.py +0 -0
  630. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/list_filters.py +0 -0
  631. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/screening_part_one_admin.py +0 -0
  632. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/screening_part_three_admin.py +0 -0
  633. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/screening_part_two_admin.py +0 -0
  634. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/subject_refusal_admin.py +0 -0
  635. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin/subject_screening_admin.py +0 -0
  636. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/admin_site.py +0 -0
  637. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/apps.py +0 -0
  638. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/baker_recipes.py +0 -0
  639. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/calculators.py +0 -0
  640. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/choices.py +0 -0
  641. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/constants.py +0 -0
  642. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/__init__.py +0 -0
  643. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/eligibility.py +0 -0
  644. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/eligibility_part_one.py +0 -0
  645. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/eligibility_part_three/__init__.py +0 -0
  646. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py +0 -0
  647. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/eligibility_part_three/eligibility_part_three_phase_three.py +0 -0
  648. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/eligibility/eligibility_part_two.py +0 -0
  649. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/form_validators/__init__.py +0 -0
  650. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/form_validators/screening_part_one.py +0 -0
  651. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/form_validators/screening_part_three.py +0 -0
  652. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/form_validators/screening_part_two.py +0 -0
  653. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/form_validators/subject_refusal.py +0 -0
  654. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/form_validators/subject_screening.py +0 -0
  655. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/__init__.py +0 -0
  656. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/field_lists.py +0 -0
  657. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/screening_part_one_form.py +0 -0
  658. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/screening_part_three_form.py +0 -0
  659. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/screening_part_two_form.py +0 -0
  660. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/subject_refusal_form.py +0 -0
  661. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/forms/subject_screening_form.py +0 -0
  662. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0001_initial.py +0 -0
  663. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0002_auto_20191020_0612.py +0 -0
  664. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0003_auto_20191020_0627.py +0 -0
  665. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0004_auto_20191020_0738.py +0 -0
  666. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0005_auto_20191021_0353.py +0 -0
  667. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0006_auto_20191022_0134.py +0 -0
  668. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0007_auto_20191024_1000.py +0 -0
  669. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0008_auto_20191031_0745.py +0 -0
  670. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0009_auto_20191105_0122.py +0 -0
  671. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0010_auto_20191106_0828.py +0 -0
  672. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0011_auto_20191107_0342.py +0 -0
  673. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0012_auto_20191107_0427.py +0 -0
  674. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0013_auto_20191107_0442.py +0 -0
  675. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0014_auto_20191107_0528.py +0 -0
  676. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0015_auto_20191107_2249.py +0 -0
  677. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0016_auto_20191119_2331.py +0 -0
  678. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0017_auto_20191213_0314.py +0 -0
  679. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0018_auto_20200118_1854.py +0 -0
  680. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0019_auto_20200120_2256.py +0 -0
  681. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0020_auto_20200524_1944.py +0 -0
  682. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0021_auto_20210628_2105.py +0 -0
  683. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0022_auto_20210702_0426.py +0 -0
  684. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0023_auto_20210702_0533.py +0 -0
  685. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0024_auto_20210710_1929.py +0 -0
  686. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0025_auto_20210710_2247.py +0 -0
  687. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0026_auto_20210712_0433.py +0 -0
  688. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0027_auto_20210804_0438.py +0 -0
  689. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0028_auto_20210823_2353.py +0 -0
  690. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0029_auto_20211123_1645.py +0 -0
  691. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0030_auto_20220128_1719.py +0 -0
  692. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0031_auto_20220304_0448.py +0 -0
  693. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0032_auto_20220304_0501.py +0 -0
  694. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0033_auto_20220304_0504.py +0 -0
  695. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0034_auto_20220304_0508.py +0 -0
  696. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0035_auto_20220304_2233.py +0 -0
  697. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0036_auto_20220304_2307.py +0 -0
  698. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0037_auto_20220312_0339.py +0 -0
  699. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0038_auto_20220312_1929.py +0 -0
  700. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0039_auto_20220312_1938.py +0 -0
  701. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0040_auto_20220316_2147.py +0 -0
  702. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0041_auto_20220403_1227.py +0 -0
  703. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0042_auto_20220403_1402.py +0 -0
  704. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0043_auto_20220407_1713.py +0 -0
  705. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0044_alter_historicalscreeningpartone_severe_htn_and_more.py +0 -0
  706. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0045_historicalscreeningpartone_contact_number_and_more.py +0 -0
  707. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0046_historicalscreeningpartone_hba1c_datetime_and_more.py +0 -0
  708. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0047_historicalscreeningpartone_appt_datetime_repeat_and_more.py +0 -0
  709. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0048_rename_appt_datetime_repeat_historicalscreeningpartone_repeat_appt_datetime_and_more.py +0 -0
  710. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0049_historicalscreeningpartone_p3_ltfu_and_more.py +0 -0
  711. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0050_historicalscreeningpartone_agree_to_p3_and_more.py +0 -0
  712. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0051_alter_historicalscreeningpartone_advised_to_fast_and_more.py +0 -0
  713. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0052_alter_historicalscreeningpartone_p3_ltfu_and_more.py +0 -0
  714. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0053_auto_20220704_1841.py +0 -0
  715. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0054_auto_20220722_2130.py +0 -0
  716. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0055_alter_historicalscreeningpartone_creatinine_value_and_more.py +0 -0
  717. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0056_alter_historicalscreeningpartone_agree_to_p3_and_more.py +0 -0
  718. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0057_alter_historicalscreeningpartone_calculated_egfr_value_and_more.py +0 -0
  719. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0058_alter_historicalscreeningpartone_eligibility_datetime_and_more.py +0 -0
  720. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0059_alter_icpreferral_managers_and_more.py +0 -0
  721. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0060_historicalicpreferral_locale_created_and_more.py +0 -0
  722. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0061_alter_historicalicpreferral_site_and_more.py +0 -0
  723. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0062_remove_icpreferral_site_and_more.py +0 -0
  724. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0063_alter_historicalscreeningpartone_fasting_duration_str_and_more.py +0 -0
  725. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0064_remove_historicalscreeningpartone_fasting_duration_minutes_and_more.py +0 -0
  726. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0065_auto_20240516_0352.py +0 -0
  727. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0066_alter_historicalscreeningpartone_fasting_duration_delta_and_more.py +0 -0
  728. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/migrations/0067_alter_historicalscreeningpartone_report_datetime_and_more.py +0 -0
  729. {meta_edc-0.3.27/meta_screening/tests → meta_edc-0.3.29/meta_screening/migrations}/__init__.py +0 -0
  730. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/__init__.py +0 -0
  731. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/calculated_model_mixin.py +0 -0
  732. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/creatinine_fields_model_mixin.py +0 -0
  733. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/eligibility_model_mixin.py +0 -0
  734. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/part_one_fields_model_mixin.py +0 -0
  735. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/part_three_fields_model_mixin.py +0 -0
  736. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/model_mixins/part_two_fields_model_mixin.py +0 -0
  737. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/models/__init__.py +0 -0
  738. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/models/icp_referral.py +0 -0
  739. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/models/proxy_models.py +0 -0
  740. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/models/signals.py +0 -0
  741. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/models/subject_refusal.py +0 -0
  742. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/models/subject_screening.py +0 -0
  743. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/offline_models.py +0 -0
  744. {meta_edc-0.3.27/meta_screening/tests → meta_edc-0.3.29/meta_screening}/tests/__init__.py +0 -0
  745. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/holidays.csv +0 -0
  746. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/meta_test_case_mixin.py +0 -0
  747. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/options.py +0 -0
  748. {meta_edc-0.3.27/meta_sites → meta_edc-0.3.29/meta_screening/tests/tests}/__init__.py +0 -0
  749. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/tests/test_forms.py +0 -0
  750. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/tests/test_screening_part_one.py +0 -0
  751. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/tests/test_screening_part_three.py +0 -0
  752. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/tests/tests/test_screening_part_two.py +0 -0
  753. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_screening/urls.py +0 -0
  754. {meta_edc-0.3.27/meta_sites/migrations → meta_edc-0.3.29/meta_sites}/__init__.py +0 -0
  755. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_sites/apps.py +0 -0
  756. {meta_edc-0.3.27/meta_sites/tests → meta_edc-0.3.29/meta_sites/migrations}/__init__.py +0 -0
  757. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_sites/models.py +0 -0
  758. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_sites/sites.py +0 -0
  759. {meta_edc-0.3.27/meta_stats → meta_edc-0.3.29/meta_sites/tests}/__init__.py +0 -0
  760. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_sites/tests/test_sites.py +0 -0
  761. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_sites/tests/urls.py +0 -0
  762. {meta_edc-0.3.27/meta_stats/tests → meta_edc-0.3.29/meta_stats}/__init__.py +0 -0
  763. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_stats/incidence.py +0 -0
  764. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_stats/models.py +0 -0
  765. {meta_edc-0.3.27/meta_stats/tests → meta_edc-0.3.29/meta_stats}/tests/__init__.py +0 -0
  766. {meta_edc-0.3.27/meta_subject → meta_edc-0.3.29/meta_stats/tests/tests}/__init__.py +0 -0
  767. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_stats/tests/tests/test_incidence.py +0 -0
  768. {meta_edc-0.3.27/meta_subject/migrations → meta_edc-0.3.29/meta_subject}/__init__.py +0 -0
  769. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/action_items.py +0 -0
  770. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/__init__.py +0 -0
  771. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/autocomplete_admin.py +0 -0
  772. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/birth_outcome_admin.py +0 -0
  773. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/__init__.py +0 -0
  774. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/blood_results_fbc_admin.py +0 -0
  775. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/blood_results_hba1c_admin.py +0 -0
  776. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/blood_results_ins_admin.py +0 -0
  777. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/blood_results_lft_admin.py +0 -0
  778. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/blood_results_lipid_admin.py +0 -0
  779. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/blood_results/blood_results_rft_admin.py +0 -0
  780. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/complications_admin.py +0 -0
  781. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/complications_glycemia_admin.py +0 -0
  782. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/concomitant_medication_admin.py +0 -0
  783. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/delivery_admin.py +0 -0
  784. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/diabetes/__init__.py +0 -0
  785. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/diabetes/dm_endpoint_admin.py +0 -0
  786. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/diabetes/dm_followup_admin.py +0 -0
  787. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/egfr_drop_notification_admin.py +0 -0
  788. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/eq5d3l_admin.py +0 -0
  789. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/fields.py +0 -0
  790. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/fieldsets.py +0 -0
  791. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/followup_examination_admin.py +0 -0
  792. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/followup_vitals_admin.py +0 -0
  793. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/glucose_admin.py +0 -0
  794. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/glucose_fbg_admin.py +0 -0
  795. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/health_economics/__init__.py +0 -0
  796. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/health_economics/health_economics_simple_admin.py +0 -0
  797. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/health_economics/health_economics_update_admin.py +0 -0
  798. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/hepatitis_test_admin.py +0 -0
  799. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/list_filters.py +0 -0
  800. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/malaria_test_admin.py +0 -0
  801. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/medication_adherence_admin.py +0 -0
  802. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/mnsi_admin.py +0 -0
  803. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/modeladmin.py +0 -0
  804. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/other_arv_regimens_admin.py +0 -0
  805. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/patient_history_admin.py +0 -0
  806. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/physical_exam_admin.py +0 -0
  807. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/pregnancy_update_admin.py +0 -0
  808. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/sf12_admin.py +0 -0
  809. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/study_medication_admin.py +0 -0
  810. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/subject_requisition_admin.py +0 -0
  811. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/subject_visit_admin.py +0 -0
  812. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/subject_visit_missed_admin.py +0 -0
  813. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/urine_dipstick_test_admin.py +0 -0
  814. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin/urine_pregnancy_admin.py +0 -0
  815. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/admin_site.py +0 -0
  816. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/apps.py +0 -0
  817. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/baker_recipes.py +0 -0
  818. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/choices.py +0 -0
  819. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/constants.py +0 -0
  820. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/__init__.py +0 -0
  821. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/birth_outcomes_form_validator.py +0 -0
  822. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/delivery_form_validator.py +0 -0
  823. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/dm_endpoint_form_validator.py +0 -0
  824. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/dm_followup_form_validator.py +0 -0
  825. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/egfr_drop_notification_form_validator.py +0 -0
  826. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/followup_examination_form_validator.py +0 -0
  827. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/glucose_form_validator.py +0 -0
  828. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/form_validators/health_economics_form_validator.py +0 -0
  829. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/__init__.py +0 -0
  830. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/birth_outcomes_form.py +0 -0
  831. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/__init__.py +0 -0
  832. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/blood_results_fbc_form.py +0 -0
  833. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/blood_results_hba1c_form.py +0 -0
  834. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/blood_results_ins_form.py +0 -0
  835. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/blood_results_lft_form.py +0 -0
  836. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/blood_results_lipid_form.py +0 -0
  837. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/blood_results/blood_results_rft_form.py +0 -0
  838. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/complications_glycemia_form.py +0 -0
  839. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/concomitant_medication_form.py +0 -0
  840. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/delivery_form.py +0 -0
  841. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/diabetes/__init__.py +0 -0
  842. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/diabetes/dm_endpoint_form.py +0 -0
  843. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/diabetes/dm_followup_form.py +0 -0
  844. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/egfr_drop_notification_form.py +0 -0
  845. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/eq53d3l_form.py +0 -0
  846. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/followup_examination_form.py +0 -0
  847. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/followup_vitals_form.py +0 -0
  848. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/glucose_fbg_form.py +0 -0
  849. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/glucose_form.py +0 -0
  850. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/health_economics/__init__.py +0 -0
  851. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/health_economics/health_economics_simple_form.py +0 -0
  852. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/health_economics/health_economics_update_form.py +0 -0
  853. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/hepatitis_test_form.py +0 -0
  854. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/malaria_test_form.py +0 -0
  855. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/medication_adherence_form.py +0 -0
  856. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/mixins.py +0 -0
  857. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/mnsi_form.py +0 -0
  858. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/other_arv_regimens_detail_form.py +0 -0
  859. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/other_arv_regimens_form.py +0 -0
  860. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/patient_history_form.py +0 -0
  861. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/physical_exam_form.py +0 -0
  862. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/pregnancy_update_form.py +0 -0
  863. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/sf12_form.py +0 -0
  864. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/slider_widget.py +0 -0
  865. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/study_medication_form.py +0 -0
  866. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/subject_requisition_form.py +0 -0
  867. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/subject_visit_form.py +0 -0
  868. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/subject_visit_missed_form.py +0 -0
  869. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/urine_dipstick_test_form.py +0 -0
  870. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/forms/urine_pregnancy_form.py +0 -0
  871. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/identifiers.py +0 -0
  872. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/locale/sw/LC_MESSAGES/django.po +0 -0
  873. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/management/commands/create_missing_refills.py +0 -0
  874. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/management/commands/create_missing_rx.py +0 -0
  875. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/management/commands/missed.py +0 -0
  876. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/metadata_rules/__init__.py +0 -0
  877. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/metadata_rules/metadata_rules.py +0 -0
  878. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/metadata_rules/predicates.py +0 -0
  879. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0001_initial.py +0 -0
  880. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0002_auto_20191021_0353.py +0 -0
  881. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0003_auto_20191021_0534.py +0 -0
  882. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0004_auto_20191022_0134.py +0 -0
  883. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0005_auto_20191024_1000.py +0 -0
  884. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0006_auto_20191104_0756.py +0 -0
  885. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0007_auto_20191107_2249.py +0 -0
  886. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0008_auto_20191115_0132.py +0 -0
  887. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0009_auto_20191119_2331.py +0 -0
  888. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0010_auto_20191213_0314.py +0 -0
  889. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0011_auto_20200118_1854.py +0 -0
  890. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0012_auto_20200118_2334.py +0 -0
  891. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0013_auto_20200119_0013.py +0 -0
  892. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0014_auto_20200120_1622.py +0 -0
  893. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0015_auto_20200120_1943.py +0 -0
  894. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0016_auto_20200123_1508.py +0 -0
  895. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0017_auto_20200325_0901.py +0 -0
  896. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0018_coronakap_historicalcoronakap.py +0 -0
  897. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0019_auto_20200417_0315.py +0 -0
  898. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0020_auto_20200417_0329.py +0 -0
  899. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0021_auto_20200417_0332.py +0 -0
  900. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0022_auto_20200419_2223.py +0 -0
  901. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0023_auto_20200419_2305.py +0 -0
  902. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0024_auto_20200419_2331.py +0 -0
  903. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0025_auto_20200420_1455.py +0 -0
  904. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0026_auto_20200420_1524.py +0 -0
  905. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0027_auto_20200420_1645.py +0 -0
  906. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0028_auto_20200420_1732.py +0 -0
  907. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0029_auto_20200420_1751.py +0 -0
  908. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0030_auto_20200420_1816.py +0 -0
  909. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0031_auto_20200422_2039.py +0 -0
  910. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0032_auto_20200515_0307.py +0 -0
  911. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0033_auto_20200516_2356.py +0 -0
  912. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0034_auto_20200517_0125.py +0 -0
  913. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0035_auto_20200517_0128.py +0 -0
  914. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0036_auto_20200517_0150.py +0 -0
  915. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0037_auto_20200517_0207.py +0 -0
  916. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0038_auto_20200520_0020.py +0 -0
  917. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0039_auto_20200524_1944.py +0 -0
  918. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0040_auto_20200527_2155.py +0 -0
  919. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0041_auto_20200528_0242.py +0 -0
  920. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0042_auto_20200528_0252.py +0 -0
  921. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0043_auto_20200528_1555.py +0 -0
  922. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0044_auto_20200528_1853.py +0 -0
  923. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0045_auto_20200530_1801.py +0 -0
  924. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0046_auto_20200530_1804.py +0 -0
  925. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0047_auto_20200530_1819.py +0 -0
  926. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0048_auto_20200530_1819.py +0 -0
  927. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0049_auto_20200613_2041.py +0 -0
  928. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0050_auto_20200614_1934.py +0 -0
  929. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0051_auto_20200617_2117.py +0 -0
  930. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0052_auto_20210624_0225.py +0 -0
  931. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0053_auto_20210628_2105.py +0 -0
  932. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0054_auto_20210628_2314.py +0 -0
  933. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0055_auto_20210628_2331.py +0 -0
  934. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0056_auto_20210702_0426.py +0 -0
  935. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0057_auto_20210702_0458.py +0 -0
  936. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0058_auto_20210702_0533.py +0 -0
  937. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0059_auto_20210709_2056.py +0 -0
  938. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0060_auto_20210709_2241.py +0 -0
  939. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0061_auto_20210710_1929.py +0 -0
  940. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0062_auto_20210713_0616.py +0 -0
  941. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0063_auto_20210715_0337.py +0 -0
  942. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0064_auto_20210715_2336.py +0 -0
  943. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0065_auto_20210716_0813.py +0 -0
  944. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0066_auto_20210721_0335.py +0 -0
  945. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0067_auto_20210726_0340.py +0 -0
  946. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0068_auto_20210728_1809.py +0 -0
  947. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0069_auto_20210801_2021.py +0 -0
  948. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0070_auto_20210804_0438.py +0 -0
  949. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0071_auto_20210804_0715.py +0 -0
  950. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0072_auto_20210805_1545.py +0 -0
  951. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0073_auto_20210809_0055.py +0 -0
  952. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0074_auto_20210809_1744.py +0 -0
  953. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0075_auto_20210809_1744.py +0 -0
  954. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0076_auto_20210809_1854.py +0 -0
  955. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0077_auto_20210809_2323.py +0 -0
  956. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0078_auto_20210810_0857.py +0 -0
  957. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0079_auto_20210812_0335.py +0 -0
  958. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0080_auto_20210812_0400.py +0 -0
  959. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0081_auto_20210817_2306.py +0 -0
  960. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0082_auto_20210823_1612.py +0 -0
  961. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0083_auto_20210823_1620.py +0 -0
  962. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0084_auto_20210910_0234.py +0 -0
  963. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0085_auto_20210911_2036.py +0 -0
  964. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0086_auto_20210920_0229.py +0 -0
  965. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0087_auto_20210922_2058.py +0 -0
  966. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0088_auto_20210924_0027.py +0 -0
  967. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0089_auto_20210924_0121.py +0 -0
  968. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0090_auto_20210924_0424.py +0 -0
  969. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0091_auto_20210929_2324.py +0 -0
  970. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0092_auto_20211013_0447.py +0 -0
  971. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0093_auto_20211117_0352.py +0 -0
  972. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0094_auto_20211123_1645.py +0 -0
  973. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0095_auto_20220128_1719.py +0 -0
  974. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0096_auto_20220304_0501.py +0 -0
  975. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0097_auto_20220304_2233.py +0 -0
  976. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0098_auto_20220309_2106.py +0 -0
  977. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0099_auto_20220309_2218.py +0 -0
  978. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0100_auto_20220309_2238.py +0 -0
  979. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0101_auto_20220316_2147.py +0 -0
  980. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0102_auto_20220324_0304.py +0 -0
  981. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0103_auto_20220324_0326.py +0 -0
  982. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0104_auto_20220412_2151.py +0 -0
  983. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0105_auto_20220412_2310.py +0 -0
  984. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0106_auto_20220414_1741.py +0 -0
  985. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0107_auto_20220415_0043.py +0 -0
  986. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0108_auto_20220415_1747.py +0 -0
  987. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0109_auto_20220415_1758.py +0 -0
  988. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0110_auto_20220512_1811.py +0 -0
  989. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0111_alter_followupvitals_severe_htn_and_more.py +0 -0
  990. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0112_historicalsubjectvisit_document_status_comments_and_more.py +0 -0
  991. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0113_bloodresultsrft_egfr_percent_change_and_more.py +0 -0
  992. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0114_alter_bloodresultsrft_egfr_percent_change_and_more.py +0 -0
  993. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0115_historicalegfrnotification_egfrnotification.py +0 -0
  994. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0116_egfrnotification_report_status_and_more.py +0 -0
  995. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0117_alter_egfrnotification_managers_and_more.py +0 -0
  996. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0118_delivery_crf_status_delivery_crf_status_comments_and_more.py +0 -0
  997. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0119_historicalstudymedication_roundup_divisible_by_and_more.py +0 -0
  998. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0120_alter_birthoutcomes_managers_and_more.py +0 -0
  999. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0121_auto_20220704_1841.py +0 -0
  1000. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0122_auto_20220708_2144.py +0 -0
  1001. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0123_auto_20220714_2136.py +0 -0
  1002. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0124_auto_20220714_2303.py +0 -0
  1003. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0125_auto_20220719_2134.py +0 -0
  1004. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0126_auto_20220719_2142.py +0 -0
  1005. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0127_auto_20220720_0053.py +0 -0
  1006. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0128_auto_20220720_0055.py +0 -0
  1007. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0129_auto_20220720_0108.py +0 -0
  1008. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0130_auto_20220720_0216.py +0 -0
  1009. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0131_auto_20220722_0411.py +0 -0
  1010. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0132_auto_20220722_1825.py +0 -0
  1011. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0133_auto_20220722_2140.py +0 -0
  1012. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0134_auto_20220722_2211.py +0 -0
  1013. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0135_auto_20220722_2212.py +0 -0
  1014. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0136_egfrdropnotification_creatinine_quantifier_and_more.py +0 -0
  1015. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0137_alter_egfrdropnotification_egfr_percent_change_and_more.py +0 -0
  1016. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0138_alter_glucose_fbg_datetime_and_more.py +0 -0
  1017. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0139_alter_bloodresultsins_ins_units_and_more.py +0 -0
  1018. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0140_alter_bloodresultsfbc_action_identifier_and_more.py +0 -0
  1019. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0141_auto_20220826_0258.py +0 -0
  1020. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0142_auto_20220826_0322.py +0 -0
  1021. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0143_auto_20220826_0406.py +0 -0
  1022. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0144_auto_20220907_0157.py +0 -0
  1023. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0145_auto_20220907_0202.py +0 -0
  1024. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0146_auto_20220907_0207.py +0 -0
  1025. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0147_auto_20220907_1505.py +0 -0
  1026. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0148_auto_20220908_1826.py +0 -0
  1027. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0149_auto_20220913_2139.py +0 -0
  1028. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0150_auto_20220914_0039.py +0 -0
  1029. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0151_auto_20220918_0508.py +0 -0
  1030. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0152_auto_20220925_0509.py +0 -0
  1031. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0153_auto_20220928_0250.py +0 -0
  1032. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0154_auto_20220928_0419.py +0 -0
  1033. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0155_auto_20220929_1742.py +0 -0
  1034. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0156_alter_bloodresultsfbc_assay_datetime_and_more.py +0 -0
  1035. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0157_remove_bloodresultsfbc_crf_status_and_more.py +0 -0
  1036. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0158_alter_followupexamination_attended_clinic_and_more.py +0 -0
  1037. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0159_alter_bloodresultsfbc_results_abnormal_and_more.py +0 -0
  1038. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0160_alter_healtheconomicssimple_education_certificate_and_more.py +0 -0
  1039. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0161_alter_birthoutcomes_options_and_more.py +0 -0
  1040. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0162_alter_followupexamination_abdominal_tenderness_and_more.py +0 -0
  1041. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0163_alter_birthoutcomes_options_and_more.py +0 -0
  1042. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0164_dmreferralfollowup_historicaldmreferralfollowup.py +0 -0
  1043. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0165_alter_dmreferralfollowup_healthcare_workers.py +0 -0
  1044. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0166_rename_dm_medications_other_dmreferralfollowup_other_dm_medications_and_more.py +0 -0
  1045. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0167_rename_healthcare_workers_other_dmreferralfollowup_other_healthcare_workers_and_more.py +0 -0
  1046. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0168_alter_dmreferralfollowup_last_missed_pill_and_more.py +0 -0
  1047. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0169_alter_dmreferralfollowup_options_and_more.py +0 -0
  1048. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0170_remove_glucose_repeat_fbg_and_more.py +0 -0
  1049. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0171_alter_glucose_endpoint_today_and_more.py +0 -0
  1050. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0172_remove_historicalbloodresultsglu_action_item_and_more.py +0 -0
  1051. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0173_alter_glucosefbg_options_and_more.py +0 -0
  1052. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0174_remove_glucosefbg_glucose_abnormal_and_more.py +0 -0
  1053. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0175_auto_20240214_2239.py +0 -0
  1054. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0176_alter_glucosefbg_glucose_value_and_more.py +0 -0
  1055. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0177_alter_bloodresultslft_alp_value_and_more.py +0 -0
  1056. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0178_historicalhealtheconomicsupdate_and_more.py +0 -0
  1057. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0179_alter_birthoutcomes_consent_model_and_more.py +0 -0
  1058. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0180_dmreferralfollowup_missed_referral_reasons_and_more.py +0 -0
  1059. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0181_dmreferralfollowup_action_identifier_and_more.py +0 -0
  1060. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0182_rename_dmreferralfollowup_dmfollowup_and_more.py +0 -0
  1061. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0183_alter_dmfollowup_on_dm_medications_and_more.py +0 -0
  1062. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0184_alter_glucose_options_and_more.py +0 -0
  1063. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0185_alter_bloodresultsins_fasting_duration_str_and_more.py +0 -0
  1064. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0186_healtheconomicsupdate_singleton_field_and_more.py +0 -0
  1065. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0187_dmdiagnosis_historicaldmdiagnosis_dmdxresult_and_more.py +0 -0
  1066. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0188_historicaldmdxresult_dmdxresult.py +0 -0
  1067. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0189_alter_dmdxresult_options_and_more.py +0 -0
  1068. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0190_dmdiagnosis_dx_no_tmg_reason_and_more.py +0 -0
  1069. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0191_alter_dmdiagnosis_dx_no_tmg_reason_and_more.py +0 -0
  1070. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0192_rename_glucose_quantifier_glucosefbg_fbg_quantifier_and_more.py +0 -0
  1071. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0193_alter_glucosefbg_fbg_value_and_more.py +0 -0
  1072. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0194_remove_glucosefbg_assay_datetime_and_more.py +0 -0
  1073. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0195_alter_glucosefbg_fbg_datetime_and_more.py +0 -0
  1074. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0196_glucosefbg_fbg_not_performed_reason_and_more.py +0 -0
  1075. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0197_glucosefbg_fasting_duration_estimated_and_more.py +0 -0
  1076. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0198_alter_glucosefbg_fasting_duration_estimated_and_more.py +0 -0
  1077. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0199_auto_20240516_0247.py +0 -0
  1078. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0200_rename_fasting_duration_minutes_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
  1079. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0201_alter_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
  1080. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0202_auto_20240516_0315.py +0 -0
  1081. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0203_alter_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
  1082. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0204_glucosefbg_repeat_fbg_date_and_more.py +0 -0
  1083. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0205_historicalsubjectrequisition_crf_status_and_more.py +0 -0
  1084. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0206_bloodresultsfbc_crf_status_and_more.py +0 -0
  1085. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0207_alter_historicalphysicalexam_waist_circumference_and_more.py +0 -0
  1086. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0208_birthoutcomes_crf_status_and_more.py +0 -0
  1087. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0209_remove_historicaldmdxresult_dm_diagnosis_and_more.py +0 -0
  1088. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py +0 -0
  1089. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py +0 -0
  1090. {meta_edc-0.3.27/meta_subject/tests → meta_edc-0.3.29/meta_subject/migrations}/__init__.py +0 -0
  1091. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/model_mixins/__init__.py +0 -0
  1092. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/model_mixins/crf_model_mixin.py +0 -0
  1093. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/model_mixins/crf_with_action_model_mixin.py +0 -0
  1094. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/model_mixins/search_slug_model_mixin.py +0 -0
  1095. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/model_mixins/vitals_fields_model_mixin.py +0 -0
  1096. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/__init__.py +0 -0
  1097. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/birth_outcomes.py +0 -0
  1098. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/__init__.py +0 -0
  1099. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/blood_results_fbc.py +0 -0
  1100. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/blood_results_hba1c.py +0 -0
  1101. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/blood_results_ins.py +0 -0
  1102. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/blood_results_lft.py +0 -0
  1103. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/blood_results_lipid.py +0 -0
  1104. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/blood_results/blood_results_rft.py +0 -0
  1105. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/complications.py +0 -0
  1106. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/complications_glycemia.py +0 -0
  1107. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/concomitant_medication.py +0 -0
  1108. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/delivery.py +0 -0
  1109. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/diabetes/__init__.py +0 -0
  1110. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/diabetes/dm_endpoint.py +0 -0
  1111. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/diabetes/dm_followup.py +0 -0
  1112. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/diet_and_lifestyle.py +0 -0
  1113. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/egfr_drop_notification.py +0 -0
  1114. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/eq5d3l.py +0 -0
  1115. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/followup_examination.py +0 -0
  1116. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/followup_vitals.py +0 -0
  1117. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/glucose.py +0 -0
  1118. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/glucose_fbg.py +0 -0
  1119. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/glucose_review.py +0 -0
  1120. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/health_economics/__init__.py +0 -0
  1121. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/health_economics/health_economics.py +0 -0
  1122. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/health_economics/health_economics_simple.py +0 -0
  1123. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/health_economics/health_economics_update.py +0 -0
  1124. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/hepatitis_test.py +0 -0
  1125. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/malaria_test.py +0 -0
  1126. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/medication_adherence.py +0 -0
  1127. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/mnsi.py +0 -0
  1128. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/off_study_drug.py +0 -0
  1129. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/other_arv_regimens.py +0 -0
  1130. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/other_arv_regimens_detail.py +0 -0
  1131. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/patient_history.py +0 -0
  1132. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/physical_exam.py +0 -0
  1133. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/pregnancy_update.py +0 -0
  1134. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/sf12.py +0 -0
  1135. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/signals.py +0 -0
  1136. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/study_medication.py +0 -0
  1137. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/subject_requisition.py +0 -0
  1138. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/subject_visit.py +0 -0
  1139. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/subject_visit_missed.py +0 -0
  1140. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/todo.txt +0 -0
  1141. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/urine_dipstick_test.py +0 -0
  1142. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/models/urine_pregnancy.py +0 -0
  1143. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/static/meta_subject/slider.css +0 -0
  1144. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/static/meta_subject/slider.png +0 -0
  1145. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/templates/meta_subject/endpoint_review_instructions.html +0 -0
  1146. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/templates/meta_subject/widgets/slider.html +0 -0
  1147. {meta_edc-0.3.27/meta_subject/tests → meta_edc-0.3.29/meta_subject}/tests/__init__.py +0 -0
  1148. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/holidays.csv +0 -0
  1149. {meta_edc-0.3.27/meta_visit_schedule → meta_edc-0.3.29/meta_subject/tests/tests}/__init__.py +0 -0
  1150. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_egfr.py +0 -0
  1151. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_fixes.py +0 -0
  1152. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_followup.py +0 -0
  1153. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_manager_order.py +0 -0
  1154. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_medication_adherence.py +0 -0
  1155. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_metadata_rules.py +0 -0
  1156. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_mnsi.py +0 -0
  1157. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_patient_history_form.py +0 -0
  1158. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_physical_exam.py +0 -0
  1159. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_sf12.py +0 -0
  1160. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/tests/test_study_medication.py +0 -0
  1161. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/tests/urls.py +0 -0
  1162. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_subject/urls.py +0 -0
  1163. {meta_edc-0.3.27/meta_visit_schedule/migrations → meta_edc-0.3.29/meta_visit_schedule}/__init__.py +0 -0
  1164. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/apps.py +0 -0
  1165. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/constants.py +0 -0
  1166. {meta_edc-0.3.27/meta_visit_schedule/tests → meta_edc-0.3.29/meta_visit_schedule/migrations}/__init__.py +0 -0
  1167. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/models.py +0 -0
  1168. {meta_edc-0.3.27/meta_visit_schedule/tests → meta_edc-0.3.29/meta_visit_schedule}/tests/__init__.py +0 -0
  1169. {meta_edc-0.3.27 → meta_edc-0.3.29/meta_visit_schedule/tests}/tests/__init__.py +0 -0
  1170. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/tests/tests/test_schedule.py +0 -0
  1171. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/tests/urls.py +0 -0
  1172. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/__init__.py +0 -0
  1173. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/__init__.py +0 -0
  1174. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/crfs.py +0 -0
  1175. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/crfs_pregnancy.py +0 -0
  1176. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/requisitions.py +0 -0
  1177. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/schedule.py +0 -0
  1178. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py +0 -0
  1179. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py +0 -0
  1180. {meta_edc-0.3.27 → meta_edc-0.3.29}/meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py +0 -0
  1181. {meta_edc-0.3.27 → meta_edc-0.3.29}/pyproject.toml +0 -0
  1182. {meta_edc-0.3.27 → meta_edc-0.3.29}/releases +0 -0
  1183. {meta_edc-0.3.27 → meta_edc-0.3.29}/reports/20200603.py +0 -0
  1184. {meta_edc-0.3.27 → meta_edc-0.3.29}/runtests.py +0 -0
  1185. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/randomization_list.csv +0 -0
  1186. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/randomization_list_phase_three.csv +0 -0
  1187. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-aes-local.key +0 -0
  1188. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-aes-restricted.key +0 -0
  1189. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-rsa-local-private.pem +0 -0
  1190. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-rsa-local-public.pem +0 -0
  1191. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-rsa-restricted-private.pem +0 -0
  1192. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-rsa-restricted-public.pem +0 -0
  1193. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-salt-local.key +0 -0
  1194. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/etc/user-salt-restricted.key +0 -0
  1195. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/holidays.csv +0 -0
  1196. {meta_edc-0.3.27 → meta_edc-0.3.29}/tests/test_settings.py +0 -0
@@ -1,12 +1,24 @@
1
1
  Changes
2
2
  -------
3
3
 
4
+ 0.3.29
5
+ ------
6
+ - refactor view_definitions to use sql generators from
7
+ edc-qareports
8
+ - add OnStudyMissingValues report to META Reports
9
+ - bump edc 0.6.6
10
+
11
+ 0.3.27 - 0.3.28
12
+ ---------------
13
+ - bump edc 0.6.5
14
+
4
15
  0.3.26
5
16
  ------
6
17
  - add signal to recalculate Endpoint record if either model
7
18
  GlucoseFBG or Glucose is saved.
8
19
  - queue message on subject dashboard if subject reaches the protocol
9
20
  glucose / DM endpoint.
21
+ - bump edc 0.6.4
10
22
 
11
23
  0.3.25
12
24
  ------
@@ -14,7 +26,7 @@ Changes
14
26
  - add Endpoints report for ALL endpoints, not just those still
15
27
  on study
16
28
  - improve navigation between endpoint reports and glucose summary
17
-
29
+ - bump edc 0.6.3
18
30
 
19
31
  0.3.24
20
32
  ------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meta-edc
3
- Version: 0.3.27
3
+ Version: 0.3.29
4
4
  Summary: META Trial EDC (http://www.isrctn.com/ISRCTN76157257)
5
5
  Home-page: https://github.com/meta-trial/meta-edc
6
6
  Author: Erik van Widenfelt
@@ -20,7 +20,7 @@ Requires-Python: >=3.12
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
22
  License-File: AUTHORS
23
- Requires-Dist: edc==0.6.4
23
+ Requires-Dist: edc==0.6.6
24
24
  Requires-Dist: edc-microscopy
25
25
  Requires-Dist: beautifulsoup4
26
26
  Requires-Dist: edc-analytics
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meta-edc
3
- Version: 0.3.27
3
+ Version: 0.3.29
4
4
  Summary: META Trial EDC (http://www.isrctn.com/ISRCTN76157257)
5
5
  Home-page: https://github.com/meta-trial/meta-edc
6
6
  Author: Erik van Widenfelt
@@ -20,7 +20,7 @@ Requires-Python: >=3.12
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
22
  License-File: AUTHORS
23
- Requires-Dist: edc==0.6.4
23
+ Requires-Dist: edc==0.6.6
24
24
  Requires-Dist: edc-microscopy
25
25
  Requires-Dist: beautifulsoup4
26
26
  Requires-Dist: edc-analytics
@@ -511,6 +511,7 @@ meta_reports/death_report.py
511
511
  meta_reports/pdf_report.py
512
512
  meta_reports/tasks.py
513
513
  meta_reports/urls.py
514
+ meta_reports/utils.py
514
515
  meta_reports/admin/__init__.py
515
516
  meta_reports/admin/endpoints_admin.py
516
517
  meta_reports/admin/endpoints_all_admin.py
@@ -525,6 +526,8 @@ meta_reports/admin/unmanaged/unattended_two_in_row_admin.py
525
526
  meta_reports/admin/unmanaged/missing_screening_ogtt_admin/__init__.py
526
527
  meta_reports/admin/unmanaged/missing_screening_ogtt_admin/note_model_admin.py
527
528
  meta_reports/admin/unmanaged/missing_screening_ogtt_admin/unmanaged_model_admin.py
529
+ meta_reports/admin/unmanaged/on_study_missing_values_admin/__init__.py
530
+ meta_reports/admin/unmanaged/on_study_missing_values_admin/unmanaged_model_admin.py
528
531
  meta_reports/forms/__init__.py
529
532
  meta_reports/forms/missing_ogtt_note_form.py
530
533
  meta_reports/management/__init__.py
@@ -568,6 +571,8 @@ meta_reports/migrations/0035_historicalmissingogttnote_missingogttnote.py
568
571
  meta_reports/migrations/0036_historicalmissingogttnote_fasting_and_more.py
569
572
  meta_reports/migrations/0037_historicalmissingogttnote_result_status_and_more.py
570
573
  meta_reports/migrations/0038_alter_historicalmissingogttnote_fasting_and_more.py
574
+ meta_reports/migrations/0039_onstudymissingvalues.py
575
+ meta_reports/migrations/0040_auto_20240824_0412.py
571
576
  meta_reports/migrations/__init__.py
572
577
  meta_reports/models/__init__.py
573
578
  meta_reports/models/endpoints.py
@@ -581,6 +586,10 @@ meta_reports/models/dbviews/missing_screening_ogtt/__init__.py
581
586
  meta_reports/models/dbviews/missing_screening_ogtt/note_model.py
582
587
  meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py
583
588
  meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py
589
+ meta_reports/models/dbviews/on_study_missing_values/__init__.py
590
+ meta_reports/models/dbviews/on_study_missing_values/qa_cases.py
591
+ meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py
592
+ meta_reports/models/dbviews/on_study_missing_values/view_definition.py
584
593
  meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py
585
594
  meta_reports/models/dbviews/patient_history_missing_baseline_cd4/unmanaged_model.py
586
595
  meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py
@@ -1,4 +1,4 @@
1
- edc==0.6.4
1
+ edc==0.6.6
2
2
  edc-microscopy
3
3
  beautifulsoup4
4
4
  edc-analytics
@@ -4,6 +4,7 @@ from .unmanaged import (
4
4
  GlucoseSummaryAdmin,
5
5
  MissingOgttNoteModelAdmin,
6
6
  MissingScreeningOgttAdmin,
7
+ OnStudyMissingValuesAdmin,
7
8
  PatientHistoryMissingBaselineCd4Admin,
8
9
  UnattendedThreeInRow2Admin,
9
10
  UnattendedThreeInRowAdmin,
@@ -3,6 +3,7 @@ from .missing_screening_ogtt_admin import (
3
3
  MissingOgttNoteModelAdmin,
4
4
  MissingScreeningOgttAdmin,
5
5
  )
6
+ from .on_study_missing_values_admin import OnStudyMissingValuesAdmin
6
7
  from .patient_history_missing_baseline_cd4_admin import (
7
8
  PatientHistoryMissingBaselineCd4Admin,
8
9
  )
@@ -0,0 +1 @@
1
+ from .unmanaged_model_admin import OnStudyMissingValuesAdmin
@@ -0,0 +1,13 @@
1
+ from django.contrib import admin
2
+ from edc_qareports.modeladmin_mixins import OnStudyMissingValuesModelAdminMixin
3
+
4
+ from ....admin_site import meta_reports_admin
5
+ from ....models import OnStudyMissingValues
6
+
7
+
8
+ @admin.register(OnStudyMissingValues, site=meta_reports_admin)
9
+ class OnStudyMissingValuesAdmin(OnStudyMissingValuesModelAdminMixin, admin.ModelAdmin):
10
+
11
+ include_note_column: bool = True
12
+ project_reports_admin: str = "meta_reports_admin"
13
+ project_subject_admin: str = "meta_subject_admin"
@@ -0,0 +1,44 @@
1
+ # Generated by Django 5.0.8 on 2024-08-23 18:58
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("meta_reports", "0038_alter_historicalmissingogttnote_fasting_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.CreateModel(
14
+ name="OnstudyMissingValues",
15
+ fields=[
16
+ (
17
+ "id",
18
+ models.BigAutoField(
19
+ auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
20
+ ),
21
+ ),
22
+ ("report_model", models.CharField(max_length=50)),
23
+ ("subject_identifier", models.CharField(max_length=25)),
24
+ ("created", models.DateTimeField()),
25
+ ("dbtable", models.CharField(max_length=150, null=True)),
26
+ ("subject_visit_id", models.UUIDField(null=True)),
27
+ ("report_datetime", models.DateTimeField(null=True)),
28
+ ("label", models.CharField(max_length=50, null=True)),
29
+ ("visit_code", models.CharField(max_length=25, null=True)),
30
+ ("visit_code_sequence", models.IntegerField(null=True)),
31
+ ("schedule_name", models.CharField(max_length=25, null=True)),
32
+ ("user_created", models.CharField(max_length=25, null=True)),
33
+ ("user_modified", models.CharField(max_length=25, null=True)),
34
+ ("modified", models.DateTimeField(null=True)),
35
+ ],
36
+ options={
37
+ "verbose_name": "Missing values for on-study patient",
38
+ "verbose_name_plural": "Missing values for on-study patients",
39
+ "db_table": "onstudy_missing_values_view",
40
+ "managed": False,
41
+ "default_permissions": ("view", "export", "viewallsites"),
42
+ },
43
+ ),
44
+ ]
@@ -0,0 +1,282 @@
1
+ # Generated by Django 5.0.8 on 2024-08-24 01:12
2
+
3
+ import django_db_views.migration_functions
4
+ import django_db_views.operations
5
+ from django.db import migrations
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ("meta_reports", "0039_onstudymissingvalues"),
12
+ ]
13
+
14
+ operations = [
15
+ django_db_views.operations.ViewRunPython(
16
+ code=django_db_views.migration_functions.ForwardViewMigration(
17
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucose_summary_view' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
18
+ "glucose_summary_view",
19
+ engine="django.db.backends.mysql",
20
+ ),
21
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
22
+ '# noqa\nselect *, uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select v.subject_identifier, fbg_value, fbg_datetime, null as \'ogtt_value\', null as \'ogtt_datetime\',\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n UNION\n select v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n) as A\norder by subject_identifier, fbg_datetime',
23
+ "glucose_summary_view",
24
+ engine="django.db.backends.mysql",
25
+ ),
26
+ atomic=False,
27
+ ),
28
+ django_db_views.operations.ViewRunPython(
29
+ code=django_db_views.migration_functions.ForwardViewMigration(
30
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
31
+ "glucose_summary_view",
32
+ engine="django.db.backends.postgresql",
33
+ ),
34
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
35
+ '# noqa\nselect *, get_random_uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select v.subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n UNION\n select v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n) as A\norder by subject_identifier, fbg_datetime',
36
+ "glucose_summary_view",
37
+ engine="django.db.backends.postgresql",
38
+ ),
39
+ atomic=False,
40
+ ),
41
+ django_db_views.operations.ViewRunPython(
42
+ code=django_db_views.migration_functions.ForwardViewMigration(
43
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucose_summary_view' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
44
+ "glucose_summary_view",
45
+ engine="django.db.backends.sqlite3",
46
+ ),
47
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
48
+ '# noqa\nSELECT *, lower(\n hex(randomblob(4)) || \'-\' || hex(randomblob(2)) || \'-\' || \'4\' ||\n substr(hex( randomblob(2)), 2) || \'-\' ||\n substr(\'AB89\', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || \'-\' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select v.subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n UNION\n select v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier \n ) as A\norder by subject_identifier, fbg_datetime',
49
+ "glucose_summary_view",
50
+ engine="django.db.backends.sqlite3",
51
+ ),
52
+ atomic=False,
53
+ ),
54
+ django_db_views.operations.ViewRunPython(
55
+ code=django_db_views.migration_functions.ForwardViewMigration(
56
+ "select *, uuid() as id, now() as `created`, 'meta_reports.missing_screening_ogtt_view' as `report_model` from (SELECT screening_identifier, site_id, report_datetime AS `screening_datetime`, fbg_datetime, converted_fbg_value AS `fbg_value`, converted_ogtt_value AS `ogtt_value`, fbg2_value, ogtt2_value, repeat_glucose_performed AS `repeated`, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, screening_identifier AS `subject_identifier`, id AS `original_id` FROM meta_screening_subjectscreening WHERE NOT converted_fbg_value IS NULL AND converted_ogtt_value IS NULL AND unsuitable_agreed <> 'Yes') as A ORDER BY subject_identifier, site_id",
57
+ "missing_screening_ogtt_view",
58
+ engine="django.db.backends.mysql",
59
+ ),
60
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
61
+ "# noqa\n select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented,\n screening_identifier as subject_identifier, id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
62
+ "missing_screening_ogtt_view",
63
+ engine="django.db.backends.mysql",
64
+ ),
65
+ atomic=False,
66
+ ),
67
+ django_db_views.operations.ViewRunPython(
68
+ code=django_db_views.migration_functions.ForwardViewMigration(
69
+ 'select *, get_random_uuid() as id, now() as created, \'meta_reports.missing_screening_ogtt_view\' as report_model from (SELECT screening_identifier, site_id, report_datetime AS "screening_datetime", fbg_datetime, converted_fbg_value AS "fbg_value", converted_ogtt_value AS "ogtt_value", fbg2_value, ogtt2_value, repeat_glucose_performed AS "repeated", p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, screening_identifier AS "subject_identifier", id AS "original_id" FROM meta_screening_subjectscreening WHERE NOT converted_fbg_value IS NULL AND converted_ogtt_value IS NULL AND unsuitable_agreed <> \'Yes\') as A ORDER BY subject_identifier, site_id',
70
+ "missing_screening_ogtt_view",
71
+ engine="django.db.backends.postgresql",
72
+ ),
73
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
74
+ "# noqa\n select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented,\n screening_identifier as subject_identifier, id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
75
+ "missing_screening_ogtt_view",
76
+ engine="django.db.backends.postgresql",
77
+ ),
78
+ atomic=False,
79
+ ),
80
+ django_db_views.operations.ViewRunPython(
81
+ code=django_db_views.migration_functions.ForwardViewMigration(
82
+ 'select *, uuid() as id, datetime() as created, \'meta_reports.missing_screening_ogtt_view\' as report_model from (SELECT screening_identifier, site_id, report_datetime AS "screening_datetime", fbg_datetime, converted_fbg_value AS "fbg_value", converted_ogtt_value AS "ogtt_value", fbg2_value, ogtt2_value, repeat_glucose_performed AS "repeated", p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, screening_identifier AS "subject_identifier", id AS "original_id" FROM meta_screening_subjectscreening WHERE NOT converted_fbg_value IS NULL AND converted_ogtt_value IS NULL AND unsuitable_agreed <> \'Yes\') as A ORDER BY subject_identifier, site_id',
83
+ "missing_screening_ogtt_view",
84
+ engine="django.db.backends.sqlite3",
85
+ ),
86
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
87
+ "# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value,\n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented,\n screening_identifier as subject_identifier, id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
88
+ "missing_screening_ogtt_view",
89
+ engine="django.db.backends.sqlite3",
90
+ ),
91
+ atomic=False,
92
+ ),
93
+ django_db_views.operations.ViewRunPython(
94
+ code=django_db_views.migration_functions.ForwardViewMigration(
95
+ "select *, uuid() as id, now() as `created`, 'onstudy_missing_values_view' as `report_model` from (SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No HIV Diagnosis date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.hiv_diagnosis_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No VL value' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.viral_load IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No VL date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.viral_load_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No CD4 value' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.cd4 IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No CD4 date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.cd4_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No current ARV start date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.current_arv_regimen_start_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No current ARV start date but previous ARV is YES' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.has_previous_arv_regimen = 'YES' AND crf.current_arv_regimen_start_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'Other current ARV regimen missing' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id LEFT JOIN meta_lists_arvregimens AS arvregimen ON crf.current_arv_regimen_id = arvregimen.id WHERE crf.other_current_arv_regimen IS NULL AND arvregimen.name = 'OTHER' GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified) as A ORDER BY subject_identifier, site_id",
96
+ "onstudy_missing_values_view",
97
+ engine="django.db.backends.mysql",
98
+ ),
99
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
100
+ "", "onstudy_missing_values_view", engine="django.db.backends.mysql"
101
+ ),
102
+ atomic=False,
103
+ ),
104
+ django_db_views.operations.ViewRunPython(
105
+ code=django_db_views.migration_functions.ForwardViewMigration(
106
+ "select *, get_random_uuid() as id, now() as created, 'onstudy_missing_values_view' as report_model from (SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No HIV Diagnosis date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.hiv_diagnosis_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No VL value' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.viral_load IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No VL date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.viral_load_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No CD4 value' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.cd4 IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No CD4 date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.cd4_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No current ARV start date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.current_arv_regimen_start_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No current ARV start date but previous ARV is YES' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.has_previous_arv_regimen = 'YES' AND crf.current_arv_regimen_start_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'Other current ARV regimen missing' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id LEFT JOIN meta_lists_arvregimens AS arvregimen ON crf.current_arv_regimen_id = arvregimen.id WHERE crf.other_current_arv_regimen IS NULL AND arvregimen.name = 'OTHER' GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified) as A ORDER BY subject_identifier, site_id",
107
+ "onstudy_missing_values_view",
108
+ engine="django.db.backends.postgresql",
109
+ ),
110
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
111
+ "", "onstudy_missing_values_view", engine="django.db.backends.postgresql"
112
+ ),
113
+ atomic=False,
114
+ ),
115
+ django_db_views.operations.ViewRunPython(
116
+ code=django_db_views.migration_functions.ForwardViewMigration(
117
+ "select *, uuid() as id, datetime() as created, 'onstudy_missing_values_view' as report_model from (SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No HIV Diagnosis date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.hiv_diagnosis_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No VL value' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.viral_load IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No VL date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.viral_load_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No CD4 value' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.cd4 IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No CD4 date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.cd4_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No current ARV start date' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.current_arv_regimen_start_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'No current ARV start date but previous ARV is YES' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id WHERE crf.has_previous_arv_regimen = 'YES' AND crf.current_arv_regimen_start_date IS NULL GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified UNION SELECT v.subject_identifier, crf.id AS original_id, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified, 'meta_subject.patienthistory' AS label_lower, 'Other current ARV regimen missing' AS label, COUNT(*) AS records FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON v.id = crf.subject_visit_id LEFT JOIN meta_lists_arvregimens AS arvregimen ON crf.current_arv_regimen_id = arvregimen.id WHERE crf.other_current_arv_regimen IS NULL AND arvregimen.name = 'OTHER' GROUP BY v.subject_identifier, crf.subject_visit_id, crf.report_datetime, crf.site_id, v.visit_code, v.visit_code_sequence, v.schedule_name, crf.modified) as A ORDER BY subject_identifier, site_id",
118
+ "onstudy_missing_values_view",
119
+ engine="django.db.backends.sqlite3",
120
+ ),
121
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
122
+ "", "onstudy_missing_values_view", engine="django.db.backends.sqlite3"
123
+ ),
124
+ atomic=False,
125
+ ),
126
+ django_db_views.operations.ViewRunPython(
127
+ code=django_db_views.migration_functions.ForwardViewMigration(
128
+ "select *, uuid() as id, now() as `created`, 'meta_reports.patienthistorymissingbaselinecd4' as `report_model` from (SELECT subject_identifier, v.visit_code, v.visit_code_sequence, cd4, cd4_date, crf.site_id, crf.user_created, crf.user_modified, crf.modified FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON crf.subject_visit_id = v.id WHERE cd4 IS NULL OR cd4_date IS NULL) as A ORDER BY subject_identifier, site_id",
129
+ "patient_history_missing_baseline_cd4_view",
130
+ engine="django.db.backends.mysql",
131
+ ),
132
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
133
+ "select *, uuid() as id, now() as created, \n 'meta_reports.patienthistorymissingbaselinecd4' as report_model \n from (\n select subject_identifier, v.visit_code, v.visit_code_sequence,cd4,\n cd4_date, crf.site_id, crf.user_created, crf.user_modified,\n crf.modified\n from meta_subject_patienthistory as crf\n left join meta_subject_subjectvisit as v on crf.subject_visit_id=v.id\n where cd4 is null or cd4_date is null\n ) as A\n order by subject_identifier",
134
+ "patient_history_missing_baseline_cd4_view",
135
+ engine="django.db.backends.mysql",
136
+ ),
137
+ atomic=False,
138
+ ),
139
+ django_db_views.operations.ViewRunPython(
140
+ code=django_db_views.migration_functions.ForwardViewMigration(
141
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.patienthistorymissingbaselinecd4' as report_model from (SELECT subject_identifier, v.visit_code, v.visit_code_sequence, cd4, cd4_date, crf.site_id, crf.user_created, crf.user_modified, crf.modified FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON crf.subject_visit_id = v.id WHERE cd4 IS NULL OR cd4_date IS NULL) as A ORDER BY subject_identifier, site_id",
142
+ "patient_history_missing_baseline_cd4_view",
143
+ engine="django.db.backends.postgresql",
144
+ ),
145
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
146
+ "select *, get_random_uuid() as id, now() as created, \n 'meta_reports.patienthistorymissingbaselinecd4' as report_model \n from (\n select subject_identifier, v.visit_code, v.visit_code_sequence,cd4,\n cd4_date, crf.site_id, crf.user_created, crf.user_modified,\n crf.modified\n from meta_subject_patienthistory as crf\n left join meta_subject_subjectvisit as v on crf.subject_visit_id=v.id\n where cd4 is null or cd4_date is null\n ) as A\n order by subject_identifier",
147
+ "patient_history_missing_baseline_cd4_view",
148
+ engine="django.db.backends.postgresql",
149
+ ),
150
+ atomic=False,
151
+ ),
152
+ django_db_views.operations.ViewRunPython(
153
+ code=django_db_views.migration_functions.ForwardViewMigration(
154
+ "select *, uuid() as id, datetime() as created, 'meta_reports.patienthistorymissingbaselinecd4' as report_model from (SELECT subject_identifier, v.visit_code, v.visit_code_sequence, cd4, cd4_date, crf.site_id, crf.user_created, crf.user_modified, crf.modified FROM meta_subject_patienthistory AS crf LEFT JOIN meta_subject_subjectvisit AS v ON crf.subject_visit_id = v.id WHERE cd4 IS NULL OR cd4_date IS NULL) as A ORDER BY subject_identifier, site_id",
155
+ "patient_history_missing_baseline_cd4_view",
156
+ engine="django.db.backends.sqlite3",
157
+ ),
158
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
159
+ "SELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.patienthistorymissingbaselinecd4' as report_model \n from (\n select subject_identifier, v.visit_code, v.visit_code_sequence,cd4,\n cd4_date, crf.site_id, crf.user_created, crf.user_modified,\n crf.modified\n from meta_subject_patienthistory as crf\n left join meta_subject_subjectvisit as v on crf.subject_visit_id=v.id\n where cd4 is null or cd4_date is null\n ) as A\n order by subject_identifier",
160
+ "patient_history_missing_baseline_cd4_view",
161
+ engine="django.db.backends.sqlite3",
162
+ ),
163
+ atomic=False,
164
+ ),
165
+ django_db_views.operations.ViewRunPython(
166
+ code=django_db_views.migration_functions.ForwardViewMigration(
167
+ "select *, uuid() as id, now() as `created`, 'meta_reports.unattendedthreeinrow' as `report_model` from (SELECT subject_identifier, site_id, appt_datetime, `first_value`, `second_value`, `third_value`, DATEDIFF(`third_date`, `first_date`) AS `interval_days`, DATEDIFF(NOW(), `first_date`) AS `from_now_days` FROM (SELECT subject_identifier, site_id, appt_datetime, FIRST_VALUE(visit_code) OVER w AS `first_value`, NTH_VALUE(visit_code, 2) OVER w AS `second_value`, NTH_VALUE(visit_code, 3) OVER w AS `third_value`, FIRST_VALUE(appt_datetime) OVER w AS `first_date`, NTH_VALUE(appt_datetime, 3) OVER w AS `third_date` FROM edc_appointment_appointment WHERE visit_code_sequence = 0 AND appt_status = 'New' AND appt_datetime <= NOW() WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT `second_value` IS NULL AND NOT `third_value` IS NULL) as A ORDER BY subject_identifier, site_id",
168
+ "unattended_three_in_row_view",
169
+ engine="django.db.backends.mysql",
170
+ ),
171
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
172
+ "# noqa\n select *, uuid() as id, now() as created, 'meta_reports.unattendedthreeinrow' as `report_model` from (\n select subject_identifier, site_id, appt_datetime, `first_value`, `second_value`, `third_value`,\n datediff(third_date, first_date) as `interval_days`,\n datediff(now(), first_date) as `from_now_days`\n from (\n select subject_identifier, site_id, appt_datetime,\n FIRST_VALUE(visit_code) OVER w as `first_value`,\n NTH_VALUE(visit_code, 2) OVER w as `second_value`,\n NTH_VALUE(visit_code, 3) OVER w as `third_value`,\n FIRST_VALUE(appt_datetime) OVER w as `first_date`,\n NTH_VALUE(appt_datetime, 3) OVER w as `third_date`\n from edc_appointment_appointment where visit_code_sequence=0 and appt_status='New'\n and appt_datetime <= now()\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime ROWS UNBOUNDED PRECEDING)\n ) as A\n where `second_value` is not null and `third_value` is not null\n ) as B\n order by site_id, from_now_days desc",
173
+ "unattended_three_in_row_view",
174
+ engine="django.db.backends.mysql",
175
+ ),
176
+ atomic=False,
177
+ ),
178
+ django_db_views.operations.ViewRunPython(
179
+ code=django_db_views.migration_functions.ForwardViewMigration(
180
+ 'select *, get_random_uuid() as id, now() as created, \'meta_reports.unattendedthreeinrow\' as report_model from (SELECT subject_identifier, site_id, appt_datetime, "first_value", "second_value", "third_value", CAST(AGE(CAST("third_date" AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT) AS "interval_days", CAST(AGE(CAST(NOW() AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT) AS "from_now_days" FROM (SELECT subject_identifier, site_id, appt_datetime, FIRST_VALUE(visit_code) OVER w AS "first_value", NTH_VALUE(visit_code, 2) OVER w AS "second_value", NTH_VALUE(visit_code, 3) OVER w AS "third_value", FIRST_VALUE(appt_datetime) OVER w AS "first_date", NTH_VALUE(appt_datetime, 3) OVER w AS "third_date" FROM edc_appointment_appointment WHERE visit_code_sequence = 0 AND appt_status = \'New\' AND appt_datetime <= NOW() WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT "second_value" IS NULL AND NOT "third_value" IS NULL) as A ORDER BY subject_identifier, site_id',
181
+ "unattended_three_in_row_view",
182
+ engine="django.db.backends.postgresql",
183
+ ),
184
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
185
+ "# noqa\n select *, gen_random_uuid() as id, now() as created,\n 'meta_reports.unattendedthreeinrow' as report_model\n from (\n select subject_identifier, site_id, appt_datetime, first_value, second_value, third_value,\n EXTRACT(DAY FROM third_date - first_date) as interval_days,\n EXTRACT(DAY FROM now() - first_date) as from_now_days\n from (\n select subject_identifier,site_id,appt_datetime,\n FIRST_VALUE(visit_code) OVER w as first_value,\n NTH_VALUE(visit_code, 2) OVER w as second_value,\n NTH_VALUE(visit_code, 3) OVER w as third_value,\n FIRST_VALUE(appt_datetime) OVER w as first_date,\n NTH_VALUE(appt_datetime, 3) OVER w as third_date\n from edc_appointment_appointment where visit_code_sequence=0 and appt_status='New'\n and appt_datetime <= now()\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime ROWS UNBOUNDED PRECEDING)\n ) as A\n where second_value is not null and third_value is not null\n ) as B\n order by site_id, from_now_days desc",
186
+ "unattended_three_in_row_view",
187
+ engine="django.db.backends.postgresql",
188
+ ),
189
+ atomic=False,
190
+ ),
191
+ django_db_views.operations.ViewRunPython(
192
+ code=django_db_views.migration_functions.ForwardViewMigration(
193
+ 'select *, uuid() as id, datetime() as created, \'meta_reports.unattendedthreeinrow\' as report_model from (SELECT subject_identifier, site_id, appt_datetime, "first_value", "second_value", "third_value", CAST((JULIANDAY("third_date") - JULIANDAY("first_date")) AS INTEGER) AS "interval_days", CAST((JULIANDAY(NOW()) - JULIANDAY("first_date")) AS INTEGER) AS "from_now_days" FROM (SELECT subject_identifier, site_id, appt_datetime, FIRST_VALUE(visit_code) OVER w AS "first_value", NTH_VALUE(visit_code, 2) OVER w AS "second_value", NTH_VALUE(visit_code, 3) OVER w AS "third_value", FIRST_VALUE(appt_datetime) OVER w AS "first_date", NTH_VALUE(appt_datetime, 3) OVER w AS "third_date" FROM edc_appointment_appointment WHERE visit_code_sequence = 0 AND appt_status = \'New\' AND appt_datetime <= NOW() WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT "second_value" IS NULL AND NOT "third_value" IS NULL) as A ORDER BY subject_identifier, site_id',
194
+ "unattended_three_in_row_view",
195
+ engine="django.db.backends.sqlite3",
196
+ ),
197
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
198
+ "# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as created,'meta_reports.unattendedthreeinrow' as report_model from (\n select subject_identifier, site_id, appt_datetime, first_value, second_value, third_value,\n CAST(JulianDay(third_date) - JulianDay(first_date) AS INTEGER) as interval_days,\n CAST(JulianDay(datetime()) - JulianDay(first_date) AS INTEGER) as from_now_days\n from (\n select subject_identifier, site_id, appt_datetime,\n FIRST_VALUE(visit_code) OVER w as first_value,\n NTH_VALUE(visit_code, 2) OVER w as second_value,\n NTH_VALUE(visit_code, 3) OVER w as third_value,\n FIRST_VALUE(appt_datetime) OVER w as first_date,\n NTH_VALUE(appt_datetime, 3) OVER w as third_date\n from edc_appointment_appointment where visit_code_sequence=0 and appt_status='New'\n and appt_datetime <= datetime()\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime ROWS UNBOUNDED PRECEDING)\n ) as A\n where second_value is not null and third_value is not null\n ) as B\n order by site_id, from_now_days desc",
199
+ "unattended_three_in_row_view",
200
+ engine="django.db.backends.sqlite3",
201
+ ),
202
+ atomic=False,
203
+ ),
204
+ django_db_views.operations.ViewRunPython(
205
+ code=django_db_views.migration_functions.ForwardViewMigration(
206
+ "with appointments as (select subject_identifier, site_id, visit_code, visit_code_sequence,\nappt_datetime, case when appt_timing=\"missed\" then \"New\" else appt_status end as `appt_status`,\ncase when appt_timing=\"missed\" then 1 else 0 end as `missed`\nfrom edc_appointment_appointment\nwhere visit_code_sequence=0 and appt_datetime<=now()\norder by subject_identifier, appt_datetime) select *, uuid() as id, now() as `created`, 'meta_reports.unattendedthreeinrow2' as `report_model` from (SELECT DISTINCT subject_identifier, site_id, `first_value`, `second_value`, `third_value`, DATEDIFF(`third_date`, `first_date`) AS interval_days, DATEDIFF(NOW(), `first_date`) AS from_now_days, `first_status`, `second_status`, `third_status`, SUM(missed) AS missed_count FROM (SELECT subject_identifier, site_id, appt_datetime, `missed`, FIRST_VALUE(appt_status) OVER w AS `third_status`, NTH_VALUE(appt_status, 2) OVER w AS `second_status`, NTH_VALUE(appt_status, 3) OVER w AS `first_status`, FIRST_VALUE(visit_code) OVER w AS `third_value`, NTH_VALUE(visit_code, 2) OVER w AS `second_value`, NTH_VALUE(visit_code, 3) OVER w AS `first_value`, FIRST_VALUE(appt_datetime) OVER w AS `third_date`, NTH_VALUE(appt_datetime, 2) OVER w AS `second_date`, NTH_VALUE(appt_datetime, 3) OVER w AS `first_date` FROM appointments WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT `second_value` IS NULL AND NOT `third_value` IS NULL AND `first_status` = 'New' AND `second_status` = 'New' AND `third_status` = 'New' GROUP BY subject_identifier, site_id, `first_value`, `second_value`, `third_value`, DATEDIFF(`third_date`, `first_date`), DATEDIFF(NOW(), `first_date`), `first_status`, `second_status`, `third_status` ORDER BY subject_identifier, site_id) as A ORDER BY subject_identifier, site_id",
207
+ "unattended_three_in_row2_view",
208
+ engine="django.db.backends.mysql",
209
+ ),
210
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
211
+ "# noqa\n with appointments as (\n select subject_identifier, site_id, visit_code, visit_code_sequence, appt_datetime,\n case when appt_timing='missed' then 'New' else appt_status end as `appt_status`,\n case when appt_timing='missed' then 1 else 0 end as `missed`\n from edc_appointment_appointment\n where visit_code_sequence=0 and appt_datetime<=now()\n order by subject_identifier, appt_datetime\n )\n select *, uuid() as `id`, now() as `created`, 'meta_reports.unattendedthreeinrow2' as `report_model` from (\n select distinct subject_identifier, site_id, `first_value`, `second_value`, `third_value`,\n datediff(third_date, first_date) as `interval_days`,\n datediff(now(), first_date) as `from_now_days`,\n `first_status`, `second_status`, `third_status`, sum(missed) as `missed_count`\n from (\n select subject_identifier,site_id,appt_datetime, missed,\n FIRST_VALUE(appt_status) OVER w as `third_status`,\n NTH_VALUE(appt_status, 2) OVER w as `second_status`,\n NTH_VALUE(appt_status, 3) OVER w as `first_status`,\n FIRST_VALUE(visit_code) OVER w as `third_value`,\n NTH_VALUE(visit_code, 2) OVER w as `second_value`,\n NTH_VALUE(visit_code, 3) OVER w as `first_value`,\n FIRST_VALUE(appt_datetime) OVER w as `third_date`,\n NTH_VALUE(appt_datetime, 2) OVER w as `second_date`,\n NTH_VALUE(appt_datetime, 3) OVER w as `first_date`\n from appointments\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime desc ROWS UNBOUNDED PRECEDING)\n ) as A\n where `second_value` is not null and `third_value` is not null\n and `first_status`='New'\n and `second_status`='New'\n and `third_status`='New'\n group by subject_identifier, site_id, `first_value`, `second_value`, `third_value`,\n datediff(`third_date`, `first_date`),\n datediff(now(), `first_date`),\n `first_status`, `second_status`, `third_status`\n order by subject_identifier, site_id\n ) as B",
212
+ "unattended_three_in_row2_view",
213
+ engine="django.db.backends.mysql",
214
+ ),
215
+ atomic=False,
216
+ ),
217
+ django_db_views.operations.ViewRunPython(
218
+ code=django_db_views.migration_functions.ForwardViewMigration(
219
+ 'with appointments as (select subject_identifier, site_id, visit_code, visit_code_sequence,\nappt_datetime, case when appt_timing="missed" then "New" else appt_status end as `appt_status`,\ncase when appt_timing="missed" then 1 else 0 end as `missed`\nfrom edc_appointment_appointment\nwhere visit_code_sequence=0 and appt_datetime<=now()\norder by subject_identifier, appt_datetime) select *, get_random_uuid() as id, now() as created, \'meta_reports.unattendedthreeinrow2\' as report_model from (SELECT DISTINCT subject_identifier, site_id, "first_value", "second_value", "third_value", CAST(AGE(CAST("third_date" AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT) AS interval_days, CAST(AGE(CAST(NOW() AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT) AS from_now_days, "first_status", "second_status", "third_status", SUM(missed) AS missed_count FROM (SELECT subject_identifier, site_id, appt_datetime, "missed", FIRST_VALUE(appt_status) OVER w AS "third_status", NTH_VALUE(appt_status, 2) OVER w AS "second_status", NTH_VALUE(appt_status, 3) OVER w AS "first_status", FIRST_VALUE(visit_code) OVER w AS "third_value", NTH_VALUE(visit_code, 2) OVER w AS "second_value", NTH_VALUE(visit_code, 3) OVER w AS "first_value", FIRST_VALUE(appt_datetime) OVER w AS "third_date", NTH_VALUE(appt_datetime, 2) OVER w AS "second_date", NTH_VALUE(appt_datetime, 3) OVER w AS "first_date" FROM appointments WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime DESC NULLS LAST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT "second_value" IS NULL AND NOT "third_value" IS NULL AND "first_status" = \'New\' AND "second_status" = \'New\' AND "third_status" = \'New\' GROUP BY subject_identifier, site_id, "first_value", "second_value", "third_value", CAST(AGE(CAST("third_date" AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT), CAST(AGE(CAST(NOW() AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT), "first_status", "second_status", "third_status" ORDER BY subject_identifier NULLS FIRST, site_id NULLS FIRST) as A ORDER BY subject_identifier, site_id',
220
+ "unattended_three_in_row2_view",
221
+ engine="django.db.backends.postgresql",
222
+ ),
223
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
224
+ "# noqa\n with appointments as (\n select subject_identifier, site_id, visit_code, visit_code_sequence, appt_datetime,\n case when appt_timing='missed' then 'New' else appt_status end as appt_status,\n case when appt_timing='missed' then 1 else 0 end as missed\n from edc_appointment_appointment\n where visit_code_sequence=0 and appt_datetime<=now()\n order by subject_identifier, appt_datetime\n )\n select *, gen_random_uuid() as id, now() as created, 'meta_reports.unattendedthreeinrow2' as report_model\n from (\n select distinct subject_identifier, site_id, first_value, second_value, third_value,\n EXTRACT(DAY FROM third_date - first_date) as interval_days,\n EXTRACT(DAY FROM now() - first_date) as from_now_days,\n first_status, second_status, third_status, sum(missed) as missed_count\n from (\n select subject_identifier,site_id,appt_datetime, missed,\n FIRST_VALUE(appt_status) OVER w as third_status,\n NTH_VALUE(appt_status, 2) OVER w as second_status,\n NTH_VALUE(appt_status, 3) OVER w as first_status,\n FIRST_VALUE(visit_code) OVER w as third_value,\n NTH_VALUE(visit_code, 2) OVER w as second_value,\n NTH_VALUE(visit_code, 3) OVER w as first_value,\n FIRST_VALUE(appt_datetime) OVER w as third_date,\n NTH_VALUE(appt_datetime, 2) OVER w as second_date,\n NTH_VALUE(appt_datetime, 3) OVER w as first_date\n from appointments\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime desc ROWS UNBOUNDED PRECEDING)\n ) as A\n where second_value is not null and third_value is not null\n and first_status='New'\n and second_status='New'\n and third_status='New'\n group by subject_identifier, site_id, first_value, second_value, third_value,\n EXTRACT(DAY FROM third_date - first_date),\n EXTRACT(DAY FROM now() - first_date),\n first_status, second_status, third_status\n order by subject_identifier, site_id\n ) as B",
225
+ "unattended_three_in_row2_view",
226
+ engine="django.db.backends.postgresql",
227
+ ),
228
+ atomic=False,
229
+ ),
230
+ django_db_views.operations.ViewRunPython(
231
+ code=django_db_views.migration_functions.ForwardViewMigration(
232
+ 'with appointments as (select subject_identifier, site_id, visit_code, visit_code_sequence,\nappt_datetime, case when appt_timing="missed" then "New" else appt_status end as `appt_status`,\ncase when appt_timing="missed" then 1 else 0 end as `missed`\nfrom edc_appointment_appointment\nwhere visit_code_sequence=0 and appt_datetime<=now()\norder by subject_identifier, appt_datetime) select *, uuid() as id, datetime() as created, \'meta_reports.unattendedthreeinrow2\' as report_model from (SELECT DISTINCT subject_identifier, site_id, "first_value", "second_value", "third_value", CAST((JULIANDAY("third_date") - JULIANDAY("first_date")) AS INTEGER) AS interval_days, CAST((JULIANDAY(NOW()) - JULIANDAY("first_date")) AS INTEGER) AS from_now_days, "first_status", "second_status", "third_status", SUM(missed) AS missed_count FROM (SELECT subject_identifier, site_id, appt_datetime, "missed", FIRST_VALUE(appt_status) OVER w AS "third_status", NTH_VALUE(appt_status, 2) OVER w AS "second_status", NTH_VALUE(appt_status, 3) OVER w AS "first_status", FIRST_VALUE(visit_code) OVER w AS "third_value", NTH_VALUE(visit_code, 2) OVER w AS "second_value", NTH_VALUE(visit_code, 3) OVER w AS "first_value", FIRST_VALUE(appt_datetime) OVER w AS "third_date", NTH_VALUE(appt_datetime, 2) OVER w AS "second_date", NTH_VALUE(appt_datetime, 3) OVER w AS "first_date" FROM appointments WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT "second_value" IS NULL AND NOT "third_value" IS NULL AND "first_status" = \'New\' AND "second_status" = \'New\' AND "third_status" = \'New\' GROUP BY subject_identifier, site_id, "first_value", "second_value", "third_value", CAST((JULIANDAY("third_date") - JULIANDAY("first_date")) AS INTEGER), CAST((JULIANDAY(NOW()) - JULIANDAY("first_date")) AS INTEGER), "first_status", "second_status", "third_status" ORDER BY subject_identifier, site_id) as A ORDER BY subject_identifier, site_id',
233
+ "unattended_three_in_row2_view",
234
+ engine="django.db.backends.sqlite3",
235
+ ),
236
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
237
+ "# noqa\n with appointments as (\n select subject_identifier, site_id, visit_code, visit_code_sequence, appt_datetime,\n case when appt_timing='missed' then 'New' else appt_status end as `appt_status`,\n case when appt_timing='missed' then 1 else 0 end as `missed`\n from edc_appointment_appointment\n where visit_code_sequence=0 and appt_datetime<=now()\n order by subject_identifier, appt_datetime\n )\n SELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as created, 'meta_reports.unattendedthreeinrow2' as report_model from (\n select distinct subject_identifier, site_id, first_value, second_value, third_value,\n CAST(JulianDay(third_date) - JulianDay(first_date) AS Integer) as interval_days,\n CAST(JulianDay(datetime()) - JulianDay(first_date) AS Integer) as from_now_days,\n first_status, second_status, third_status, sum(missed) as missed_count\n from (\n select subject_identifier,site_id,appt_datetime, missed,\n FIRST_VALUE(appt_status) OVER w as third_status,\n NTH_VALUE(appt_status, 2) OVER w as second_status,\n NTH_VALUE(appt_status, 3) OVER w as first_status,\n FIRST_VALUE(visit_code) OVER w as third_value,\n NTH_VALUE(visit_code, 2) OVER w as second_value,\n NTH_VALUE(visit_code, 3) OVER w as first_value,\n FIRST_VALUE(appt_datetime) OVER w as third_date,\n NTH_VALUE(appt_datetime, 2) OVER w as second_date,\n NTH_VALUE(appt_datetime, 3) OVER w as first_date\n from appointments\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime desc ROWS UNBOUNDED PRECEDING)\n ) as A\n where second_value is not null and third_value is not null\n and first_status='New'\n and second_status='New'\n and third_status='New'\n group by subject_identifier, site_id, first_value, second_value, third_value,\n CAST(JulianDay(third_date) - JulianDay(first_date) AS Integer),\n CAST(JulianDay(datetime()) - JulianDay(first_date) AS Integer),\n first_status, second_status, third_status\n order by subject_identifier, site_id\n ) as B",
238
+ "unattended_three_in_row2_view",
239
+ engine="django.db.backends.sqlite3",
240
+ ),
241
+ atomic=False,
242
+ ),
243
+ django_db_views.operations.ViewRunPython(
244
+ code=django_db_views.migration_functions.ForwardViewMigration(
245
+ "select *, uuid() as id, now() as `created`, 'meta_reports.unattendedtwoinrow' as `report_model` from (SELECT subject_identifier, site_id, appt_datetime, `first_value`, `second_value`, DATEDIFF(`second_date`, `first_date`) AS interval_days, DATEDIFF(NOW(), `first_date`) AS from_now_days FROM (SELECT subject_identifier, site_id, appt_datetime, FIRST_VALUE(visit_code) OVER w AS `first_value`, NTH_VALUE(visit_code, 2) OVER w AS `second_value`, NTH_VALUE(visit_code, 3) OVER w AS `third_value`, FIRST_VALUE(appt_datetime) OVER w AS `first_date`, NTH_VALUE(appt_datetime, 2) OVER w AS `second_date` FROM edc_appointment_appointment WHERE visit_code_sequence = 0 AND appt_status = 'New' AND appt_datetime <= NOW() WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT `second_value` IS NULL AND `third_value` IS NULL) as A ORDER BY site_id, from_now_days desc",
246
+ "unattended_two_in_row_view",
247
+ engine="django.db.backends.mysql",
248
+ ),
249
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
250
+ "# noqa\n select *, uuid() as `id`, now() as `created`, 'meta_reports.unattendedtwoinrow' as report_model from (\n select subject_identifier, site_id, appt_datetime, `first_value`, `second_value`,\n datediff(`second_date`, `first_date`) as `interval_days`,\n datediff(now(), `first_date`) as `from_now_days`\n from (\n select subject_identifier ,site_id, appt_datetime,\n FIRST_VALUE(`visit_code`) OVER w as `first_value`,\n NTH_VALUE(`visit_code`, 2) OVER w as `second_value`,\n NTH_VALUE(`visit_code`, 3) OVER w as `third_value`,\n FIRST_VALUE(`appt_datetime`) OVER w as `first_date`,\n NTH_VALUE(`appt_datetime`, 2) OVER w as `second_date`\n from edc_appointment_appointment where visit_code_sequence=0 and appt_status='New'\n and appt_datetime <= now()\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime ROWS UNBOUNDED PRECEDING)\n ) as A1\n where `second_value` is not null and `third_value` is null\n ) as A2\n order by site_id, `from_now_days` desc",
251
+ "unattended_two_in_row_view",
252
+ engine="django.db.backends.mysql",
253
+ ),
254
+ atomic=False,
255
+ ),
256
+ django_db_views.operations.ViewRunPython(
257
+ code=django_db_views.migration_functions.ForwardViewMigration(
258
+ 'select *, get_random_uuid() as id, now() as created, \'meta_reports.unattendedtwoinrow\' as report_model from (SELECT subject_identifier, site_id, appt_datetime, "first_value", "second_value", CAST(AGE(CAST("second_date" AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT) AS interval_days, CAST(AGE(CAST(NOW() AS TIMESTAMP), CAST("first_date" AS TIMESTAMP)) AS BIGINT) AS from_now_days FROM (SELECT subject_identifier, site_id, appt_datetime, FIRST_VALUE(visit_code) OVER w AS "first_value", NTH_VALUE(visit_code, 2) OVER w AS "second_value", NTH_VALUE(visit_code, 3) OVER w AS "third_value", FIRST_VALUE(appt_datetime) OVER w AS "first_date", NTH_VALUE(appt_datetime, 2) OVER w AS "second_date" FROM edc_appointment_appointment WHERE visit_code_sequence = 0 AND appt_status = \'New\' AND appt_datetime <= NOW() WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT "second_value" IS NULL AND "third_value" IS NULL) as A ORDER BY site_id, from_now_days desc',
259
+ "unattended_two_in_row_view",
260
+ engine="django.db.backends.postgresql",
261
+ ),
262
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
263
+ "# noqa\n select *, gen_random_uuid() as id, now() as created, 'meta_reports.unattendedtwoinrow' as report_model\n from (\n select subject_identifier, site_id, appt_datetime, first_value, second_value,\n EXTRACT(DAY FROM second_date - first_date) as interval_days,\n EXTRACT(DAY FROM now() - first_date) as from_now_days\n from (\n select subject_identifier, site_id, appt_datetime,\n FIRST_VALUE(visit_code) OVER w as first_value,\n NTH_VALUE(visit_code, 2) OVER w as second_value,\n NTH_VALUE(visit_code, 3) OVER w as third_value,\n FIRST_VALUE(appt_datetime) OVER w as first_date,\n NTH_VALUE(appt_datetime, 2) OVER w as second_date\n from edc_appointment_appointment where visit_code_sequence=0 and appt_status='New'\n and appt_datetime <= now()\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime ROWS UNBOUNDED PRECEDING)\n ) as A1\n where second_value is not null and third_value is null\n ) as A2\n order by site_id, from_now_days desc",
264
+ "unattended_two_in_row_view",
265
+ engine="django.db.backends.postgresql",
266
+ ),
267
+ atomic=False,
268
+ ),
269
+ django_db_views.operations.ViewRunPython(
270
+ code=django_db_views.migration_functions.ForwardViewMigration(
271
+ 'select *, uuid() as id, datetime() as created, \'meta_reports.unattendedtwoinrow\' as report_model from (SELECT subject_identifier, site_id, appt_datetime, "first_value", "second_value", CAST((JULIANDAY("second_date") - JULIANDAY("first_date")) AS INTEGER) AS interval_days, CAST((JULIANDAY(NOW()) - JULIANDAY("first_date")) AS INTEGER) AS from_now_days FROM (SELECT subject_identifier, site_id, appt_datetime, FIRST_VALUE(visit_code) OVER w AS "first_value", NTH_VALUE(visit_code, 2) OVER w AS "second_value", NTH_VALUE(visit_code, 3) OVER w AS "third_value", FIRST_VALUE(appt_datetime) OVER w AS "first_date", NTH_VALUE(appt_datetime, 2) OVER w AS "second_date" FROM edc_appointment_appointment WHERE visit_code_sequence = 0 AND appt_status = \'New\' AND appt_datetime <= NOW() WINDOW w AS (PARTITION BY subject_identifier ORDER BY appt_datetime ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS B WHERE NOT "second_value" IS NULL AND "third_value" IS NULL) as A ORDER BY site_id, from_now_days desc',
272
+ "unattended_two_in_row_view",
273
+ engine="django.db.backends.sqlite3",
274
+ ),
275
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
276
+ "# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as created, 'meta_reports.unattendedtwoinrow' as report_model from (\n select subject_identifier, site_id, appt_datetime, first_value, second_value,\n CAST(JulianDay(second_date) - JulianDay(first_date) AS Integer) as interval_days,\n CAST(JulianDay(datetime()) - JulianDay(first_date) AS Integer) as from_now_days\n from (\n select subject_identifier ,site_id, appt_datetime,\n FIRST_VALUE(visit_code) OVER w as first_value,\n NTH_VALUE(visit_code, 2) OVER w as second_value,\n NTH_VALUE(visit_code, 3) OVER w as third_value,\n FIRST_VALUE(appt_datetime) OVER w as first_date,\n NTH_VALUE(appt_datetime, 2) OVER w as second_date\n from edc_appointment_appointment where visit_code_sequence=0 and appt_status='New'\n and appt_datetime <= datetime()\n WINDOW w as (PARTITION BY subject_identifier order by appt_datetime ROWS UNBOUNDED PRECEDING)\n ) as A1\n where second_value is not null and third_value is null\n ) as A2\n order by site_id, from_now_days desc",
277
+ "unattended_two_in_row_view",
278
+ engine="django.db.backends.sqlite3",
279
+ ),
280
+ atomic=False,
281
+ ),
282
+ ]
@@ -3,6 +3,7 @@ from .dbviews import (
3
3
  GlucoseSummary,
4
4
  MissingOgttNote,
5
5
  MissingScreeningOgtt,
6
+ OnStudyMissingValues,
6
7
  PatientHistoryMissingBaselineCd4,
7
8
  UnattendedThreeInRow,
8
9
  UnattendedThreeInRow2,
@@ -1,5 +1,6 @@
1
1
  from .glucose_summary import GlucoseSummary
2
2
  from .missing_screening_ogtt import NOTE_STATUSES, MissingOgttNote, MissingScreeningOgtt
3
+ from .on_study_missing_values import OnStudyMissingValues
3
4
  from .patient_history_missing_baseline_cd4 import PatientHistoryMissingBaselineCd4
4
5
  from .unattended_three_in_row import UnattendedThreeInRow
5
6
  from .unattended_three_in_row2 import UnattendedThreeInRow2