clinicedc 2.0.41__py3-none-any.whl → 2.0.43__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.43.dist-info}/METADATA +4 -2
  2. {clinicedc-2.0.41.dist-info → clinicedc-2.0.43.dist-info}/RECORD +337 -344
  3. {clinicedc-2.0.41.dist-info → clinicedc-2.0.43.dist-info}/WHEEL +1 -1
  4. edc_action_item/action.py +1 -1
  5. edc_action_item/action_item_notification.py +1 -1
  6. edc_action_item/choices.py +1 -1
  7. edc_action_item/data_fixers.py +1 -2
  8. edc_action_item/delete_action_item.py +1 -2
  9. edc_action_item/forms/action_item_form.py +1 -1
  10. edc_action_item/models/action_item.py +1 -1
  11. edc_action_item/models/action_type.py +1 -1
  12. edc_action_item/models/signals.py +1 -1
  13. edc_action_item/templatetags/action_item_extras.py +1 -1
  14. edc_action_item/utils.py +1 -2
  15. edc_action_item/view_mixins/action_item_view_mixin.py +1 -1
  16. edc_adherence/choices.py +1 -1
  17. edc_adherence/form_validator_mixin.py +1 -2
  18. edc_adherence/list_data.py +1 -1
  19. edc_adherence/model_mixins.py +1 -1
  20. edc_adverse_event/action_items/ae_followup_action.py +9 -9
  21. edc_adverse_event/action_items/ae_initial_action.py +12 -16
  22. edc_adverse_event/action_items/ae_susar_action.py +2 -1
  23. edc_adverse_event/action_items/ae_tmg_action.py +6 -4
  24. edc_adverse_event/action_items/death_report_action.py +7 -7
  25. edc_adverse_event/action_items/death_report_tmg_action.py +2 -1
  26. edc_adverse_event/action_items/death_report_tmg_second_action.py +2 -1
  27. edc_adverse_event/action_items/hospitalization_action.py +2 -1
  28. edc_adverse_event/auths.py +3 -1
  29. edc_adverse_event/choices.py +13 -6
  30. edc_adverse_event/constants.py +1 -23
  31. edc_adverse_event/form_validator_mixins/death_report_form_validator.py +1 -1
  32. edc_adverse_event/form_validator_mixins/requires_death_report_form_validator_mixin.py +1 -2
  33. edc_adverse_event/form_validators/ae_followup.py +2 -3
  34. edc_adverse_event/form_validators/ae_initial.py +2 -1
  35. edc_adverse_event/form_validators/ae_tmg.py +2 -1
  36. edc_adverse_event/form_validators/death_report_tmg.py +1 -1
  37. edc_adverse_event/form_validators/hospitalization.py +2 -1
  38. edc_adverse_event/list_data.py +1 -1
  39. edc_adverse_event/model_mixins/ae_followup/ae_followup_fields_model_mixin.py +1 -1
  40. edc_adverse_event/model_mixins/ae_followup/ae_followup_methods_model_mixin.py +1 -2
  41. edc_adverse_event/model_mixins/ae_initial/ae_initial_fields_model_mixin.py +1 -1
  42. edc_adverse_event/model_mixins/ae_initial/ae_initial_susar_model_mixin.py +2 -2
  43. edc_adverse_event/model_mixins/ae_susar/ae_susar_methods_model_mixin.py +1 -2
  44. edc_adverse_event/model_mixins/ae_tmg/ae_tmg_fields_model_mixin.py +1 -1
  45. edc_adverse_event/model_mixins/hospitaization/hospitalization_model_mixin.py +1 -1
  46. edc_adverse_event/modeladmin_mixins/ae_initial_admin_mixin.py +1 -1
  47. edc_adverse_event/modeladmin_mixins/ae_tmg_admin_mixin.py +1 -1
  48. edc_adverse_event/modeladmin_mixins/death_report_admin_mixin.py +1 -1
  49. edc_adverse_event/modeladmin_mixins/death_report_tmg_admin_mixin.py +1 -1
  50. edc_adverse_event/modelform_mixins/ae_followup_modelform_mixin.py +1 -2
  51. edc_adverse_event/modelform_mixins/ae_initial_modelform_mixin.py +1 -2
  52. edc_adverse_event/models/signals.py +2 -2
  53. edc_adverse_event/pdf_reports/ae_pdf_report.py +3 -2
  54. edc_adverse_event/pdf_reports/death_pdf_report.py +3 -2
  55. edc_adverse_event/templatetags/edc_adverse_event_extras.py +2 -3
  56. edc_adverse_event/urls.py +1 -0
  57. edc_adverse_event/utils.py +11 -14
  58. edc_adverse_event/view_mixins/ae/ae_listboard_view_mixin.py +3 -3
  59. edc_adverse_event/view_mixins/ae/death_report_listboard_view_mixin.py +1 -1
  60. edc_adverse_event/view_mixins/tmg/tmg_ae_listboard_view_mixin.py +2 -1
  61. edc_adverse_event/views/home_view.py +1 -0
  62. edc_adverse_event/views/tmg/home_view.py +1 -1
  63. edc_adverse_event/views/tmg/status_listboards.py +1 -1
  64. edc_analytics/custom_tables/age.py +1 -2
  65. edc_analytics/custom_tables/art.py +1 -2
  66. edc_analytics/custom_tables/bmi.py +1 -3
  67. edc_analytics/custom_tables/bp.py +1 -3
  68. edc_analytics/custom_tables/fasting.py +1 -2
  69. edc_analytics/custom_tables/fbg.py +1 -2
  70. edc_analytics/custom_tables/fbg_ogtt.py +1 -2
  71. edc_analytics/custom_tables/hba1c.py +1 -2
  72. edc_analytics/custom_tables/ogtt.py +1 -2
  73. edc_analytics/custom_tables/waist.py +1 -2
  74. edc_analytics/row/row_statistics_with_gender.py +1 -2
  75. edc_analytics/table.py +1 -2
  76. edc_appointment/admin/actions.py +1 -1
  77. edc_appointment/admin/appointment_admin.py +1 -1
  78. edc_appointment/appointment_reason_updater.py +1 -1
  79. edc_appointment/choices.py +1 -2
  80. edc_appointment/form_validator_mixins/next_appointment_crf_form_validator_mixin.py +1 -1
  81. edc_appointment/list_data.py +2 -3
  82. edc_appointment/model_mixins/missed_appointment_model_mixin.py +1 -1
  83. edc_appointment/model_mixins/next_appointment_crf_model_mixin.py +1 -2
  84. edc_appointment/modeladmin_mixins/next_appointment_crf_modeladmin_mixin.py +1 -1
  85. edc_appointment/models/signals.py +1 -1
  86. edc_appointment/utils.py +4 -2
  87. edc_auth/constants.py +3 -0
  88. edc_consent/choices.py +1 -1
  89. edc_consent/consent_definition.py +1 -1
  90. edc_consent/consent_definition_extension.py +1 -1
  91. edc_consent/field_mixins/citizen_fields_mixin.py +3 -3
  92. edc_consent/model_mixins/consent_model_mixin.py +1 -1
  93. edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_validation_mixin.py +1 -1
  94. edc_consent/modelform_mixins/consent_modelform_mixin/review_fields_modelform_mixin.py +1 -2
  95. edc_consent/validators.py +5 -10
  96. edc_constants/__init__.py +0 -3
  97. edc_constants/choices.py +2 -3
  98. edc_constants/context_processor.py +2 -3
  99. edc_constants/utils.py +2 -3
  100. edc_crf/model_mixins/crf_status_model_mixin.py +1 -1
  101. edc_crf/model_mixins/singleton_crf_model_mixin.py +0 -1
  102. edc_crf/update_crf_status_command.py +1 -2
  103. edc_crf/update_crf_status_for_instance.py +1 -2
  104. edc_dashboard/url_config.py +1 -2
  105. edc_dashboard/views/administration_view.py +1 -0
  106. edc_data_manager/action_items.py +7 -7
  107. edc_data_manager/admin/actions.py +1 -1
  108. edc_data_manager/admin/data_query_admin.py +10 -10
  109. edc_data_manager/choices.py +1 -1
  110. edc_data_manager/forms/data_query.py +1 -1
  111. edc_data_manager/handlers/handlers.py +1 -1
  112. edc_data_manager/models/data_query.py +1 -1
  113. edc_data_manager/models/model_mixins.py +1 -2
  114. edc_data_manager/models/query_rule.py +1 -1
  115. edc_data_manager/view_mixins/data_manager_view_mixin.py +1 -1
  116. edc_document_status/model_mixins.py +1 -1
  117. edc_document_status/models/signals.py +1 -2
  118. edc_dx/diagnoses.py +2 -3
  119. edc_dx/form_validators/diagnosis_form_validator_mixin.py +1 -2
  120. edc_dx_review/choices.py +1 -1
  121. edc_dx_review/form_validator_mixins/clinical_review_followup_form_validator_mixin.py +2 -1
  122. edc_dx_review/list_data.py +1 -1
  123. edc_dx_review/medical_date.py +1 -1
  124. edc_dx_review/model_mixins/clinical_review_baseline_model_mixin.py +1 -1
  125. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py +1 -1
  126. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py +1 -1
  127. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py +1 -1
  128. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py +1 -1
  129. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_model_mixin.py +1 -1
  130. edc_dx_review/model_mixins/factory/baseline_review_model_mixin_factory.py +1 -1
  131. edc_dx_review/model_mixins/factory/calculate_date.py +1 -1
  132. edc_dx_review/model_mixins/factory/dx_initial_review_model_mixin_factory.py +1 -1
  133. edc_dx_review/model_mixins/factory/followup_review_model_mixin_factory.py +1 -1
  134. edc_dx_review/model_mixins/factory/rx_initial_review_model_mixin_factory.py +1 -1
  135. edc_dx_review/model_mixins/followup_review/followup_review_model_mixin.py +1 -1
  136. edc_dx_review/model_mixins/followup_review/hiv_followup_review_model_mixin.py +1 -1
  137. edc_dx_review/model_mixins/initial_review/chol_initial_review_model_mixin.py +1 -1
  138. edc_dx_review/model_mixins/initial_review/hiv_initial_model_mixins.py +2 -3
  139. edc_dx_review/model_mixins/initial_review/ncd_initial_review_model_mixin.py +1 -1
  140. edc_dx_review/utils.py +1 -1
  141. edc_egfr/__init__.py +0 -1
  142. edc_egfr/egfr.py +23 -15
  143. edc_egfr/form_validator_mixins/egfr_form_validator_mixins.py +30 -25
  144. edc_egfr/model_mixins/egfr_drop_notification_model_mixin.py +8 -2
  145. edc_egfr/model_mixins/egfr_model_mixin.py +2 -2
  146. edc_export/management/commands/import_receipts.py +1 -2
  147. edc_export/model_exporter/object_history_helpers.py +1 -2
  148. edc_export/models/object_history.py +1 -1
  149. edc_export/models/upload_export_receipt_file.py +1 -1
  150. edc_facility/list_data.py +1 -1
  151. edc_fieldsets/fieldsets_modeladmin_mixin.py +1 -2
  152. edc_form_validators/applicable_field_validator.py +1 -1
  153. edc_form_validators/date_validator.py +1 -1
  154. edc_form_validators/many_to_many_field_validator.py +1 -2
  155. edc_form_validators/other_specify_field_validator.py +1 -2
  156. edc_form_validators/required_field_validator.py +1 -2
  157. edc_glucose/form_validators/fasting_form_validator.py +1 -1
  158. edc_glucose/form_validators/glucose_form_validator.py +3 -3
  159. edc_glucose/form_validators/glucose_form_validator_mixin.py +1 -2
  160. edc_glucose/form_validators/ogtt_form_validator_mixin.py +1 -2
  161. edc_glucose/model_mixin_factories/fasting_model_mixin_factory.py +1 -1
  162. edc_glucose/model_mixin_factories/fbg_model_mixin_factory.py +1 -2
  163. edc_glucose/model_mixin_factories/glucose_model_mixin_factory.py +1 -1
  164. edc_glucose/model_mixin_factories/ogtt_model_mixin_factory.py +1 -2
  165. edc_glucose/model_mixins/hba1c_model_mixin.py +1 -3
  166. edc_glucose/utils.py +2 -2
  167. edc_identifier/model_mixins.py +1 -2
  168. edc_identifier/models.py +1 -1
  169. edc_identifier/simple_identifier.py +1 -2
  170. edc_lab/admin/modeladmin_mixins.py +1 -1
  171. edc_lab/choices.py +7 -10
  172. edc_lab/constants.py +0 -2
  173. edc_lab/form_validators/crf_requisition_form_validator_mixin.py +1 -0
  174. edc_lab/form_validators/requisition_form_validator_mixin.py +1 -1
  175. edc_lab/lab/specimen.py +1 -2
  176. edc_lab/model_mixins/requisition/requisition_identifier_mixin.py +1 -1
  177. edc_lab/model_mixins/requisition/requisition_model_mixin.py +1 -1
  178. edc_lab/model_mixins/shipping/manifest_model_mixin.py +1 -1
  179. edc_lab/model_mixins/shipping/verify_model_mixin.py +1 -2
  180. edc_lab/models/box.py +1 -1
  181. edc_lab_dashboard/middleware.py +1 -0
  182. edc_lab_dashboard/urls.py +1 -0
  183. edc_lab_dashboard/view_mixins/form_action_view_mixin.py +1 -0
  184. edc_lab_dashboard/view_mixins/process_requisition_view_mixin.py +1 -1
  185. edc_lab_dashboard/views/action_views/manage_box_item_view.py +1 -0
  186. edc_lab_dashboard/views/action_views/receive_view.py +1 -1
  187. edc_lab_dashboard/views/listboard_views/manage_box_listboard_view.py +1 -0
  188. edc_lab_dashboard/views/listboard_views/pack_listboard_view.py +1 -1
  189. edc_lab_dashboard/views/listboard_views/process_listboard_view.py +2 -1
  190. edc_lab_dashboard/views/listboard_views/receive_listboard_view.py +2 -1
  191. edc_lab_dashboard/views/listboard_views/requisition_listboard_view.py +1 -2
  192. edc_lab_dashboard/views/listboard_views/verify_box_listboard_view.py +1 -0
  193. edc_lab_results/action_items.py +1 -1
  194. edc_lab_results/form_validator_mixins/blood_results_fbg_form_validator_mixin.py +1 -1
  195. edc_lab_results/form_validator_mixins/blood_results_form_validator_mixin.py +2 -1
  196. edc_lab_results/model_mixin_factories/field_attrs.py +1 -1
  197. edc_lab_results/model_mixins/electrolytes_model_mixins.py +2 -2
  198. edc_lab_results/model_mixins/fbc_model_mixins.py +9 -8
  199. edc_lab_results/model_mixins/fbg_model_mixin.py +2 -7
  200. edc_lab_results/model_mixins/glucose_model_mixin.py +2 -7
  201. edc_lab_results/model_mixins/insulin_model_mixin.py +2 -1
  202. edc_lab_results/model_mixins/lft_model_mixins.py +7 -6
  203. edc_lab_results/model_mixins/lipid_model_mixins.py +1 -2
  204. edc_lab_results/model_mixins/proteinuria_model_mixin.py +1 -2
  205. edc_lab_results/model_mixins/rft_model_mixins.py +5 -3
  206. edc_listboard/views/screen/screening_listboard_view.py +1 -1
  207. edc_locator/action_items.py +2 -1
  208. edc_locator/forms/subject_locator_form_validator.py +1 -1
  209. edc_locator/modeladmin_mixins.py +1 -1
  210. edc_ltfu/action_items.py +2 -1
  211. edc_ltfu/choices.py +1 -1
  212. edc_ltfu/constants.py +0 -2
  213. edc_ltfu/forms/ltfu_form_validator.py +2 -1
  214. edc_ltfu/forms/ltfu_form_validator_mixin.py +1 -1
  215. edc_ltfu/modelform_mixins.py +2 -5
  216. edc_metadata/admin/modeladmin_mixins.py +4 -4
  217. edc_model/choices.py +1 -1
  218. edc_model/models/fields/date_estimated.py +1 -1
  219. edc_model_admin/context_processors.py +1 -1
  220. edc_model_admin/list_filters/future_date_list_filter.py +6 -7
  221. edc_model_admin/list_filters/list_field_with_other_list_filter.py +1 -1
  222. edc_model_admin/list_filters/past_date_list_filter.py +6 -7
  223. edc_model_admin/mixins/model_admin_redirect_on_delete_mixin.py +1 -0
  224. edc_model_admin/templatetags/edc_admin_modify.py +1 -1
  225. edc_model_fields/fields/date_estimated.py +1 -1
  226. edc_model_to_dataframe/model_to_dataframe.py +1 -1
  227. edc_navbar/navbar_item.py +1 -0
  228. edc_navbar/system_checks.py +3 -0
  229. edc_offstudy/action_items.py +2 -1
  230. edc_offstudy/choices.py +2 -1
  231. edc_pdf_reports/crf_pdf_report.py +9 -7
  232. edc_pdutils/dataframes/get_subject_consent.py +1 -2
  233. edc_pdutils/dataframes/get_subject_visit.py +1 -11
  234. edc_pdutils/helper.py +1 -2
  235. edc_pdutils/mappings.py +1 -1
  236. edc_pdutils/tables/crf.py +1 -2
  237. edc_pdutils/tables/requisition.py +1 -2
  238. edc_pdutils/utils/__init__.py +1 -0
  239. edc_pdutils/utils/convert_visit_code_to_float.py +8 -0
  240. edc_pdutils/utils/decrypt.py +5 -4
  241. edc_pdutils/utils/missing_subject_identifiers.py +5 -4
  242. edc_pharmacy/action_items.py +2 -1
  243. edc_pharmacy/admin/list_filters.py +1 -1
  244. edc_pharmacy/admin/stock/allocation_admin.py +1 -1
  245. edc_pharmacy/admin/stock/order_item_admin.py +1 -1
  246. edc_pharmacy/admin/stock/stock_request_admin.py +1 -1
  247. edc_pharmacy/admin/stock/stock_transfer_admin.py +1 -1
  248. edc_pharmacy/admin/stock/stock_transfer_item_admin.py +1 -1
  249. edc_pharmacy/choices.py +1 -2
  250. edc_pharmacy/form_validators/crf/study_medication_form_validator.py +1 -1
  251. edc_pharmacy/list_data.py +1 -1
  252. edc_pharmacy/model_mixins/study_medication_crf_model_mixin.py +1 -1
  253. edc_pharmacy/model_mixins/study_medication_refill_model_mixin.py +1 -1
  254. edc_pharmacy/models/model_mixins.py +1 -2
  255. edc_pharmacy/models/prescription/rx.py +1 -1
  256. edc_pharmacy/models/signals.py +1 -1
  257. edc_pharmacy/models/stock/order.py +1 -1
  258. edc_pharmacy/models/stock/order_item.py +1 -2
  259. edc_pharmacy/models/stock/stock_request.py +1 -1
  260. edc_pharmacy/views/confirm_stock_from_queryset_view.py +2 -1
  261. edc_pharmacy/views/confirmation_at_site_view.py +1 -1
  262. edc_prn/models.py +1 -2
  263. edc_protocol_incident/action_items.py +2 -1
  264. edc_protocol_incident/choices.py +1 -1
  265. edc_protocol_incident/form_validators/mixins.py +2 -1
  266. edc_protocol_incident/form_validators/protocol_deviation_violation_form_validator.py +2 -1
  267. edc_protocol_incident/form_validators/protocol_incident_form_validator.py +2 -1
  268. edc_protocol_incident/list_data.py +1 -1
  269. edc_protocol_incident/model_mixins/protocol_deviation_violation_model_mixin.py +1 -1
  270. edc_protocol_incident/modeladmin_mixins.py +1 -1
  271. edc_qareports/choices.py +1 -1
  272. edc_qareports/migrations/0017_auto_20240816_0256.py +1 -2
  273. edc_qareports/modeladmin_mixins/list_filters.py +1 -2
  274. edc_qareports/modeladmin_mixins/qa_report_modeladmin_mixin.py +1 -1
  275. edc_qareports/sql_generator/requisition_subquery.py +1 -1
  276. edc_refusal/forms.py +2 -1
  277. edc_refusal/list_data.py +1 -1
  278. edc_registration/model_mixins/updates_or_creates_registered_subject_model_mixin.py +1 -1
  279. edc_registration/models/registered_subject.py +1 -1
  280. edc_reportable/__init__.py +0 -35
  281. edc_reportable/choices.py +8 -3
  282. edc_reportable/constants.py +0 -7
  283. edc_reportable/data/__init__.py +0 -1
  284. edc_reportable/data/grading_data/ctcae_v5.py +1 -2
  285. edc_reportable/data/grading_data/daids_july_2017.py +7 -6
  286. edc_reportable/data/normal_data/africa.py +6 -5
  287. edc_reportable/exceptions.py +0 -4
  288. edc_reportable/forms/reportables_form_validator_mixin.py +2 -1
  289. edc_reportable/formula.py +1 -1
  290. edc_reportable/post_migrate_signals.py +1 -1
  291. edc_reportable/reference_range_evaluator.py +8 -2
  292. edc_reportable/units.py +2 -23
  293. edc_reportable/utils/__init__.py +1 -1
  294. edc_reportable/utils/get_mw.py +20 -0
  295. edc_reportable/utils/get_normal_data_or_raise.py +1 -1
  296. edc_review_dashboard/auths.py +1 -1
  297. edc_review_dashboard/middleware.py +1 -0
  298. edc_review_dashboard/urls.py +1 -0
  299. edc_review_dashboard/views/subject_review_listboard_view.py +1 -0
  300. edc_screening/choices.py +1 -1
  301. edc_screening/gender_evaluator.py +1 -1
  302. edc_screening/model_mixins/screening_fields_model_mixin.py +1 -1
  303. edc_screening/modelform_mixins.py +1 -1
  304. edc_screening/screening_eligibility.py +1 -2
  305. edc_sites/models/site_profile.py +1 -2
  306. edc_sites/site.py +1 -1
  307. edc_subject_dashboard/requisition_labels.py +1 -1
  308. edc_subject_dashboard/requisition_report.py +1 -1
  309. edc_subject_dashboard/requisition_verifier.py +1 -1
  310. edc_subject_dashboard/urls.py +1 -0
  311. edc_subject_dashboard/view_utils/go_to_forms_button.py +1 -1
  312. edc_subject_dashboard/views/requisition_print_actions_view.py +1 -1
  313. edc_subject_dashboard/views/subject_dashboard_view.py +1 -0
  314. edc_transfer/action_items.py +2 -1
  315. edc_transfer/choices.py +1 -1
  316. edc_transfer/form_validators.py +1 -1
  317. edc_transfer/list_data.py +1 -1
  318. edc_unblinding/action_items.py +2 -1
  319. edc_unblinding/models/unblinding_request.py +1 -1
  320. edc_unblinding/models/unblinding_review.py +1 -1
  321. edc_visit_schedule/action_items.py +2 -1
  322. edc_visit_schedule/admin/subject_schedule_history_admin.py +1 -0
  323. edc_visit_tracking/action_items.py +2 -1
  324. edc_visit_tracking/choices.py +1 -1
  325. edc_visit_tracking/form_validators/visit_form_validator.py +1 -1
  326. edc_visit_tracking/form_validators/visit_missed_form_validator.py +2 -1
  327. edc_visit_tracking/managers.py +1 -2
  328. edc_visit_tracking/model_mixins/subject_visit_missed_model_mixin.py +1 -1
  329. edc_visit_tracking/model_mixins/visit_model_mixin/caretaker_fields_mixin.py +1 -1
  330. edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_fields_mixin.py +1 -1
  331. edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_mixin.py +1 -1
  332. edc_visit_tracking/modeladmin_mixins/crf_model_admin_mixin.py +2 -1
  333. edc_visit_tracking/modeladmin_mixins/visit_model_admin_mixin.py +1 -1
  334. edc_visit_tracking/models/signals.py +1 -1
  335. edc_visit_tracking/view_utils/related_visit_button.py +1 -1
  336. edc_vitals/form_validators/blood_pressure_form_validator_mixin.py +1 -2
  337. edc_constants/constants.py +0 -250
  338. edc_constants/disease_constants.py +0 -22
  339. edc_egfr/calculators/__init__.py +0 -4
  340. edc_egfr/calculators/base_egrfr.py +0 -56
  341. edc_egfr/calculators/egfr_ckd_epi.py +0 -68
  342. edc_egfr/calculators/egfr_cockcroft_gault.py +0 -62
  343. edc_egfr/calculators/percent_change.py +0 -7
  344. edc_reportable/data/molecular_weights.py +0 -11
  345. edc_reportable/utils/convert_units.py +0 -163
  346. {clinicedc-2.0.41.dist-info → clinicedc-2.0.43.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,7 @@
1
1
  from django.apps import apps as django_apps
2
2
  from django.core.checks import CheckMessage, Error
3
3
  from django.urls import NoReverseMatch
4
+ from edc_dashboard.url_names import InvalidDashboardUrlName
4
5
 
5
6
  from edc_navbar import site_navbars
6
7
 
@@ -32,4 +33,6 @@ def edc_navbar_checks(app_configs, **kwargs) -> list[CheckMessage]:
32
33
  navbar_item.get_url(raise_exception=True)
33
34
  except NoReverseMatch as e:
34
35
  errors.append(Error(str(e), id="edc_navbar.E003"))
36
+ except InvalidDashboardUrlName as e:
37
+ errors.append(Error(str(e), id="edc_navbar.E004"))
35
38
  return errors
@@ -1,6 +1,7 @@
1
+ from clinicedc_constants import HIGH_PRIORITY
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
4
  from edc_adverse_event.constants import DEATH_REPORT_ACTION
3
- from edc_constants.constants import HIGH_PRIORITY
4
5
  from edc_ltfu.constants import LTFU_ACTION
5
6
  from edc_unblinding.constants import UNBLINDING_REVIEW_ACTION
6
7
 
edc_offstudy/choices.py CHANGED
@@ -1,5 +1,6 @@
1
+ from clinicedc_constants import DEAD, OTHER
2
+
1
3
  from edc_consent.constants import CONSENT_WITHDRAWAL
2
- from edc_constants.constants import DEAD, OTHER
3
4
  from edc_visit_tracking.constants import COMPLETED_PROTOCOL_VISIT, LOST_VISIT
4
5
 
5
6
  OFFSTUDY_REASONS = (
@@ -9,6 +9,14 @@ from django.apps import apps as django_apps
9
9
  from django.contrib.auth import get_user_model
10
10
  from django.core.exceptions import ObjectDoesNotExist
11
11
  from django.utils.text import slugify
12
+ from reportlab.lib import colors
13
+ from reportlab.lib.pagesizes import A4
14
+ from reportlab.lib.units import cm
15
+ from reportlab.lib.utils import ImageReader
16
+ from reportlab.platypus import Paragraph, TableStyle
17
+ from reportlab.platypus.flowables import KeepTogether, Spacer
18
+ from reportlab.platypus.tables import Table
19
+
12
20
  from edc_data_manager.get_longitudinal_value import (
13
21
  DataDictionaryError,
14
22
  get_longitudinal_value,
@@ -18,19 +26,13 @@ from edc_randomization.auth_objects import RANDO_UNBLINDED
18
26
  from edc_utils.age import formatted_age
19
27
  from edc_utils.date import to_local
20
28
  from edc_utils.get_static_file import get_static_file
21
- from reportlab.lib import colors
22
- from reportlab.lib.pagesizes import A4
23
- from reportlab.lib.units import cm
24
- from reportlab.lib.utils import ImageReader
25
- from reportlab.platypus import Paragraph, TableStyle
26
- from reportlab.platypus.flowables import KeepTogether, Spacer
27
- from reportlab.platypus.tables import Table
28
29
 
29
30
  from .report import Report
30
31
 
31
32
  if TYPE_CHECKING:
32
33
  from django.contrib.auth.models import User
33
34
  from django.core.handlers.wsgi import WSGIRequest
35
+
34
36
  from edc_crf.model_mixins import CrfModelMixin
35
37
  from edc_identifier.model_mixins import UniqueSubjectIdentifierModelMixin
36
38
 
@@ -1,11 +1,10 @@
1
1
  import numpy as np
2
2
  import pandas as pd
3
+ from clinicedc_constants import FEMALE, MALE
3
4
  from django.apps import apps as django_apps
4
5
  from django.db.models import Model
5
6
  from django_pandas.io import read_frame
6
7
 
7
- from edc_constants.constants import FEMALE, MALE
8
-
9
8
  from ..utils import convert_dates_from_model
10
9
 
11
10
 
@@ -4,17 +4,7 @@ from django_pandas.io import read_frame
4
4
 
5
5
  from edc_appointment.models import AppointmentType
6
6
 
7
- from ..utils import convert_dates_from_model
8
-
9
-
10
- def convert_visit_code_to_float(df):
11
- """Convert visit_code to float using visit_code_sequence"""
12
- df["visit_code"] = df["visit_code"].astype(float)
13
- df["visit_code_sequence"] = df["visit_code_sequence"].astype(float)
14
- df["visit_code_sequence"] = df["visit_code_sequence"].apply(
15
- lambda x: x / 10.0 if x > 0.0 else 0.0
16
- )
17
- df["visit_code"] = df["visit_code"] + df["visit_code_sequence"]
7
+ from ..utils import convert_dates_from_model, convert_visit_code_to_float
18
8
 
19
9
 
20
10
  def get_subject_visit(
edc_pdutils/helper.py CHANGED
@@ -1,10 +1,9 @@
1
1
  import contextlib
2
2
 
3
3
  import pandas as pd
4
+ from clinicedc_constants import NO, YES
4
5
  from django.conf import settings
5
6
 
6
- from edc_constants.constants import NO, YES
7
-
8
7
 
9
8
  class Helper:
10
9
  to_dataframe_cls = None
edc_pdutils/mappings.py CHANGED
@@ -1,3 +1,3 @@
1
- from edc_constants.constants import NO, YES
1
+ from clinicedc_constants import NO, YES
2
2
 
3
3
  yes_no = {True: YES, False: NO}
edc_pdutils/tables/crf.py CHANGED
@@ -1,7 +1,6 @@
1
1
  import numpy as np
2
2
  import pandas as pd
3
-
4
- from edc_constants.constants import YES
3
+ from clinicedc_constants import YES
5
4
 
6
5
  from ..mappings import yes_no
7
6
  from .table import Table
@@ -1,7 +1,6 @@
1
1
  import numpy as np
2
2
  import pandas as pd
3
-
4
- from edc_constants.constants import YES
3
+ from clinicedc_constants import YES
5
4
 
6
5
  from ..mappings import yes_no
7
6
  from .table import Table
@@ -3,6 +3,7 @@ from .convert_numbers_to_float64_int64 import convert_numbers_to_float64_int64
3
3
  from .convert_numbers_to_nullable_dtype import convert_numbers_to_nullable_dtype
4
4
  from .convert_numerics_from_model import convert_numerics_from_model
5
5
  from .convert_timedelta_from_model import convert_timedelta_from_model
6
+ from .convert_visit_code_to_float import convert_visit_code_to_float
6
7
  from .datetime_to_date import datetime_to_date
7
8
  from .decrypt import DecryptError, decrypt
8
9
  from .get_export_folder import get_export_folder
@@ -0,0 +1,8 @@
1
+ def convert_visit_code_to_float(df):
2
+ """Convert visit_code to float using visit_code_sequence"""
3
+ df["visit_code"] = df["visit_code"].astype(float)
4
+ df["visit_code_sequence"] = df["visit_code_sequence"].astype(float)
5
+ df["visit_code_sequence"] = df["visit_code_sequence"].apply(
6
+ lambda x: x / 10.0 if x > 0.0 else 0.0
7
+ )
8
+ df["visit_code"] = df["visit_code"] + df["visit_code_sequence"]
@@ -1,10 +1,11 @@
1
+ import contextlib
2
+
1
3
  import numpy as np
2
4
  import pandas as pd
5
+ from django.core.exceptions import ImproperlyConfigured
3
6
 
4
- try:
7
+ with contextlib.suppress(ModuleNotFoundError, ImproperlyConfigured):
5
8
  from django_crypto_fields.field_cryptor import FieldCryptor
6
- except ModuleNotFoundError:
7
- pass
8
9
 
9
10
 
10
11
  class DecryptError(Exception):
@@ -13,7 +14,7 @@ class DecryptError(Exception):
13
14
 
14
15
  def decrypt(row, column_name, algorithm, access_mode):
15
16
  value = np.nan
16
- if pd.notnull(row[column_name]):
17
+ if pd.notna(row[column_name]):
17
18
  field_cryptor = FieldCryptor(algorithm, access_mode)
18
19
  value = field_cryptor.decrypt(row[column_name])
19
20
  if value.startswith("enc1::"):
@@ -3,11 +3,9 @@ from warnings import warn
3
3
  import pandas as pd
4
4
  from django.apps import apps as django_apps
5
5
 
6
- from edc_model_to_dataframe.model_to_dataframe import ModelToDataframe
7
-
8
6
 
9
7
  def missing_subject_identifiers(
10
- self, model=None, subject_identifiers=None, remove_uuids=None, verbose=None
8
+ model=None, subject_identifiers=None, remove_uuids=None, verbose=None
11
9
  ):
12
10
  """Returns a series of subject_identifiers not in model.
13
11
 
@@ -16,6 +14,8 @@ def missing_subject_identifiers(
16
14
  model='edc_registration.registeredsubject',
17
15
  subject_identifiers=[a list of subject identifiers])
18
16
  """
17
+ from edc_model_to_dataframe.model_to_dataframe import ModelToDataframe # noqa: PLC0415
18
+
19
19
  # convert list of subject identifiers to a dataframe
20
20
  df_subject_identifiers = pd.DataFrame(subject_identifiers, columns=["subject_identifier"])
21
21
  df_subject_identifiers["identifier"] = df_subject_identifiers["subject_identifier"]
@@ -43,6 +43,7 @@ def missing_subject_identifiers(
43
43
  if len(df_missing.index) > 0 and verbose:
44
44
  warn(
45
45
  f"There are {len(df_missing['identifier'])} subject identifiers "
46
- f"missing from {model}."
46
+ f"missing from {model}.",
47
+ stacklevel=2,
47
48
  )
48
49
  return df_missing["identifier"]
@@ -1,6 +1,7 @@
1
+ from clinicedc_constants import HIGH_PRIORITY
2
+
1
3
  from edc_action_item.action import Action
2
4
  from edc_action_item.site_action_items import site_action_items
3
- from edc_constants.constants import HIGH_PRIORITY
4
5
 
5
6
  from .constants import PRESCRIPTION_ACTION
6
7
 
@@ -1,10 +1,10 @@
1
+ from clinicedc_constants import NEW, NO, NOT_APPLICABLE, PARTIAL, RECEIVED, YES
1
2
  from django.contrib.admin import SimpleListFilter
2
3
  from django.contrib.sites.shortcuts import get_current_site
3
4
  from django.db.models import Count, F, Q
4
5
  from django.utils.translation import gettext as _
5
6
 
6
7
  from edc_constants.choices import YES_NO, YES_NO_NA
7
- from edc_constants.constants import NEW, NO, NOT_APPLICABLE, PARTIAL, RECEIVED, YES
8
8
 
9
9
  from ..models import Medication, Rx
10
10
  from ..utils import blinded_user
@@ -1,3 +1,4 @@
1
+ from clinicedc_constants import NO, YES
1
2
  from django.contrib import admin
2
3
  from django.contrib.admin import SimpleListFilter
3
4
  from django.template.loader import render_to_string
@@ -6,7 +7,6 @@ from django.utils.translation import gettext
6
7
  from django_audit_fields import audit_fieldset_tuple
7
8
  from rangefilter.filters import DateRangeFilterBuilder
8
9
 
9
- from edc_constants.constants import NO, YES
10
10
  from edc_model_admin.history import SimpleHistoryAdmin
11
11
  from edc_utils.date import to_local
12
12
 
@@ -1,5 +1,6 @@
1
1
  from decimal import Decimal
2
2
 
3
+ from clinicedc_constants import NEW, PARTIAL, RECEIVED
3
4
  from django.contrib import admin, messages
4
5
  from django.template.loader import render_to_string
5
6
  from django.urls import reverse
@@ -7,7 +8,6 @@ from django.utils.safestring import mark_safe
7
8
  from django.utils.translation import gettext as _
8
9
  from django_audit_fields.admin import audit_fieldset_tuple
9
10
 
10
- from edc_constants.constants import NEW, PARTIAL, RECEIVED
11
11
  from edc_model_admin.history import SimpleHistoryAdmin
12
12
  from edc_utils import message_in_queue
13
13
 
@@ -1,5 +1,6 @@
1
1
  from celery.result import AsyncResult
2
2
  from celery.states import SUCCESS
3
+ from clinicedc_constants import CANCELLED, COMPLETE, PENDING
3
4
  from django.contrib import admin
4
5
  from django.template.loader import render_to_string
5
6
  from django.urls import reverse
@@ -8,7 +9,6 @@ from django.utils.translation import gettext as _
8
9
  from django_audit_fields import audit_fieldset_tuple
9
10
  from rangefilter.filters import DateRangeFilterBuilder
10
11
 
11
- from edc_constants.constants import CANCELLED, COMPLETE, PENDING
12
12
  from edc_model_admin.history import SimpleHistoryAdmin
13
13
  from edc_utils.date import to_local
14
14
 
@@ -1,3 +1,4 @@
1
+ from clinicedc_constants import NO, PARTIAL, YES
1
2
  from django.contrib import admin
2
3
  from django.contrib.admin import SimpleListFilter
3
4
  from django.db.models import Count
@@ -6,7 +7,6 @@ from django.urls import reverse
6
7
  from django_audit_fields import audit_fieldset_tuple
7
8
  from rangefilter.filters import DateRangeFilterBuilder
8
9
 
9
- from edc_constants.constants import NO, PARTIAL, YES
10
10
  from edc_model_admin.history import SimpleHistoryAdmin
11
11
  from edc_utils.date import to_local
12
12
 
@@ -1,3 +1,4 @@
1
+ from clinicedc_constants import NO, YES
1
2
  from django.contrib import admin
2
3
  from django.contrib.admin import SimpleListFilter
3
4
  from django.core.exceptions import ObjectDoesNotExist
@@ -6,7 +7,6 @@ from django.urls import reverse
6
7
  from django_audit_fields import audit_fieldset_tuple
7
8
  from rangefilter.filters import DateRangeFilterBuilder
8
9
 
9
- from edc_constants.constants import NO, YES
10
10
  from edc_model_admin.history import SimpleHistoryAdmin
11
11
  from edc_utils.date import to_local
12
12
 
edc_pharmacy/choices.py CHANGED
@@ -1,7 +1,6 @@
1
+ from clinicedc_constants import COMPLETE, NEW, NOT_APPLICABLE, OTHER
1
2
  from django.utils.translation import gettext as _
2
3
 
3
- from edc_constants.constants import COMPLETE, NEW, NOT_APPLICABLE, OTHER
4
-
5
4
  from .constants import (
6
5
  ALLOCATED,
7
6
  AVAILABLE,
@@ -3,9 +3,9 @@ from __future__ import annotations
3
3
  from datetime import datetime
4
4
  from typing import TYPE_CHECKING
5
5
 
6
+ from clinicedc_constants import NO, YES
6
7
  from django.core.exceptions import ObjectDoesNotExist
7
8
 
8
- from edc_constants.constants import NO, YES
9
9
  from edc_crf.crf_form_validator import CrfFormValidator
10
10
  from edc_form_validators import INVALID_ERROR
11
11
  from edc_utils.text import formatted_datetime
edc_pharmacy/list_data.py CHANGED
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import NOT_APPLICABLE, OTHER
1
+ from clinicedc_constants import NOT_APPLICABLE, OTHER
2
2
 
3
3
  from .constants import PER_DAY, PER_HR, SINGLE
4
4
 
@@ -2,11 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
5
+ from clinicedc_constants import YES
5
6
  from django.apps import apps as django_apps
6
7
  from django.core.exceptions import ObjectDoesNotExist
7
8
 
8
9
  from edc_appointment.utils import get_next_appointment
9
- from edc_constants.constants import YES
10
10
  from edc_utils.text import formatted_datetime
11
11
  from edc_visit_tracking.utils import get_next_related_visit
12
12
 
@@ -1,11 +1,11 @@
1
1
  from uuid import uuid4
2
2
 
3
+ from clinicedc_constants import YES
3
4
  from django.core.validators import RegexValidator
4
5
  from django.db import models
5
6
  from django.db.models import PROTECT
6
7
 
7
8
  from edc_constants.choices import YES_NO
8
- from edc_constants.constants import YES
9
9
 
10
10
 
11
11
  class StudyMedicationRefillModelMixin(models.Model):
@@ -1,7 +1,6 @@
1
+ from clinicedc_constants import NULL_STRING
1
2
  from django.db import models
2
3
 
3
- from edc_constants.constants import NULL_STRING
4
-
5
4
 
6
5
  class AddressModelMixin(models.Model):
7
6
  address_one = models.CharField(max_length=255, default=NULL_STRING, blank=True)
@@ -1,12 +1,12 @@
1
1
  from uuid import uuid4
2
2
 
3
+ from clinicedc_constants import NEW
3
4
  from django.core.exceptions import ObjectDoesNotExist
4
5
  from django.db import models
5
6
  from django.db.models import PROTECT, Index
6
7
  from django.utils import timezone
7
8
 
8
9
  from edc_action_item.models import ActionModelMixin
9
- from edc_constants.constants import NEW
10
10
  from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin
11
11
  from edc_model.models import BaseUuidModel
12
12
  from edc_randomization.site_randomizers import site_randomizers
@@ -3,11 +3,11 @@ from __future__ import annotations
3
3
  from decimal import Decimal
4
4
 
5
5
  from celery.states import PENDING
6
+ from clinicedc_constants import COMPLETE, PARTIAL
6
7
  from django.db.models import Sum
7
8
  from django.db.models.signals import post_delete, post_save
8
9
  from django.dispatch import receiver
9
10
 
10
- from edc_constants.constants import COMPLETE, PARTIAL
11
11
  from edc_utils.celery import get_task_result, run_task_sync_or_async
12
12
 
13
13
  from ..exceptions import InsufficientStockError
@@ -1,7 +1,7 @@
1
+ from clinicedc_constants import NEW
1
2
  from django.db import models
2
3
  from sequences import get_next_value
3
4
 
4
- from edc_constants.constants import NEW
5
5
  from edc_model.models import BaseUuidModel, HistoricalRecords
6
6
 
7
7
  from ...choices import ORDER_CHOICES
@@ -1,7 +1,7 @@
1
+ from clinicedc_constants import NEW
1
2
  from django.db import models
2
3
  from sequences import get_next_value
3
4
 
4
- from edc_constants.constants import NEW
5
5
  from edc_model.models import BaseUuidModel, HistoricalRecords
6
6
 
7
7
  from ...choices import ORDER_CHOICES
@@ -16,7 +16,6 @@ class Manager(models.Manager):
16
16
 
17
17
 
18
18
  class OrderItem(BaseUuidModel):
19
-
20
19
  order_item_identifier = models.CharField(
21
20
  max_length=36,
22
21
  unique=True,
@@ -1,8 +1,8 @@
1
+ from clinicedc_constants import CANCELLED, CLOSED, OPEN
1
2
  from django.db import models
2
3
  from django.utils import timezone
3
4
  from sequences import get_next_value
4
5
 
5
- from edc_constants.constants import CANCELLED, CLOSED, OPEN
6
6
  from edc_model.models import BaseUuidModel, HistoricalRecords
7
7
  from edc_registration.models import RegisteredSubject
8
8
 
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from clinicedc_constants import CONFIRMED
3
4
  from django.apps import apps as django_apps
4
5
  from django.conf import settings
5
6
  from django.contrib import messages
@@ -9,7 +10,7 @@ from django.urls import reverse
9
10
  from django.utils.decorators import method_decorator
10
11
  from django.utils.translation import gettext as _
11
12
  from django.views.generic.base import TemplateView
12
- from edc_constants.constants import CONFIRMED
13
+
13
14
  from edc_dashboard.view_mixins import EdcViewMixin
14
15
  from edc_navbar import NavbarViewMixin
15
16
  from edc_protocol.view_mixins import EdcProtocolViewMixin
@@ -4,6 +4,7 @@ import contextlib
4
4
  import uuid
5
5
  from uuid import uuid4
6
6
 
7
+ from clinicedc_constants import CONFIRMED
7
8
  from django.conf import settings
8
9
  from django.contrib import messages
9
10
  from django.contrib.auth.decorators import login_required
@@ -15,7 +16,6 @@ from django.urls import reverse
15
16
  from django.utils.decorators import method_decorator
16
17
  from django.views.generic.base import TemplateView
17
18
 
18
- from edc_constants.constants import CONFIRMED
19
19
  from edc_dashboard.view_mixins import EdcViewMixin
20
20
  from edc_navbar import NavbarViewMixin
21
21
  from edc_protocol.view_mixins import EdcProtocolViewMixin
edc_prn/models.py CHANGED
@@ -1,9 +1,8 @@
1
1
  # do not delete
2
2
 
3
+ from clinicedc_constants import NULL_STRING
3
4
  from django.db import models
4
5
 
5
- from edc_constants.constants import NULL_STRING
6
-
7
6
 
8
7
  class SingletonPrnModelMixin(models.Model):
9
8
  """Enforces one record per subject."""
@@ -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
  PROTOCOL_DEVIATION_VIOLATION_ACTION,
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import CLOSED, OPEN
1
+ from clinicedc_constants import CLOSED, OPEN
2
2
 
3
3
  from .constants import DEVIATION, VIOLATION, WITHDRAWN
4
4
 
@@ -1,4 +1,5 @@
1
- from edc_constants.constants import CLOSED
1
+ from clinicedc_constants import CLOSED
2
+
2
3
  from edc_form_validators import INVALID_ERROR
3
4
  from edc_protocol_incident.constants import WITHDRAWN
4
5
 
@@ -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
  from ..constants import VIOLATION
@@ -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, FormValidator
3
4
  from edc_prn.modelform_mixins import PrnFormValidatorMixin
4
5
  from edc_utils.date import to_local
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import NOT_APPLICABLE, OTHER
1
+ from clinicedc_constants import NOT_APPLICABLE, OTHER
2
2
 
3
3
  list_data = {
4
4
  "edc_protocol_incident.protocolviolations": [
@@ -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_NA
5
- from edc_constants.constants import NOT_APPLICABLE
6
6
  from edc_model import REPORT_STATUS
7
7
  from edc_model.validators import datetime_not_future
8
8
 
@@ -1,8 +1,8 @@
1
+ from clinicedc_constants import CLOSED, OPEN
1
2
  from django.contrib import admin
2
3
  from django.utils.html import format_html
3
4
  from django_audit_fields.admin import audit_fieldset_tuple
4
5
 
5
- from edc_constants.constants import CLOSED, OPEN
6
6
  from edc_protocol_incident.constants import WITHDRAWN
7
7
 
8
8
 
edc_qareports/choices.py CHANGED
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import NOT_AVAILABLE, PENDING
1
+ from clinicedc_constants import NOT_AVAILABLE, PENDING
2
2
 
3
3
  NOTE_STATUSES = (
4
4
  (PENDING, "Data is pending"),
@@ -3,7 +3,7 @@
3
3
  from django.db import migrations
4
4
  from django.db.migrations import RunPython
5
5
 
6
- from edc_constants.constants import FEEDBACK, PENDING
6
+ from clinicedc_constants import FEEDBACK, PENDING
7
7
 
8
8
 
9
9
  def update_status(apps, schema_editor):
@@ -17,7 +17,6 @@ def update_status(apps, schema_editor):
17
17
 
18
18
 
19
19
  class Migration(migrations.Migration):
20
-
21
20
  dependencies = [
22
21
  ("edc_qareports", "0016_alter_note_options_alter_qareportlog_options"),
23
22
  ]
@@ -1,8 +1,7 @@
1
+ from clinicedc_constants import NEW
1
2
  from django.contrib.admin import SimpleListFilter
2
3
  from django.db.models import Count, QuerySet
3
4
 
4
- from edc_constants.constants import NEW
5
-
6
5
  from ..choices import NOTE_STATUSES
7
6
 
8
7
 
@@ -1,3 +1,4 @@
1
+ from clinicedc_constants import NEW
1
2
  from django.apps import apps as django_apps
2
3
  from django.contrib import admin
3
4
  from django.core.exceptions import ObjectDoesNotExist
@@ -5,7 +6,6 @@ from django.template.loader import render_to_string
5
6
  from django.urls import reverse
6
7
  from django.utils.translation import gettext as _
7
8
 
8
- from edc_constants.constants import NEW
9
9
  from edc_utils import truncate_string
10
10
 
11
11
  from ..models import QaReportLog
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass, field
2
2
  from string import Template
3
3
 
4
- from edc_constants.constants import YES
4
+ from clinicedc_constants import YES
5
5
 
6
6
  from .crf_subquery import CrfSubquery
7
7
 
edc_refusal/forms.py CHANGED
@@ -1,8 +1,9 @@
1
+ from clinicedc_constants import OTHER
1
2
  from django import forms
2
3
  from django.core.exceptions import ObjectDoesNotExist
3
4
  from django.urls.base import reverse
4
5
  from django.utils.html import format_html
5
- from edc_constants.constants import OTHER
6
+
6
7
  from edc_dashboard.url_names import url_names
7
8
  from edc_form_validators import FormValidator, FormValidatorMixin
8
9
  from edc_registration.models import RegisteredSubject
edc_refusal/list_data.py CHANGED
@@ -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_refusal.refusalreasons": [