clinicedc 2.0.40__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 (347) hide show
  1. {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/METADATA +3 -1
  2. {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/RECORD +338 -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/migrations/0043_alter_historicalqueryrule_comment_and_more.py +51 -0
  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.40.dist-info → clinicedc-2.0.42.dist-info}/WHEEL +0 -0
  347. {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/licenses/LICENSE +0 -0
@@ -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": [
@@ -3,11 +3,11 @@ from __future__ import annotations
3
3
  import contextlib
4
4
  from typing import TYPE_CHECKING
5
5
 
6
+ from clinicedc_constants import NULL_STRING
6
7
  from django.core.exceptions import ObjectDoesNotExist
7
8
  from django.db import models
8
9
  from django.db.models import CharField, TextField
9
10
 
10
- from edc_constants.constants import NULL_STRING
11
11
  from edc_model import DEFAULT_BASE_FIELDS
12
12
 
13
13
  from ..utils import get_registered_subject_model_cls
@@ -1,5 +1,6 @@
1
1
  import re
2
2
 
3
+ from clinicedc_constants import UUID_PATTERN
3
4
  from django.core.exceptions import ObjectDoesNotExist
4
5
  from django.core.validators import RegexValidator
5
6
  from django.db import models, transaction
@@ -13,7 +14,6 @@ from django_crypto_fields.fields import (
13
14
  )
14
15
 
15
16
  from edc_constants.choices import GENDER
16
- from edc_constants.constants import UUID_PATTERN
17
17
  from edc_identifier.model_mixins import UniqueSubjectIdentifierModelMixin
18
18
  from edc_model.models import BaseUuidModel, HistoricalRecords
19
19
  from edc_model_fields.fields import IdentityTypeField, IsDateEstimatedField
@@ -1,42 +1,7 @@
1
- from .constants import (
2
- ALREADY_REPORTED,
3
- MILD,
4
- MODERATE,
5
- PRESENT_AT_BASELINE,
6
- SEVERE,
7
- SEVERITY_INCREASED_FROM_G3,
8
- )
9
1
  from .exceptions import (
10
2
  AlreadyRegistered,
11
- ConversionNotHandled,
12
3
  FormulaError,
13
4
  GradeReferenceError,
14
5
  LimitsNormalParseError,
15
6
  )
16
7
  from .formula import Formula, dummy_formula, formula
17
- from .units import (
18
- CELLS_PER_MICROLITER,
19
- CELLS_PER_MILLIMETER_CUBED,
20
- CELLS_PER_MILLIMETER_CUBED_DISPLAY,
21
- COPIES_PER_MILLILITER,
22
- EGFR_UNITS,
23
- GRAMS_PER_DECILITER,
24
- GRAMS_PER_LITER,
25
- IU_LITER,
26
- IU_LITER_DISPLAY,
27
- MICROMOLES_PER_LITER,
28
- MICROMOLES_PER_LITER_DISPLAY,
29
- MILLIGRAMS_PER_DECILITER,
30
- MILLIGRAMS_PER_LITER,
31
- MILLILITER_PER_MINUTE,
32
- MILLIMOLES_PER_LITER,
33
- MILLIMOLES_PER_LITER_DISPLAY,
34
- MM3,
35
- MM3_DISPLAY,
36
- PERCENT,
37
- PLUS,
38
- TEN_X_3_PER_LITER,
39
- TEN_X_3_PER_LITER_DISPLAY,
40
- TEN_X_9_PER_LITER,
41
- TEN_X_9_PER_LITER_DISPLAY,
42
- )
edc_reportable/choices.py CHANGED
@@ -1,6 +1,11 @@
1
- from edc_constants.constants import GRADE3, GRADE4, NO, NOT_APPLICABLE
2
-
3
- from .constants import ALREADY_REPORTED, PRESENT_AT_BASELINE
1
+ from clinicedc_constants import (
2
+ ALREADY_REPORTED,
3
+ GRADE3,
4
+ GRADE4,
5
+ NO,
6
+ NOT_APPLICABLE,
7
+ PRESENT_AT_BASELINE,
8
+ )
4
9
 
5
10
  REPORTABLE = (
6
11
  (NOT_APPLICABLE, "Not applicable"),
@@ -1,10 +1,3 @@
1
- ALREADY_REPORTED = "Already reported"
2
- INVALID_REFERENCE = "invalid_reference"
3
- MILD = "mild"
4
- MODERATE = "moderate"
5
- PRESENT_AT_BASELINE = "present_at_baseline"
6
- SEVERE = "severe"
7
- SEVERITY_INCREASED_FROM_G3 = "increase_from_g3"
8
1
  LLN = "LLN"
9
2
  ULN = "ULN"
10
3
  HIGH_VALUE = "9999999999.9"
@@ -1,3 +1,2 @@
1
1
  from .grading_data import ctcae_v5, daids_july_2017
2
- from .molecular_weights import molecular_weights
3
2
  from .normal_data import africa
@@ -21,11 +21,10 @@ Female: 9 - 36
21
21
  >20.0 x ULN if baseline was normal; >20.0 x baseline if baseline was abnormal
22
22
  """
23
23
 
24
- from edc_constants.constants import FEMALE, MALE
24
+ from clinicedc_constants import FEMALE, IU_LITER, MALE
25
25
 
26
26
  from ...adult_age_options import adult_age_options
27
27
  from ...formula import Formula
28
- from ...units import IU_LITER
29
28
 
30
29
  ggt_baseline_normal = (
31
30
  [
@@ -10,18 +10,15 @@ G3 < 60 to 30 ml/min or ml/min/1.73 m2 OR 30 to < 50% decrease from participant'
10
10
  G4 < 30 ml/min or ml/min/1.73 m2 OR ≥ 50% decrease from participant's baseline
11
11
  """
12
12
 
13
- from edc_constants.constants import FEMALE, MALE
14
-
15
- from ...adult_age_options import adult_age_options
16
- from ...constants import HIGH_VALUE
17
- from ...formula import Formula
18
- from ...units import (
13
+ from clinicedc_constants import (
19
14
  CELLS_PER_MILLIMETER_CUBED,
20
15
  EGFR_UNITS,
16
+ FEMALE,
21
17
  FEMTOLITERS_PER_CELL,
22
18
  GRAMS_PER_DECILITER,
23
19
  GRAMS_PER_LITER,
24
20
  IU_LITER,
21
+ MALE,
25
22
  MICROMOLES_PER_LITER,
26
23
  MILLIGRAMS_PER_DECILITER,
27
24
  MILLIGRAMS_PER_LITER,
@@ -32,6 +29,10 @@ from ...units import (
32
29
  TEN_X_9_PER_LITER,
33
30
  )
34
31
 
32
+ from ...adult_age_options import adult_age_options
33
+ from ...constants import HIGH_VALUE
34
+ from ...formula import Formula
35
+
35
36
  __all__ = [
36
37
  "chemistries",
37
38
  "dummies",
@@ -1,14 +1,12 @@
1
- from edc_constants.constants import FEMALE, MALE
2
-
3
- from ...adult_age_options import adult_age_options
4
- from ...formula import Formula
5
- from ...units import (
1
+ from clinicedc_constants import (
6
2
  CELLS_PER_MILLIMETER_CUBED,
7
3
  EGFR_UNITS,
4
+ FEMALE,
8
5
  FEMTOLITERS_PER_CELL,
9
6
  GRAMS_PER_DECILITER,
10
7
  GRAMS_PER_LITER,
11
8
  IU_LITER,
9
+ MALE,
12
10
  MICROMOLES_PER_LITER,
13
11
  MILLIGRAMS_PER_DECILITER,
14
12
  MILLIGRAMS_PER_LITER,
@@ -19,6 +17,9 @@ from ...units import (
19
17
  TEN_X_9_PER_LITER,
20
18
  )
21
19
 
20
+ from ...adult_age_options import adult_age_options
21
+ from ...formula import Formula
22
+
22
23
  __all__ = ["normal_data"]
23
24
 
24
25
  normal_data = {
@@ -36,7 +36,3 @@ class NotEvaluated(Exception): # noqa: N818
36
36
 
37
37
  class BoundariesOverlap(Exception): # noqa: N818
38
38
  pass
39
-
40
-
41
- class ConversionNotHandled(Exception): # noqa: N818
42
- pass
@@ -1,6 +1,7 @@
1
1
  from copy import deepcopy
2
2
 
3
- from edc_constants.constants import YES
3
+ from clinicedc_constants import YES
4
+
4
5
  from edc_form_validators import INVALID_ERROR
5
6
  from edc_registration import get_registered_subject_model_cls
6
7
 
edc_reportable/formula.py CHANGED
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import re
4
4
  from dataclasses import KW_ONLY, dataclass, field
5
5
 
6
- from edc_constants.constants import FEMALE, MALE
6
+ from clinicedc_constants import FEMALE, MALE
7
7
 
8
8
  from .adult_age_options import adult_age_options
9
9
 
@@ -1,10 +1,10 @@
1
1
  import sys
2
2
  from typing import TYPE_CHECKING
3
3
 
4
+ from clinicedc_utils.constants import molecular_weights
4
5
  from django.apps import apps as django_apps
5
6
  from django.core.management import color_style
6
7
 
7
- from .data import molecular_weights
8
8
  from .utils import load_all_reference_ranges
9
9
 
10
10
  if TYPE_CHECKING:
@@ -3,13 +3,19 @@ from __future__ import annotations
3
3
  from datetime import date, datetime
4
4
  from typing import TYPE_CHECKING
5
5
 
6
+ from clinicedc_constants import (
7
+ ALREADY_REPORTED,
8
+ INVALID_REFERENCE,
9
+ NO,
10
+ NOT_APPLICABLE,
11
+ PRESENT_AT_BASELINE,
12
+ YES,
13
+ )
6
14
  from django import forms
7
15
  from django.apps import apps as django_apps
8
16
 
9
- from edc_constants.constants import NO, NOT_APPLICABLE, YES
10
17
  from edc_metadata.constants import REQUIRED
11
18
 
12
- from .constants import ALREADY_REPORTED, INVALID_REFERENCE, PRESENT_AT_BASELINE
13
19
  from .exceptions import NotEvaluated, ValueBoundryError
14
20
  from .utils import get_grade_for_value, get_normal_data_or_raise
15
21
 
edc_reportable/units.py CHANGED
@@ -1,32 +1,11 @@
1
1
  from django.utils.safestring import mark_safe
2
2
 
3
- CELLS_PER_MICROLITER = "cells/μL"
4
- CELLS_PER_MILLIMETER_CUBED = "cells/mm^3"
5
3
  CELLS_PER_MILLIMETER_CUBED_DISPLAY = mark_safe("cells/mm<sup>3</sup>") # nosec B308
6
- COPIES_PER_MILLILITER = "copies/mL"
7
- EGFR_UNITS = "mL/min/1.73m2"
8
- FEMTOLITERS_PER_CELL = "fL/cell"
9
- GRAMS_PER_DECILITER = "g/dL"
10
- GRAMS_PER_LITER = "g/L"
11
- IU_LITER = "IU/L"
12
4
  IU_LITER_DISPLAY = mark_safe("IU/L") # nosec B308
13
- MILLI_IU_LITER = "mIU/L"
14
- MILLI_IU_LITER_DISPLAY = mark_safe("mIU/L") # nosec B308
15
- MICRO_IU_MILLILITER = "uIU/mL"
16
- MICRO_IU_MILLILITER_DISPLAY = mark_safe("μIU/mL") # nosec B308
17
- MICROMOLES_PER_LITER = "umol/L"
18
5
  MICROMOLES_PER_LITER_DISPLAY = "μmol/L (micromoles/L)"
19
- MILLIGRAMS_PER_DECILITER = "mg/dL"
20
- MILLIGRAMS_PER_LITER = "mg/L"
21
- MILLILITER_PER_MINUTE = "mL/min"
22
- MILLIMOLES_PER_LITER = "mmol/L"
6
+ MICRO_IU_MILLILITER_DISPLAY = mark_safe("μIU/mL") # nosec B308
23
7
  MILLIMOLES_PER_LITER_DISPLAY = "mmol/L (millimoles/L)"
24
- MM3 = "mm3"
8
+ MILLI_IU_LITER_DISPLAY = mark_safe("mIU/L") # nosec B308
25
9
  MM3_DISPLAY = mark_safe("mm<sup>3</sup>") # nosec B308
26
- PERCENT = "%"
27
- PICOGRAMS_PER_CELL = "pg/cell"
28
- PLUS = "+"
29
- TEN_X_3_PER_LITER = "10^3/L"
30
10
  TEN_X_3_PER_LITER_DISPLAY = mark_safe("10<sup>3</sup>/L") # nosec B308
31
- TEN_X_9_PER_LITER = "10^9/L"
32
11
  TEN_X_9_PER_LITER_DISPLAY = mark_safe("10<sup>9</sup>/L") # nosec B308
@@ -1,6 +1,6 @@
1
- from .convert_units import convert_units
2
1
  from .get_default_reportable_grades import get_default_reportable_grades
3
2
  from .get_grade_for_value import get_grade_for_value
3
+ from .get_mw import get_mw
4
4
  from .get_normal_data_or_raise import get_normal_data_or_raise
5
5
  from .get_reference_range_collection import get_reference_range_collection
6
6
  from .grading_data_model_cls import grading_data_model_cls
@@ -0,0 +1,20 @@
1
+ from __future__ import annotations
2
+
3
+ from clinicedc_utils import ConversionNotHandled
4
+ from django.core.exceptions import ObjectDoesNotExist
5
+
6
+ from .molecular_weight_model_cls import molecular_weight_model_cls
7
+
8
+ __all__ = ["get_mw"]
9
+
10
+
11
+ def get_mw(label):
12
+ try:
13
+ molecular_weight = molecular_weight_model_cls().objects.get(label=label)
14
+ except ObjectDoesNotExist as e:
15
+ raise ConversionNotHandled(
16
+ f"Conversion not handled. Molecular weight not found for {label}."
17
+ ) from e
18
+ else:
19
+ mw = molecular_weight.mw
20
+ return mw
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from datetime import date, datetime
4
4
  from typing import TYPE_CHECKING
5
5
 
6
+ from clinicedc_utils import convert_units
6
7
  from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
7
8
  from django.db.models import Q
8
9
  from django.utils import timezone
@@ -11,7 +12,6 @@ from edc_model_to_dataframe.constants import SYSTEM_COLUMNS
11
12
  from edc_utils import age as get_age
12
13
 
13
14
  from ..exceptions import NotEvaluated
14
- from .convert_units import convert_units
15
15
  from .normal_data_model_cls import normal_data_model_cls
16
16
 
17
17
  if TYPE_CHECKING:
@@ -1,9 +1,9 @@
1
- from edc_adverse_event.constants import TMG_ROLE
2
1
  from edc_auth.constants import (
3
2
  AUDITOR_ROLE,
4
3
  CLINICIAN_ROLE,
5
4
  CLINICIAN_SUPER_ROLE,
6
5
  NURSE_ROLE,
6
+ TMG_ROLE,
7
7
  )
8
8
  from edc_auth.site_auths import site_auths
9
9
  from edc_auth.utils import remove_default_model_permissions_from_edc_permissions
@@ -1,6 +1,7 @@
1
1
  import contextlib
2
2
 
3
3
  from django.conf import settings
4
+
4
5
  from edc_dashboard.middleware_mixins import EdcTemplateMiddlewareMixin
5
6
 
6
7
  from .dashboard_templates import dashboard_templates
@@ -1,5 +1,6 @@
1
1
  from django.contrib import admin
2
2
  from django.urls import path
3
+
3
4
  from edc_data_manager.views import HomeView
4
5
  from edc_protocol.research_protocol_config import ResearchProtocolConfig
5
6
 
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
5
  from django.db.models.aggregates import Count
6
+
6
7
  from edc_appointment.view_mixins import AppointmentViewMixin
7
8
  from edc_dashboard.url_names import url_names
8
9
  from edc_dashboard.view_mixins import EdcViewMixin
edc_screening/choices.py CHANGED
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import (
1
+ from clinicedc_constants import (
2
2
  PURPOSIVELY_SELECTED,
3
3
  RANDOM_SAMPLING,
4
4
  SEQUENTIAL,
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import FEMALE, MALE
1
+ from clinicedc_constants import FEMALE, MALE
2
2
 
3
3
 
4
4
  class GenderEvaluator:
@@ -1,5 +1,6 @@
1
1
  from uuid import uuid4
2
2
 
3
+ from clinicedc_constants import NO, NOT_APPLICABLE
3
4
  from django.core.validators import (
4
5
  MaxLengthValidator,
5
6
  MaxValueValidator,
@@ -12,7 +13,6 @@ from django.utils import timezone
12
13
  from django_crypto_fields.fields import EncryptedCharField
13
14
 
14
15
  from edc_constants.choices import GENDER, YES_NO, YES_NO_NA
15
- from edc_constants.constants import NO, NOT_APPLICABLE
16
16
  from edc_model.validators import datetime_not_future
17
17
  from edc_protocol.validators import datetime_not_before_study_start
18
18
  from edc_sites.model_mixins import SiteModelMixin
@@ -2,11 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  import re
4
4
 
5
+ from clinicedc_constants import UUID_PATTERN
5
6
  from django import forms
6
7
  from django.urls.base import reverse
7
8
  from django.utils.html import format_html
8
9
 
9
- from edc_constants.constants import UUID_PATTERN
10
10
  from edc_dashboard.url_names import url_names
11
11
 
12
12
 
@@ -2,10 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
5
+ from clinicedc_constants import NO, PENDING, TBD, YES
5
6
  from django.utils.safestring import mark_safe
6
7
 
7
- from edc_constants.constants import NO, PENDING, TBD, YES
8
-
9
8
  from .exceptions import (
10
9
  ScreeningEligibilityAttributeError,
11
10
  ScreeningEligibilityError,
@@ -2,11 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  import json
4
4
 
5
+ from clinicedc_constants import NULL_STRING
5
6
  from django.contrib.sites.models import Site
6
7
  from django.db import models
7
8
 
8
- from edc_constants.constants import NULL_STRING
9
-
10
9
 
11
10
  class SiteProfile(models.Model):
12
11
  id = models.BigAutoField(primary_key=True)
edc_sites/site.py CHANGED
@@ -5,6 +5,7 @@ import sys
5
5
  from copy import deepcopy
6
6
  from typing import TYPE_CHECKING, Any
7
7
 
8
+ from clinicedc_constants import OTHER
8
9
  from django.apps import apps as django_apps
9
10
  from django.conf import settings
10
11
  from django.contrib import messages
@@ -14,7 +15,6 @@ from django.core.management.color import color_style
14
15
  from django.utils.module_loading import import_module, module_has_submodule
15
16
 
16
17
  from edc_auth.utils import user_has_change_perms
17
- from edc_constants.constants import OTHER
18
18
  from edc_model_admin.utils import add_to_messages_once
19
19
 
20
20
  from .exceptions import InvalidSiteForUser
@@ -1,7 +1,7 @@
1
+ from clinicedc_constants import NO
1
2
  from django.apps import apps as django_apps
2
3
  from django.core.exceptions import ObjectDoesNotExist
3
4
 
4
- from edc_constants.constants import NO
5
5
  from edc_lab.labels import RequisitionLabel
6
6
 
7
7
 
@@ -1,5 +1,6 @@
1
1
  from tempfile import mkdtemp
2
2
 
3
+ from clinicedc_constants import YES
3
4
  from django.contrib import messages
4
5
  from django.utils import timezone
5
6
  from reportlab.graphics.barcode import code39
@@ -8,7 +9,6 @@ from reportlab.lib.units import cm, mm
8
9
  from reportlab.platypus import Paragraph, Spacer, Table, TableStyle
9
10
 
10
11
  from edc_appointment.models import Appointment
11
- from edc_constants.constants import YES
12
12
  from edc_identifier.utils import convert_to_human_readable
13
13
  from edc_lab.model_mixins import RequisitionModelMixin
14
14
  from edc_lab.models.manifest.shipper import Shipper
@@ -1,10 +1,10 @@
1
1
  import contextlib
2
2
 
3
+ from clinicedc_constants import NO, YES
3
4
  from django.core.exceptions import ObjectDoesNotExist
4
5
  from django.utils import timezone
5
6
 
6
7
  from edc_appointment.models import Appointment
7
- from edc_constants.constants import NO, YES
8
8
  from edc_lab.constants import TUBE
9
9
  from edc_lab.model_mixins import RequisitionModelMixin
10
10
 
@@ -1,4 +1,5 @@
1
1
  from django.urls.conf import path
2
+
2
3
  from edc_dashboard.url_names import url_names
3
4
  from edc_metadata.views import RefreshMetadataActionsView
4
5
 
@@ -3,10 +3,10 @@ from __future__ import annotations
3
3
  from dataclasses import dataclass, field
4
4
  from typing import TYPE_CHECKING, TypeVar
5
5
 
6
+ from clinicedc_constants import COMPLETE
6
7
  from django.utils.translation import gettext as _
7
8
 
8
9
  from edc_appointment.constants import IN_PROGRESS_APPT
9
- from edc_constants.constants import COMPLETE
10
10
  from edc_view_utils import CHANGE, VIEW, NextQuerystring
11
11
  from edc_visit_tracking.view_utils import RelatedVisitButton
12
12
 
@@ -1,9 +1,9 @@
1
+ from clinicedc_constants import YES
1
2
  from django.contrib import messages
2
3
  from django.http.response import HttpResponseRedirect
3
4
  from django.urls.base import reverse
4
5
 
5
6
  from edc_appointment.models import Appointment
6
- from edc_constants.constants import YES
7
7
  from edc_lab.model_mixins import RequisitionModelMixin
8
8
  from edc_lab.models import Consignee
9
9
  from edc_label.job_result import JobResult
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from typing import Any
4
4
 
5
5
  from django.core.exceptions import ImproperlyConfigured
6
+
6
7
  from edc_action_item.view_mixins import ActionItemViewMixin
7
8
  from edc_appointment.view_mixins import AppointmentViewMixin
8
9
  from edc_consent.view_mixins import ConsentViewMixin
@@ -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
  from edc_offstudy.constants import END_OF_STUDY_ACTION
4
5
 
5
6
  from .constants import SUBJECT_TRANSFER_ACTION
edc_transfer/choices.py CHANGED
@@ -1,4 +1,4 @@
1
- from edc_constants.constants import OTHER
1
+ from clinicedc_constants import OTHER
2
2
 
3
3
  TRANSFER_INITIATORS = (
4
4
  ("patient", "Patient"),
@@ -1,9 +1,9 @@
1
+ from clinicedc_constants import DWTA, OTHER
1
2
  from django import forms
2
3
  from django.apps import apps as django_apps
3
4
  from django.conf import settings
4
5
  from django.core.exceptions import ObjectDoesNotExist
5
6
 
6
- from edc_constants.constants import DWTA, OTHER
7
7
  from edc_form_validators import FormValidator
8
8
  from edc_prn.modelform_mixins import PrnFormValidatorMixin
9
9
  from edc_utils.text import convert_php_dateformat
edc_transfer/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_transfer.transferreasons": [
@@ -1,5 +1,6 @@
1
+ from clinicedc_constants import HIGH_PRIORITY, TBD, YES
2
+
1
3
  from edc_action_item.action_with_notification import ActionWithNotification
2
- from edc_constants.constants import HIGH_PRIORITY, TBD, YES
3
4
  from edc_offstudy.constants import END_OF_STUDY_ACTION
4
5
 
5
6
  from .constants import UNBLINDING_REQUEST_ACTION, UNBLINDING_REVIEW_ACTION
@@ -1,3 +1,4 @@
1
+ from clinicedc_constants import TBD
1
2
  from django.core.validators import (
2
3
  MaxLengthValidator,
3
4
  MinLengthValidator,
@@ -8,7 +9,6 @@ from django.utils import timezone
8
9
 
9
10
  from edc_action_item.models.action_model_mixin import ActionModelMixin
10
11
  from edc_constants.choices import YES_NO_TBD
11
- from edc_constants.constants import TBD
12
12
  from edc_identifier.managers import SubjectIdentifierManager
13
13
  from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin
14
14
  from edc_model.models.base_uuid_model import BaseUuidModel
@@ -1,9 +1,9 @@
1
+ from clinicedc_constants import NULL_STRING, TBD
1
2
  from django.db import models
2
3
  from django.utils import timezone
3
4
 
4
5
  from edc_action_item.models.action_model_mixin import ActionModelMixin
5
6
  from edc_constants.choices import YES_NO_TBD
6
- from edc_constants.constants import NULL_STRING, TBD
7
7
  from edc_identifier.managers import SubjectIdentifierManager
8
8
  from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin
9
9
  from edc_model.models.base_uuid_model import BaseUuidModel
@@ -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_offstudy.constants import END_OF_STUDY_ACTION
6
7
 
@@ -3,6 +3,7 @@ from django.template.loader import render_to_string
3
3
  from django.urls import NoReverseMatch, reverse
4
4
  from django.utils.translation import gettext as _
5
5
  from django_audit_fields import audit_fields, audit_fieldset_tuple
6
+
6
7
  from edc_dashboard.url_names import url_names
7
8
  from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
8
9
  from edc_sites.admin import SiteModelAdminMixin