clinicedc 2.0.41__py3-none-any.whl → 2.0.42__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 clinicedc might be problematic. Click here for more details.

Files changed (346) hide show
  1. {clinicedc-2.0.41.dist-info → clinicedc-2.0.42.dist-info}/METADATA +3 -1
  2. {clinicedc-2.0.41.dist-info → clinicedc-2.0.42.dist-info}/RECORD +337 -344
  3. edc_action_item/action.py +1 -1
  4. edc_action_item/action_item_notification.py +1 -1
  5. edc_action_item/choices.py +1 -1
  6. edc_action_item/data_fixers.py +1 -2
  7. edc_action_item/delete_action_item.py +1 -2
  8. edc_action_item/forms/action_item_form.py +1 -1
  9. edc_action_item/models/action_item.py +1 -1
  10. edc_action_item/models/action_type.py +1 -1
  11. edc_action_item/models/signals.py +1 -1
  12. edc_action_item/templatetags/action_item_extras.py +1 -1
  13. edc_action_item/utils.py +1 -2
  14. edc_action_item/view_mixins/action_item_view_mixin.py +1 -1
  15. edc_adherence/choices.py +1 -1
  16. edc_adherence/form_validator_mixin.py +1 -2
  17. edc_adherence/list_data.py +1 -1
  18. edc_adherence/model_mixins.py +1 -1
  19. edc_adverse_event/action_items/ae_followup_action.py +9 -9
  20. edc_adverse_event/action_items/ae_initial_action.py +12 -16
  21. edc_adverse_event/action_items/ae_susar_action.py +2 -1
  22. edc_adverse_event/action_items/ae_tmg_action.py +6 -4
  23. edc_adverse_event/action_items/death_report_action.py +7 -7
  24. edc_adverse_event/action_items/death_report_tmg_action.py +2 -1
  25. edc_adverse_event/action_items/death_report_tmg_second_action.py +2 -1
  26. edc_adverse_event/action_items/hospitalization_action.py +2 -1
  27. edc_adverse_event/auths.py +3 -1
  28. edc_adverse_event/choices.py +13 -6
  29. edc_adverse_event/constants.py +1 -23
  30. edc_adverse_event/form_validator_mixins/death_report_form_validator.py +1 -1
  31. edc_adverse_event/form_validator_mixins/requires_death_report_form_validator_mixin.py +1 -2
  32. edc_adverse_event/form_validators/ae_followup.py +2 -3
  33. edc_adverse_event/form_validators/ae_initial.py +2 -1
  34. edc_adverse_event/form_validators/ae_tmg.py +2 -1
  35. edc_adverse_event/form_validators/death_report_tmg.py +1 -1
  36. edc_adverse_event/form_validators/hospitalization.py +2 -1
  37. edc_adverse_event/list_data.py +1 -1
  38. edc_adverse_event/model_mixins/ae_followup/ae_followup_fields_model_mixin.py +1 -1
  39. edc_adverse_event/model_mixins/ae_followup/ae_followup_methods_model_mixin.py +1 -2
  40. edc_adverse_event/model_mixins/ae_initial/ae_initial_fields_model_mixin.py +1 -1
  41. edc_adverse_event/model_mixins/ae_initial/ae_initial_susar_model_mixin.py +2 -2
  42. edc_adverse_event/model_mixins/ae_susar/ae_susar_methods_model_mixin.py +1 -2
  43. edc_adverse_event/model_mixins/ae_tmg/ae_tmg_fields_model_mixin.py +1 -1
  44. edc_adverse_event/model_mixins/hospitaization/hospitalization_model_mixin.py +1 -1
  45. edc_adverse_event/modeladmin_mixins/ae_initial_admin_mixin.py +1 -1
  46. edc_adverse_event/modeladmin_mixins/ae_tmg_admin_mixin.py +1 -1
  47. edc_adverse_event/modeladmin_mixins/death_report_admin_mixin.py +1 -1
  48. edc_adverse_event/modeladmin_mixins/death_report_tmg_admin_mixin.py +1 -1
  49. edc_adverse_event/modelform_mixins/ae_followup_modelform_mixin.py +1 -2
  50. edc_adverse_event/modelform_mixins/ae_initial_modelform_mixin.py +1 -2
  51. edc_adverse_event/models/signals.py +2 -2
  52. edc_adverse_event/pdf_reports/ae_pdf_report.py +3 -2
  53. edc_adverse_event/pdf_reports/death_pdf_report.py +3 -2
  54. edc_adverse_event/templatetags/edc_adverse_event_extras.py +2 -3
  55. edc_adverse_event/urls.py +1 -0
  56. edc_adverse_event/utils.py +11 -14
  57. edc_adverse_event/view_mixins/ae/ae_listboard_view_mixin.py +3 -3
  58. edc_adverse_event/view_mixins/ae/death_report_listboard_view_mixin.py +1 -1
  59. edc_adverse_event/view_mixins/tmg/tmg_ae_listboard_view_mixin.py +2 -1
  60. edc_adverse_event/views/home_view.py +1 -0
  61. edc_adverse_event/views/tmg/home_view.py +1 -1
  62. edc_adverse_event/views/tmg/status_listboards.py +1 -1
  63. edc_analytics/custom_tables/age.py +1 -2
  64. edc_analytics/custom_tables/art.py +1 -2
  65. edc_analytics/custom_tables/bmi.py +1 -3
  66. edc_analytics/custom_tables/bp.py +1 -3
  67. edc_analytics/custom_tables/fasting.py +1 -2
  68. edc_analytics/custom_tables/fbg.py +1 -2
  69. edc_analytics/custom_tables/fbg_ogtt.py +1 -2
  70. edc_analytics/custom_tables/hba1c.py +1 -2
  71. edc_analytics/custom_tables/ogtt.py +1 -2
  72. edc_analytics/custom_tables/waist.py +1 -2
  73. edc_analytics/row/row_statistics_with_gender.py +1 -2
  74. edc_analytics/table.py +1 -2
  75. edc_appointment/admin/actions.py +1 -1
  76. edc_appointment/admin/appointment_admin.py +1 -1
  77. edc_appointment/appointment_reason_updater.py +1 -1
  78. edc_appointment/choices.py +1 -2
  79. edc_appointment/form_validator_mixins/next_appointment_crf_form_validator_mixin.py +1 -1
  80. edc_appointment/list_data.py +2 -3
  81. edc_appointment/model_mixins/missed_appointment_model_mixin.py +1 -1
  82. edc_appointment/model_mixins/next_appointment_crf_model_mixin.py +1 -2
  83. edc_appointment/modeladmin_mixins/next_appointment_crf_modeladmin_mixin.py +1 -1
  84. edc_appointment/models/signals.py +1 -1
  85. edc_appointment/utils.py +4 -2
  86. edc_auth/constants.py +3 -0
  87. edc_consent/choices.py +1 -1
  88. edc_consent/consent_definition.py +1 -1
  89. edc_consent/consent_definition_extension.py +1 -1
  90. edc_consent/field_mixins/citizen_fields_mixin.py +3 -3
  91. edc_consent/model_mixins/consent_model_mixin.py +1 -1
  92. edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_validation_mixin.py +1 -1
  93. edc_consent/modelform_mixins/consent_modelform_mixin/review_fields_modelform_mixin.py +1 -2
  94. edc_consent/validators.py +5 -10
  95. edc_constants/__init__.py +0 -3
  96. edc_constants/choices.py +2 -3
  97. edc_constants/context_processor.py +2 -3
  98. edc_constants/utils.py +2 -3
  99. edc_crf/model_mixins/crf_status_model_mixin.py +1 -1
  100. edc_crf/model_mixins/singleton_crf_model_mixin.py +0 -1
  101. edc_crf/update_crf_status_command.py +1 -2
  102. edc_crf/update_crf_status_for_instance.py +1 -2
  103. edc_dashboard/url_config.py +1 -2
  104. edc_dashboard/views/administration_view.py +1 -0
  105. edc_data_manager/action_items.py +7 -7
  106. edc_data_manager/admin/actions.py +1 -1
  107. edc_data_manager/admin/data_query_admin.py +10 -10
  108. edc_data_manager/choices.py +1 -1
  109. edc_data_manager/forms/data_query.py +1 -1
  110. edc_data_manager/handlers/handlers.py +1 -1
  111. edc_data_manager/models/data_query.py +1 -1
  112. edc_data_manager/models/model_mixins.py +1 -2
  113. edc_data_manager/models/query_rule.py +1 -1
  114. edc_data_manager/view_mixins/data_manager_view_mixin.py +1 -1
  115. edc_document_status/model_mixins.py +1 -1
  116. edc_document_status/models/signals.py +1 -2
  117. edc_dx/diagnoses.py +2 -3
  118. edc_dx/form_validators/diagnosis_form_validator_mixin.py +1 -2
  119. edc_dx_review/choices.py +1 -1
  120. edc_dx_review/form_validator_mixins/clinical_review_followup_form_validator_mixin.py +2 -1
  121. edc_dx_review/list_data.py +1 -1
  122. edc_dx_review/medical_date.py +1 -1
  123. edc_dx_review/model_mixins/clinical_review_baseline_model_mixin.py +1 -1
  124. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py +1 -1
  125. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py +1 -1
  126. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py +1 -1
  127. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py +1 -1
  128. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_model_mixin.py +1 -1
  129. edc_dx_review/model_mixins/factory/baseline_review_model_mixin_factory.py +1 -1
  130. edc_dx_review/model_mixins/factory/calculate_date.py +1 -1
  131. edc_dx_review/model_mixins/factory/dx_initial_review_model_mixin_factory.py +1 -1
  132. edc_dx_review/model_mixins/factory/followup_review_model_mixin_factory.py +1 -1
  133. edc_dx_review/model_mixins/factory/rx_initial_review_model_mixin_factory.py +1 -1
  134. edc_dx_review/model_mixins/followup_review/followup_review_model_mixin.py +1 -1
  135. edc_dx_review/model_mixins/followup_review/hiv_followup_review_model_mixin.py +1 -1
  136. edc_dx_review/model_mixins/initial_review/chol_initial_review_model_mixin.py +1 -1
  137. edc_dx_review/model_mixins/initial_review/hiv_initial_model_mixins.py +2 -3
  138. edc_dx_review/model_mixins/initial_review/ncd_initial_review_model_mixin.py +1 -1
  139. edc_dx_review/utils.py +1 -1
  140. edc_egfr/__init__.py +0 -1
  141. edc_egfr/egfr.py +23 -15
  142. edc_egfr/form_validator_mixins/egfr_form_validator_mixins.py +30 -25
  143. edc_egfr/model_mixins/egfr_drop_notification_model_mixin.py +8 -2
  144. edc_egfr/model_mixins/egfr_model_mixin.py +2 -2
  145. edc_export/management/commands/import_receipts.py +1 -2
  146. edc_export/model_exporter/object_history_helpers.py +1 -2
  147. edc_export/models/object_history.py +1 -1
  148. edc_export/models/upload_export_receipt_file.py +1 -1
  149. edc_facility/list_data.py +1 -1
  150. edc_fieldsets/fieldsets_modeladmin_mixin.py +1 -2
  151. edc_form_validators/applicable_field_validator.py +1 -1
  152. edc_form_validators/date_validator.py +1 -1
  153. edc_form_validators/many_to_many_field_validator.py +1 -2
  154. edc_form_validators/other_specify_field_validator.py +1 -2
  155. edc_form_validators/required_field_validator.py +1 -2
  156. edc_glucose/form_validators/fasting_form_validator.py +1 -1
  157. edc_glucose/form_validators/glucose_form_validator.py +3 -3
  158. edc_glucose/form_validators/glucose_form_validator_mixin.py +1 -2
  159. edc_glucose/form_validators/ogtt_form_validator_mixin.py +1 -2
  160. edc_glucose/model_mixin_factories/fasting_model_mixin_factory.py +1 -1
  161. edc_glucose/model_mixin_factories/fbg_model_mixin_factory.py +1 -2
  162. edc_glucose/model_mixin_factories/glucose_model_mixin_factory.py +1 -1
  163. edc_glucose/model_mixin_factories/ogtt_model_mixin_factory.py +1 -2
  164. edc_glucose/model_mixins/hba1c_model_mixin.py +1 -3
  165. edc_glucose/utils.py +2 -2
  166. edc_identifier/model_mixins.py +1 -2
  167. edc_identifier/models.py +1 -1
  168. edc_identifier/simple_identifier.py +1 -2
  169. edc_lab/admin/modeladmin_mixins.py +1 -1
  170. edc_lab/choices.py +7 -10
  171. edc_lab/constants.py +0 -2
  172. edc_lab/form_validators/crf_requisition_form_validator_mixin.py +1 -0
  173. edc_lab/form_validators/requisition_form_validator_mixin.py +1 -1
  174. edc_lab/lab/specimen.py +1 -2
  175. edc_lab/model_mixins/requisition/requisition_identifier_mixin.py +1 -1
  176. edc_lab/model_mixins/requisition/requisition_model_mixin.py +1 -1
  177. edc_lab/model_mixins/shipping/manifest_model_mixin.py +1 -1
  178. edc_lab/model_mixins/shipping/verify_model_mixin.py +1 -2
  179. edc_lab/models/box.py +1 -1
  180. edc_lab_dashboard/middleware.py +1 -0
  181. edc_lab_dashboard/urls.py +1 -0
  182. edc_lab_dashboard/view_mixins/form_action_view_mixin.py +1 -0
  183. edc_lab_dashboard/view_mixins/process_requisition_view_mixin.py +1 -1
  184. edc_lab_dashboard/views/action_views/manage_box_item_view.py +1 -0
  185. edc_lab_dashboard/views/action_views/receive_view.py +1 -1
  186. edc_lab_dashboard/views/listboard_views/manage_box_listboard_view.py +1 -0
  187. edc_lab_dashboard/views/listboard_views/pack_listboard_view.py +1 -1
  188. edc_lab_dashboard/views/listboard_views/process_listboard_view.py +2 -1
  189. edc_lab_dashboard/views/listboard_views/receive_listboard_view.py +2 -1
  190. edc_lab_dashboard/views/listboard_views/requisition_listboard_view.py +1 -2
  191. edc_lab_dashboard/views/listboard_views/verify_box_listboard_view.py +1 -0
  192. edc_lab_results/action_items.py +1 -1
  193. edc_lab_results/form_validator_mixins/blood_results_fbg_form_validator_mixin.py +1 -1
  194. edc_lab_results/form_validator_mixins/blood_results_form_validator_mixin.py +2 -1
  195. edc_lab_results/model_mixin_factories/field_attrs.py +1 -1
  196. edc_lab_results/model_mixins/electrolytes_model_mixins.py +2 -2
  197. edc_lab_results/model_mixins/fbc_model_mixins.py +9 -8
  198. edc_lab_results/model_mixins/fbg_model_mixin.py +2 -7
  199. edc_lab_results/model_mixins/glucose_model_mixin.py +2 -7
  200. edc_lab_results/model_mixins/insulin_model_mixin.py +2 -1
  201. edc_lab_results/model_mixins/lft_model_mixins.py +7 -6
  202. edc_lab_results/model_mixins/lipid_model_mixins.py +1 -2
  203. edc_lab_results/model_mixins/proteinuria_model_mixin.py +1 -2
  204. edc_lab_results/model_mixins/rft_model_mixins.py +5 -3
  205. edc_listboard/views/screen/screening_listboard_view.py +1 -1
  206. edc_locator/action_items.py +2 -1
  207. edc_locator/forms/subject_locator_form_validator.py +1 -1
  208. edc_locator/modeladmin_mixins.py +1 -1
  209. edc_ltfu/action_items.py +2 -1
  210. edc_ltfu/choices.py +1 -1
  211. edc_ltfu/constants.py +0 -2
  212. edc_ltfu/forms/ltfu_form_validator.py +2 -1
  213. edc_ltfu/forms/ltfu_form_validator_mixin.py +1 -1
  214. edc_ltfu/modelform_mixins.py +2 -5
  215. edc_metadata/admin/modeladmin_mixins.py +4 -4
  216. edc_model/choices.py +1 -1
  217. edc_model/models/fields/date_estimated.py +1 -1
  218. edc_model_admin/context_processors.py +1 -1
  219. edc_model_admin/list_filters/future_date_list_filter.py +6 -7
  220. edc_model_admin/list_filters/list_field_with_other_list_filter.py +1 -1
  221. edc_model_admin/list_filters/past_date_list_filter.py +6 -7
  222. edc_model_admin/mixins/model_admin_redirect_on_delete_mixin.py +1 -0
  223. edc_model_admin/templatetags/edc_admin_modify.py +1 -1
  224. edc_model_fields/fields/date_estimated.py +1 -1
  225. edc_model_to_dataframe/model_to_dataframe.py +1 -1
  226. edc_navbar/navbar_item.py +1 -0
  227. edc_navbar/system_checks.py +3 -0
  228. edc_offstudy/action_items.py +2 -1
  229. edc_offstudy/choices.py +2 -1
  230. edc_pdf_reports/crf_pdf_report.py +9 -7
  231. edc_pdutils/dataframes/get_subject_consent.py +1 -2
  232. edc_pdutils/dataframes/get_subject_visit.py +1 -11
  233. edc_pdutils/helper.py +1 -2
  234. edc_pdutils/mappings.py +1 -1
  235. edc_pdutils/tables/crf.py +1 -2
  236. edc_pdutils/tables/requisition.py +1 -2
  237. edc_pdutils/utils/__init__.py +1 -0
  238. edc_pdutils/utils/convert_visit_code_to_float.py +8 -0
  239. edc_pdutils/utils/decrypt.py +5 -4
  240. edc_pdutils/utils/missing_subject_identifiers.py +5 -4
  241. edc_pharmacy/action_items.py +2 -1
  242. edc_pharmacy/admin/list_filters.py +1 -1
  243. edc_pharmacy/admin/stock/allocation_admin.py +1 -1
  244. edc_pharmacy/admin/stock/order_item_admin.py +1 -1
  245. edc_pharmacy/admin/stock/stock_request_admin.py +1 -1
  246. edc_pharmacy/admin/stock/stock_transfer_admin.py +1 -1
  247. edc_pharmacy/admin/stock/stock_transfer_item_admin.py +1 -1
  248. edc_pharmacy/choices.py +1 -2
  249. edc_pharmacy/form_validators/crf/study_medication_form_validator.py +1 -1
  250. edc_pharmacy/list_data.py +1 -1
  251. edc_pharmacy/model_mixins/study_medication_crf_model_mixin.py +1 -1
  252. edc_pharmacy/model_mixins/study_medication_refill_model_mixin.py +1 -1
  253. edc_pharmacy/models/model_mixins.py +1 -2
  254. edc_pharmacy/models/prescription/rx.py +1 -1
  255. edc_pharmacy/models/signals.py +1 -1
  256. edc_pharmacy/models/stock/order.py +1 -1
  257. edc_pharmacy/models/stock/order_item.py +1 -2
  258. edc_pharmacy/models/stock/stock_request.py +1 -1
  259. edc_pharmacy/views/confirm_stock_from_queryset_view.py +2 -1
  260. edc_pharmacy/views/confirmation_at_site_view.py +1 -1
  261. edc_prn/models.py +1 -2
  262. edc_protocol_incident/action_items.py +2 -1
  263. edc_protocol_incident/choices.py +1 -1
  264. edc_protocol_incident/form_validators/mixins.py +2 -1
  265. edc_protocol_incident/form_validators/protocol_deviation_violation_form_validator.py +2 -1
  266. edc_protocol_incident/form_validators/protocol_incident_form_validator.py +2 -1
  267. edc_protocol_incident/list_data.py +1 -1
  268. edc_protocol_incident/model_mixins/protocol_deviation_violation_model_mixin.py +1 -1
  269. edc_protocol_incident/modeladmin_mixins.py +1 -1
  270. edc_qareports/choices.py +1 -1
  271. edc_qareports/migrations/0017_auto_20240816_0256.py +1 -2
  272. edc_qareports/modeladmin_mixins/list_filters.py +1 -2
  273. edc_qareports/modeladmin_mixins/qa_report_modeladmin_mixin.py +1 -1
  274. edc_qareports/sql_generator/requisition_subquery.py +1 -1
  275. edc_refusal/forms.py +2 -1
  276. edc_refusal/list_data.py +1 -1
  277. edc_registration/model_mixins/updates_or_creates_registered_subject_model_mixin.py +1 -1
  278. edc_registration/models/registered_subject.py +1 -1
  279. edc_reportable/__init__.py +0 -35
  280. edc_reportable/choices.py +8 -3
  281. edc_reportable/constants.py +0 -7
  282. edc_reportable/data/__init__.py +0 -1
  283. edc_reportable/data/grading_data/ctcae_v5.py +1 -2
  284. edc_reportable/data/grading_data/daids_july_2017.py +7 -6
  285. edc_reportable/data/normal_data/africa.py +6 -5
  286. edc_reportable/exceptions.py +0 -4
  287. edc_reportable/forms/reportables_form_validator_mixin.py +2 -1
  288. edc_reportable/formula.py +1 -1
  289. edc_reportable/post_migrate_signals.py +1 -1
  290. edc_reportable/reference_range_evaluator.py +8 -2
  291. edc_reportable/units.py +2 -23
  292. edc_reportable/utils/__init__.py +1 -1
  293. edc_reportable/utils/get_mw.py +20 -0
  294. edc_reportable/utils/get_normal_data_or_raise.py +1 -1
  295. edc_review_dashboard/auths.py +1 -1
  296. edc_review_dashboard/middleware.py +1 -0
  297. edc_review_dashboard/urls.py +1 -0
  298. edc_review_dashboard/views/subject_review_listboard_view.py +1 -0
  299. edc_screening/choices.py +1 -1
  300. edc_screening/gender_evaluator.py +1 -1
  301. edc_screening/model_mixins/screening_fields_model_mixin.py +1 -1
  302. edc_screening/modelform_mixins.py +1 -1
  303. edc_screening/screening_eligibility.py +1 -2
  304. edc_sites/models/site_profile.py +1 -2
  305. edc_sites/site.py +1 -1
  306. edc_subject_dashboard/requisition_labels.py +1 -1
  307. edc_subject_dashboard/requisition_report.py +1 -1
  308. edc_subject_dashboard/requisition_verifier.py +1 -1
  309. edc_subject_dashboard/urls.py +1 -0
  310. edc_subject_dashboard/view_utils/go_to_forms_button.py +1 -1
  311. edc_subject_dashboard/views/requisition_print_actions_view.py +1 -1
  312. edc_subject_dashboard/views/subject_dashboard_view.py +1 -0
  313. edc_transfer/action_items.py +2 -1
  314. edc_transfer/choices.py +1 -1
  315. edc_transfer/form_validators.py +1 -1
  316. edc_transfer/list_data.py +1 -1
  317. edc_unblinding/action_items.py +2 -1
  318. edc_unblinding/models/unblinding_request.py +1 -1
  319. edc_unblinding/models/unblinding_review.py +1 -1
  320. edc_visit_schedule/action_items.py +2 -1
  321. edc_visit_schedule/admin/subject_schedule_history_admin.py +1 -0
  322. edc_visit_tracking/action_items.py +2 -1
  323. edc_visit_tracking/choices.py +1 -1
  324. edc_visit_tracking/form_validators/visit_form_validator.py +1 -1
  325. edc_visit_tracking/form_validators/visit_missed_form_validator.py +2 -1
  326. edc_visit_tracking/managers.py +1 -2
  327. edc_visit_tracking/model_mixins/subject_visit_missed_model_mixin.py +1 -1
  328. edc_visit_tracking/model_mixins/visit_model_mixin/caretaker_fields_mixin.py +1 -1
  329. edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_fields_mixin.py +1 -1
  330. edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_mixin.py +1 -1
  331. edc_visit_tracking/modeladmin_mixins/crf_model_admin_mixin.py +2 -1
  332. edc_visit_tracking/modeladmin_mixins/visit_model_admin_mixin.py +1 -1
  333. edc_visit_tracking/models/signals.py +1 -1
  334. edc_visit_tracking/view_utils/related_visit_button.py +1 -1
  335. edc_vitals/form_validators/blood_pressure_form_validator_mixin.py +1 -2
  336. edc_constants/constants.py +0 -250
  337. edc_constants/disease_constants.py +0 -22
  338. edc_egfr/calculators/__init__.py +0 -4
  339. edc_egfr/calculators/base_egrfr.py +0 -56
  340. edc_egfr/calculators/egfr_ckd_epi.py +0 -68
  341. edc_egfr/calculators/egfr_cockcroft_gault.py +0 -62
  342. edc_egfr/calculators/percent_change.py +0 -7
  343. edc_reportable/data/molecular_weights.py +0 -11
  344. edc_reportable/utils/convert_units.py +0 -163
  345. {clinicedc-2.0.41.dist-info → clinicedc-2.0.42.dist-info}/WHEEL +0 -0
  346. {clinicedc-2.0.41.dist-info → clinicedc-2.0.42.dist-info}/licenses/LICENSE +0 -0
edc_action_item/action.py CHANGED
@@ -4,6 +4,7 @@ import logging
4
4
  from contextlib import suppress
5
5
  from typing import TYPE_CHECKING
6
6
 
7
+ from clinicedc_constants import CLOSED, NEW, OPEN
7
8
  from django.apps import apps as django_apps
8
9
  from django.conf import settings
9
10
  from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
@@ -12,7 +13,6 @@ from django.db import models
12
13
  from django.utils.formats import localize
13
14
 
14
15
  from edc_action_item.stubs import ActionItemStub
15
- from edc_constants.constants import CLOSED, NEW, OPEN
16
16
  from edc_model.constants import DEFAULT_BASE_FIELDS
17
17
  from edc_sites.utils import valid_site_for_subject_or_raise
18
18
 
@@ -1,7 +1,7 @@
1
+ from clinicedc_constants import CLOSED, NEW, OPEN
1
2
  from django.core.exceptions import ObjectDoesNotExist
2
3
  from django.utils import timezone
3
4
 
4
- from edc_constants.constants import CLOSED, NEW, OPEN
5
5
  from edc_notification.notification import Notification
6
6
 
7
7
  NOTIFY_ON_NEW_AND_NO_REFERENCE_OBJ = "notify_on_new_and_no_reference_obj"
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import (
1
+ from clinicedc_constants import (
2
2
  CANCELLED,
3
3
  CLOSED,
4
4
  HIGH_PRIORITY,
@@ -1,6 +1,7 @@
1
1
  import re
2
2
  import sys
3
3
 
4
+ from clinicedc_constants import CLOSED, NEW, OPEN
4
5
  from django.core.exceptions import (
5
6
  FieldError,
6
7
  MultipleObjectsReturned,
@@ -9,8 +10,6 @@ from django.core.exceptions import (
9
10
  from django.db import connection
10
11
  from django.db.models.signals import post_delete, post_save, pre_save
11
12
 
12
- from edc_constants.constants import CLOSED, NEW, OPEN
13
-
14
13
  from .site_action_items import site_action_items
15
14
 
16
15
 
@@ -1,7 +1,6 @@
1
+ from clinicedc_constants import NEW
1
2
  from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
2
3
 
3
- from edc_constants.constants import NEW
4
-
5
4
  from .get_action_type import get_action_type
6
5
 
7
6
 
@@ -1,7 +1,7 @@
1
+ from clinicedc_constants import CANCELLED, NEW, OPEN
1
2
  from django import forms
2
3
  from django.apps import apps as django_apps
3
4
 
4
- from edc_constants.constants import CANCELLED, NEW, OPEN
5
5
  from edc_model_form.mixins import BaseModelFormMixin
6
6
 
7
7
  from ..models import ActionItem
@@ -3,13 +3,13 @@ from __future__ import annotations
3
3
  from datetime import datetime
4
4
  from typing import TYPE_CHECKING
5
5
 
6
+ from clinicedc_constants import CANCELLED, NEW
6
7
  from django.apps import apps as django_apps
7
8
  from django.core.exceptions import ObjectDoesNotExist
8
9
  from django.db import models
9
10
  from django.db.models.deletion import PROTECT
10
11
  from django.utils import timezone
11
12
 
12
- from edc_constants.constants import CANCELLED, NEW
13
13
  from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin
14
14
  from edc_model.models import BaseUuidModel, HistoricalRecords
15
15
  from edc_notification.model_mixins import NotificationModelMixin
@@ -2,10 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any
4
4
 
5
+ from clinicedc_constants import HIGH_PRIORITY
5
6
  from django.apps import apps as django_apps
6
7
  from django.db import models
7
8
 
8
- from edc_constants.constants import HIGH_PRIORITY
9
9
  from edc_model.models import BaseUuidModel
10
10
 
11
11
  from ..choices import PRIORITY
@@ -1,11 +1,11 @@
1
1
  from typing import Any
2
2
 
3
+ from clinicedc_constants import CLOSED, NEW, OPEN
3
4
  from django.core.exceptions import ObjectDoesNotExist
4
5
  from django.db.models.signals import m2m_changed, post_delete, post_save
5
6
  from django.dispatch import receiver
6
7
  from simple_history.signals import post_create_historical_record
7
8
 
8
- from edc_constants.constants import CLOSED, NEW, OPEN
9
9
  from edc_notification.site_notifications import site_notifications
10
10
 
11
11
  from ..utils import reset_and_delete_action_item
@@ -2,10 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
5
+ from clinicedc_constants import CANCELLED, CLOSED, HIGH_PRIORITY, NEW, OPEN
5
6
  from django import template
6
7
 
7
8
  from edc_auth.utils import get_user
8
- from edc_constants.constants import CANCELLED, CLOSED, HIGH_PRIORITY, NEW, OPEN
9
9
  from edc_utils.date import to_local
10
10
  from edc_utils.text import formatted_date
11
11
 
edc_action_item/utils.py CHANGED
@@ -2,12 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  import contextlib
4
4
 
5
+ from clinicedc_constants import CLOSED, NEW
5
6
  from django.apps import apps as django_apps
6
7
  from django.core.exceptions import ObjectDoesNotExist
7
8
  from tqdm import tqdm
8
9
 
9
- from edc_constants.constants import CLOSED, NEW
10
-
11
10
  from .create_or_update_action_type import create_or_update_action_type
12
11
  from .identifiers import ActionIdentifier
13
12
  from .models import ActionItem
@@ -2,9 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any
4
4
 
5
+ from clinicedc_constants import NEW, OPEN
5
6
  from django.db.models import QuerySet
6
7
 
7
- from edc_constants.constants import NEW, OPEN
8
8
  from edc_sites.site import sites
9
9
 
10
10
  from ..models import ActionItem
edc_adherence/choices.py CHANGED
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import NEVER
1
+ from clinicedc_constants import NEVER
2
2
 
3
3
  MISSED_PILLS = (
4
4
  ("today", "today"),
@@ -1,9 +1,8 @@
1
1
  from typing import Any
2
2
 
3
+ from clinicedc_constants import NEVER, OTHER, YES
3
4
  from django import forms
4
5
 
5
- from edc_constants.constants import NEVER, OTHER, YES
6
-
7
6
 
8
7
  class MedicationAdherenceFormValidatorMixin:
9
8
  def clean(self: Any):
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import OTHER
1
+ from clinicedc_constants import OTHER
2
2
 
3
3
  list_data = {
4
4
  "edc_adherence.nonadherencereasons": [
@@ -1,10 +1,10 @@
1
+ from clinicedc_constants import YES
1
2
  from django.conf import settings
2
3
  from django.core.validators import MaxValueValidator, MinValueValidator
3
4
  from django.db import models
4
5
  from django.utils.html import format_html
5
6
 
6
7
  from edc_constants.choices import YES_NO
7
- from edc_constants.constants import YES
8
8
  from edc_model import models as edc_models
9
9
 
10
10
  from .choices import MISSED_PILLS
@@ -1,15 +1,9 @@
1
+ from clinicedc_constants import DEAD, GRADE5, HIGH_PRIORITY, LTFU, YES
1
2
  from django.utils.html import format_html
2
3
  from django.utils.safestring import mark_safe
3
4
 
4
5
  from edc_action_item.action_with_notification import ActionWithNotification
5
6
  from edc_action_item.site_action_items import site_action_items
6
- from edc_adverse_event.constants import (
7
- AE_FOLLOWUP_ACTION,
8
- AE_INITIAL_ACTION,
9
- DEATH_REPORT_ACTION,
10
- )
11
- from edc_constants.constants import DEAD, GRADE5, HIGH_PRIORITY, YES
12
- from edc_ltfu.constants import LOST_TO_FOLLOWUP
13
7
  from edc_notification.utils import get_email_contacts
14
8
  from edc_visit_schedule.utils import (
15
9
  OnScheduleError,
@@ -17,7 +11,13 @@ from edc_visit_schedule.utils import (
17
11
  get_onschedule_models,
18
12
  )
19
13
 
20
- from ..constants import ADVERSE_EVENT_ADMIN_SITE, ADVERSE_EVENT_APP_LABEL
14
+ from ..constants import (
15
+ ADVERSE_EVENT_ADMIN_SITE,
16
+ ADVERSE_EVENT_APP_LABEL,
17
+ AE_FOLLOWUP_ACTION,
18
+ AE_INITIAL_ACTION,
19
+ DEATH_REPORT_ACTION,
20
+ )
21
21
 
22
22
 
23
23
  class AeFollowupAction(ActionWithNotification):
@@ -88,7 +88,7 @@ class AeFollowupAction(ActionWithNotification):
88
88
 
89
89
  def update_next_actions_ltfu(self, next_actions=None):
90
90
  """Add Study termination to next_actions if LTFU."""
91
- if self.reference_obj.outcome and self.reference_obj.outcome == LOST_TO_FOLLOWUP:
91
+ if self.reference_obj.outcome and self.reference_obj.outcome == LTFU:
92
92
  if not self.onschedule_models:
93
93
  raise OnScheduleError(
94
94
  f"Subject cannot be lost to followup. "
@@ -1,14 +1,16 @@
1
+ from clinicedc_constants import DEAD, GRADE3, GRADE4, GRADE5, HIGH_PRIORITY, NO, YES
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_adverse_event.constants import (
4
+
5
+ from ..constants import (
6
+ ADVERSE_EVENT_ADMIN_SITE,
7
+ ADVERSE_EVENT_APP_LABEL,
3
8
  AE_FOLLOWUP_ACTION,
4
9
  AE_INITIAL_ACTION,
5
10
  AE_SUSAR_ACTION,
6
11
  AE_TMG_ACTION,
7
12
  DEATH_REPORT_ACTION,
8
13
  )
9
- from edc_constants.constants import DEAD, GRADE3, GRADE4, GRADE5, HIGH_PRIORITY, NO, YES
10
-
11
- from ..constants import ADVERSE_EVENT_ADMIN_SITE, ADVERSE_EVENT_APP_LABEL
12
14
 
13
15
 
14
16
  class AeInitialAction(ActionWithNotification):
@@ -25,11 +27,9 @@ class AeInitialAction(ActionWithNotification):
25
27
 
26
28
  @property
27
29
  def deceased(self):
28
- if (self.reference_obj.ae_grade and self.reference_obj.ae_grade == GRADE5) or (
30
+ return (self.reference_obj.ae_grade and self.reference_obj.ae_grade == GRADE5) or (
29
31
  self.reference_obj.sae_reason.name and self.reference_obj.sae_reason.name == DEAD
30
- ):
31
- return True
32
- return False
32
+ )
33
33
 
34
34
  def get_next_actions(self):
35
35
  """Returns next actions."""
@@ -37,19 +37,17 @@ class AeInitialAction(ActionWithNotification):
37
37
  next_actions = self.append_ae_followup_next_action(next_actions)
38
38
  next_actions = self.append_ae_susar_next_action(next_actions)
39
39
  next_actions = self.append_ae_tmg_next_action(next_actions)
40
- next_actions = self.append_death_report_next_action(next_actions)
41
- return next_actions
40
+ return self.append_death_report_next_action(next_actions)
42
41
 
43
42
  def append_ae_susar_next_action(self, next_actions=None):
44
43
  """Add next AE_SUSAR_ACTION if SUSAR == YES."""
45
- next_actions = self.append_to_next_if_required(
44
+ return self.append_to_next_if_required(
46
45
  next_actions=next_actions,
47
46
  action_name=AE_SUSAR_ACTION,
48
47
  required=(
49
48
  self.reference_obj.susar == YES and self.reference_obj.susar_reported == NO
50
49
  ),
51
50
  )
52
- return next_actions
53
51
 
54
52
  def append_ae_followup_next_action(self, next_actions=None):
55
53
  """Add next AeFollowup if not deceased."""
@@ -72,18 +70,16 @@ class AeInitialAction(ActionWithNotification):
72
70
  required=self.reference_obj.ae_grade == GRADE4,
73
71
  )
74
72
  # add next AeTmgAction if G3 and is an SAE
75
- next_actions = self.append_to_next_if_required(
73
+ return self.append_to_next_if_required(
76
74
  next_actions=next_actions,
77
75
  action_name=AE_TMG_ACTION,
78
76
  required=(self.reference_obj.ae_grade == GRADE3 and self.reference_obj.sae == YES),
79
77
  )
80
- return next_actions
81
78
 
82
79
  def append_death_report_next_action(self, next_actions=None):
83
80
  """Add next Death report if G5/Death."""
84
- next_actions = self.append_to_next_if_required(
81
+ return self.append_to_next_if_required(
85
82
  next_actions=next_actions,
86
83
  action_name=DEATH_REPORT_ACTION,
87
84
  required=self.deceased,
88
85
  )
89
- return next_actions
@@ -1,5 +1,6 @@
1
+ from clinicedc_constants import HIGH_PRIORITY
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_constants.constants import HIGH_PRIORITY
3
4
 
4
5
  from ..constants import (
5
6
  ADVERSE_EVENT_ADMIN_SITE,
@@ -1,12 +1,14 @@
1
+ from clinicedc_constants import CLOSED, HIGH_PRIORITY
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_adverse_event.constants import (
4
+
5
+ from ..constants import (
6
+ ADVERSE_EVENT_ADMIN_SITE,
7
+ ADVERSE_EVENT_APP_LABEL,
3
8
  AE_FOLLOWUP_ACTION,
4
9
  AE_INITIAL_ACTION,
5
10
  AE_TMG_ACTION,
6
11
  )
7
- from edc_constants.constants import CLOSED, HIGH_PRIORITY
8
-
9
- from ..constants import ADVERSE_EVENT_ADMIN_SITE, ADVERSE_EVENT_APP_LABEL
10
12
 
11
13
 
12
14
  class AeTmgAction(ActionWithNotification):
@@ -1,16 +1,17 @@
1
+ from clinicedc_constants import HIGH_PRIORITY
1
2
  from django.apps import apps as django_apps
2
3
  from django.core.exceptions import ObjectDoesNotExist
3
4
 
4
5
  from edc_action_item.action_with_notification import ActionWithNotification
5
- from edc_adverse_event.constants import (
6
+ from edc_visit_schedule.utils import get_offschedule_models
7
+
8
+ from ..constants import (
9
+ ADVERSE_EVENT_ADMIN_SITE,
10
+ ADVERSE_EVENT_APP_LABEL,
6
11
  AE_FOLLOWUP_ACTION,
7
12
  AE_INITIAL_ACTION,
8
13
  DEATH_REPORT_ACTION,
9
14
  )
10
- from edc_constants.constants import HIGH_PRIORITY
11
- from edc_visit_schedule.utils import get_offschedule_models
12
-
13
- from ..constants import ADVERSE_EVENT_ADMIN_SITE, ADVERSE_EVENT_APP_LABEL
14
15
 
15
16
 
16
17
  class DeathReportAction(ActionWithNotification):
@@ -35,8 +36,7 @@ class DeathReportAction(ActionWithNotification):
35
36
  next_actions = []
36
37
  if self.enable_tmg_workflow:
37
38
  next_actions = self.append_next_death_tmg_action(next_actions)
38
- next_actions = self.append_next_off_schedule_action(next_actions)
39
- return next_actions
39
+ return self.append_next_off_schedule_action(next_actions)
40
40
 
41
41
  def append_next_death_tmg_action(self, next_actions):
42
42
  if self.death_report_tmg_model:
@@ -1,5 +1,6 @@
1
+ from clinicedc_constants import CLOSED, HIGH_PRIORITY, NO, YES
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_constants.constants import CLOSED, HIGH_PRIORITY, NO, YES
3
4
 
4
5
  from ..constants import (
5
6
  ADVERSE_EVENT_ADMIN_SITE,
@@ -1,5 +1,6 @@
1
+ from clinicedc_constants import CLOSED, HIGH_PRIORITY
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_constants.constants import CLOSED, HIGH_PRIORITY
3
4
 
4
5
  from ..constants import (
5
6
  ADVERSE_EVENT_ADMIN_SITE,
@@ -1,5 +1,6 @@
1
+ from clinicedc_constants import HIGH_PRIORITY
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_constants.constants import HIGH_PRIORITY
3
4
 
4
5
  from ..constants import HOSPITALIZATION_ACTION
5
6
 
@@ -1,8 +1,11 @@
1
+ from clinicedc_constants import AE, AE_REVIEW, AE_ROLE, AE_SUPER, TMG, TMG_REVIEW
2
+
1
3
  from edc_auth.constants import (
2
4
  AUDITOR_ROLE,
3
5
  CLINICIAN_ROLE,
4
6
  CLINICIAN_SUPER_ROLE,
5
7
  NURSE_ROLE,
8
+ TMG_ROLE,
6
9
  )
7
10
  from edc_auth.site_auths import site_auths
8
11
  from edc_auth.utils import remove_default_model_permissions_from_edc_permissions
@@ -15,7 +18,6 @@ from .auth_objects import (
15
18
  tmg_dashboard_tuples,
16
19
  tmg_navbar_tuples,
17
20
  )
18
- from .constants import AE, AE_REVIEW, AE_ROLE, AE_SUPER, TMG, TMG_REVIEW, TMG_ROLE
19
21
 
20
22
 
21
23
  def update_site_auths():
@@ -1,18 +1,25 @@
1
- from edc_constants.constants import DEAD, GRADE3, GRADE4, GRADE5, NOT_APPLICABLE, OTHER
2
- from edc_ltfu.constants import LOST_TO_FOLLOWUP
3
- from edc_reportable import MILD, MODERATE, SEVERE, SEVERITY_INCREASED_FROM_G3
4
-
5
- from .constants import (
1
+ from clinicedc_constants import (
6
2
  AE_WITHDRAWN,
7
3
  CONTINUING_UPDATE,
4
+ DEAD,
8
5
  DEFINITELY_RELATED,
6
+ GRADE3,
7
+ GRADE4,
8
+ GRADE5,
9
+ LTFU,
10
+ MILD,
11
+ MODERATE,
12
+ NOT_APPLICABLE,
9
13
  NOT_RECOVERED,
10
14
  NOT_RELATED,
15
+ OTHER,
11
16
  POSSIBLY_RELATED,
12
17
  PROBABLY_RELATED,
13
18
  RECOVERED,
14
19
  RECOVERED_WITH_SEQUELAE,
15
20
  RECOVERING,
21
+ SEVERE,
22
+ SEVERITY_INCREASED_FROM_G3,
16
23
  UNLIKELY_RELATED,
17
24
  )
18
25
 
@@ -43,7 +50,7 @@ AE_OUTCOME = (
43
50
  (RECOVERED, "Recovered/Resolved"),
44
51
  (RECOVERING, "Recovering/Resolving at end of study"),
45
52
  (NOT_RECOVERED, "Not Recovered/Resolved at end of study"),
46
- (LOST_TO_FOLLOWUP, "Unknown/Lost to follow-up"),
53
+ (LTFU, "Unknown/Lost to follow-up"),
47
54
  (RECOVERED_WITH_SEQUELAE, "Recovered with sequelae"),
48
55
  (DEAD, "Death"),
49
56
  (AE_WITHDRAWN, "Adverse event report withdrawn after TMG review"),
@@ -1,3 +1,4 @@
1
+ # see clinicedc_constants
1
2
  from django.conf import settings
2
3
 
3
4
  ADVERSE_EVENT_APP_LABEL = getattr(settings, "ADVERSE_EVENT_APP_LABEL", "edc_adverse_event")
@@ -9,31 +10,8 @@ AE_FOLLOWUP_ACTION = "submit-ae-followup-report"
9
10
  AE_INITIAL_ACTION = "submit-initial-ae-report"
10
11
  AE_SUSAR_ACTION = "submit-ae-susar-report"
11
12
  AE_TMG_ACTION = "submit-ae-tmg-report"
12
- AE_WITHDRAWN = "ae_withdrawn"
13
- CONTINUING_UPDATE = "continuing/update"
14
13
  DEATH_REPORT_ACTION = "submit-death-report"
15
- DEATH_REPORT_NOT_FOUND = "DEATH_REPORT_NOT_FOUND"
16
14
  DEATH_REPORT_TMG_ACTION = "submit-death-report-tmg"
17
15
  DEATH_REPORT_TMG_SECOND_ACTION = "submit-death-report-tmg-2nd"
18
- DEFINITELY_RELATED = "definitely_related"
19
- DISCHARGED = "discharged"
20
16
  HOSPITALIZATION_ACTION = "submit-hospitalization-report"
21
- INPATIENT = "inpatient"
22
- NOT_RECOVERED = "not_recovered"
23
- NOT_RELATED = "not_related"
24
- POSSIBLY_RELATED = "possibly_related"
25
- PROBABLY_RELATED = "probably_related"
26
- RECOVERED = "recovered"
27
- RECOVERED_WITH_SEQUELAE = "recovered_with_sequelae"
28
- RECOVERING = "recovering"
29
17
  STUDY_TERMINATION_CONCLUSION_ACTION = "submit-study-termination-conclusion"
30
- UNLIKELY_RELATED = "unlikely_related"
31
-
32
- # roles
33
- AE = "AE"
34
- AE_REVIEW = "AE_REVIEW"
35
- AE_ROLE = "ae_role"
36
- AE_SUPER = "AE_SUPER"
37
- TMG = "TMG"
38
- TMG_REVIEW = "TMG_REVIEW"
39
- TMG_ROLE = "tmg"
@@ -3,11 +3,11 @@ from __future__ import annotations
3
3
  from typing import TYPE_CHECKING, Any
4
4
  from zoneinfo import ZoneInfo
5
5
 
6
+ from clinicedc_constants import CLOSED, OTHER
6
7
  from django import forms
7
8
  from django.apps import apps as django_apps
8
9
  from django.conf import settings
9
10
 
10
- from edc_constants.constants import CLOSED, OTHER
11
11
  from edc_form_validators.base_form_validator import INVALID_ERROR
12
12
  from edc_utils.text import convert_php_dateformat
13
13
 
@@ -4,14 +4,13 @@ from datetime import date
4
4
  from typing import TYPE_CHECKING
5
5
  from zoneinfo import ZoneInfo
6
6
 
7
+ from clinicedc_constants import DEAD, DEATH_REPORT_NOT_FOUND
7
8
  from django import forms
8
9
  from django.conf import settings
9
10
  from django.core.exceptions import ObjectDoesNotExist
10
11
 
11
- from edc_constants.constants import DEAD
12
12
  from edc_utils.text import convert_php_dateformat
13
13
 
14
- from ..constants import DEATH_REPORT_NOT_FOUND
15
14
  from ..utils import get_ae_model
16
15
 
17
16
  if TYPE_CHECKING:
@@ -1,7 +1,6 @@
1
- from edc_adverse_event.constants import AE_WITHDRAWN
2
- from edc_constants.constants import YES
1
+ from clinicedc_constants import AE_WITHDRAWN, SEVERITY_INCREASED_FROM_G3, YES
2
+
3
3
  from edc_form_validators import INVALID_ERROR, FormValidator
4
- from edc_reportable import SEVERITY_INCREASED_FROM_G3
5
4
 
6
5
 
7
6
  class AeFollowupFormValidator(FormValidator):
@@ -1,4 +1,5 @@
1
- from edc_constants.constants import YES
1
+ from clinicedc_constants import YES
2
+
2
3
  from edc_form_validators import FormValidator
3
4
 
4
5
 
@@ -1,4 +1,5 @@
1
- from edc_constants.constants import CLOSED, NO
1
+ from clinicedc_constants import CLOSED, NO
2
+
2
3
  from edc_form_validators import FormValidator
3
4
 
4
5
 
@@ -2,9 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  from datetime import date
4
4
 
5
+ from clinicedc_constants import CLOSED, NO, OTHER
5
6
  from django.core.exceptions import ObjectDoesNotExist
6
7
 
7
- from edc_constants.constants import CLOSED, NO, OTHER
8
8
  from edc_form_validators import INVALID_ERROR, FormValidator
9
9
 
10
10
  from ..form_validator_mixins import (
@@ -1,4 +1,5 @@
1
- from edc_constants.constants import YES
1
+ from clinicedc_constants import YES
2
+
2
3
  from edc_form_validators import INVALID_ERROR
3
4
  from edc_form_validators.form_validator import FormValidator
4
5
 
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import DEAD, NOT_APPLICABLE, OTHER, UNKNOWN
1
+ from clinicedc_constants import DEAD, NOT_APPLICABLE, OTHER, UNKNOWN
2
2
 
3
3
  list_data = {
4
4
  "edc_adverse_event.aeclassification": [
@@ -1,8 +1,8 @@
1
+ from clinicedc_constants import NOT_APPLICABLE, YES
1
2
  from django.db import models
2
3
  from django.utils import timezone
3
4
 
4
5
  from edc_constants.choices import YES_NO
5
- from edc_constants.constants import NOT_APPLICABLE, YES
6
6
  from edc_model.validators import date_not_future
7
7
 
8
8
  from ...choices import AE_GRADE_SIMPLE, AE_OUTCOME
@@ -1,7 +1,6 @@
1
+ from clinicedc_constants import NOT_APPLICABLE
1
2
  from django.db import models
2
3
 
3
- from edc_constants.constants import NOT_APPLICABLE
4
-
5
4
 
6
5
  class AeFollowupMethodsModelMixin(models.Model):
7
6
  def __str__(self):
@@ -1,7 +1,7 @@
1
1
  import django.utils.timezone
2
+ from clinicedc_constants import NOT_APPLICABLE
2
3
  from django.db import models
3
4
 
4
- from edc_constants.constants import NOT_APPLICABLE
5
5
  from edc_model.validators import date_not_future
6
6
  from edc_model_fields.fields.other_charfield import OtherCharField
7
7
 
@@ -1,7 +1,7 @@
1
+ from clinicedc_constants import NOT_APPLICABLE
1
2
  from django.db import models
2
3
 
3
4
  from edc_constants.choices import YES_NO, YES_NO_NA
4
- from edc_constants.constants import NOT_APPLICABLE
5
5
 
6
6
 
7
7
  class AeInitialSusarModelMixin(models.Model):
@@ -12,7 +12,7 @@ class AeInitialSusarModelMixin(models.Model):
12
12
  choices=YES_NO,
13
13
  max_length=5,
14
14
  help_text=(
15
- "If yes, SUSAR must be reported to Principal " "Investigator and TMG immediately,"
15
+ "If yes, SUSAR must be reported to Principal Investigator and TMG immediately,"
16
16
  ),
17
17
  )
18
18
 
@@ -1,7 +1,6 @@
1
+ from clinicedc_constants import CLOSED, OPEN
1
2
  from django.db import models
2
3
 
3
- from edc_constants.constants import CLOSED, OPEN
4
-
5
4
 
6
5
  class AeSusarMethodsModelMixin(models.Model):
7
6
  class Meta:
@@ -1,8 +1,8 @@
1
+ from clinicedc_constants import NOT_APPLICABLE
1
2
  from django.db import models
2
3
  from django.utils import timezone
3
4
 
4
5
  from edc_constants.choices import YES_NO, YES_NO_NA
5
- from edc_constants.constants import NOT_APPLICABLE
6
6
  from edc_model.validators import datetime_not_future
7
7
  from edc_model_fields.fields import OtherCharField
8
8