meta-edc 1.1.10__py3-none-any.whl → 1.1.13__py3-none-any.whl

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.

Potentially problematic release.


This version of meta-edc might be problematic. Click here for more details.

Files changed (1141) hide show
  1. meta_ae/__init__.py +0 -0
  2. meta_ae/action_items.py +2 -1
  3. meta_ae/admin/__init__.py +11 -0
  4. meta_ae/admin/ae_followup_admin.py +0 -0
  5. meta_ae/admin/ae_initial_admin.py +0 -0
  6. meta_ae/admin/ae_local_review_admin.py +0 -0
  7. meta_ae/admin/ae_sponsor_review_admin.py +0 -0
  8. meta_ae/admin/ae_susar_admin.py +1 -1
  9. meta_ae/admin/ae_tmg_admin.py +0 -0
  10. meta_ae/admin/death_report_admin.py +1 -1
  11. meta_ae/admin/death_report_tmg_admin.py +0 -0
  12. meta_ae/admin/death_report_tmg_second_admin.py +0 -0
  13. meta_ae/admin/hospitalization_admin.py +0 -0
  14. meta_ae/admin/modeladmin_mixins.py +10 -12
  15. meta_ae/admin_site.py +0 -0
  16. meta_ae/apps.py +0 -0
  17. meta_ae/baker_recipes.py +3 -3
  18. meta_ae/choices.py +0 -0
  19. meta_ae/constants.py +0 -0
  20. meta_ae/forms/__init__.py +13 -0
  21. meta_ae/forms/ae_followup_form.py +0 -0
  22. meta_ae/forms/ae_initial_form.py +0 -0
  23. meta_ae/forms/ae_local_review_form.py +0 -0
  24. meta_ae/forms/ae_sponsor_review_form.py +0 -0
  25. meta_ae/forms/ae_susar_form.py +0 -0
  26. meta_ae/forms/ae_tmg_form.py +0 -0
  27. meta_ae/forms/death_report_form.py +0 -0
  28. meta_ae/forms/death_report_tmg_form.py +0 -0
  29. meta_ae/forms/death_report_tmg_second_form.py +0 -0
  30. meta_ae/forms/hospitalization_form.py +0 -0
  31. meta_ae/forms/modelform_mixins.py +2 -2
  32. meta_ae/list_data.py +0 -0
  33. meta_ae/migrations/0001_initial.py +27 -27
  34. meta_ae/migrations/0002_auto_20191024_1000.py +0 -0
  35. meta_ae/migrations/0003_auto_20191102_0033.py +0 -0
  36. meta_ae/migrations/0004_auto_20191114_0821.py +0 -0
  37. meta_ae/migrations/0005_auto_20210624_0225.py +0 -0
  38. meta_ae/migrations/0006_aelocalreview_aesponsorreview.py +5 -5
  39. meta_ae/migrations/0007_auto_20210911_2036.py +0 -0
  40. meta_ae/migrations/0008_auto_20211011_1657.py +0 -0
  41. meta_ae/migrations/0009_auto_20220307_1929.py +0 -0
  42. meta_ae/migrations/0010_auto_20220704_1841.py +0 -0
  43. meta_ae/migrations/0011_alter_aefollowup_action_identifier_and_more.py +0 -0
  44. meta_ae/migrations/0012_auto_20220826_0258.py +0 -0
  45. meta_ae/migrations/0013_auto_20220826_0322.py +0 -0
  46. meta_ae/migrations/0014_auto_20220826_0406.py +0 -0
  47. meta_ae/migrations/0015_auto_20220907_0157.py +0 -0
  48. meta_ae/migrations/0016_rename_narrative_aetmg_investigator_narrative_and_more.py +0 -0
  49. meta_ae/migrations/0017_auto_20221130_2257.py +0 -0
  50. meta_ae/migrations/0018_alter_deathreporttmg_cause_of_death_agreed_and_more.py +0 -0
  51. meta_ae/migrations/0019_alter_aefollowup_managers_alter_aeinitial_managers_and_more.py +0 -0
  52. meta_ae/migrations/0020_alter_aesusar_options_alter_aetmg_options_and_more.py +0 -0
  53. meta_ae/migrations/0021_alter_aefollowup_site_alter_aeinitial_site_and_more.py +0 -0
  54. meta_ae/migrations/0022_historicalhospitalization_hospitalization.py +5 -13
  55. meta_ae/migrations/0023_alter_aefollowup_action_identifier_and_more.py +2017 -0
  56. meta_ae/migrations/__init__.py +0 -0
  57. meta_ae/model_mixins/__init__.py +2 -0
  58. meta_ae/model_mixins/ae_review_model_mixin.py +6 -6
  59. meta_ae/model_mixins/death_report_model_mixin.py +3 -3
  60. meta_ae/models/__init__.py +13 -0
  61. meta_ae/models/ae_followup.py +0 -0
  62. meta_ae/models/ae_initial.py +0 -0
  63. meta_ae/models/ae_local_review.py +0 -0
  64. meta_ae/models/ae_sponsor_review.py +0 -0
  65. meta_ae/models/ae_susar.py +0 -0
  66. meta_ae/models/ae_tmg.py +0 -0
  67. meta_ae/models/death_report.py +0 -0
  68. meta_ae/models/death_report_tmg.py +0 -0
  69. meta_ae/models/death_report_tmg_second.py +0 -0
  70. meta_ae/models/hospitalization.py +3 -3
  71. meta_ae/models/managers.py +0 -0
  72. meta_ae/pdf_reports/__init__.py +2 -0
  73. meta_ae/pdf_reports/ae_pdf_report.py +0 -0
  74. meta_ae/pdf_reports/death_pdf_report.py +0 -0
  75. meta_ae/pdf_reports/meta_pdf_report_mixin.py +0 -0
  76. meta_ae/templates/meta_ae/aeinitial_description.html +0 -0
  77. meta_ae/templatetags/__init__.py +0 -0
  78. meta_ae/templatetags/meta_ae_extras.py +0 -0
  79. meta_ae/urls.py +0 -0
  80. {meta_edc → meta_analytics}/.DS_Store +0 -0
  81. meta_analytics/README.rst +0 -0
  82. meta_analytics/__init__.py +0 -0
  83. meta_analytics/constants.py +0 -0
  84. meta_analytics/dataframes/__init__.py +24 -0
  85. meta_analytics/dataframes/constants.py +0 -0
  86. meta_analytics/dataframes/get_eos_df.py +1 -2
  87. meta_analytics/dataframes/get_glucose_df.py +6 -7
  88. meta_analytics/dataframes/get_glucose_fbg_df.py +2 -3
  89. meta_analytics/dataframes/get_glucose_fbg_ogtt_df.py +1 -2
  90. meta_analytics/dataframes/get_last_imp_visits_df.py +5 -6
  91. meta_analytics/dataframes/glucose_endpoints/__init__.py +2 -0
  92. meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +13 -20
  93. meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +9 -10
  94. meta_analytics/dataframes/screening/__init__.py +2 -0
  95. meta_analytics/dataframes/screening/get_glucose_tested_only_df.py +1 -2
  96. meta_analytics/dataframes/screening/get_screening_df.py +6 -10
  97. meta_analytics/dataframes/utils.py +3 -8
  98. meta_analytics/get_tables.py +1 -2
  99. meta_analytics/tables/__init__.py +2 -0
  100. meta_analytics/tables/eligible.py +0 -0
  101. meta_analytics/tables/enrolled/__init__.py +0 -0
  102. meta_analytics/tables/enrolled/glucose.py +0 -0
  103. meta_analytics/tables/has_dm.py +0 -0
  104. meta_analytics/utils.py +0 -0
  105. meta_auth/__init__.py +0 -0
  106. meta_auth/apps.py +0 -0
  107. meta_auth/auth_objects.py +0 -0
  108. meta_auth/auths.py +0 -0
  109. meta_auth/urls.py +0 -0
  110. meta_consent/__init__.py +0 -0
  111. meta_consent/action_items.py +2 -1
  112. meta_consent/admin/__init__.py +6 -0
  113. meta_consent/admin/actions/__init__.py +2 -0
  114. meta_consent/admin/actions/create_missing_prescriptions.py +1 -1
  115. meta_consent/admin/list_filters.py +2 -2
  116. meta_consent/admin/modeladmin_mixins.py +3 -4
  117. meta_consent/admin/subject_consent_admin.py +0 -0
  118. meta_consent/admin/subject_consent_v1_admin.py +0 -0
  119. meta_consent/admin/subject_consent_v1_ext_admin.py +2 -2
  120. meta_consent/admin_site.py +0 -0
  121. meta_consent/apps.py +0 -0
  122. meta_consent/baker_recipes.py +7 -8
  123. meta_consent/consents.py +0 -0
  124. meta_consent/constants.py +0 -0
  125. meta_consent/form_validators/__init__.py +2 -0
  126. meta_consent/form_validators/subject_consent_form_validator.py +0 -0
  127. meta_consent/forms/__init__.py +7 -0
  128. meta_consent/forms/subject_consent_form.py +0 -0
  129. meta_consent/forms/subject_consent_v1_ext_form.py +2 -3
  130. meta_consent/forms/subject_consent_v1_form.py +0 -0
  131. meta_consent/forms/subject_reconsent_form.py +4 -4
  132. meta_consent/locale/lg/LC_MESSAGES/django.po +0 -0
  133. meta_consent/locale/sw/LC_MESSAGES/django.po +0 -0
  134. meta_consent/management/__init__.py +0 -0
  135. meta_consent/management/commands/__init__.py +0 -0
  136. meta_consent/management/commands/create_missing_prescriptions.py +4 -2
  137. meta_consent/migrations/0001_initial.py +9 -9
  138. meta_consent/migrations/0002_auto_20191024_1000.py +0 -0
  139. meta_consent/migrations/0003_auto_20200325_0901.py +0 -0
  140. meta_consent/migrations/0004_auto_20210624_0225.py +0 -0
  141. meta_consent/migrations/0005_alter_subjectconsent_options.py +0 -0
  142. meta_consent/migrations/0006_auto_20210911_2036.py +0 -0
  143. meta_consent/migrations/0007_auto_20220128_1719.py +0 -0
  144. meta_consent/migrations/0008_auto_20220412_2151.py +0 -0
  145. meta_consent/migrations/0009_auto_20220704_1841.py +0 -0
  146. meta_consent/migrations/0010_alter_historicalsubjectreconsent_action_identifier_and_more.py +0 -0
  147. meta_consent/migrations/0011_auto_20220826_0258.py +0 -0
  148. meta_consent/migrations/0012_auto_20220826_0322.py +0 -0
  149. meta_consent/migrations/0013_auto_20220826_0406.py +0 -0
  150. meta_consent/migrations/0014_alter_subjectconsent_managers.py +0 -0
  151. meta_consent/migrations/0015_auto_20220914_0542.py +0 -0
  152. meta_consent/migrations/0016_auto_20220914_0547.py +0 -0
  153. meta_consent/migrations/0017_auto_20220929_1742.py +0 -0
  154. meta_consent/migrations/0018_alter_subjectconsent_options_and_more.py +0 -0
  155. meta_consent/migrations/0019_alter_subjectconsent_options_and_more.py +0 -0
  156. meta_consent/migrations/0020_historicalsubjectconsent_model_name_and_more.py +0 -0
  157. meta_consent/migrations/0021_auto_20240111_0442.py +0 -0
  158. meta_consent/migrations/0022_alter_historicalsubjectconsent_site_and_more.py +0 -0
  159. meta_consent/migrations/0023_subjectconsentv1_and_more.py +0 -0
  160. meta_consent/migrations/0024_historicalsubjectconsentv1.py +3 -8
  161. meta_consent/migrations/0025_alter_historicalsubjectconsent_first_name_and_more.py +0 -0
  162. meta_consent/migrations/0026_historicalsubjectconsentv1ext_subjectconsentv1ext.py +5 -14
  163. meta_consent/migrations/0027_auto_20250111_0344.py +0 -0
  164. meta_consent/migrations/0028_historicalsubjectconsentv1ext_assessment_score_and_more.py +0 -0
  165. meta_consent/migrations/0029_alter_historicalsubjectconsentv1ext_agrees_to_extension_and_more.py +0 -0
  166. meta_consent/migrations/0030_auto_20250120_2114.py +0 -0
  167. meta_consent/migrations/0031_alter_historicalsubjectconsent_guardian_name_and_more.py +0 -0
  168. meta_consent/migrations/0032_alter_historicalsubjectconsent_device_created_and_more.py +678 -0
  169. meta_consent/migrations/__init__.py +0 -0
  170. meta_consent/models/__init__.py +9 -0
  171. meta_consent/models/model_mixins.py +1 -2
  172. meta_consent/models/signals.py +9 -10
  173. meta_consent/models/subject_consent.py +1 -1
  174. meta_consent/models/subject_consent_v1.py +0 -0
  175. meta_consent/models/subject_consent_v1_ext.py +0 -0
  176. meta_consent/models/subject_reconsent.py +3 -3
  177. meta_consent/urls.py +0 -0
  178. meta_dashboard/__init__.py +0 -0
  179. meta_dashboard/apps.py +0 -0
  180. meta_dashboard/locale/lg/LC_MESSAGES/django.po +0 -0
  181. meta_dashboard/locale/sw/LC_MESSAGES/django.po +0 -0
  182. meta_dashboard/migrations/__init__.py +0 -0
  183. meta_dashboard/navbars.py +0 -0
  184. meta_dashboard/patterns.py +1 -1
  185. meta_dashboard/templates/meta_dashboard/buttons/add_consent_button.html +0 -0
  186. meta_dashboard/templates/meta_dashboard/buttons/dashboard_button.html +0 -0
  187. meta_dashboard/templates/meta_dashboard/buttons/eligibility_button.html +0 -0
  188. meta_dashboard/templates/meta_dashboard/buttons/refusal_button.html +0 -0
  189. meta_dashboard/templates/meta_dashboard/buttons/screening_button.html +0 -0
  190. meta_dashboard/templates/meta_dashboard/screening/listboard.html +0 -0
  191. meta_dashboard/templates/meta_dashboard/subject/dashboard/sidebar.html +0 -0
  192. meta_dashboard/templates/meta_dashboard/subject/dashboard/top_bar.html +0 -0
  193. meta_dashboard/templates/meta_dashboard/subject/dashboard.html +0 -0
  194. meta_dashboard/templates/meta_dashboard/subject/listboard.html +0 -0
  195. meta_dashboard/templatetags/__init__.py +0 -0
  196. meta_dashboard/templatetags/meta_dashboard_extras.py +1 -1
  197. meta_dashboard/urls.py +0 -0
  198. meta_dashboard/view_utils/__init__.py +7 -0
  199. meta_dashboard/view_utils/subject_screening_button.py +9 -16
  200. meta_dashboard/views/__init__.py +8 -0
  201. meta_dashboard/views/ae/__init__.py +2 -0
  202. meta_dashboard/views/ae/ae_listboard_view.py +1 -1
  203. meta_dashboard/views/ae/death_report_listboard_view.py +1 -1
  204. meta_dashboard/views/screening/__init__.py +2 -0
  205. meta_dashboard/views/screening/listboard_view.py +0 -0
  206. meta_dashboard/views/subject/__init__.py +2 -0
  207. meta_dashboard/views/subject/dashboard/__init__.py +2 -0
  208. meta_dashboard/views/subject/dashboard/dashboard_view.py +1 -1
  209. meta_dashboard/views/subject/listboard/__init__.py +2 -0
  210. meta_dashboard/views/subject/listboard/listboard_view.py +0 -0
  211. meta_data_manager/__init__.py +0 -0
  212. meta_data_manager/apps.py +0 -0
  213. meta_data_manager/data_manager.py +0 -0
  214. meta_data_manager/handlers.py +0 -0
  215. meta_edc/__init__.py +1 -1
  216. meta_edc/admin.py +0 -0
  217. meta_edc/apps.py +0 -0
  218. meta_edc/asgi.py +0 -0
  219. meta_edc/celery.py +1 -1
  220. meta_edc/celery_live.py +1 -1
  221. meta_edc/celery_uat.py +1 -1
  222. meta_edc/management/__init__.py +0 -0
  223. meta_edc/management/commands/__init__.py +0 -0
  224. meta_edc/management/commands/update_forms_reference.py +10 -12
  225. meta_edc/meta_version.py +0 -0
  226. meta_edc/migrations/__init__.py +0 -0
  227. meta_edc/model_callers.py +0 -0
  228. meta_edc/models.py +0 -0
  229. meta_edc/navbars.py +0 -0
  230. meta_edc/settings/__init__.py +0 -0
  231. meta_edc/settings/debug.py +5 -4
  232. meta_edc/settings/defaults.py +2 -2
  233. meta_edc/settings/live.py +3 -1
  234. meta_edc/settings/logging.py +4 -4
  235. meta_edc/settings/minimal.py +4 -5
  236. meta_edc/settings/uat.py +3 -1
  237. meta_edc/templates/meta_edc/base.html +0 -0
  238. meta_edc/templates/meta_edc/home.html +0 -0
  239. meta_edc/urls.py +0 -0
  240. meta_edc/utils.py +0 -0
  241. meta_edc/views/__init__.py +2 -0
  242. meta_edc/views/home_view.py +0 -0
  243. meta_edc/wsgi.py +0 -0
  244. meta_edc/wsgi_live.py +0 -0
  245. meta_edc/wsgi_uat.py +0 -0
  246. meta_edc-1.1.13.dist-info/METADATA +175 -0
  247. meta_edc-1.1.13.dist-info/RECORD +1136 -0
  248. {meta_edc-1.1.10.dist-info → meta_edc-1.1.13.dist-info}/WHEEL +1 -1
  249. {meta_edc-1.1.10.dist-info → meta_edc-1.1.13.dist-info}/licenses/LICENSE +0 -0
  250. meta_export/__init__.py +0 -0
  251. meta_export/admin_site.py +0 -0
  252. meta_export/apps.py +0 -0
  253. meta_export/urls.py +0 -0
  254. meta_labs/__init__.py +0 -0
  255. meta_labs/aliquot_types.py +0 -0
  256. meta_labs/apps.py +0 -0
  257. meta_labs/lab_profiles.py +0 -0
  258. meta_labs/labs.py +0 -0
  259. meta_labs/list_data.py +0 -0
  260. meta_labs/processing_profiles.py +0 -0
  261. meta_labs/reportables.py +0 -0
  262. meta_lists/__init__.py +0 -0
  263. meta_lists/admin.py +0 -0
  264. meta_lists/admin_site.py +0 -0
  265. meta_lists/apps.py +0 -0
  266. meta_lists/list_data.py +0 -0
  267. meta_lists/migrations/0001_initial.py +0 -0
  268. meta_lists/migrations/0002_auto_20191026_2231.py +0 -0
  269. meta_lists/migrations/0003_auto_20191102_0033.py +0 -0
  270. meta_lists/migrations/0004_auto_20191102_1859.py +0 -0
  271. meta_lists/migrations/0005_auto_20191104_0930.py +0 -0
  272. meta_lists/migrations/0006_auto_20200514_1959.py +0 -0
  273. meta_lists/migrations/0007_auto_20200516_2356.py +0 -0
  274. meta_lists/migrations/0008_auto_20200528_1517.py +0 -0
  275. meta_lists/migrations/0009_auto_20200613_2041.py +0 -0
  276. meta_lists/migrations/0010_auto_20200617_1738.py +0 -0
  277. meta_lists/migrations/0011_auto_20210624_0225.py +0 -0
  278. meta_lists/migrations/0012_auto_20210728_1809.py +0 -0
  279. meta_lists/migrations/0013_transferreasons_and_more.py +0 -0
  280. meta_lists/migrations/0014_auto_20220913_2139.py +0 -0
  281. meta_lists/migrations/0015_abnormalfootappearanceobservations_extra_value_and_more.py +0 -0
  282. meta_lists/migrations/0016_alter_abnormalfootappearanceobservations_options_and_more.py +0 -0
  283. meta_lists/migrations/0017_complications_dmmedications_dmtreatments_and_more.py +0 -0
  284. meta_lists/migrations/0018_missedreferralreasons.py +0 -0
  285. meta_lists/migrations/0019_auto_20250128_0143.py +0 -0
  286. meta_lists/migrations/0020_alter_abnormalfootappearanceobservations_extra_value_and_more.py +404 -0
  287. meta_lists/migrations/__init__.py +0 -0
  288. meta_lists/models.py +0 -0
  289. meta_lists/urls.py +0 -0
  290. meta_pharmacy/__init__.py +0 -0
  291. meta_pharmacy/admin/__init__.py +5 -0
  292. meta_pharmacy/admin/rx_admin.py +0 -0
  293. meta_pharmacy/admin/substitutions_admin.py +2 -2
  294. meta_pharmacy/admin_site.py +0 -0
  295. meta_pharmacy/apps.py +0 -0
  296. meta_pharmacy/constants.py +0 -0
  297. meta_pharmacy/forms/__init__.py +2 -0
  298. meta_pharmacy/forms/rx_form.py +0 -0
  299. meta_pharmacy/forms/substitutions_form.py +6 -4
  300. meta_pharmacy/label_configs.py +0 -0
  301. meta_pharmacy/labels/__init__.py +4 -2
  302. meta_pharmacy/labels/draw_label_for_subject_with_barcode.py +1 -2
  303. meta_pharmacy/labels/draw_label_for_subject_with_code128.py +0 -0
  304. meta_pharmacy/labels/draw_label_with_test_data.py +2 -2
  305. meta_pharmacy/labels/label_data.py +1 -2
  306. meta_pharmacy/labels/print_sheets.py +4 -6
  307. meta_pharmacy/list_data.py +0 -0
  308. meta_pharmacy/management/__init__.py +0 -0
  309. meta_pharmacy/management/commands/__init__.py +0 -0
  310. meta_pharmacy/management/commands/update_initial_pharmacy_data.py +0 -0
  311. meta_pharmacy/migrations/0001_initial.py +0 -0
  312. meta_pharmacy/migrations/0002_initial.py +7 -20
  313. meta_pharmacy/migrations/0003_auto_20240909_2335.py +3 -2
  314. meta_pharmacy/migrations/0004_alter_historicalsubstitutions_report_datetime_and_more.py +0 -0
  315. meta_pharmacy/migrations/0005_auto_20240911_0352.py +0 -0
  316. meta_pharmacy/migrations/0006_lotnumber_label.py +5 -14
  317. meta_pharmacy/migrations/0007_lotnumber_medication.py +0 -0
  318. meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py +5 -6
  319. meta_pharmacy/migrations/0009_remove_historicalrx_slug.py +0 -0
  320. meta_pharmacy/migrations/0010_alter_historicallabeldata_device_created_and_more.py +382 -0
  321. meta_pharmacy/migrations/__init__.py +0 -0
  322. meta_pharmacy/models/__init__.py +7 -0
  323. meta_pharmacy/models/label_data.py +4 -5
  324. meta_pharmacy/models/rx.py +0 -0
  325. meta_pharmacy/models/rx_label.py +0 -0
  326. meta_pharmacy/models/substitutions.py +3 -3
  327. meta_pharmacy/prepare_meta_pharmacy.py +1 -1
  328. meta_pharmacy/urls.py +0 -0
  329. meta_pharmacy/utils/__init__.py +2 -0
  330. meta_pharmacy/utils/update_initial_pharmacy_data.py +1 -1
  331. meta_prn/__init__.py +0 -0
  332. meta_prn/action_items.py +0 -0
  333. meta_prn/admin/__init__.py +16 -0
  334. meta_prn/admin/dm_referral_admin.py +2 -1
  335. meta_prn/admin/end_of_study_admin.py +6 -7
  336. meta_prn/admin/loss_to_followup_admin.py +3 -2
  337. meta_prn/admin/off_study_medication_admin.py +5 -6
  338. meta_prn/admin/offschedule_admin.py +5 -6
  339. meta_prn/admin/offschedule_dm_referral_admin.py +6 -6
  340. meta_prn/admin/offschedule_postnatal_admin.py +7 -7
  341. meta_prn/admin/offschedule_pregnancy_admin.py +8 -7
  342. meta_prn/admin/onschedule_admin.py +7 -8
  343. meta_prn/admin/onschedule_dm_referral_admin.py +6 -7
  344. meta_prn/admin/pregnancy_notification_admin.py +5 -6
  345. meta_prn/admin/protocol_incident_admin.py +1 -1
  346. meta_prn/admin/subject_transfer_admin.py +1 -1
  347. meta_prn/admin_site.py +0 -0
  348. meta_prn/apps.py +0 -0
  349. meta_prn/baker_recipes.py +4 -4
  350. meta_prn/choices.py +0 -0
  351. meta_prn/constants.py +0 -0
  352. meta_prn/form_validators/__init__.py +5 -0
  353. meta_prn/form_validators/end_of_study.py +2 -2
  354. meta_prn/form_validators/protocol_incident.py +0 -0
  355. meta_prn/forms/__init__.py +13 -0
  356. meta_prn/forms/dm_referral_form.py +0 -0
  357. meta_prn/forms/end_of_study_form.py +0 -0
  358. meta_prn/forms/loss_to_followup_form.py +0 -0
  359. meta_prn/forms/off_study_medication_form.py +0 -0
  360. meta_prn/forms/offschedule_dm_referral_form.py +0 -0
  361. meta_prn/forms/offschedule_form.py +0 -0
  362. meta_prn/forms/offschedule_pregnancy_form.py +0 -0
  363. meta_prn/forms/pregnancy_notification_form.py +0 -0
  364. meta_prn/forms/protocol_incident_form.py +0 -0
  365. meta_prn/forms/subject_transfer_form.py +0 -0
  366. meta_prn/list_data.py +0 -0
  367. meta_prn/migrations/0001_initial.py +25 -25
  368. meta_prn/migrations/0002_auto_20191024_1000.py +0 -0
  369. meta_prn/migrations/0003_auto_20200120_2020.py +0 -0
  370. meta_prn/migrations/0004_auto_20200403_0332.py +0 -0
  371. meta_prn/migrations/0005_auto_20200524_1944.py +0 -0
  372. meta_prn/migrations/0006_auto_20210624_0225.py +0 -0
  373. meta_prn/migrations/0007_auto_20210721_0335.py +0 -0
  374. meta_prn/migrations/0008_auto_20210910_0238.py +0 -0
  375. meta_prn/migrations/0009_auto_20210910_0239.py +0 -0
  376. meta_prn/migrations/0010_auto_20210910_1906.py +0 -0
  377. meta_prn/migrations/0011_auto_20210910_1911.py +0 -0
  378. meta_prn/migrations/0012_auto_20210911_0004.py +0 -0
  379. meta_prn/migrations/0013_auto_20210911_2036.py +0 -0
  380. meta_prn/migrations/0014_auto_20211003_1709.py +0 -0
  381. meta_prn/migrations/0015_auto_20211104_1447.py +0 -0
  382. meta_prn/migrations/0016_auto_20220128_1719.py +0 -0
  383. meta_prn/migrations/0017_auto_20220307_1929.py +5 -5
  384. meta_prn/migrations/0018_auto_20220309_2106.py +9 -9
  385. meta_prn/migrations/0019_auto_20220309_2230.py +0 -0
  386. meta_prn/migrations/0020_auto_20220310_0439.py +0 -0
  387. meta_prn/migrations/0021_auto_20220316_2147.py +13 -13
  388. meta_prn/migrations/0022_auto_20220318_0133.py +9 -9
  389. meta_prn/migrations/0023_auto_20220415_1747.py +0 -0
  390. meta_prn/migrations/0024_alter_protocoldeviationviolation_violation.py +0 -0
  391. meta_prn/migrations/0025_alter_historicalprotocoldeviationviolation_options_and_more.py +0 -0
  392. meta_prn/migrations/0026_remove_historicalprotocoldeviationviolation_violation_type_and_more.py +0 -0
  393. meta_prn/migrations/0027_rename_historicalprotocoldeviationviolation_historicalprotocolincident_and_more.py +0 -0
  394. meta_prn/migrations/0028_historicalpregnancynotification_bhcg_date_and_more.py +0 -0
  395. meta_prn/migrations/0029_alter_historicalpregnancynotification_edd_and_more.py +0 -0
  396. meta_prn/migrations/0030_auto_20220627_1119.py +0 -0
  397. meta_prn/migrations/0031_alter_historicaloffschedule_options_and_more.py +0 -0
  398. meta_prn/migrations/0032_historicalegfrnotification_egfrnotification.py +5 -13
  399. meta_prn/migrations/0033_remove_historicalegfrnotification_action_item_and_more.py +0 -0
  400. meta_prn/migrations/0034_auto_20220630_1110.py +0 -0
  401. meta_prn/migrations/0035_auto_20220630_1140.py +0 -0
  402. meta_prn/migrations/0036_remove_endofstudy_meta_prn_en_id_a50384_idx_and_more.py +0 -0
  403. meta_prn/migrations/0037_endofstudy_delivery_date_endofstudy_pregnancy_date_and_more.py +0 -0
  404. meta_prn/migrations/0038_alter_endofstudy_delivery_date_and_more.py +5 -13
  405. meta_prn/migrations/0039_historicaloffstudymedication_reason_other_and_more.py +0 -0
  406. meta_prn/migrations/0040_remove_historicaloffstudymedication_expected_restart_date_and_more.py +0 -0
  407. meta_prn/migrations/0041_endofstudy_transfer_date_and_more.py +5 -13
  408. meta_prn/migrations/0042_remove_endofstudy_investigator_decision_and_more.py +0 -0
  409. meta_prn/migrations/0043_auto_20220704_1841.py +0 -0
  410. meta_prn/migrations/0044_alter_endofstudy_action_identifier_and_more.py +0 -0
  411. meta_prn/migrations/0045_auto_20220826_0258.py +0 -0
  412. meta_prn/migrations/0046_auto_20220826_0322.py +0 -0
  413. meta_prn/migrations/0047_auto_20220826_0406.py +0 -0
  414. meta_prn/migrations/0048_auto_20220922_2236.py +0 -0
  415. meta_prn/migrations/0049_auto_20220929_1742.py +0 -0
  416. meta_prn/migrations/0050_auto_20221004_0629.py +0 -0
  417. meta_prn/migrations/0051_historicalprotocolincident_reasons_withdrawn_and_more.py +0 -0
  418. meta_prn/migrations/0052_alter_historicalprotocolincident_reasons_withdrawn_and_more.py +0 -0
  419. meta_prn/migrations/0053_alter_losstofollowup_options_and_more.py +0 -0
  420. meta_prn/migrations/0054_alter_losstofollowup_options_and_more.py +0 -0
  421. meta_prn/migrations/0055_alter_endofstudy_site_and_more.py +0 -0
  422. meta_prn/migrations/0056_alter_endofstudy_clinical_withdrawal_reason_and_more.py +0 -0
  423. meta_prn/migrations/0057_historicalonscheduledmreferral_and_more.py +13 -38
  424. meta_prn/migrations/0058_dmreferral_referral_note_and_more.py +0 -0
  425. meta_prn/migrations/0059_alter_historicaloffstudymedication_reason_and_more.py +0 -0
  426. meta_prn/migrations/0060_alter_onschedule_managers_and_more.py +0 -0
  427. meta_prn/migrations/0061_auto_20250115_2025.py +0 -0
  428. meta_prn/migrations/0062_alter_endofstudy_offstudy_reason_and_more.py +0 -0
  429. meta_prn/migrations/0063_historicaloffstudymedication_singleton_field_and_more.py +0 -0
  430. meta_prn/migrations/0064_auto_20250602_2143.py +0 -0
  431. meta_prn/migrations/0065_alter_historicaloffstudymedication_subject_identifier_and_more.py +0 -0
  432. meta_prn/migrations/0066_alter_historicallosstofollowup_subject_identifier_and_more.py +0 -0
  433. meta_prn/migrations/0067_alter_offschedule_managers_and_more.py +2557 -0
  434. meta_prn/migrations/__init__.py +0 -0
  435. meta_prn/models/__init__.py +20 -0
  436. meta_prn/models/dm_referral.py +0 -0
  437. meta_prn/models/end_of_study.py +0 -0
  438. meta_prn/models/loss_to_followup.py +0 -0
  439. meta_prn/models/off_study_medication.py +0 -0
  440. meta_prn/models/offschedule.py +4 -4
  441. meta_prn/models/onschedule.py +0 -0
  442. meta_prn/models/pregnancy_notification.py +0 -0
  443. meta_prn/models/protocol_incident.py +1 -1
  444. meta_prn/models/signals.py +0 -0
  445. meta_prn/models/subject_transfer.py +8 -0
  446. meta_prn/pregnancy_action_item_mixin.py +0 -0
  447. meta_prn/templates/meta_prn/eos/additional_instructions.html +0 -0
  448. meta_prn/templates/meta_prn/offschedule/additional_instructions.html +0 -0
  449. meta_prn/urls.py +0 -0
  450. meta_rando/__init__.py +0 -0
  451. meta_rando/apps.py +0 -0
  452. meta_rando/migrations/0001_initial.py +5 -5
  453. meta_rando/migrations/0002_auto_20220704_1841.py +0 -0
  454. meta_rando/migrations/0003_auto_20220826_1640.py +0 -0
  455. meta_rando/migrations/0004_alter_randomizationlist_options_and_more.py +0 -0
  456. meta_rando/migrations/0005_alter_randomizationlist_options_and_more.py +0 -0
  457. meta_rando/migrations/0006_alter_historicalrandomizationlist_allocated_user_and_more.py +130 -0
  458. meta_rando/migrations/__init__.py +0 -0
  459. meta_rando/models.py +0 -0
  460. meta_rando/randomizers.py +0 -0
  461. meta_reports/__init__.py +2 -0
  462. meta_reports/admin/__init__.py +16 -0
  463. meta_reports/admin/dbviews/__init__.py +13 -0
  464. meta_reports/admin/dbviews/glucose_summary_admin.py +6 -6
  465. meta_reports/admin/dbviews/imp_substitutions_admin.py +12 -11
  466. meta_reports/admin/dbviews/missing_screening_ogtt_admin/__init__.py +5 -0
  467. meta_reports/admin/dbviews/missing_screening_ogtt_admin/note_model_admin.py +6 -10
  468. meta_reports/admin/dbviews/missing_screening_ogtt_admin/unmanaged_model_admin.py +6 -6
  469. meta_reports/admin/dbviews/on_study_missing_lab_values_admin/__init__.py +2 -0
  470. meta_reports/admin/dbviews/on_study_missing_lab_values_admin/unmanaged_model_admin.py +0 -3
  471. meta_reports/admin/dbviews/on_study_missing_values_admin/__init__.py +2 -0
  472. meta_reports/admin/dbviews/on_study_missing_values_admin/unmanaged_model_admin.py +0 -0
  473. meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py +8 -8
  474. meta_reports/admin/dbviews/unattended_three_in_row2_admin.py +6 -6
  475. meta_reports/admin/dbviews/unattended_three_in_row_admin.py +5 -5
  476. meta_reports/admin/dbviews/unattended_two_in_row_admin.py +5 -5
  477. meta_reports/admin/endpoints_admin.py +1 -1
  478. meta_reports/admin/endpoints_all_admin.py +0 -0
  479. meta_reports/admin/last_imp_refill_admin.py +9 -9
  480. meta_reports/admin/list_filters.py +2 -2
  481. meta_reports/admin/modeladmin_mixins.py +9 -16
  482. meta_reports/admin_site.py +0 -0
  483. meta_reports/ae_report.py +0 -0
  484. meta_reports/apps.py +0 -0
  485. meta_reports/death_report.py +1 -1
  486. meta_reports/forms/__init__.py +2 -0
  487. meta_reports/forms/missing_ogtt_note_form.py +2 -3
  488. meta_reports/management/__init__.py +0 -0
  489. meta_reports/management/commands/__init__.py +0 -0
  490. meta_reports/management/commands/generate_endpoints.py +5 -4
  491. meta_reports/migrations/0001_initial.py +0 -0
  492. meta_reports/migrations/0002_patienthistorymissingbaselinecd4_and_more.py +0 -0
  493. meta_reports/migrations/0003_auto_20240618_0505.py +0 -0
  494. meta_reports/migrations/0004_alter_patienthistorymissingbaselinecd4_table.py +0 -0
  495. meta_reports/migrations/0005_endpoints.py +0 -0
  496. meta_reports/migrations/0006_endpoints_baseline_datetime.py +0 -0
  497. meta_reports/migrations/0007_alter_endpoints_endpoint_label_and_more.py +0 -0
  498. meta_reports/migrations/0008_alter_endpoints_endpoint_label.py +0 -0
  499. meta_reports/migrations/0009_alter_endpoints_options.py +0 -0
  500. meta_reports/migrations/0010_alter_patienthistorymissingbaselinecd4_options_and_more.py +0 -0
  501. meta_reports/migrations/0011_auto_20240813_0156.py +0 -0
  502. meta_reports/migrations/0012_auto_20240813_1516.py +0 -0
  503. meta_reports/migrations/0013_auto_20240813_1516.py +0 -0
  504. meta_reports/migrations/0014_auto_20240813_1517.py +0 -0
  505. meta_reports/migrations/0015_alter_endpoints_site.py +0 -0
  506. meta_reports/migrations/0016_missingscreeningogtt.py +0 -0
  507. meta_reports/migrations/0017_auto_20240819_1711.py +0 -0
  508. meta_reports/migrations/0018_auto_20240819_1713.py +0 -0
  509. meta_reports/migrations/0019_auto_20240819_1721.py +0 -0
  510. meta_reports/migrations/0020_auto_20240819_1811.py +0 -0
  511. meta_reports/migrations/0021_auto_20240819_1817.py +0 -0
  512. meta_reports/migrations/0022_auto_20240819_1832.py +0 -0
  513. meta_reports/migrations/0023_endpoints_meta_report_subject_a56b22_idx.py +0 -0
  514. meta_reports/migrations/0024_glucosesummary.py +0 -0
  515. meta_reports/migrations/0025_auto_20240822_0115.py +0 -0
  516. meta_reports/migrations/0026_auto_20240822_0120.py +0 -0
  517. meta_reports/migrations/0027_auto_20240822_0140.py +0 -0
  518. meta_reports/migrations/0028_alter_glucosesummary_options.py +0 -0
  519. meta_reports/migrations/0029_auto_20240822_0149.py +0 -0
  520. meta_reports/migrations/0030_auto_20240822_1637.py +0 -0
  521. meta_reports/migrations/0031_endpointsproxy.py +0 -0
  522. meta_reports/migrations/0032_alter_endpointsproxy_options.py +0 -0
  523. meta_reports/migrations/0033_auto_20240823_0012.py +0 -0
  524. meta_reports/migrations/0034_auto_20240823_1642.py +0 -0
  525. meta_reports/migrations/0035_historicalmissingogttnote_missingogttnote.py +5 -14
  526. meta_reports/migrations/0036_historicalmissingogttnote_fasting_and_more.py +0 -0
  527. meta_reports/migrations/0037_historicalmissingogttnote_result_status_and_more.py +0 -0
  528. meta_reports/migrations/0038_alter_historicalmissingogttnote_fasting_and_more.py +0 -0
  529. meta_reports/migrations/0039_onstudymissingvalues.py +0 -0
  530. meta_reports/migrations/0040_auto_20240824_0412.py +0 -0
  531. meta_reports/migrations/0041_auto_20240828_2229.py +0 -0
  532. meta_reports/migrations/0042_onstudymissinglabvalues.py +0 -0
  533. meta_reports/migrations/0043_auto_20240828_2309.py +0 -0
  534. meta_reports/migrations/0044_auto_20240828_2323.py +0 -0
  535. meta_reports/migrations/0045_auto_20240829_0248.py +0 -0
  536. meta_reports/migrations/0046_auto_20240829_0250.py +0 -0
  537. meta_reports/migrations/0047_impsubstitutions.py +0 -0
  538. meta_reports/migrations/0048_auto_20240909_2338.py +0 -0
  539. meta_reports/migrations/0049_auto_20240911_0327.py +0 -0
  540. meta_reports/migrations/0050_alter_endpoints_created.py +0 -0
  541. meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py +0 -0
  542. meta_reports/migrations/0052_lastimpvisit.py +0 -0
  543. meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py +0 -0
  544. meta_reports/migrations/0054_auto_20250422_2003.py +0 -0
  545. meta_reports/migrations/0055_alter_glucosesummary_table.py +0 -0
  546. meta_reports/migrations/0056_auto_20250422_2214.py +0 -0
  547. meta_reports/migrations/0057_auto_20250422_2224.py +0 -0
  548. meta_reports/migrations/0058_auto_20250422_2232.py +0 -0
  549. meta_reports/migrations/0059_alter_endpoints_created_and_more.py +161 -0
  550. meta_reports/migrations/__init__.py +0 -0
  551. meta_reports/models/__init__.py +17 -0
  552. meta_reports/models/dbviews/README +0 -0
  553. meta_reports/models/dbviews/__init__.py +14 -0
  554. meta_reports/models/dbviews/glucose_summary/__init__.py +2 -0
  555. meta_reports/models/dbviews/glucose_summary/unmanaged_model.py +4 -5
  556. meta_reports/models/dbviews/glucose_summary/view_definition.py +0 -0
  557. meta_reports/models/dbviews/imp_substitutions/__init__.py +2 -0
  558. meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py +0 -0
  559. meta_reports/models/dbviews/imp_substitutions/view_definition.py +1 -1
  560. meta_reports/models/dbviews/missing_screening_ogtt/__init__.py +2 -0
  561. meta_reports/models/dbviews/missing_screening_ogtt/note_model.py +1 -1
  562. meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py +4 -3
  563. meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py +0 -0
  564. meta_reports/models/dbviews/on_study_missing_lab_values/__init__.py +2 -0
  565. meta_reports/models/dbviews/on_study_missing_lab_values/qa_cases.py +13 -11
  566. meta_reports/models/dbviews/on_study_missing_lab_values/unmanged_model.py +0 -0
  567. meta_reports/models/dbviews/on_study_missing_lab_values/view_definition.py +0 -0
  568. meta_reports/models/dbviews/on_study_missing_values/__init__.py +2 -0
  569. meta_reports/models/dbviews/on_study_missing_values/qa_cases.py +0 -0
  570. meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py +0 -0
  571. meta_reports/models/dbviews/on_study_missing_values/view_definition.py +0 -0
  572. meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py +2 -0
  573. meta_reports/models/dbviews/patient_history_missing_baseline_cd4/unmanaged_model.py +0 -0
  574. meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py +0 -0
  575. meta_reports/models/dbviews/unattended_three_in_row/__init__.py +2 -0
  576. meta_reports/models/dbviews/unattended_three_in_row/unmanaged_model.py +0 -0
  577. meta_reports/models/dbviews/unattended_three_in_row/view_definition.py +0 -0
  578. meta_reports/models/dbviews/unattended_three_in_row2/__init__.py +2 -0
  579. meta_reports/models/dbviews/unattended_three_in_row2/unmanaged_model.py +0 -0
  580. meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py +0 -0
  581. meta_reports/models/dbviews/unattended_two_in_row/__init__.py +2 -0
  582. meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py +0 -0
  583. meta_reports/models/dbviews/unattended_two_in_row/view_definition.py +0 -0
  584. meta_reports/models/endpoints.py +4 -4
  585. meta_reports/models/endpoints_proxy.py +0 -0
  586. meta_reports/models/last_imp_refill.py +2 -3
  587. meta_reports/pdf_report.py +2 -2
  588. meta_reports/tasks.py +1 -1
  589. meta_reports/templates/meta_reports/columns/subject_identifier_column.html +0 -0
  590. meta_reports/templates/meta_reports/endpoints_all_change_list_note.html +0 -0
  591. meta_reports/templates/meta_reports/endpoints_change_list_note.html +0 -0
  592. meta_reports/templates/meta_reports/last_imp_refill/changelist_note.html +0 -0
  593. meta_reports/urls.py +0 -0
  594. meta_reports/utils.py +0 -0
  595. meta_screening/__init__.py +0 -0
  596. meta_screening/admin/__init__.py +8 -0
  597. meta_screening/admin/fieldsets.py +13 -14
  598. meta_screening/admin/list_filters.py +6 -4
  599. meta_screening/admin/screening_part_one_admin.py +1 -2
  600. meta_screening/admin/screening_part_three_admin.py +2 -3
  601. meta_screening/admin/screening_part_two_admin.py +7 -10
  602. meta_screening/admin/subject_refusal_admin.py +5 -3
  603. meta_screening/admin/subject_screening_admin.py +4 -4
  604. meta_screening/admin_site.py +0 -0
  605. meta_screening/apps.py +0 -0
  606. meta_screening/baker_recipes.py +9 -9
  607. meta_screening/calculators.py +0 -0
  608. meta_screening/choices.py +0 -0
  609. meta_screening/constants.py +0 -0
  610. meta_screening/eligibility/__init__.py +9 -0
  611. meta_screening/eligibility/eligibility.py +7 -7
  612. meta_screening/eligibility/eligibility_part_one.py +0 -0
  613. meta_screening/eligibility/eligibility_part_three/__init__.py +2 -0
  614. meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py +8 -8
  615. meta_screening/eligibility/eligibility_part_three/eligibility_part_three_phase_three.py +13 -14
  616. meta_screening/eligibility/eligibility_part_two.py +0 -0
  617. meta_screening/form_validators/__init__.py +8 -0
  618. meta_screening/form_validators/screening_part_one.py +0 -0
  619. meta_screening/form_validators/screening_part_three.py +0 -0
  620. meta_screening/form_validators/screening_part_two.py +0 -0
  621. meta_screening/form_validators/subject_refusal.py +0 -0
  622. meta_screening/form_validators/subject_screening.py +0 -0
  623. meta_screening/forms/__init__.py +20 -0
  624. meta_screening/forms/field_lists.py +16 -17
  625. meta_screening/forms/screening_part_one_form.py +2 -2
  626. meta_screening/forms/screening_part_three_form.py +5 -3
  627. meta_screening/forms/screening_part_two_form.py +1 -5
  628. meta_screening/forms/subject_refusal_form.py +0 -4
  629. meta_screening/forms/subject_screening_form.py +0 -4
  630. meta_screening/migrations/0001_initial.py +15 -15
  631. meta_screening/migrations/0002_auto_20191020_0612.py +0 -0
  632. meta_screening/migrations/0003_auto_20191020_0627.py +0 -0
  633. meta_screening/migrations/0004_auto_20191020_0738.py +0 -0
  634. meta_screening/migrations/0005_auto_20191021_0353.py +0 -0
  635. meta_screening/migrations/0006_auto_20191022_0134.py +0 -0
  636. meta_screening/migrations/0007_auto_20191024_1000.py +0 -0
  637. meta_screening/migrations/0008_auto_20191031_0745.py +0 -0
  638. meta_screening/migrations/0009_auto_20191105_0122.py +0 -0
  639. meta_screening/migrations/0010_auto_20191106_0828.py +5 -5
  640. meta_screening/migrations/0011_auto_20191107_0342.py +0 -0
  641. meta_screening/migrations/0012_auto_20191107_0427.py +0 -0
  642. meta_screening/migrations/0013_auto_20191107_0442.py +0 -0
  643. meta_screening/migrations/0014_auto_20191107_0528.py +0 -0
  644. meta_screening/migrations/0015_auto_20191107_2249.py +0 -0
  645. meta_screening/migrations/0016_auto_20191119_2331.py +0 -0
  646. meta_screening/migrations/0017_auto_20191213_0314.py +0 -0
  647. meta_screening/migrations/0018_auto_20200118_1854.py +0 -0
  648. meta_screening/migrations/0019_auto_20200120_2256.py +0 -0
  649. meta_screening/migrations/0020_auto_20200524_1944.py +0 -0
  650. meta_screening/migrations/0021_auto_20210628_2105.py +0 -0
  651. meta_screening/migrations/0022_auto_20210702_0426.py +0 -0
  652. meta_screening/migrations/0023_auto_20210702_0533.py +0 -0
  653. meta_screening/migrations/0024_auto_20210710_1929.py +0 -0
  654. meta_screening/migrations/0025_auto_20210710_2247.py +0 -0
  655. meta_screening/migrations/0026_auto_20210712_0433.py +0 -0
  656. meta_screening/migrations/0027_auto_20210804_0438.py +0 -0
  657. meta_screening/migrations/0028_auto_20210823_2353.py +0 -0
  658. meta_screening/migrations/0029_auto_20211123_1645.py +0 -0
  659. meta_screening/migrations/0030_auto_20220128_1719.py +0 -0
  660. meta_screening/migrations/0031_auto_20220304_0448.py +0 -0
  661. meta_screening/migrations/0032_auto_20220304_0501.py +0 -0
  662. meta_screening/migrations/0033_auto_20220304_0504.py +0 -0
  663. meta_screening/migrations/0034_auto_20220304_0508.py +0 -0
  664. meta_screening/migrations/0035_auto_20220304_2233.py +0 -0
  665. meta_screening/migrations/0036_auto_20220304_2307.py +0 -0
  666. meta_screening/migrations/0037_auto_20220312_0339.py +0 -0
  667. meta_screening/migrations/0038_auto_20220312_1929.py +0 -0
  668. meta_screening/migrations/0039_auto_20220312_1938.py +0 -0
  669. meta_screening/migrations/0040_auto_20220316_2147.py +0 -0
  670. meta_screening/migrations/0041_auto_20220403_1227.py +0 -0
  671. meta_screening/migrations/0042_auto_20220403_1402.py +0 -0
  672. meta_screening/migrations/0043_auto_20220407_1713.py +0 -0
  673. meta_screening/migrations/0044_alter_historicalscreeningpartone_severe_htn_and_more.py +0 -0
  674. meta_screening/migrations/0045_historicalscreeningpartone_contact_number_and_more.py +0 -0
  675. meta_screening/migrations/0046_historicalscreeningpartone_hba1c_datetime_and_more.py +0 -0
  676. meta_screening/migrations/0047_historicalscreeningpartone_appt_datetime_repeat_and_more.py +0 -0
  677. meta_screening/migrations/0048_rename_appt_datetime_repeat_historicalscreeningpartone_repeat_appt_datetime_and_more.py +0 -0
  678. meta_screening/migrations/0049_historicalscreeningpartone_p3_ltfu_and_more.py +0 -0
  679. meta_screening/migrations/0050_historicalscreeningpartone_agree_to_p3_and_more.py +0 -0
  680. meta_screening/migrations/0051_alter_historicalscreeningpartone_advised_to_fast_and_more.py +0 -0
  681. meta_screening/migrations/0052_alter_historicalscreeningpartone_p3_ltfu_and_more.py +0 -0
  682. meta_screening/migrations/0053_auto_20220704_1841.py +0 -0
  683. meta_screening/migrations/0054_auto_20220722_2130.py +0 -0
  684. meta_screening/migrations/0055_alter_historicalscreeningpartone_creatinine_value_and_more.py +0 -0
  685. meta_screening/migrations/0056_alter_historicalscreeningpartone_agree_to_p3_and_more.py +0 -0
  686. meta_screening/migrations/0057_alter_historicalscreeningpartone_calculated_egfr_value_and_more.py +0 -0
  687. meta_screening/migrations/0058_alter_historicalscreeningpartone_eligibility_datetime_and_more.py +0 -0
  688. meta_screening/migrations/0059_alter_icpreferral_managers_and_more.py +0 -0
  689. meta_screening/migrations/0060_historicalicpreferral_locale_created_and_more.py +0 -0
  690. meta_screening/migrations/0061_alter_historicalicpreferral_site_and_more.py +0 -0
  691. meta_screening/migrations/0062_remove_icpreferral_site_and_more.py +0 -0
  692. meta_screening/migrations/0063_alter_historicalscreeningpartone_fasting_duration_str_and_more.py +0 -0
  693. meta_screening/migrations/0064_remove_historicalscreeningpartone_fasting_duration_minutes_and_more.py +0 -0
  694. meta_screening/migrations/0065_auto_20240516_0352.py +0 -0
  695. meta_screening/migrations/0066_alter_historicalscreeningpartone_fasting_duration_delta_and_more.py +0 -0
  696. meta_screening/migrations/0067_alter_historicalscreeningpartone_report_datetime_and_more.py +0 -0
  697. meta_screening/migrations/0068_alter_historicalscreeningpartone_acute_condition_and_more.py +1579 -0
  698. meta_screening/migrations/__init__.py +0 -0
  699. meta_screening/model_mixins/__init__.py +8 -0
  700. meta_screening/model_mixins/calculated_model_mixin.py +0 -0
  701. meta_screening/model_mixins/creatinine_fields_model_mixin.py +0 -0
  702. meta_screening/model_mixins/eligibility_model_mixin.py +5 -3
  703. meta_screening/model_mixins/part_one_fields_model_mixin.py +5 -9
  704. meta_screening/model_mixins/part_three_fields_model_mixin.py +5 -6
  705. meta_screening/model_mixins/part_two_fields_model_mixin.py +18 -16
  706. meta_screening/models/__init__.py +9 -0
  707. meta_screening/models/icp_referral.py +5 -5
  708. meta_screening/models/proxy_models.py +0 -0
  709. meta_screening/models/signals.py +10 -11
  710. meta_screening/models/subject_refusal.py +1 -1
  711. meta_screening/models/subject_screening.py +1 -3
  712. meta_screening/urls.py +0 -0
  713. meta_sites/__init__.py +0 -0
  714. meta_sites/apps.py +0 -0
  715. meta_sites/migrations/__init__.py +0 -0
  716. meta_sites/models.py +0 -0
  717. meta_sites/sites.py +0 -0
  718. meta_subject/__init__.py +0 -0
  719. meta_subject/action_items.py +13 -15
  720. meta_subject/admin/__init__.py +39 -0
  721. meta_subject/admin/autocomplete_admin.py +0 -0
  722. meta_subject/admin/birth_outcome_admin.py +4 -8
  723. meta_subject/admin/blood_results/__init__.py +9 -0
  724. meta_subject/admin/blood_results/blood_results_fbc_admin.py +1 -1
  725. meta_subject/admin/blood_results/blood_results_hba1c_admin.py +1 -1
  726. meta_subject/admin/blood_results/blood_results_ins_admin.py +1 -1
  727. meta_subject/admin/blood_results/blood_results_lft_admin.py +1 -1
  728. meta_subject/admin/blood_results/blood_results_lipids_admin.py +1 -1
  729. meta_subject/admin/blood_results/blood_results_rft_admin.py +3 -5
  730. meta_subject/admin/complications_admin.py +0 -0
  731. meta_subject/admin/complications_glycemia_admin.py +1 -1
  732. meta_subject/admin/concomitant_medication_admin.py +0 -0
  733. meta_subject/admin/delivery_admin.py +7 -10
  734. meta_subject/admin/diabetes/__init__.py +2 -0
  735. meta_subject/admin/diabetes/dm_endpoint_admin.py +2 -2
  736. meta_subject/admin/diabetes/dm_followup_admin.py +3 -2
  737. meta_subject/admin/egfr_drop_notification_admin.py +1 -1
  738. meta_subject/admin/eq5d3l_admin.py +0 -0
  739. meta_subject/admin/fields.py +0 -0
  740. meta_subject/admin/fieldsets.py +0 -0
  741. meta_subject/admin/followup_examination_admin.py +10 -9
  742. meta_subject/admin/followup_vitals_admin.py +4 -5
  743. meta_subject/admin/glucose_admin.py +2 -4
  744. meta_subject/admin/glucose_fbg_admin.py +1 -3
  745. meta_subject/admin/health_economics/__init__.py +2 -0
  746. meta_subject/admin/health_economics/health_economics_simple_admin.py +1 -1
  747. meta_subject/admin/health_economics/health_economics_update_admin.py +1 -1
  748. meta_subject/admin/hepatitis_test_admin.py +1 -1
  749. meta_subject/admin/list_filters.py +1 -1
  750. meta_subject/admin/malaria_test_admin.py +0 -0
  751. meta_subject/admin/medication_adherence_admin.py +0 -0
  752. meta_subject/admin/mnsi_admin.py +7 -5
  753. meta_subject/admin/modeladmin.py +0 -0
  754. meta_subject/admin/next_appointment_admin.py +0 -0
  755. meta_subject/admin/other_arv_regimens_admin.py +3 -3
  756. meta_subject/admin/patient_history_admin.py +4 -4
  757. meta_subject/admin/physical_exam_admin.py +1 -1
  758. meta_subject/admin/pregnancy_update_admin.py +1 -1
  759. meta_subject/admin/sf12_admin.py +0 -0
  760. meta_subject/admin/study_medication_admin.py +8 -15
  761. meta_subject/admin/subject_requisition_admin.py +1 -1
  762. meta_subject/admin/subject_visit_admin.py +1 -1
  763. meta_subject/admin/subject_visit_missed_admin.py +1 -1
  764. meta_subject/admin/urine_dipstick_test_admin.py +1 -1
  765. meta_subject/admin/urine_pregnancy_admin.py +1 -1
  766. meta_subject/admin_site.py +0 -0
  767. meta_subject/apps.py +0 -0
  768. meta_subject/baker_recipes.py +15 -15
  769. meta_subject/choices.py +0 -0
  770. meta_subject/constants.py +0 -0
  771. meta_subject/form_validators/__init__.py +11 -0
  772. meta_subject/form_validators/birth_outcomes_form_validator.py +0 -0
  773. meta_subject/form_validators/delivery_form_validator.py +2 -3
  774. meta_subject/form_validators/dm_endpoint_form_validator.py +1 -1
  775. meta_subject/form_validators/dm_followup_form_validator.py +7 -6
  776. meta_subject/form_validators/egfr_drop_notification_form_validator.py +0 -0
  777. meta_subject/form_validators/followup_examination_form_validator.py +0 -0
  778. meta_subject/form_validators/glucose_form_validator.py +3 -5
  779. meta_subject/form_validators/health_economics_form_validator.py +0 -0
  780. meta_subject/forms/__init__.py +41 -0
  781. meta_subject/forms/birth_outcomes_form.py +0 -0
  782. meta_subject/forms/blood_results/__init__.py +9 -0
  783. meta_subject/forms/blood_results/blood_results_fbc_form.py +0 -0
  784. meta_subject/forms/blood_results/blood_results_hba1c_form.py +0 -0
  785. meta_subject/forms/blood_results/blood_results_ins_form.py +0 -0
  786. meta_subject/forms/blood_results/blood_results_lft_form.py +0 -0
  787. meta_subject/forms/blood_results/blood_results_lipids_form.py +0 -0
  788. meta_subject/forms/blood_results/blood_results_rft_form.py +1 -2
  789. meta_subject/forms/complications_glycemia_form.py +0 -0
  790. meta_subject/forms/concomitant_medication_form.py +0 -0
  791. meta_subject/forms/delivery_form.py +0 -0
  792. meta_subject/forms/diabetes/__init__.py +2 -0
  793. meta_subject/forms/diabetes/dm_endpoint_form.py +0 -0
  794. meta_subject/forms/diabetes/dm_followup_form.py +2 -2
  795. meta_subject/forms/egfr_drop_notification_form.py +0 -0
  796. meta_subject/forms/eq53d3l_form.py +0 -0
  797. meta_subject/forms/followup_examination_form.py +0 -0
  798. meta_subject/forms/followup_vitals_form.py +3 -8
  799. meta_subject/forms/glucose_fbg_form.py +0 -0
  800. meta_subject/forms/glucose_form.py +0 -0
  801. meta_subject/forms/health_economics/__init__.py +2 -0
  802. meta_subject/forms/health_economics/health_economics_simple_form.py +0 -0
  803. meta_subject/forms/health_economics/health_economics_update_form.py +0 -0
  804. meta_subject/forms/hepatitis_test_form.py +0 -0
  805. meta_subject/forms/malaria_test_form.py +0 -0
  806. meta_subject/forms/medication_adherence_form.py +0 -0
  807. meta_subject/forms/mixins.py +0 -0
  808. meta_subject/forms/mnsi_form.py +0 -0
  809. meta_subject/forms/next_appointment_form.py +2 -3
  810. meta_subject/forms/other_arv_regimens_detail_form.py +0 -0
  811. meta_subject/forms/other_arv_regimens_form.py +0 -0
  812. meta_subject/forms/patient_history_form.py +0 -0
  813. meta_subject/forms/physical_exam_form.py +0 -0
  814. meta_subject/forms/pregnancy_update_form.py +0 -0
  815. meta_subject/forms/sf12_form.py +0 -0
  816. meta_subject/forms/slider_widget.py +1 -1
  817. meta_subject/forms/study_medication_form.py +11 -8
  818. meta_subject/forms/subject_requisition_form.py +0 -0
  819. meta_subject/forms/subject_visit_form.py +0 -0
  820. meta_subject/forms/subject_visit_missed_form.py +0 -0
  821. meta_subject/forms/urine_dipstick_test_form.py +0 -0
  822. meta_subject/forms/urine_pregnancy_form.py +0 -0
  823. meta_subject/identifiers.py +0 -0
  824. meta_subject/locale/lg/LC_MESSAGES/django.po +0 -0
  825. meta_subject/locale/sw/LC_MESSAGES/django.po +0 -0
  826. meta_subject/management/__init__py.py +0 -0
  827. meta_subject/management/commands/__init__py.py +0 -0
  828. meta_subject/management/commands/create_missing_refills.py +3 -3
  829. meta_subject/management/commands/create_missing_rx.py +1 -1
  830. meta_subject/management/commands/missed.py +20 -23
  831. meta_subject/metadata_rules/__init__.py +2 -0
  832. meta_subject/metadata_rules/metadata_rules.py +0 -0
  833. meta_subject/metadata_rules/predicates.py +25 -32
  834. meta_subject/migrations/0001_initial.py +61 -61
  835. meta_subject/migrations/0002_auto_20191021_0353.py +5 -5
  836. meta_subject/migrations/0003_auto_20191021_0534.py +0 -0
  837. meta_subject/migrations/0004_auto_20191022_0134.py +0 -0
  838. meta_subject/migrations/0005_auto_20191024_1000.py +0 -0
  839. meta_subject/migrations/0006_auto_20191104_0756.py +0 -0
  840. meta_subject/migrations/0007_auto_20191107_2249.py +0 -0
  841. meta_subject/migrations/0008_auto_20191115_0132.py +0 -0
  842. meta_subject/migrations/0009_auto_20191119_2331.py +0 -0
  843. meta_subject/migrations/0010_auto_20191213_0314.py +0 -0
  844. meta_subject/migrations/0011_auto_20200118_1854.py +0 -0
  845. meta_subject/migrations/0012_auto_20200118_2334.py +5 -5
  846. meta_subject/migrations/0013_auto_20200119_0013.py +0 -0
  847. meta_subject/migrations/0014_auto_20200120_1622.py +5 -5
  848. meta_subject/migrations/0015_auto_20200120_1943.py +0 -0
  849. meta_subject/migrations/0016_auto_20200123_1508.py +0 -0
  850. meta_subject/migrations/0017_auto_20200325_0901.py +0 -0
  851. meta_subject/migrations/0018_coronakap_historicalcoronakap.py +5 -5
  852. meta_subject/migrations/0019_auto_20200417_0315.py +0 -0
  853. meta_subject/migrations/0020_auto_20200417_0329.py +0 -0
  854. meta_subject/migrations/0021_auto_20200417_0332.py +0 -0
  855. meta_subject/migrations/0022_auto_20200419_2223.py +0 -0
  856. meta_subject/migrations/0023_auto_20200419_2305.py +0 -0
  857. meta_subject/migrations/0024_auto_20200419_2331.py +0 -0
  858. meta_subject/migrations/0025_auto_20200420_1455.py +0 -0
  859. meta_subject/migrations/0026_auto_20200420_1524.py +0 -0
  860. meta_subject/migrations/0027_auto_20200420_1645.py +0 -0
  861. meta_subject/migrations/0028_auto_20200420_1732.py +0 -0
  862. meta_subject/migrations/0029_auto_20200420_1751.py +0 -0
  863. meta_subject/migrations/0030_auto_20200420_1816.py +0 -0
  864. meta_subject/migrations/0031_auto_20200422_2039.py +0 -0
  865. meta_subject/migrations/0032_auto_20200515_0307.py +0 -0
  866. meta_subject/migrations/0033_auto_20200516_2356.py +5 -5
  867. meta_subject/migrations/0034_auto_20200517_0125.py +0 -0
  868. meta_subject/migrations/0035_auto_20200517_0128.py +0 -0
  869. meta_subject/migrations/0036_auto_20200517_0150.py +0 -0
  870. meta_subject/migrations/0037_auto_20200517_0207.py +0 -0
  871. meta_subject/migrations/0038_auto_20200520_0020.py +5 -5
  872. meta_subject/migrations/0039_auto_20200524_1944.py +0 -0
  873. meta_subject/migrations/0040_auto_20200527_2155.py +1 -1
  874. meta_subject/migrations/0041_auto_20200528_0242.py +0 -0
  875. meta_subject/migrations/0042_auto_20200528_0252.py +0 -0
  876. meta_subject/migrations/0043_auto_20200528_1555.py +0 -0
  877. meta_subject/migrations/0044_auto_20200528_1853.py +0 -0
  878. meta_subject/migrations/0045_auto_20200530_1801.py +1 -1
  879. meta_subject/migrations/0046_auto_20200530_1804.py +0 -0
  880. meta_subject/migrations/0047_auto_20200530_1819.py +0 -0
  881. meta_subject/migrations/0048_auto_20200530_1819.py +0 -0
  882. meta_subject/migrations/0049_auto_20200613_2041.py +0 -0
  883. meta_subject/migrations/0050_auto_20200614_1934.py +0 -0
  884. meta_subject/migrations/0051_auto_20200617_2117.py +5 -5
  885. meta_subject/migrations/0052_auto_20210624_0225.py +0 -0
  886. meta_subject/migrations/0053_auto_20210628_2105.py +0 -0
  887. meta_subject/migrations/0054_auto_20210628_2314.py +0 -0
  888. meta_subject/migrations/0055_auto_20210628_2331.py +0 -0
  889. meta_subject/migrations/0056_auto_20210702_0426.py +0 -0
  890. meta_subject/migrations/0057_auto_20210702_0458.py +0 -0
  891. meta_subject/migrations/0058_auto_20210702_0533.py +0 -0
  892. meta_subject/migrations/0059_auto_20210709_2056.py +0 -0
  893. meta_subject/migrations/0060_auto_20210709_2241.py +0 -0
  894. meta_subject/migrations/0061_auto_20210710_1929.py +0 -0
  895. meta_subject/migrations/0062_auto_20210713_0616.py +0 -0
  896. meta_subject/migrations/0063_auto_20210715_0337.py +5 -5
  897. meta_subject/migrations/0064_auto_20210715_2336.py +0 -0
  898. meta_subject/migrations/0065_auto_20210716_0813.py +0 -0
  899. meta_subject/migrations/0066_auto_20210721_0335.py +9 -9
  900. meta_subject/migrations/0067_auto_20210726_0340.py +5 -5
  901. meta_subject/migrations/0068_auto_20210728_1809.py +5 -5
  902. meta_subject/migrations/0069_auto_20210801_2021.py +0 -0
  903. meta_subject/migrations/0070_auto_20210804_0438.py +0 -0
  904. meta_subject/migrations/0071_auto_20210804_0715.py +0 -0
  905. meta_subject/migrations/0072_auto_20210805_1545.py +7 -7
  906. meta_subject/migrations/0073_auto_20210809_0055.py +5 -5
  907. meta_subject/migrations/0074_auto_20210809_1744.py +0 -0
  908. meta_subject/migrations/0075_auto_20210809_1744.py +0 -0
  909. meta_subject/migrations/0076_auto_20210809_1854.py +0 -0
  910. meta_subject/migrations/0077_auto_20210809_2323.py +3 -3
  911. meta_subject/migrations/0078_auto_20210810_0857.py +0 -0
  912. meta_subject/migrations/0079_auto_20210812_0335.py +0 -0
  913. meta_subject/migrations/0080_auto_20210812_0400.py +0 -0
  914. meta_subject/migrations/0081_auto_20210817_2306.py +0 -0
  915. meta_subject/migrations/0082_auto_20210823_1612.py +3 -3
  916. meta_subject/migrations/0083_auto_20210823_1620.py +3 -3
  917. meta_subject/migrations/0084_auto_20210910_0234.py +0 -0
  918. meta_subject/migrations/0085_auto_20210911_2036.py +0 -0
  919. meta_subject/migrations/0086_auto_20210920_0229.py +0 -0
  920. meta_subject/migrations/0087_auto_20210922_2058.py +0 -0
  921. meta_subject/migrations/0088_auto_20210924_0027.py +5 -5
  922. meta_subject/migrations/0089_auto_20210924_0121.py +0 -0
  923. meta_subject/migrations/0090_auto_20210924_0424.py +5 -5
  924. meta_subject/migrations/0091_auto_20210929_2324.py +0 -0
  925. meta_subject/migrations/0092_auto_20211013_0447.py +0 -0
  926. meta_subject/migrations/0093_auto_20211117_0352.py +5 -5
  927. meta_subject/migrations/0094_auto_20211123_1645.py +0 -0
  928. meta_subject/migrations/0095_auto_20220128_1719.py +5 -5
  929. meta_subject/migrations/0096_auto_20220304_0501.py +0 -0
  930. meta_subject/migrations/0097_auto_20220304_2233.py +0 -0
  931. meta_subject/migrations/0098_auto_20220309_2106.py +5 -5
  932. meta_subject/migrations/0099_auto_20220309_2218.py +0 -0
  933. meta_subject/migrations/0100_auto_20220309_2238.py +0 -0
  934. meta_subject/migrations/0101_auto_20220316_2147.py +13 -13
  935. meta_subject/migrations/0102_auto_20220324_0304.py +0 -0
  936. meta_subject/migrations/0103_auto_20220324_0326.py +0 -0
  937. meta_subject/migrations/0104_auto_20220412_2151.py +0 -0
  938. meta_subject/migrations/0105_auto_20220412_2310.py +0 -0
  939. meta_subject/migrations/0106_auto_20220414_1741.py +0 -0
  940. meta_subject/migrations/0107_auto_20220415_0043.py +0 -0
  941. meta_subject/migrations/0108_auto_20220415_1747.py +0 -0
  942. meta_subject/migrations/0109_auto_20220415_1758.py +0 -0
  943. meta_subject/migrations/0110_auto_20220512_1811.py +0 -0
  944. meta_subject/migrations/0111_alter_followupvitals_severe_htn_and_more.py +0 -0
  945. meta_subject/migrations/0112_historicalsubjectvisit_document_status_comments_and_more.py +0 -0
  946. meta_subject/migrations/0113_bloodresultsrft_egfr_percent_change_and_more.py +0 -0
  947. meta_subject/migrations/0114_alter_bloodresultsrft_egfr_percent_change_and_more.py +0 -0
  948. meta_subject/migrations/0115_historicalegfrnotification_egfrnotification.py +5 -13
  949. meta_subject/migrations/0116_egfrnotification_report_status_and_more.py +0 -0
  950. meta_subject/migrations/0117_alter_egfrnotification_managers_and_more.py +0 -0
  951. meta_subject/migrations/0118_delivery_crf_status_delivery_crf_status_comments_and_more.py +0 -0
  952. meta_subject/migrations/0119_historicalstudymedication_roundup_divisible_by_and_more.py +0 -0
  953. meta_subject/migrations/0120_alter_birthoutcomes_managers_and_more.py +0 -0
  954. meta_subject/migrations/0121_auto_20220704_1841.py +0 -0
  955. meta_subject/migrations/0122_auto_20220708_2144.py +0 -0
  956. meta_subject/migrations/0123_auto_20220714_2136.py +0 -0
  957. meta_subject/migrations/0124_auto_20220714_2303.py +0 -0
  958. meta_subject/migrations/0125_auto_20220719_2134.py +0 -0
  959. meta_subject/migrations/0126_auto_20220719_2142.py +0 -0
  960. meta_subject/migrations/0127_auto_20220720_0053.py +0 -0
  961. meta_subject/migrations/0128_auto_20220720_0055.py +0 -0
  962. meta_subject/migrations/0129_auto_20220720_0108.py +0 -0
  963. meta_subject/migrations/0130_auto_20220720_0216.py +0 -0
  964. meta_subject/migrations/0131_auto_20220722_0411.py +0 -0
  965. meta_subject/migrations/0132_auto_20220722_1825.py +0 -0
  966. meta_subject/migrations/0133_auto_20220722_2140.py +0 -0
  967. meta_subject/migrations/0134_auto_20220722_2211.py +0 -0
  968. meta_subject/migrations/0135_auto_20220722_2212.py +0 -0
  969. meta_subject/migrations/0136_egfrdropnotification_creatinine_quantifier_and_more.py +0 -0
  970. meta_subject/migrations/0137_alter_egfrdropnotification_egfr_percent_change_and_more.py +0 -0
  971. meta_subject/migrations/0138_alter_glucose_fbg_datetime_and_more.py +0 -0
  972. meta_subject/migrations/0139_alter_bloodresultsins_ins_units_and_more.py +0 -0
  973. meta_subject/migrations/0140_alter_bloodresultsfbc_action_identifier_and_more.py +0 -0
  974. meta_subject/migrations/0141_auto_20220826_0258.py +0 -0
  975. meta_subject/migrations/0142_auto_20220826_0322.py +0 -0
  976. meta_subject/migrations/0143_auto_20220826_0406.py +0 -0
  977. meta_subject/migrations/0144_auto_20220907_0157.py +0 -0
  978. meta_subject/migrations/0145_auto_20220907_0202.py +0 -0
  979. meta_subject/migrations/0146_auto_20220907_0207.py +0 -0
  980. meta_subject/migrations/0147_auto_20220907_1505.py +0 -0
  981. meta_subject/migrations/0148_auto_20220908_1826.py +0 -0
  982. meta_subject/migrations/0149_auto_20220913_2139.py +0 -0
  983. meta_subject/migrations/0150_auto_20220914_0039.py +0 -0
  984. meta_subject/migrations/0151_auto_20220918_0508.py +0 -0
  985. meta_subject/migrations/0152_auto_20220925_0509.py +0 -0
  986. meta_subject/migrations/0153_auto_20220928_0250.py +0 -0
  987. meta_subject/migrations/0154_auto_20220928_0419.py +0 -0
  988. meta_subject/migrations/0155_auto_20220929_1742.py +0 -0
  989. meta_subject/migrations/0156_alter_bloodresultsfbc_assay_datetime_and_more.py +0 -0
  990. meta_subject/migrations/0157_remove_bloodresultsfbc_crf_status_and_more.py +0 -0
  991. meta_subject/migrations/0158_alter_followupexamination_attended_clinic_and_more.py +0 -0
  992. meta_subject/migrations/0159_alter_bloodresultsfbc_results_abnormal_and_more.py +0 -0
  993. meta_subject/migrations/0160_alter_healtheconomicssimple_education_certificate_and_more.py +0 -0
  994. meta_subject/migrations/0161_alter_birthoutcomes_options_and_more.py +0 -0
  995. meta_subject/migrations/0162_alter_followupexamination_abdominal_tenderness_and_more.py +0 -0
  996. meta_subject/migrations/0163_alter_birthoutcomes_options_and_more.py +0 -0
  997. meta_subject/migrations/0164_dmreferralfollowup_historicaldmreferralfollowup.py +5 -5
  998. meta_subject/migrations/0165_alter_dmreferralfollowup_healthcare_workers.py +0 -0
  999. meta_subject/migrations/0166_rename_dm_medications_other_dmreferralfollowup_other_dm_medications_and_more.py +0 -0
  1000. meta_subject/migrations/0167_rename_healthcare_workers_other_dmreferralfollowup_other_healthcare_workers_and_more.py +0 -0
  1001. meta_subject/migrations/0168_alter_dmreferralfollowup_last_missed_pill_and_more.py +0 -0
  1002. meta_subject/migrations/0169_alter_dmreferralfollowup_options_and_more.py +0 -0
  1003. meta_subject/migrations/0170_remove_glucose_repeat_fbg_and_more.py +0 -0
  1004. meta_subject/migrations/0171_alter_glucose_endpoint_today_and_more.py +0 -0
  1005. meta_subject/migrations/0172_remove_historicalbloodresultsglu_action_item_and_more.py +1 -2
  1006. meta_subject/migrations/0173_alter_glucosefbg_options_and_more.py +0 -0
  1007. meta_subject/migrations/0174_remove_glucosefbg_glucose_abnormal_and_more.py +0 -0
  1008. meta_subject/migrations/0175_auto_20240214_2239.py +0 -0
  1009. meta_subject/migrations/0176_alter_glucosefbg_glucose_value_and_more.py +0 -0
  1010. meta_subject/migrations/0177_alter_bloodresultslft_alp_value_and_more.py +1 -2
  1011. meta_subject/migrations/0178_historicalhealtheconomicsupdate_and_more.py +5 -14
  1012. meta_subject/migrations/0179_alter_birthoutcomes_consent_model_and_more.py +0 -0
  1013. meta_subject/migrations/0180_dmreferralfollowup_missed_referral_reasons_and_more.py +0 -0
  1014. meta_subject/migrations/0181_dmreferralfollowup_action_identifier_and_more.py +0 -0
  1015. meta_subject/migrations/0182_rename_dmreferralfollowup_dmfollowup_and_more.py +0 -0
  1016. meta_subject/migrations/0183_alter_dmfollowup_on_dm_medications_and_more.py +0 -0
  1017. meta_subject/migrations/0184_alter_glucose_options_and_more.py +0 -0
  1018. meta_subject/migrations/0185_alter_bloodresultsins_fasting_duration_str_and_more.py +0 -0
  1019. meta_subject/migrations/0186_healtheconomicsupdate_singleton_field_and_more.py +1 -2
  1020. meta_subject/migrations/0187_dmdiagnosis_historicaldmdiagnosis_dmdxresult_and_more.py +5 -14
  1021. meta_subject/migrations/0188_historicaldmdxresult_dmdxresult.py +5 -14
  1022. meta_subject/migrations/0189_alter_dmdxresult_options_and_more.py +0 -0
  1023. meta_subject/migrations/0190_dmdiagnosis_dx_no_tmg_reason_and_more.py +0 -0
  1024. meta_subject/migrations/0191_alter_dmdiagnosis_dx_no_tmg_reason_and_more.py +0 -0
  1025. meta_subject/migrations/0192_rename_glucose_quantifier_glucosefbg_fbg_quantifier_and_more.py +0 -0
  1026. meta_subject/migrations/0193_alter_glucosefbg_fbg_value_and_more.py +0 -0
  1027. meta_subject/migrations/0194_remove_glucosefbg_assay_datetime_and_more.py +0 -0
  1028. meta_subject/migrations/0195_alter_glucosefbg_fbg_datetime_and_more.py +0 -0
  1029. meta_subject/migrations/0196_glucosefbg_fbg_not_performed_reason_and_more.py +0 -0
  1030. meta_subject/migrations/0197_glucosefbg_fasting_duration_estimated_and_more.py +0 -0
  1031. meta_subject/migrations/0198_alter_glucosefbg_fasting_duration_estimated_and_more.py +0 -0
  1032. meta_subject/migrations/0199_auto_20240516_0247.py +0 -0
  1033. meta_subject/migrations/0200_rename_fasting_duration_minutes_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
  1034. meta_subject/migrations/0201_alter_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
  1035. meta_subject/migrations/0202_auto_20240516_0315.py +0 -0
  1036. meta_subject/migrations/0203_alter_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
  1037. meta_subject/migrations/0204_glucosefbg_repeat_fbg_date_and_more.py +0 -0
  1038. meta_subject/migrations/0205_historicalsubjectrequisition_crf_status_and_more.py +0 -0
  1039. meta_subject/migrations/0206_bloodresultsfbc_crf_status_and_more.py +0 -0
  1040. meta_subject/migrations/0207_alter_historicalphysicalexam_waist_circumference_and_more.py +0 -0
  1041. meta_subject/migrations/0208_birthoutcomes_crf_status_and_more.py +0 -0
  1042. meta_subject/migrations/0209_remove_historicaldmdxresult_dm_diagnosis_and_more.py +1 -2
  1043. meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py +0 -0
  1044. meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py +0 -0
  1045. meta_subject/migrations/0212_auto_20240827_2222.py +0 -0
  1046. meta_subject/migrations/0213_rename_bloodresultslipid_bloodresultslipids_and_more.py +0 -0
  1047. meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py +0 -0
  1048. meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py +0 -0
  1049. meta_subject/migrations/0216_historicalnextappointment_nextappointment.py +5 -6
  1050. meta_subject/migrations/0217_alter_historicalnextappointment_appt_datetime_and_more.py +0 -0
  1051. meta_subject/migrations/0218_alter_historicalnextappointment_appt_date_and_more.py +0 -0
  1052. meta_subject/migrations/0219_remove_historicalnextappointment_allow_create_interim_and_more.py +0 -0
  1053. meta_subject/migrations/0220_historicalbloodresultsgludummy_bloodresultsgludummy.py +5 -14
  1054. meta_subject/migrations/0221_auto_20250402_1913.py +0 -0
  1055. meta_subject/migrations/0222_alter_historicalstudymedication_stock_codes_and_more.py +0 -0
  1056. meta_subject/migrations/0223_bloodresultsfbc_errors_bloodresultsgludummy_errors_and_more.py +0 -0
  1057. meta_subject/migrations/0224_bloodresultsfbc_abnormal_summary_and_more.py +0 -0
  1058. meta_subject/migrations/0225_followupvitals_waist_circumference_and_more.py +0 -0
  1059. meta_subject/migrations/0226_followupvitals_waist_circumference_comment_and_more.py +0 -0
  1060. meta_subject/migrations/0227_alter_followupvitals_waist_circumference_comment_and_more.py +0 -0
  1061. meta_subject/migrations/0228_bloodresultshba1c_hba1c_datetime_and_more.py +9297 -0
  1062. meta_subject/migrations/__init__.py +0 -0
  1063. meta_subject/model_mixins/__init__.py +8 -0
  1064. meta_subject/model_mixins/arv_history_model_mixin.py +0 -0
  1065. meta_subject/model_mixins/crf_model_mixin.py +0 -0
  1066. meta_subject/model_mixins/crf_with_action_model_mixin.py +0 -0
  1067. meta_subject/model_mixins/search_slug_model_mixin.py +1 -2
  1068. meta_subject/model_mixins/vitals_fields_model_mixin.py +1 -1
  1069. meta_subject/models/__init__.py +48 -0
  1070. meta_subject/models/birth_outcomes.py +3 -3
  1071. meta_subject/models/blood_results/__init__.py +11 -0
  1072. meta_subject/models/blood_results/blood_results_fbc.py +0 -0
  1073. meta_subject/models/blood_results/blood_results_glu.py +0 -0
  1074. meta_subject/models/blood_results/blood_results_hba1c.py +0 -0
  1075. meta_subject/models/blood_results/blood_results_ins.py +0 -0
  1076. meta_subject/models/blood_results/blood_results_lft.py +0 -0
  1077. meta_subject/models/blood_results/blood_results_lipids.py +0 -0
  1078. meta_subject/models/blood_results/blood_results_rft.py +0 -0
  1079. meta_subject/models/complications.py +0 -0
  1080. meta_subject/models/complications_glycemia.py +0 -0
  1081. meta_subject/models/concomitant_medication.py +0 -0
  1082. meta_subject/models/delivery.py +3 -3
  1083. meta_subject/models/diabetes/__init__.py +2 -0
  1084. meta_subject/models/diabetes/dm_endpoint.py +4 -4
  1085. meta_subject/models/diabetes/dm_followup.py +3 -4
  1086. meta_subject/models/diet_and_lifestyle.py +2 -2
  1087. meta_subject/models/egfr_drop_notification.py +0 -0
  1088. meta_subject/models/eq5d3l.py +0 -0
  1089. meta_subject/models/followup_examination.py +11 -11
  1090. meta_subject/models/followup_vitals.py +0 -0
  1091. meta_subject/models/glucose.py +4 -4
  1092. meta_subject/models/glucose_fbg.py +2 -3
  1093. meta_subject/models/glucose_review.py +0 -0
  1094. meta_subject/models/health_economics/__init__.py +2 -0
  1095. meta_subject/models/health_economics/health_economics.py +7 -7
  1096. meta_subject/models/health_economics/health_economics_simple.py +0 -0
  1097. meta_subject/models/health_economics/health_economics_update.py +2 -1
  1098. meta_subject/models/hepatitis_test.py +2 -2
  1099. meta_subject/models/malaria_test.py +0 -0
  1100. meta_subject/models/medication_adherence.py +0 -0
  1101. meta_subject/models/mnsi.py +0 -0
  1102. meta_subject/models/next_appointment.py +0 -0
  1103. meta_subject/models/off_study_drug.py +0 -0
  1104. meta_subject/models/other_arv_regimens.py +0 -0
  1105. meta_subject/models/other_arv_regimens_detail.py +1 -1
  1106. meta_subject/models/patient_history.py +5 -6
  1107. meta_subject/models/physical_exam.py +2 -2
  1108. meta_subject/models/pregnancy_update.py +1 -1
  1109. meta_subject/models/sf12.py +0 -0
  1110. meta_subject/models/signals.py +14 -12
  1111. meta_subject/models/study_medication.py +0 -0
  1112. meta_subject/models/subject_requisition.py +0 -0
  1113. meta_subject/models/subject_visit.py +1 -1
  1114. meta_subject/models/subject_visit_missed.py +0 -0
  1115. meta_subject/models/todo.txt +0 -0
  1116. meta_subject/models/urine_dipstick_test.py +1 -1
  1117. meta_subject/models/urine_pregnancy.py +1 -1
  1118. meta_subject/static/meta_subject/slider.css +0 -0
  1119. meta_subject/static/meta_subject/slider.png +0 -0
  1120. meta_subject/templates/meta_subject/endpoint_review_instructions.html +0 -0
  1121. meta_subject/templates/meta_subject/widgets/slider.html +0 -0
  1122. meta_subject/urls.py +0 -0
  1123. meta_visit_schedule/__init__.py +0 -0
  1124. meta_visit_schedule/apps.py +0 -0
  1125. meta_visit_schedule/constants.py +0 -0
  1126. meta_visit_schedule/migrations/__init__.py +0 -0
  1127. meta_visit_schedule/models.py +0 -0
  1128. meta_visit_schedule/visit_schedules/__init__.py +2 -0
  1129. meta_visit_schedule/visit_schedules/phase_three/__init__.py +2 -0
  1130. meta_visit_schedule/visit_schedules/phase_three/crfs.py +0 -0
  1131. meta_visit_schedule/visit_schedules/phase_three/crfs_pregnancy.py +0 -0
  1132. meta_visit_schedule/visit_schedules/phase_three/requisitions.py +0 -0
  1133. meta_visit_schedule/visit_schedules/phase_three/schedule.py +2 -2
  1134. meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py +1 -2
  1135. meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py +1 -2
  1136. meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py +0 -0
  1137. meta_analytics/.ipynb_checkpoints/get_tables-checkpoint.py +0 -105
  1138. meta_analytics/dataframes/glucose_endpoints/utils.py +0 -0
  1139. meta_edc-1.1.10.dist-info/METADATA +0 -89
  1140. meta_edc-1.1.10.dist-info/RECORD +0 -1130
  1141. meta_screening/offline_models.py +0 -3
@@ -42,7 +42,7 @@ class Substitutions(NonUniqueSubjectIdentifierFieldMixin, SiteModelMixin, BaseUu
42
42
  updated_visit_no = models.IntegerField("Visit Number", null=True, blank=True)
43
43
 
44
44
  updated_subject_identifier = models.CharField(
45
- max_length=50, verbose_name="Taken from subject", null=True, blank=True
45
+ max_length=50, verbose_name="Taken from subject", default="", blank=True
46
46
  )
47
47
 
48
48
  arm_match = models.CharField(
@@ -82,7 +82,7 @@ class Substitutions(NonUniqueSubjectIdentifierFieldMixin, SiteModelMixin, BaseUu
82
82
  class Meta(SiteModelMixin.Meta, BaseUuidModel.Meta):
83
83
  verbose_name_plural = "IMP Substitutions"
84
84
  verbose_name = "IMP Substitution"
85
- indexes = [
85
+ indexes = (
86
86
  Index(fields=["sid", "dispensed_sid", "subject_identifier"]),
87
87
  Index(fields=["row_index"]),
88
- ]
88
+ )
@@ -9,7 +9,7 @@ style = color_style()
9
9
 
10
10
 
11
11
  def prepare_meta_pharmacy():
12
- from django.apps import apps as django_apps
12
+ from django.apps import apps as django_apps # noqa: PLC0415
13
13
 
14
14
  sys.stdout.write(style.MIGRATE_HEADING("Populating static pharmacy models for META3:\n"))
15
15
 
meta_pharmacy/urls.py CHANGED
File without changes
@@ -1 +1,3 @@
1
1
  from .update_initial_pharmacy_data import update_initial_pharmacy_data
2
+
3
+ __all__ = ["update_initial_pharmacy_data"]
@@ -136,7 +136,7 @@ def update_labels():
136
136
  LabelSpecification().save()
137
137
  default = LabelSpecification.objects.get(name="default")
138
138
 
139
- for name, label_config in site_label_configs.registry.items():
139
+ for name in site_label_configs.registry:
140
140
  LabelConfiguration.objects.create(name=name, label_specification=default)
141
141
  for label_configuration in LabelConfiguration.objects.filter(name__contains="patient"):
142
142
  label_configuration.requires_allocation = True
meta_prn/__init__.py CHANGED
File without changes
meta_prn/action_items.py CHANGED
File without changes
@@ -11,3 +11,19 @@ from .onschedule_dm_referral_admin import OnScheduleDmReferralAdmin
11
11
  from .pregnancy_notification_admin import PregnancyNotificationAdmin
12
12
  from .protocol_incident_admin import ProtocolIncidentAdmin
13
13
  from .subject_transfer_admin import SubjectTransferAdmin
14
+
15
+ __all__ = [
16
+ "DmReferralAdmin",
17
+ "EndOfStudyAdmin",
18
+ "LossToFollowupAdmin",
19
+ "OffScheduleAdmin",
20
+ "OffScheduleDmReferralAdmin",
21
+ "OffSchedulePostnatalAdmin",
22
+ "OffSchedulePregnancyAdmin",
23
+ "OffStudyMedicationAdmin",
24
+ "OnScheduleAdmin",
25
+ "OnScheduleDmReferralAdmin",
26
+ "PregnancyNotificationAdmin",
27
+ "ProtocolIncidentAdmin",
28
+ "SubjectTransferAdmin",
29
+ ]
@@ -1,6 +1,7 @@
1
1
  from django.contrib import admin
2
2
  from django_audit_fields.admin import audit_fieldset_tuple
3
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
3
+ from edc_action_item.fieldsets import action_fieldset_tuple
4
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
4
5
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
5
6
  from edc_model_admin.history import SimpleHistoryAdmin
6
7
  from edc_sites.admin import SiteModelAdminMixin
@@ -1,12 +1,11 @@
1
- from typing import Tuple
2
-
3
1
  from dateutil.relativedelta import relativedelta
4
2
  from django.contrib import admin
5
3
  from django.template.loader import render_to_string
6
4
  from django.utils.html import format_html
7
5
  from django.utils.safestring import mark_safe
8
6
  from django_audit_fields.admin import audit_fieldset_tuple
9
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
7
+ from edc_action_item.fieldsets import action_fieldset_tuple
8
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
10
9
  from edc_constants.constants import OTHER
11
10
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
12
11
  from edc_model_admin.history import SimpleHistoryAdmin
@@ -30,7 +29,7 @@ class EndOfStudyAdmin(
30
29
  ):
31
30
  additional_instructions = format_html(
32
31
  "{html}",
33
- html=mark_safe(
32
+ html=mark_safe( # noqa: S308
34
33
  render_to_string(
35
34
  "meta_prn/eos/additional_instructions.html",
36
35
  context=dict(
@@ -123,7 +122,7 @@ class EndOfStudyAdmin(
123
122
  kwargs["queryset"] = OffstudyReasons.objects.order_by("display_index")
124
123
  return super().formfield_for_foreignkey(db_field, request, **kwargs)
125
124
 
126
- def get_list_display(self, request) -> Tuple[str, ...]:
125
+ def get_list_display(self, request) -> tuple[str, ...]:
127
126
  list_display = super().get_list_display(request)
128
127
  custom_fields = (
129
128
  "subject_identifier",
@@ -137,12 +136,12 @@ class EndOfStudyAdmin(
137
136
  f for f in list_display if f not in custom_fields + ("__str__",)
138
137
  )
139
138
 
140
- def get_list_filter(self, request) -> Tuple[str, ...]:
139
+ def get_list_filter(self, request) -> tuple[str, ...]:
141
140
  list_filter = super().get_list_filter(request)
142
141
  custom_fields = ("offstudy_reason", "last_seen_date")
143
142
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
144
143
 
145
- def get_search_fields(self, request) -> Tuple[str, ...]:
144
+ def get_search_fields(self, request) -> tuple[str, ...]:
146
145
  search_fields = super().get_search_fields(request)
147
146
  custom_fields = ("subject_identifier",)
148
147
  return tuple(set(custom_fields + search_fields))
@@ -1,6 +1,7 @@
1
1
  from django.contrib import admin
2
2
  from django_audit_fields.admin import audit_fieldset_tuple
3
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
3
+ from edc_action_item.fieldsets import action_fieldset_tuple
4
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
4
5
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
5
6
  from edc_model_admin.history import SimpleHistoryAdmin
6
7
  from edc_sites.admin import SiteModelAdminMixin
@@ -54,7 +55,7 @@ class LossToFollowupAdmin(
54
55
  "number_consecutive_missed_visits",
55
56
  )
56
57
 
57
- radio_fields = {
58
+ radio_fields = { # noqa: RUF012
58
59
  "home_visited": admin.VERTICAL,
59
60
  "loss_category": admin.VERTICAL,
60
61
  }
@@ -1,8 +1,7 @@
1
- from typing import Tuple
2
-
3
1
  from django.contrib import admin
4
2
  from django_audit_fields.admin import audit_fieldset_tuple
5
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
3
+ from edc_action_item.fieldsets import action_fieldset_tuple
4
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
6
5
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
7
6
  from edc_model_admin.history import SimpleHistoryAdmin
8
7
  from edc_sites.admin import SiteModelAdminMixin
@@ -40,7 +39,7 @@ class OffStudyMedicationAdmin(
40
39
  audit_fieldset_tuple,
41
40
  )
42
41
 
43
- radio_fields = {
42
+ radio_fields = { # noqa: RUF012
44
43
  "reason": admin.VERTICAL,
45
44
  }
46
45
 
@@ -48,7 +47,7 @@ class OffStudyMedicationAdmin(
48
47
 
49
48
  search_fields = ("subject_identifier",)
50
49
 
51
- def get_list_display(self, request) -> Tuple[str, ...]:
50
+ def get_list_display(self, request) -> tuple[str, ...]:
52
51
  list_display = super().get_list_display(request)
53
52
  custom_fields = (
54
53
  "subject_identifier",
@@ -58,7 +57,7 @@ class OffStudyMedicationAdmin(
58
57
  )
59
58
  return custom_fields + tuple(f for f in list_display if f not in custom_fields)
60
59
 
61
- def get_list_filter(self, request) -> Tuple[str, ...]:
60
+ def get_list_filter(self, request) -> tuple[str, ...]:
62
61
  list_filter = super().get_list_filter(request)
63
62
  custom_fields = (
64
63
  "medications",
@@ -1,10 +1,9 @@
1
- from typing import Tuple
2
-
3
1
  from django.contrib import admin
4
2
  from django.template.loader import render_to_string
5
3
  from django.utils.safestring import mark_safe
6
4
  from django_audit_fields import audit_fieldset_tuple
7
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
5
+ from edc_action_item.fieldsets import action_fieldset_tuple
6
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
8
7
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
9
8
  from edc_model_admin.history import SimpleHistoryAdmin
10
9
  from edc_sites.admin import SiteModelAdminMixin
@@ -23,7 +22,7 @@ class OffScheduleAdmin(
23
22
  ):
24
23
  form = OffScheduleForm
25
24
 
26
- additional_instructions = mark_safe(
25
+ additional_instructions = mark_safe( # noqa: S308
27
26
  render_to_string(
28
27
  "meta_prn/offschedule/additional_instructions.html",
29
28
  context=dict(verbose_name=EndOfStudy._meta.verbose_name),
@@ -36,12 +35,12 @@ class OffScheduleAdmin(
36
35
  audit_fieldset_tuple,
37
36
  )
38
37
 
39
- def get_list_display(self, request) -> Tuple[str, ...]:
38
+ def get_list_display(self, request) -> tuple[str, ...]:
40
39
  list_display = super().get_list_display(request)
41
40
  custom_fields = ("subject_identifier", "dashboard", "offschedule_datetime")
42
41
  return custom_fields + tuple(f for f in list_display if f not in custom_fields)
43
42
 
44
- def get_list_filter(self, request) -> Tuple[str, ...]:
43
+ def get_list_filter(self, request) -> tuple[str, ...]:
45
44
  list_filter = super().get_list_filter(request)
46
45
  custom_fields = ("offschedule_datetime",)
47
46
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
@@ -1,10 +1,10 @@
1
- from typing import Tuple
2
1
 
3
2
  from django.contrib import admin
4
3
  from django.template.loader import render_to_string
5
4
  from django.utils.safestring import mark_safe
6
5
  from django_audit_fields import audit_fieldset_tuple
7
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
6
+ from edc_action_item.fieldsets import action_fieldset_tuple
7
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
8
8
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
9
9
  from edc_model_admin.history import SimpleHistoryAdmin
10
10
  from edc_sites.admin import SiteModelAdminMixin
@@ -25,12 +25,12 @@ class OffScheduleDmReferralAdmin(
25
25
 
26
26
  form = OffScheduleDmReferralForm
27
27
 
28
- additional_instructions = mark_safe(
28
+ additional_instructions = mark_safe( # noqa: S308
29
29
  render_to_string(
30
30
  "meta_prn/offschedule/additional_instructions.html",
31
31
  context=dict(verbose_name=EndOfStudy._meta.verbose_name),
32
32
  )
33
- ) # nosec B703, B308
33
+ )
34
34
 
35
35
  fieldsets = (
36
36
  (None, {"fields": ("subject_identifier", "offschedule_datetime")}),
@@ -38,12 +38,12 @@ class OffScheduleDmReferralAdmin(
38
38
  audit_fieldset_tuple,
39
39
  )
40
40
 
41
- def get_list_display(self, request) -> Tuple[str, ...]:
41
+ def get_list_display(self, request) -> tuple[str, ...]:
42
42
  list_display = super().get_list_display(request)
43
43
  custom_fields = ("subject_identifier", "dashboard", "offschedule_datetime")
44
44
  return custom_fields + tuple(f for f in list_display if f not in custom_fields)
45
45
 
46
- def get_list_filter(self, request) -> Tuple[str, ...]:
46
+ def get_list_filter(self, request) -> tuple[str, ...]:
47
47
  list_filter = super().get_list_filter(request)
48
48
  custom_fields = ("offschedule_datetime",)
49
49
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
@@ -1,10 +1,10 @@
1
- from typing import Tuple
2
1
 
3
2
  from django.contrib import admin
4
3
  from django.template.loader import render_to_string
5
4
  from django.utils.safestring import mark_safe
6
5
  from django_audit_fields import audit_fieldset_tuple
7
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
6
+ from edc_action_item.fieldsets import action_fieldset_tuple
7
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
8
8
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
9
9
  from edc_model_admin.history import SimpleHistoryAdmin
10
10
  from edc_sites.admin import SiteModelAdminMixin
@@ -22,12 +22,12 @@ class OffSchedulePostnatalAdmin(
22
22
  ):
23
23
  instructions = None
24
24
 
25
- additional_instructions = mark_safe(
25
+ additional_instructions = mark_safe( # noqa: S308
26
26
  render_to_string(
27
27
  "meta_prn/offschedule/additional_instructions.html",
28
28
  context=dict(verbose_name=EndOfStudy._meta.verbose_name),
29
29
  )
30
- ) # nosec B703, B308
30
+ )
31
31
 
32
32
  fieldsets = (
33
33
  (None, {"fields": ("subject_identifier", "offschedule_datetime")}),
@@ -35,16 +35,16 @@ class OffSchedulePostnatalAdmin(
35
35
  audit_fieldset_tuple,
36
36
  )
37
37
 
38
- def get_list_display(self, request) -> Tuple[str, ...]:
38
+ def get_list_display(self, request) -> tuple[str, ...]:
39
39
  list_display = super().get_list_display(request)
40
40
  custom_fields = ("subject_identifier", "dashboard", "offschedule_datetime")
41
41
  return custom_fields + tuple(f for f in list_display if f not in custom_fields)
42
42
 
43
- def get_list_filter(self, request) -> Tuple[str, ...]:
43
+ def get_list_filter(self, request) -> tuple[str, ...]:
44
44
  list_filter = super().get_list_filter(request)
45
45
  custom_fields = ("offschedule_datetime",)
46
46
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
47
47
 
48
- def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
48
+ def get_readonly_fields(self, request, obj=None) -> tuple[str, ...]:
49
49
  custom_fields = ("subject_identifier", "offschedule_datetime")
50
50
  return tuple(set(super().get_readonly_fields(request, obj=obj) + custom_fields))
@@ -1,10 +1,10 @@
1
- from typing import Tuple
2
1
 
3
2
  from django.contrib import admin
4
3
  from django.template.loader import render_to_string
5
4
  from django.utils.safestring import mark_safe
6
5
  from django_audit_fields import audit_fieldset_tuple
7
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
6
+ from edc_action_item.fieldsets import action_fieldset_tuple
7
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
8
8
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
9
9
  from edc_model_admin.history import SimpleHistoryAdmin
10
10
  from edc_sites.admin import SiteModelAdminMixin
@@ -23,12 +23,12 @@ class OffSchedulePregnancyAdmin(
23
23
  ):
24
24
  instructions = None
25
25
 
26
- additional_instructions = mark_safe(
26
+ additional_instructions = mark_safe( # noqa: S308
27
27
  render_to_string(
28
28
  "meta_prn/offschedule/additional_instructions.html",
29
29
  context=dict(verbose_name=EndOfStudy._meta.verbose_name),
30
30
  )
31
- ) # nosec B703, B308
31
+ )
32
32
 
33
33
  form = OffSchedulePregnancyForm
34
34
 
@@ -38,16 +38,17 @@ class OffSchedulePregnancyAdmin(
38
38
  audit_fieldset_tuple,
39
39
  )
40
40
 
41
- def get_list_display(self, request) -> Tuple[str, ...]:
41
+ def get_list_display(self, request) -> tuple[str, ...]:
42
42
  list_display = super().get_list_display(request)
43
43
  custom_fields = ("subject_identifier", "dashboard", "offschedule_datetime")
44
44
  return custom_fields + tuple(f for f in list_display if f not in custom_fields)
45
45
 
46
- def get_list_filter(self, request) -> Tuple[str, ...]:
46
+ def get_list_filter(self, request) -> tuple[str, ...]:
47
47
  list_filter = super().get_list_filter(request)
48
48
  custom_fields = ("offschedule_datetime",)
49
49
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
50
50
 
51
51
  # def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
52
52
  # custom_fields = ("subject_identifier", "offschedule_datetime")
53
- # return tuple(set(super().get_readonly_fields(request, obj=obj) + custom_fields))
53
+ # return tuple(set(super().get_readonly_fields(request, obj=obj) +
54
+ # custom_fields))
@@ -1,5 +1,3 @@
1
- from typing import Tuple
2
-
3
1
  from django.contrib import admin
4
2
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
5
3
  from edc_model_admin.history import SimpleHistoryAdmin
@@ -17,23 +15,24 @@ class OnScheduleAdmin(
17
15
 
18
16
  fields = ("subject_identifier", "onschedule_datetime")
19
17
 
20
- def get_list_display(self, request) -> Tuple[str, ...]:
18
+ def get_list_display(self, request) -> tuple[str, ...]:
21
19
  list_display = super().get_list_display(request)
22
20
  custom_fields = ("subject_identifier", "dashboard", "onschedule_datetime")
23
21
  return custom_fields + tuple(
24
- f for f in list_display if f not in custom_fields + ("__str__",)
22
+ f for f in list_display if f not in (*custom_fields, "__str__")
25
23
  )
26
24
 
27
- def get_list_filter(self, request) -> Tuple[str, ...]:
25
+ def get_list_filter(self, request) -> tuple[str, ...]:
28
26
  list_filter = super().get_list_filter(request)
29
27
  custom_fields = ("onschedule_datetime",)
30
28
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
31
29
 
32
- def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
30
+ def get_readonly_fields(self, request, obj=None) -> tuple[str, ...]: # noqa: ARG002
33
31
  return (
34
32
  "subject_identifier",
35
33
  "onschedule_datetime",
36
34
  )
37
35
 
38
- def get_search_fields(self, request) -> Tuple[str, ...]:
39
- return tuple(set(super().get_search_fields(request) + ("subject_identifier",)))
36
+ def get_search_fields(self, request) -> tuple[str, ...]:
37
+ fields = super().get_search_fields(request)
38
+ return tuple({*fields, "subject_identifier"})
@@ -1,5 +1,3 @@
1
- from typing import Tuple
2
-
3
1
  from django.contrib import admin
4
2
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
5
3
  from edc_model_admin.history import SimpleHistoryAdmin
@@ -17,14 +15,14 @@ class OnScheduleDmReferralAdmin(
17
15
 
18
16
  fields = ("subject_identifier", "onschedule_datetime")
19
17
 
20
- def get_list_display(self, request) -> Tuple[str, ...]:
18
+ def get_list_display(self, request) -> tuple[str, ...]:
21
19
  list_display = super().get_list_display(request)
22
20
  custom_fields = ("subject_identifier", "dashboard", "onschedule_datetime")
23
21
  return custom_fields + tuple(
24
- f for f in list_display if f not in custom_fields + ("__str__",)
22
+ f for f in list_display if f not in (*custom_fields, "__str__")
25
23
  )
26
24
 
27
- def get_list_filter(self, request) -> Tuple[str, ...]:
25
+ def get_list_filter(self, request) -> tuple[str, ...]:
28
26
  list_filter = super().get_list_filter(request)
29
27
  custom_fields = ("onschedule_datetime",)
30
28
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
@@ -35,5 +33,6 @@ class OnScheduleDmReferralAdmin(
35
33
  # "onschedule_datetime",
36
34
  # )
37
35
 
38
- def get_search_fields(self, request) -> Tuple[str, ...]:
39
- return tuple(set(super().get_search_fields(request) + ("subject_identifier",)))
36
+ def get_search_fields(self, request) -> tuple[str, ...]:
37
+ fields = super().get_search_fields(request)
38
+ return tuple({*fields, "subject_identifier"})
@@ -1,8 +1,7 @@
1
- from typing import Tuple
2
-
3
1
  from django.contrib import admin
4
2
  from django_audit_fields.admin import audit_fieldset_tuple
5
- from edc_action_item import ActionItemModelAdminMixin, action_fieldset_tuple
3
+ from edc_action_item.fieldsets import action_fieldset_tuple
4
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
6
5
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
7
6
  from edc_model_admin.history import SimpleHistoryAdmin
8
7
  from edc_sites.admin import SiteModelAdminMixin
@@ -46,12 +45,12 @@ class PregnancyNotificationAdmin(
46
45
  audit_fieldset_tuple,
47
46
  )
48
47
 
49
- radio_fields = {
48
+ radio_fields = { # noqa: RUF012
50
49
  "bhcg_confirmed": admin.VERTICAL,
51
50
  "may_contact": admin.VERTICAL,
52
51
  }
53
52
 
54
- def get_list_display(self, request) -> Tuple[str, ...]:
53
+ def get_list_display(self, request) -> tuple[str, ...]:
55
54
  list_display = super().get_list_display(request)
56
55
  custom_fields = (
57
56
  "subject_identifier",
@@ -61,7 +60,7 @@ class PregnancyNotificationAdmin(
61
60
  )
62
61
  return custom_fields + tuple(f for f in list_display if f not in custom_fields)
63
62
 
64
- def get_list_filter(self, request) -> Tuple[str, ...]:
63
+ def get_list_filter(self, request) -> tuple[str, ...]:
65
64
  list_filter = super().get_list_filter(request)
66
65
  custom_fields = ("edd", "may_contact")
67
66
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
@@ -1,5 +1,5 @@
1
1
  from django.contrib import admin
2
- from edc_action_item import ActionItemModelAdminMixin
2
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
3
3
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
4
4
  from edc_model_admin.history import SimpleHistoryAdmin
5
5
  from edc_protocol_incident.modeladmin_mixins import ProtocolIncidentModelAdminMixin
@@ -1,5 +1,5 @@
1
1
  from django.contrib import admin
2
- from edc_action_item import ActionItemModelAdminMixin
2
+ from edc_action_item.modeladmin_mixins import ActionItemModelAdminMixin
3
3
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
4
4
  from edc_model_admin.history import SimpleHistoryAdmin
5
5
  from edc_sites.admin import SiteModelAdminMixin
meta_prn/admin_site.py CHANGED
File without changes
meta_prn/apps.py CHANGED
File without changes
meta_prn/baker_recipes.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from dateutil.relativedelta import relativedelta
2
+ from django.utils import timezone
2
3
  from edc_constants.constants import YES
3
- from edc_utils import get_utcnow
4
4
  from faker import Faker
5
5
  from model_bakery.recipe import Recipe
6
6
 
@@ -14,15 +14,15 @@ pregnancynotification = Recipe(
14
14
  # site=None,
15
15
  action_identifier=None,
16
16
  subject_identifier=None,
17
- report_datetime=get_utcnow(),
17
+ report_datetime=timezone.now(),
18
18
  bhcg_confirmed=YES,
19
19
  unconfirmed_details=None,
20
- edd=get_utcnow() + relativedelta(months=6),
20
+ edd=timezone.now() + relativedelta(months=6),
21
21
  )
22
22
 
23
23
  dmreferral = Recipe(
24
24
  DmReferral,
25
25
  action_identifier=None,
26
26
  subject_identifier=None,
27
- report_datetime=get_utcnow(),
27
+ report_datetime=timezone.now(),
28
28
  )
meta_prn/choices.py CHANGED
File without changes
meta_prn/constants.py CHANGED
File without changes
@@ -1,2 +1,7 @@
1
1
  from .end_of_study import EndOfStudyFormValidator
2
2
  from .protocol_incident import ProtocolIncidentFormValidator
3
+
4
+ __all__ = [
5
+ "EndOfStudyFormValidator",
6
+ "ProtocolIncidentFormValidator",
7
+ ]
@@ -192,7 +192,7 @@ class EndOfStudyFormValidator(
192
192
  if (obj.bhcg_date or obj.report_datetime.date()) != self.cleaned_data.get(
193
193
  "pregnancy_date"
194
194
  ):
195
- dt = formatted_date((obj.bhcg_date or obj.report_datetime.date()))
195
+ dt = formatted_date(obj.bhcg_date or obj.report_datetime.date())
196
196
  self.raise_validation_error(
197
197
  {
198
198
  "pregnancy_date": (
@@ -229,7 +229,7 @@ class EndOfStudyFormValidator(
229
229
  obj.delivery_datetime.date() or obj.report_datetime.date()
230
230
  ) != self.cleaned_data.get("delivery_date"):
231
231
  dt = formatted_date(
232
- (obj.delivery_datetime.date() or obj.report_datetime.date())
232
+ obj.delivery_datetime.date() or obj.report_datetime.date()
233
233
  )
234
234
  self.raise_validation_error(
235
235
  {
File without changes
@@ -8,3 +8,16 @@ from .offschedule_pregnancy_form import OffSchedulePregnancyForm
8
8
  from .pregnancy_notification_form import PregnancyNotificationForm
9
9
  from .protocol_incident_form import ProtocolIncidentForm
10
10
  from .subject_transfer_form import SubjectTransferForm
11
+
12
+ __all__ = [
13
+ "DmReferralForm",
14
+ "EndOfStudyForm",
15
+ "LossToFollowupForm",
16
+ "OffScheduleDmReferralForm",
17
+ "OffScheduleForm",
18
+ "OffSchedulePregnancyForm",
19
+ "OffStudyMedicationForm",
20
+ "PregnancyNotificationForm",
21
+ "ProtocolIncidentForm",
22
+ "SubjectTransferForm",
23
+ ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
meta_prn/list_data.py CHANGED
File without changes