clinicedc 2.0.14__py3-none-any.whl → 2.0.16__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 (64) hide show
  1. {clinicedc-2.0.14.dist-info → clinicedc-2.0.16.dist-info}/METADATA +1 -1
  2. {clinicedc-2.0.14.dist-info → clinicedc-2.0.16.dist-info}/RECORD +64 -64
  3. edc_analytics/custom_tables/age.py +1 -0
  4. edc_analytics/custom_tables/art.py +1 -0
  5. edc_analytics/custom_tables/bmi.py +1 -0
  6. edc_analytics/custom_tables/bp.py +1 -0
  7. edc_analytics/custom_tables/fasting.py +1 -0
  8. edc_analytics/custom_tables/fbg.py +1 -0
  9. edc_analytics/custom_tables/fbg_ogtt.py +1 -0
  10. edc_analytics/custom_tables/hba1c.py +1 -0
  11. edc_analytics/custom_tables/ogtt.py +1 -0
  12. edc_analytics/custom_tables/waist.py +1 -0
  13. edc_analytics/row/row_definitions.py +1 -1
  14. edc_analytics/row/row_statistics_with_gender.py +1 -0
  15. edc_analytics/stata/get_stata_labels_from_model.py +5 -6
  16. edc_analytics/table.py +1 -0
  17. edc_appointment/creators/appointments_creator.py +5 -9
  18. edc_dx/diagnoses.py +2 -2
  19. edc_dx/form_validators/diagnosis_form_validator_mixin.py +1 -0
  20. edc_dx/form_validators/result_form_validator_mixin.py +14 -16
  21. edc_dx_review/form_mixins/clinical_review_baseline_required_form_mixin.py +1 -0
  22. edc_dx_review/medical_date.py +2 -1
  23. edc_dx_review/model_mixins/clinical_review_baseline_model_mixin.py +1 -0
  24. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py +1 -0
  25. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py +1 -0
  26. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py +1 -0
  27. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py +1 -0
  28. edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_model_mixin.py +1 -0
  29. edc_dx_review/model_mixins/dx_location_model_mixin.py +1 -0
  30. edc_dx_review/model_mixins/factory/baseline_review_model_mixin_factory.py +1 -0
  31. edc_dx_review/model_mixins/factory/calculate_date.py +1 -0
  32. edc_dx_review/model_mixins/factory/dx_initial_review_model_mixin_factory.py +2 -1
  33. edc_dx_review/model_mixins/factory/followup_review_model_mixin_factory.py +1 -0
  34. edc_dx_review/model_mixins/factory/rx_initial_review_model_mixin_factory.py +1 -0
  35. edc_dx_review/model_mixins/followup_review/followup_review_model_mixin.py +1 -0
  36. edc_dx_review/model_mixins/followup_review/hiv_followup_review_model_mixin.py +1 -0
  37. edc_dx_review/model_mixins/initial_review/chol_initial_review_model_mixin.py +1 -0
  38. edc_dx_review/model_mixins/initial_review/hiv_initial_model_mixins.py +1 -0
  39. edc_dx_review/model_mixins/initial_review/ncd_initial_review_model_mixin.py +1 -0
  40. edc_dx_review/radio_fields.py +3 -3
  41. edc_dx_review/utils.py +2 -1
  42. edc_form_describer/form_describer.py +13 -8
  43. edc_form_describer/forms_reference.py +24 -25
  44. edc_form_describer/make_forms_reference.py +10 -12
  45. edc_form_describer/management/commands/make_forms_reference.py +8 -8
  46. edc_form_describer/markdown_writer.py +11 -10
  47. edc_randomization/randomizer.py +2 -5
  48. edc_randomization/utils.py +10 -0
  49. edc_visit_schedule/schedule/schedule.py +13 -13
  50. edc_visit_tracking/action_items.py +1 -2
  51. edc_visit_tracking/apps.py +1 -1
  52. edc_visit_tracking/context_processors.py +1 -2
  53. edc_visit_tracking/crf_date_validator.py +4 -4
  54. edc_visit_tracking/form_validators/visit_form_validator.py +51 -45
  55. edc_visit_tracking/form_validators/visit_missed_form_validator.py +6 -1
  56. edc_visit_tracking/model_mixins/utils.py +1 -1
  57. edc_visit_tracking/modelform_mixins/crf/visit_tracking_crf_modelform_mixin.py +4 -4
  58. edc_visit_tracking/modelform_mixins/utils.py +2 -2
  59. edc_visit_tracking/models/signals.py +1 -1
  60. edc_visit_tracking/typing_stubs.py +3 -3
  61. edc_visit_tracking/utils.py +1 -1
  62. edc_visit_tracking/visit_sequence.py +3 -4
  63. {clinicedc-2.0.14.dist-info → clinicedc-2.0.16.dist-info}/WHEEL +0 -0
  64. {clinicedc-2.0.14.dist-info → clinicedc-2.0.16.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clinicedc
3
- Version: 2.0.14
3
+ Version: 2.0.16
4
4
  Summary: A clinical trials data management framework built on Django
5
5
  Keywords: django,clinicedc,edc,clinical trials,research,data management,esource
6
6
  Author: Erik van Widenfelt, Jonathan Willitts
@@ -296,27 +296,27 @@ edc_analytics/__init__.py,sha256=Tne7Oyy6wpFVNcFoEpurXJ4_I3Tz93jvqOMmTTXW_X0,123
296
296
  edc_analytics/apps.py,sha256=bZ9Gtr1YdBX2Q1nkrzOi7wG9_Ri3vUj8ZOATve3hDzo,229
297
297
  edc_analytics/constants.py,sha256=a8aUKrhSWKFfLBm9e7CFQk0mEdkFNbGbAxpUrqaTXjw,481
298
298
  edc_analytics/custom_tables/__init__.py,sha256=TVI12TnJ5aMqTW2liyS4AjfLAIgg5rY8W_4WBsWfNw8,330
299
- edc_analytics/custom_tables/age.py,sha256=8XH1uYf8fLyH0kKLmtO5bpRcXBWH_Ytovj9bC33Spos,2614
300
- edc_analytics/custom_tables/art.py,sha256=6o9ILFdO9uT0oioqZNtEr4fwOpwcXvO4qDR7JmDXD90,2716
301
- edc_analytics/custom_tables/bmi.py,sha256=ugLtbQ-UOaSTlhfgkhIlW5i3T48z6WeHb8-LMlf8EWc,3843
302
- edc_analytics/custom_tables/bp.py,sha256=Tu6tMY2PuBVce_eziR4x8j3Iz4CecJyWSqN3DuBfgFc,3188
303
- edc_analytics/custom_tables/fasting.py,sha256=kCOOFF9B6mM8z4mcd1ykNVdwbstTAmaqACKdtN_sZ34,3992
304
- edc_analytics/custom_tables/fbg.py,sha256=96a8cIo7Cny-pOGy9ZzhLcnHKhfbY8vgheyBRfl8XJ4,2966
305
- edc_analytics/custom_tables/fbg_ogtt.py,sha256=4xEh5c08uaUhe7vWJ8ll_1xhyzJ6tD4M0-hAi1ItIE8,12127
299
+ edc_analytics/custom_tables/age.py,sha256=Jx78ka_AZ3qskHEAPeR1nQwENM6-MY12gEsM6rcZwY4,2615
300
+ edc_analytics/custom_tables/art.py,sha256=pgT7w2t6vzE5WFos4pe9E2XIEynFBBKFzryL1NV2abQ,2717
301
+ edc_analytics/custom_tables/bmi.py,sha256=5Ww5438pCAV_ApJ9k-_TIoJ805PibG-zAkvbv-1XUew,3844
302
+ edc_analytics/custom_tables/bp.py,sha256=THkAu7CKd9eZVlYDPtUrRFZg8zbO49U66kgEwtwRYQA,3189
303
+ edc_analytics/custom_tables/fasting.py,sha256=_r9_yyfleq99iNscgXYPNuP-cvyel1pLsEAU_I8JSJM,3993
304
+ edc_analytics/custom_tables/fbg.py,sha256=EX1PMVmjJ6r1RBeHzaFdpyEdYy2aJIhz1yB4I3JB-Pg,2967
305
+ edc_analytics/custom_tables/fbg_ogtt.py,sha256=Z22yMyKEu6PxDaD4BWAw5VAWj-dcSqNXHjPtC_IdXgY,12128
306
306
  edc_analytics/custom_tables/gender.py,sha256=lLPggxFYv-G0hnY_Bkl3rAdAitCNJ6KEud2FOGfaubQ,252
307
- edc_analytics/custom_tables/hba1c.py,sha256=cSQ_jgBvh8UVUaRr-yGJpprKuH9R_JESlXAn0MQcKcs,2620
308
- edc_analytics/custom_tables/ogtt.py,sha256=b1i5QLIz7B5erAOelMocGPgQ4kbia7lxVa4VAkvQwog,2887
309
- edc_analytics/custom_tables/waist.py,sha256=-XV3ZVmmdQg_ff7ckSdtSDxYHxgsnfQVtHrF5FVenyw,3144
307
+ edc_analytics/custom_tables/hba1c.py,sha256=tyK6EaxKfVeHbrZXfPV8s1QaiqPEC4_S1sSb3hFPsgw,2621
308
+ edc_analytics/custom_tables/ogtt.py,sha256=_WuSBG0_bj4SH0LELOkLPdAnOzWHLhLB0x43uPc-U-s,2888
309
+ edc_analytics/custom_tables/waist.py,sha256=tWQtmwn0AwV3JFmlbTSvcUq9TkTM19ewwHSTLHeun3s,3145
310
310
  edc_analytics/data.py,sha256=yaa7Hi9bQMhFKt_7wWDFZYsfU-tAKoE-gsm97_5vSco,1032
311
311
  edc_analytics/row/__init__.py,sha256=oBRBcrTeWr77ZfvsSnCGKbrHS0-qY26yt4EDn_hxllA,192
312
312
  edc_analytics/row/row_definition.py,sha256=me9QGvDb7aijLPoRD_jey1cLkJ3TuBLkF6IpzoyV_Y4,1434
313
- edc_analytics/row/row_definitions.py,sha256=NuNWmXSxBY2PSKep9EV5bRYyKJ1sRAWjjcOevMTHAgQ,953
313
+ edc_analytics/row/row_definitions.py,sha256=7PW5wd-wiYaOeIJ_lqCi6bAzOQUWG_gyykKeqK0VZ-k,962
314
314
  edc_analytics/row/row_statistics.py,sha256=M5zjBCbguVOxOp2Lmla9JUkZA9bG3V8aanY6zswDRL0,2897
315
- edc_analytics/row/row_statistics_with_gender.py,sha256=P20IiMnz11AzmvtwUsAMGzn_lgPoyUdvigcr8lhIOzg,3210
315
+ edc_analytics/row/row_statistics_with_gender.py,sha256=ti16XFqDgjrMcd-1v5kMxc5X1R6UqHYVKQ8khKvFPAI,3211
316
316
  edc_analytics/stata/__init__.py,sha256=fzENxSjaoxaXbSeafnaNXOPO85aXWbObQBnYfhAJI6w,69
317
- edc_analytics/stata/get_stata_labels_from_model.py,sha256=3EjENwn-ACITNYQvkwahdvdMsefSR4V077EH43zF5ls,1463
317
+ edc_analytics/stata/get_stata_labels_from_model.py,sha256=Dsu0635K2F0xK3zrU-BmnuLV2ZD51mDqbTxJZWfgL4I,1431
318
318
  edc_analytics/styler.py,sha256=IvuKalHPSJLZTjzOKAt7wK2kCRRvZGL9_PxM70Vo68Q,3086
319
- edc_analytics/table.py,sha256=yt1XvKYJvk_VjsBl324iCRJNGofkq9yg0u0h5ZHVnvw,3752
319
+ edc_analytics/table.py,sha256=PJwlnURui-BXOqc9s0STA1Fs0FqbdAtNLKLnGFV_kS4,3753
320
320
  edc_analytics/urls.py,sha256=NR4c2ybRQNjbtJwi-PTsYB9oacVuVZsIRHo7ZnA0WIc,118
321
321
  edc_appconfig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
322
  edc_appconfig/apps.py,sha256=eMQEa-pQzqWyuBGbpWWNJwgmbc7oSZ3d0FNFdd_08ik,11211
@@ -342,7 +342,7 @@ edc_appointment/constants.py,sha256=tsv0MV8Zo4e1aLnx00VYsM0EmyUUuTupeEFb2cko1N8,
342
342
  edc_appointment/context_processors.py,sha256=LTdhNLGDhsJmdobhnM4VwhZns-67jm5Culz8vxsErzI,387
343
343
  edc_appointment/creators/__init__.py,sha256=yv_eSyS8ogQjSe-Y3elxUMa3unIbgTMH3Tg9QSRLdho,425
344
344
  edc_appointment/creators/appointment_creator.py,sha256=HXB7tDyPHZ29MNqpDHuYXmJTRaWCxAtvU4KOypEc0o0,9757
345
- edc_appointment/creators/appointments_creator.py,sha256=K31XnlSVry7bJ8r2VCEgpwyneqa6laBSmw8nV2JTjEU,5687
345
+ edc_appointment/creators/appointments_creator.py,sha256=XH-pYfxtl5lS917mEGSMFWrwAVuOmjdB2Efw9ONo0jU,5638
346
346
  edc_appointment/creators/unscheduled_appointment_creator.py,sha256=m7yLmW2xcNGf5PhhTUc1PleI8JKlhaYSoMWVCBZDvis,10590
347
347
  edc_appointment/creators/utils.py,sha256=H4Q2_BVFqTX5ra8Aov061ItHLlusyGY2eOFoHC4taag,2568
348
348
  edc_appointment/exceptions.py,sha256=07KyrUsorB4ke1TToWx2BcRAAsJYMKkOAt8cjn93B3A,1214
@@ -874,10 +874,10 @@ edc_document_status/models/signals.py,sha256=yZmZiYD3c2QDqUUTdTN087Fc3_B2-Vi-983
874
874
  edc_document_status/urls.py,sha256=Hgg7_Kjo7c1aFcXBB8kuOJIvW5IY7Do7z5vkeBAWEDQ,213
875
875
  edc_dx/__init__.py,sha256=im7QJgvIrK5LLffGaTEL5v_TT81Io51SjF3cjPwPHnk,156
876
876
  edc_dx/apps.py,sha256=L9jTcNHWXli9vYd5FPnyc7SXOj-qs_3ntVJ549nJ0XE,109
877
- edc_dx/diagnoses.py,sha256=N99awNy9ZReb4Ko5oBqJN6CfF-jL3wIpnsPYe3Yttgs,9071
877
+ edc_dx/diagnoses.py,sha256=TWP5MaCGqBhZKvB_l-dFyMttL0mFV-2mUCYIE1sdO1U,9048
878
878
  edc_dx/form_validators/__init__.py,sha256=0Xdntahcc_2lYyYIdigkkcZMtfGTa1qX3C1zo0NW-eo,138
879
- edc_dx/form_validators/diagnosis_form_validator_mixin.py,sha256=a5pyop7VIjMe1Tjj_FY2TDtkyUmxk66Rms_4qvpIQSo,1925
880
- edc_dx/form_validators/result_form_validator_mixin.py,sha256=4Yby5_ZZyNmqAanJENcQh-c_yMybi7JjI20_SbtCHu4,2492
879
+ edc_dx/form_validators/diagnosis_form_validator_mixin.py,sha256=7XVTPPkVx-X3BW8XiBKRYGTeuPIYnt9Xsbcno8Q5ZOU,1926
880
+ edc_dx/form_validators/result_form_validator_mixin.py,sha256=Us_ZJrLc8HB1xw6Bu_ZM6gQhHJDEj3eusv2M7mlUUPs,2405
881
881
  edc_dx/utils.py,sha256=tHhSJgXYz_DwP9Ujhi4MVLFc2Sz-oxcOQEpDO9elz5w,1223
882
882
  edc_dx_review/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
883
883
  edc_dx_review/apps.py,sha256=kgCI6K_HKHiKb1MfblBJSr-naZk7bABgMWhtpmIl1wg,116
@@ -887,42 +887,42 @@ edc_dx_review/choices.py,sha256=AufGpbPViQ6eA0TJxfod3g9Y8T-aLvr6tulAHL3AQtc,643
887
887
  edc_dx_review/constants.py,sha256=1l1n556hBzL5M_fbnQkxK4dXzYH_35pem42QZVWHslk,204
888
888
  edc_dx_review/fieldsets.py,sha256=aLgxJqfz8XsoK9dXI4wa8v9qS_GD1KQbO0b2pVg_ClA,1276
889
889
  edc_dx_review/form_mixins/__init__.py,sha256=BT941i0F_ahGzpZQtM-Jhd911XVFrxKDj87L0w-hCSM,112
890
- edc_dx_review/form_mixins/clinical_review_baseline_required_form_mixin.py,sha256=A9Q4aTzwPR4hg48LmUztoH56hsaRxsa93at8lJXGiMg,942
890
+ edc_dx_review/form_mixins/clinical_review_baseline_required_form_mixin.py,sha256=Goxl-DVRfAv2qtZlquN9-GJ31slylRPkoI07zyrYO3k,943
891
891
  edc_dx_review/form_validator_mixins/__init__.py,sha256=qlmi4uKl-Dqtliyw42ZfldMkYhdgAs4xOwK9isYGEMA,218
892
892
  edc_dx_review/form_validator_mixins/clinical_review_baseline_form_validator_mixin.py,sha256=KFc4PwH2__fo4OvHrBtNTuYApliVuiD-VT1RRnmqcCw,226
893
893
  edc_dx_review/form_validator_mixins/clinical_review_followup_form_validator_mixin.py,sha256=fNZF9TJrak9e9yUb8VJNLElLThWLGma3Wun5-DP6OtA,1097
894
894
  edc_dx_review/list_data.py,sha256=Igsmks2rDC95PDMWZmWLynhvQ6dBL2K0qazwtEDDXOc,711
895
- edc_dx_review/medical_date.py,sha256=CHRJsiKuZUpyJeEVOqc0A9jGFE2lsZByKTzzi9jl5DQ,6907
895
+ edc_dx_review/medical_date.py,sha256=I_TJ5tEY8Mkqgy3_z_pjKlHszNE5LWYSXiRMEXxpQMw,6896
896
896
  edc_dx_review/migrations/0001_initial.py,sha256=0BmL_Pj5j-lRlR_IBzwDqGH96pIOT8mlf3huCK43Jlk,11691
897
897
  edc_dx_review/migrations/0002_diagnosislocations_extra_value_and_more.py,sha256=I8wCv3MXFzDufDC9fksSfKjDNi5TK_whkWN0Jc6a4Pg,965
898
898
  edc_dx_review/migrations/0003_alter_diagnosislocations_options_and_more.py,sha256=xeaCnYnmqFnVemeqNhuIc8-o9SAKZpguZHd4QTinr7c,5011
899
899
  edc_dx_review/migrations/0004_remove_diagnosislocations_edc_dx_revi_name_a39b40_idx_and_more.py,sha256=a0yE-oHCphIt9-PjfMa5qLb1FNBoMbcq1qliyw6MGVQ,524
900
900
  edc_dx_review/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
901
901
  edc_dx_review/model_mixins/__init__.py,sha256=-Yga4EAzAyBO9Q6Wmtj9bfKujnVBFPxklp98pkhvijw,700
902
- edc_dx_review/model_mixins/clinical_review_baseline_model_mixin.py,sha256=Pt_P8wejad66krsuiYLjm6rWaWmdK8oM3xTfFjg3qHk,926
902
+ edc_dx_review/model_mixins/clinical_review_baseline_model_mixin.py,sha256=E_1UuQlJmBbiQnTAm5LugRplHRWe6rRVa26teCnlOtA,927
903
903
  edc_dx_review/model_mixins/clinical_review_followup/__init__.py,sha256=vhLjTnrXT89BYohT18JHRmxN8ua6I_KSBO-bkmJiP34,403
904
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py,sha256=0926O-SKcTRLv06bCx-6VZSQXFryH5-W818_vakDRDA,1677
905
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py,sha256=LanclLOeI_FE85YeyuQk4_fmTVCHg8qoo3SJ3lEHrGw,1653
906
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py,sha256=JDQX4YoDCKbFOMRr2yB-G3qBaHuhr9PefFYgnHrzuu0,1680
907
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py,sha256=6NtMzddh3eQjGpZwU7TmXbvKQ_XB7jZ0tb3KteMyqQA,1738
908
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_model_mixin.py,sha256=UoH1P_MHw4XL46FTLa4juYK9iYbXeki0OdicdTkBeS8,892
909
- edc_dx_review/model_mixins/dx_location_model_mixin.py,sha256=aJYuHDUrJ8TPpMIuhBMT3QyIAVKua5bWrWyVhzKXYQE,425
904
+ edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py,sha256=fWV8YCXki24r-o5a2Zs2VGMgWeqXW7rd5ayzffwo82o,1678
905
+ edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py,sha256=ICoAmdtNpiGyuNN2-P0M9WyI2HsIW-tilwU3d3bnKrY,1654
906
+ edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py,sha256=L0_RiaJWrKANwfFz7pU9ZvkVIRzek3_1ckOhk4BNPDo,1681
907
+ edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py,sha256=uC8W37NO0slc8a1xwRGsemdgbsM2VkYNRgyDZUTqU48,1739
908
+ edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_model_mixin.py,sha256=8SzfY9qBxQhc2RKPyhH-LLAS90FnDZbHoz_rTnw0Nkk,893
909
+ edc_dx_review/model_mixins/dx_location_model_mixin.py,sha256=XJZOh7ZJhJRM99DjhHSkipoGwfgKQqdhzJZRmUPDqjk,426
910
910
  edc_dx_review/model_mixins/factory/__init__.py,sha256=IdBPEgN-mJm9v0vjSDLGc10v12pIp-NFpBi-E0y5Zmk,348
911
- edc_dx_review/model_mixins/factory/baseline_review_model_mixin_factory.py,sha256=mPdS6lOhlZ1e21ikxBkKjjqjg4ba9Oad3tiCgfJ_l3E,1746
912
- edc_dx_review/model_mixins/factory/calculate_date.py,sha256=wBLnTj3-JN70fp58uLvukmr0zfzVlVpYFut3-cXNdjM,1526
913
- edc_dx_review/model_mixins/factory/dx_initial_review_model_mixin_factory.py,sha256=FVf2NcwpA0rDBJNX_f5KSv0i7VmsEM47kIn7Zf500kw,3222
914
- edc_dx_review/model_mixins/factory/followup_review_model_mixin_factory.py,sha256=rlsct84TTyfbHkB1hdsHKEHE_FC_0TA1f_xgc_n7ufs,1246
915
- edc_dx_review/model_mixins/factory/rx_initial_review_model_mixin_factory.py,sha256=a98icJL6J31xEyYQ1eppVYTte-jPQdo9C2KdgpmwZ4g,2376
911
+ edc_dx_review/model_mixins/factory/baseline_review_model_mixin_factory.py,sha256=5h8wWOlcB-CZqanTwk8LfCZdq9y3DaFSmOoCLv87j5g,1747
912
+ edc_dx_review/model_mixins/factory/calculate_date.py,sha256=Ytjlk2R7CsNWTYWVwzl17UuUHai8ZBKa4A0cB58XsqE,1527
913
+ edc_dx_review/model_mixins/factory/dx_initial_review_model_mixin_factory.py,sha256=fiq649IUg28cbi9KGGHtWQ6lntQpSy53mWJtXm1q7_o,3211
914
+ edc_dx_review/model_mixins/factory/followup_review_model_mixin_factory.py,sha256=QUq2cMo9IPWLnhXeyHg1qj6iRUuSAWY2m9oyHSh8cOQ,1247
915
+ edc_dx_review/model_mixins/factory/rx_initial_review_model_mixin_factory.py,sha256=DTO3NAN26VoZLQ0JQwF-N5pPo-Gxsw89m-iAkg7Wu3c,2377
916
916
  edc_dx_review/model_mixins/followup_review/__init__.py,sha256=2vTnIxKhFrmxXDVdngv5RumwycrpnWh7FaMU8CA99LU,139
917
- edc_dx_review/model_mixins/followup_review/followup_review_model_mixin.py,sha256=41DfNIvUUd6NUbbjCMbC-5dBA5KEV3JQfTmtob88oSM,673
918
- edc_dx_review/model_mixins/followup_review/hiv_followup_review_model_mixin.py,sha256=HLTl0wUV4FUY5_uwww79ZzwircfQyjZ7FbV29lenrmc,1034
917
+ edc_dx_review/model_mixins/followup_review/followup_review_model_mixin.py,sha256=HJJSqRxDj8wxxCRmOTsA_mz6l9Q5Fp5gpZYHHthMu0k,674
918
+ edc_dx_review/model_mixins/followup_review/hiv_followup_review_model_mixin.py,sha256=y0Ux_v55bfDtOIQO4MmLu-E00tRfSLmP5QMPixuUVtg,1035
919
919
  edc_dx_review/model_mixins/initial_review/__init__.py,sha256=nSRBcgZcJnbACdazzI_1oJ9B5YHjAbvpCO3KlFsn510,250
920
- edc_dx_review/model_mixins/initial_review/chol_initial_review_model_mixin.py,sha256=efe7lG6HiUPVROZNl9GYuUi_wRO0mBTkVHetwG48gCk,1000
921
- edc_dx_review/model_mixins/initial_review/hiv_initial_model_mixins.py,sha256=V99wib43CfTFdFB9-U7EAbpPbXDWHHJdHQcYkWODTX0,3641
922
- edc_dx_review/model_mixins/initial_review/ncd_initial_review_model_mixin.py,sha256=4EKYkCUGEBmLhH1gs2CikFAh7jP6aJWHfNBu9zc841o,1192
920
+ edc_dx_review/model_mixins/initial_review/chol_initial_review_model_mixin.py,sha256=sj3nBYKY4nY3arX6TcChN1KvjlKFr5216ijT4_b2Z6M,1001
921
+ edc_dx_review/model_mixins/initial_review/hiv_initial_model_mixins.py,sha256=ayOxv6D_sFC_5ttGYQigEMq2c-hC5823H7pPlDXVkJU,3642
922
+ edc_dx_review/model_mixins/initial_review/ncd_initial_review_model_mixin.py,sha256=UsE-z9qZzNnBj7v7dwaBqzIj24h63l_ywnYjvMzrT4c,1193
923
923
  edc_dx_review/models.py,sha256=j270tH76Fb-WYMc7nR_4JfIT9An5QQ-FSTiiGer4YUE,610
924
- edc_dx_review/radio_fields.py,sha256=bbQrzZoWtbQ7ywP3e8yR0d_uzW5rloqpgZT0zuLzbQ4,833
925
- edc_dx_review/utils.py,sha256=i3dmJLzyaGwLlCY9GMDpDx8zWMCcFzcWA5zqSXOSiKo,6985
924
+ edc_dx_review/radio_fields.py,sha256=sb8njIokL0v_kA-7_HZJtiUXdW2ILeOYOXMqd2XLsLU,810
925
+ edc_dx_review/utils.py,sha256=bTh1zcmSiEq27RlEaDd0Cp4NZ6jhg7gr_dZapsLk28U,6974
926
926
  edc_egfr/__init__.py,sha256=q9hW6cas07gJxgElFaN7AtUGzwTwHuXvexxGFej3_pQ,56
927
927
  edc_egfr/admin/__init__.py,sha256=X4SsX1UIcGwxzNHH2uG4rnLxLQiYcLJeGLi4agxnkEQ,79
928
928
  edc_egfr/admin/egfr_drop_notification_admin_mixin.py,sha256=Chet4mYDfZI4ohYrAyyf4CymZE6jCkYUB7y7uSAP-rs,2431
@@ -1087,13 +1087,13 @@ edc_fieldsets/models.py,sha256=sAQOBRo_PM7Uu3Hvxx2j5CLDDpuei8-vAYdkOUSuYkg,32
1087
1087
  edc_fieldsets/urls.py,sha256=_SQMjzRQvSHqalE_zviNqzpbcwJgLdjAgOh3-Eprb58,749
1088
1088
  edc_form_describer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1089
1089
  edc_form_describer/apps.py,sha256=unr6UihcCOaoVtj56Q6DRQq9WDjivoE1zZjyy2HTBqU,121
1090
- edc_form_describer/form_describer.py,sha256=w94XyAabCOGhuSE6sGedvoPEkTBxpNp6skxR_tsNkvQ,8204
1091
- edc_form_describer/forms_reference.py,sha256=U9P0rRq5fDmUoplXnou6VqyusHVpC9u1wu-kW2jyFgc,4684
1092
- edc_form_describer/make_forms_reference.py,sha256=JdeR1lMo4A2NTvgschdSR-TPpHXvmCO_hlPcK7zKo4U,1371
1090
+ edc_form_describer/form_describer.py,sha256=0F7eu2rLpThwv9lU7taSZFr6mJed1Gpv6hUeMYEWlGA,8435
1091
+ edc_form_describer/forms_reference.py,sha256=TYofCReEipIceNXSddL29jcApYUrgU8LNq5UElJtSz0,4709
1092
+ edc_form_describer/make_forms_reference.py,sha256=wQY39EFscPWTszj8gzpLhf0WKktL91uIVBdx1cMh_gU,1327
1093
1093
  edc_form_describer/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1094
1094
  edc_form_describer/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1095
- edc_form_describer/management/commands/make_forms_reference.py,sha256=KOUOCN27YvAsBjSQ-0gDk98wnltNoVnrt8k4JJyBWBk,3123
1096
- edc_form_describer/markdown_writer.py,sha256=KILzp0HAY2omaw3SnLTjW9KcjpvJkzjAvyaZ_on7bkI,1799
1095
+ edc_form_describer/management/commands/make_forms_reference.py,sha256=Pni3ZPpGM5Ds7-GYXPvl_m2zxHOE2_rFvmdlXre0FnM,3168
1096
+ edc_form_describer/markdown_writer.py,sha256=UFjVvz5cUHyJnlUDNm6RIPBGc675HL-IsoUS6TDrKJg,1809
1097
1097
  edc_form_describer/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1098
1098
  edc_form_describer/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1099
1099
  edc_form_describer/urls.py,sha256=_FX1x4JJH8wKclMUbJI847xPbjxqHJazbRZYj30wW7g,113
@@ -2795,12 +2795,12 @@ edc_randomization/models/edc_permissions.py,sha256=f6P4zXxLQdTAbn2KnFlwfE86Lmzj7
2795
2795
  edc_randomization/models/randomization_list.py,sha256=Hd5yUSZ5HBKhNzYdlbJufab8U2x3Dzw8n4WXnYzJxyc,253
2796
2796
  edc_randomization/randomization_list_importer.py,sha256=v8d1klIfAsf9CwR_4HLLzifDnJvFD2bXhDOe0XqznjM,12366
2797
2797
  edc_randomization/randomization_list_verifier.py,sha256=0JqlbVCBZzx18Vxp2gID4zHjZMyO1LaHzqe4zTzRUpY,6481
2798
- edc_randomization/randomizer.py,sha256=csUo5gdqrxdwj-2xyXNGWvUWSEBOKja3XUecXYg28_A,12989
2798
+ edc_randomization/randomizer.py,sha256=N57PvCGjsjlw4r4V-zE5K7uWnLUw4QwZREu-mQ-O_4U,12939
2799
2799
  edc_randomization/randomizers.py,sha256=JvMDAnsgvRZkl50Bawm2iLsyw3bfWfGwBafn54K5g44,297
2800
2800
  edc_randomization/site_randomizers.py,sha256=T6u1cNPZtoh5ajdsBciSVWzZYZyOPbiTqS9VBGKJ7H8,4077
2801
2801
  edc_randomization/system_checks.py,sha256=S_2Vkq3J3DQVEXOV3JNNlCzuZcl1l34-tTnaBaSZaBk,3025
2802
2802
  edc_randomization/urls.py,sha256=yQnOoy5U5uL00f7_JJcZk7toskmZunG_kJdl-epCV9U,223
2803
- edc_randomization/utils.py,sha256=rCEq6S08A2KosBpo_orFLEkoOWJ8PrX_Bk3CuzWqPt8,5527
2803
+ edc_randomization/utils.py,sha256=uRTtoyAuWo5D6y65ZHBWMSody8IMJBK6cS3mFmJGIMw,5730
2804
2804
  edc_randomization/views.py,sha256=mQnAoYzIbqXFXablJbPY3NdJc4K3fD4le-GOF2kpMmE,340
2805
2805
  edc_refusal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2806
2806
  edc_refusal/admin.py,sha256=upce4HEPyPYKTe_R_krQ9TaLufcJN50c0lw4JrzbTwE,2151
@@ -3287,7 +3287,7 @@ edc_visit_schedule/navbars.py,sha256=RWx57OD-KxpPh0ihRyangGGiOOR7vfxRFjPCj8C5uF4
3287
3287
  edc_visit_schedule/ordered_collection.py,sha256=7A5YqG0qGx6jAE0z6bd3BijlW9oYxiQrF-5fzB3hvok,1699
3288
3288
  edc_visit_schedule/post_migrate_signals.py,sha256=7vFfx7ifMwmvrf7MCzpk9q4g1pbM4n44uM4TrH1hPGQ,748
3289
3289
  edc_visit_schedule/schedule/__init__.py,sha256=bzyYW9y3pPCFTjwjvkUVgkW3d1g1D2SCNfgE9bnLjII,101
3290
- edc_visit_schedule/schedule/schedule.py,sha256=daKuzIx0sa9c4RjedXQtFFzx79bqdEvAJEDNmzZ8R-s,14874
3290
+ edc_visit_schedule/schedule/schedule.py,sha256=RhUc5UPKZacqYmdxI8-tkEkERZFfq0TAN-wDF8dBMEU,14881
3291
3291
  edc_visit_schedule/schedule/visit_collection.py,sha256=9OJKrLtx-H0eL9oo0dsRqYGPICiAMqEF4xIhhlinx0A,2033
3292
3292
  edc_visit_schedule/schedule/window.py,sha256=P_hNhAXBmRxED_0UrlpQoYHF5r_nTEpTK7U2JSAnpCs,5222
3293
3293
  edc_visit_schedule/simple_model_validator.py,sha256=pE2QCSI1VhSr9Dd-NGd-72u6e479_vzbS8iL17eg4Yc,771
@@ -3319,18 +3319,18 @@ edc_visit_schedule/visit_schedule/schedules_collection.py,sha256=yujoCASDUWyFsqa
3319
3319
  edc_visit_schedule/visit_schedule/visit_schedule.py,sha256=s4pzIUMSDyGgj2wINI53qO3V_UFU_vhEX7lTBtz9UmE,5734
3320
3320
  edc_visit_schedule/wsgi.py,sha256=ToL_Ox7yQ30uUMBj5Ev2q_im2dl6mWKdqsUyJWeyFWU,397
3321
3321
  edc_visit_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3322
- edc_visit_tracking/action_items.py,sha256=dPrbvsbMzBTpIPfCeJupV2d2Na1BDqWUmgFTjtU0E6g,1252
3322
+ edc_visit_tracking/action_items.py,sha256=lWf2-lNgz3QxkvbHW3j7YpZFbwqZwUvI_qDaAR4SWWI,1216
3323
3323
  edc_visit_tracking/admin.py,sha256=YQ6gNY7oMgzfR-HAgMfeZ8DsH0Yhr8GvmUeQUb11eqQ,554
3324
3324
  edc_visit_tracking/admin_site.py,sha256=f_MgAkWy84hY48SOb5vT21IcSkebPm0j5b6ZmcuCjcw,187
3325
- edc_visit_tracking/apps.py,sha256=9Y0hcJkV6t0sNUWRqGnnMTzoYYbBd0wfPWVKXHCTI6I,529
3325
+ edc_visit_tracking/apps.py,sha256=WD1WUsqsYoH0arcRdx6eDyEU3pB4cwpjY3wvYvlpg7U,545
3326
3326
  edc_visit_tracking/choices.py,sha256=HVpd_Wr31NAG2kTKaF7TkPAgBk5PB_8hfQN3sAiNisA,2322
3327
3327
  edc_visit_tracking/constants.py,sha256=-XXCR2VzMxpZrCdGp4CB958j3E0llrPd5PKdrblsHNs,444
3328
- edc_visit_tracking/context_processors.py,sha256=dOLgB2WhD2W2YIO_KIf9gNDzdEmxG1vOhrjXddKXZyo,326
3329
- edc_visit_tracking/crf_date_validator.py,sha256=Nysm30fY971wB__tn9h7U0x_IlYzhrIMd6PU84Hny4c,3695
3328
+ edc_visit_tracking/context_processors.py,sha256=U4zznNUdTAxFNjr56nl13GXFQ2yM9VIochpGujf9bb0,312
3329
+ edc_visit_tracking/crf_date_validator.py,sha256=_UhYtNvzAyVdechjEmR-g9-SKBGb4aCW0DlK4WaY7rg,3737
3330
3330
  edc_visit_tracking/exceptions.py,sha256=trVxjsip2_Fl6y2e4gWts9XVVPcOqmJXvthuJSSFTMk,155
3331
3331
  edc_visit_tracking/form_validators/__init__.py,sha256=BQcVQ_BBlMb_x5unFYm2sy5fTGiI3pBnyxsgrebjIfU,119
3332
- edc_visit_tracking/form_validators/visit_form_validator.py,sha256=6A3Xrc_XGiqGKR1hPY6lovWxiskKcCQ4R8mok5iWag4,12052
3333
- edc_visit_tracking/form_validators/visit_missed_form_validator.py,sha256=Q-1pVZvxoE9k8d1QIEG_c-8uExPLnzSu74wYMuA8-Oo,1347
3332
+ edc_visit_tracking/form_validators/visit_form_validator.py,sha256=lRc1IA3ujgWqJL0VQbjPzJa8G6njXKogbOVoN_EzTGg,11972
3333
+ edc_visit_tracking/form_validators/visit_missed_form_validator.py,sha256=xJRVbAGcxXSvfb6ZkxGHfI01G1K7afuxF8wXa-smAMg,1449
3334
3334
  edc_visit_tracking/locale/sw/LC_MESSAGES/django.po,sha256=lRGiikykQlMhoS-SgN-Hzqgm3NpBuAoR9H_vsEt4-aI,3719
3335
3335
  edc_visit_tracking/managers.py,sha256=oQyaMAnUYYLqY9qwSU8rT2-KUvqu4M9t9J1YzIIdwFQ,4008
3336
3336
  edc_visit_tracking/migrations/0001_initial.py,sha256=R3MUszHP_y2zQAO9JXu16td3ZTkJreh6jCBOc6biALs,5655
@@ -3354,7 +3354,7 @@ edc_visit_tracking/model_mixins/crfs/visit_tracking_crf_model_mixin.py,sha256=5p
3354
3354
  edc_visit_tracking/model_mixins/requisitions/__init__.py,sha256=JZHxR8XADoba21z1JJsJyQattiRheoLj4mkCDk_HEKc,87
3355
3355
  edc_visit_tracking/model_mixins/requisitions/visit_tracking_requisition_model_mixin.py,sha256=I72j8p5SkYLDpxAAeRx76z_TMi-lIH0JxcbKY6OOALg,1186
3356
3356
  edc_visit_tracking/model_mixins/subject_visit_missed_model_mixin.py,sha256=BnPnpbNSVyJgbzxCyWAnoOXkjRUyciifFIR6kWNp_yA,3593
3357
- edc_visit_tracking/model_mixins/utils.py,sha256=pyQl3k0tzu1Amq9qBBWARu9bTRJasNbPU3dF8UZz2Ag,1537
3357
+ edc_visit_tracking/model_mixins/utils.py,sha256=yL3DsZbW5mG8kOo3r3D1J_dGhvYTpYb9x6FY0fQMrts,1554
3358
3358
  edc_visit_tracking/model_mixins/visit_model_mixin/__init__.py,sha256=YpThykSaGcXNz7rOH-aOOodhLFFhnR3vDwn40gsaxpc,248
3359
3359
  edc_visit_tracking/model_mixins/visit_model_mixin/caretaker_fields_mixin.py,sha256=4GDRDe6It-b1UNKatsdI_oyu1_47bpnJsuKv6yLQWZ8,1024
3360
3360
  edc_visit_tracking/model_mixins/visit_model_mixin/previous_visit_model_mixin.py,sha256=NZ5UDkZltDmqYu6uHOL4BWB5-tnwEyWmIHI_VYNY3Is,1875
@@ -3365,23 +3365,23 @@ edc_visit_tracking/modeladmin_mixins/crf_model_admin_mixin.py,sha256=KaShntUo5g0
3365
3365
  edc_visit_tracking/modeladmin_mixins/visit_model_admin_mixin.py,sha256=bnBzchsrRYZzq8-AGV7veWzXsLPHOx_bwFCHduUBLRM,5156
3366
3366
  edc_visit_tracking/modelform_mixins/__init__.py,sha256=YSmMaMAWmggeIoftggG_ij8H2kX-H3P5T8w5E0TCCZ0,194
3367
3367
  edc_visit_tracking/modelform_mixins/crf/__init__.py,sha256=bPOdhr4KLEBFo-SK1F8DWD6us7kFolU4qphjg5oTnTs,129
3368
- edc_visit_tracking/modelform_mixins/crf/visit_tracking_crf_modelform_mixin.py,sha256=2uDMX00sXNzlM_C8O6n53CRru8PXnEJ_JKjbiNBya38,4347
3369
- edc_visit_tracking/modelform_mixins/utils.py,sha256=XpGMbmF4V8-KffoHpq-pLOWe-9Tq0DRUNAPDe5EdHBk,1663
3368
+ edc_visit_tracking/modelform_mixins/crf/visit_tracking_crf_modelform_mixin.py,sha256=Ynl8z-rL1LwmYGtWMb-XbYwdcM7p_rX6tA5Fx6uSbfc,4373
3369
+ edc_visit_tracking/modelform_mixins/utils.py,sha256=PlmJw4enAaESEGkzooH0iOX9LtGZL7jasDKaHZ9IOdM,1669
3370
3370
  edc_visit_tracking/modelform_mixins/visit_tracking_modelform_mixin.py,sha256=pik_qYv2vJLd3HtYslZEn65_Cy0iHSs-rqkryoyjZg8,2580
3371
3371
  edc_visit_tracking/models/__init__.py,sha256=aB-hnevvK3ttednU3e3c5Fb8i2GIRK5p2zRRkgoSXSc,318
3372
- edc_visit_tracking/models/signals.py,sha256=0gIfrFWaQSAIyG_YEuQpHz-_czw9yceM03wosujlSDI,2786
3372
+ edc_visit_tracking/models/signals.py,sha256=AgdyrUfya4obxnOjoTl62IIRHMfuP-wMtMm6skwes5E,2800
3373
3373
  edc_visit_tracking/models/subject_visit.py,sha256=yrSV_pH-W_tw3S9Px2ELSTeFM82haNf0YaekWVaTaRI,1732
3374
3374
  edc_visit_tracking/models/subject_visit_missed.py,sha256=VsVF0eALA-UHTeWkaJT5xGCo8FYXqBiRxv-t61wIFtk,963
3375
3375
  edc_visit_tracking/models/subject_visit_missed_reasons.py,sha256=dGEUkZvD3wqyUk3joSmfdsEPEswZ6dsCQJAUZ69cewI,257
3376
3376
  edc_visit_tracking/models/visit_reasons.py,sha256=OWAL3iksKQlkp9zcD3OXDnjg03kS97hATMRjIZMVsU0,214
3377
3377
  edc_visit_tracking/stubs.py,sha256=4lGFKGJEckmnXbNdnQQwc_HcdQFSQxE1H2oQpDircBs,1164
3378
3378
  edc_visit_tracking/system_checks.py,sha256=rK1yGfp0H9nuQJBl1PA_RhvorBXMG-ve_Wc6jKXBmdQ,435
3379
- edc_visit_tracking/typing_stubs.py,sha256=RkwlPckyO9r-L51SAYmRtiB65AktEYd29W9JREb8-f4,2137
3379
+ edc_visit_tracking/typing_stubs.py,sha256=7LMpFxcJICBFY7fBFZ1z0JSwSBfYGE6K1whAE7BVb-U,2106
3380
3380
  edc_visit_tracking/urls.py,sha256=X9Wiy0mlDaCeiiOKNytfSNfVY6oeeJbaBPtHol81HD0,181
3381
- edc_visit_tracking/utils.py,sha256=z5ax1F_WCSyKWfapxQ3XolUduduX9MBqWmSrtExCRkc,3251
3381
+ edc_visit_tracking/utils.py,sha256=3Bamx6fWOISqN5_JhXU3R1eHwcBZ4f1KDdNu0t_aHEg,3258
3382
3382
  edc_visit_tracking/view_utils/__init__.py,sha256=ABuaZK3UEKHbLjaJv-0e0tovLI0xKG6wrxgElloTeZ4,87
3383
3383
  edc_visit_tracking/view_utils/related_visit_button.py,sha256=D0y6mxtY8mW5sQsczyC-GEl2rzc_n5cgTVCTKF-tdIQ,3385
3384
- edc_visit_tracking/visit_sequence.py,sha256=Mrneex0eZjb6YHFmKaJ9rzs-7iBVDbMeRH26q-7748E,4294
3384
+ edc_visit_tracking/visit_sequence.py,sha256=ppK53IVuFD1ZcDHSEeP_P1YfqCNSveznf9s_Rqg5CVY,4300
3385
3385
  edc_visit_tracking/wsgi.py,sha256=_CGuos4-Wxsv6M7sc_3MnHKbWlGEfqzJDUrO6JUHzIo,179
3386
3386
  edc_vitals/__init__.py,sha256=k7pm4XmS32dJU4XRYKHJrzEkA7CuQ75_Jj7nLkvUiDY,117
3387
3387
  edc_vitals/apps.py,sha256=AvV-Dwgo6KRe5VhriAP8CYM6OJG6kGh2_1BwQ6Wmc8o,145
@@ -3406,7 +3406,7 @@ edc_vitals/models/fields/waist_circumference.py,sha256=fZcHFDdEwWLjIVLktKrFCD9UU
3406
3406
  edc_vitals/models/fields/weight.py,sha256=zo9_9e3Cpu0UqoRbWS-iDkcDo6fK80b1dDQy4x4MyxE,921
3407
3407
  edc_vitals/utils.py,sha256=vXid44KUXxeaSyund_y5MNXc5DFJs052_PwUAjszE2k,1384
3408
3408
  edc_vitals/validators.py,sha256=vNiElWMs0rRnHRNuVoPLRf0rW_C_0xcfUyep1Y_Si5s,156
3409
- clinicedc-2.0.14.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
3410
- clinicedc-2.0.14.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
3411
- clinicedc-2.0.14.dist-info/METADATA,sha256=a7A-WWb6AFZpj0BYTYZehRKcprgb84Jcbp9u6d9WzF4,15899
3412
- clinicedc-2.0.14.dist-info/RECORD,,
3409
+ clinicedc-2.0.16.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
3410
+ clinicedc-2.0.16.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
3411
+ clinicedc-2.0.16.dist-info/METADATA,sha256=yACQMEfCdkmBMoz9yz7R4jaTs-ToDfcahB4QqGBUqII,15899
3412
+ clinicedc-2.0.16.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import MEDIAN_RANGE, N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import (
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import MEDIAN_IQR, N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import MEAN_95CI, N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import MEAN_95CI, N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import MEAN_95CI, N_ONLY, N_WITH_COL_PROP, N_WITH_ROW_PROP
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from ..constants import (
@@ -1,4 +1,4 @@
1
- from typing import Iterable
1
+ from collections.abc import Iterable
2
2
 
3
3
  from .row_definition import RowDefinition
4
4
  from .row_statistics import RowStatistics
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from .row_statistics import RowStatistics
@@ -35,10 +35,9 @@ def get_stata_labels_from_model(
35
35
  if suffix:
36
36
  if f"{fld.name}_{suffix}" in df.columns:
37
37
  labels.update({f"{fld.name}_{suffix}": strip_html(str(fld.verbose_name)[:80])})
38
- else:
39
- if f"{fld.name}_{suffix}" in df.columns:
40
- try:
41
- labels.update({fld.name: strip_html(str(fld.verbose_name)[:80])})
42
- except AttributeError:
43
- pass
38
+ elif f"{fld.name}_{suffix}" in df.columns:
39
+ try:
40
+ labels.update({fld.name: strip_html(str(fld.verbose_name)[:80])})
41
+ except AttributeError:
42
+ pass
44
43
  return labels
edc_analytics/table.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import pandas as pd
2
+
2
3
  from edc_constants.constants import FEMALE, MALE
3
4
 
4
5
  from .constants import COUNT_COLUMN, N_ONLY, N_WITH_ROW_PROP, TITLE_COLUMN
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import contextlib
3
4
  from datetime import datetime
4
5
  from typing import TYPE_CHECKING
5
6
  from zoneinfo import ZoneInfo
@@ -39,7 +40,7 @@ class AppointmentsCreator:
39
40
  visit_schedule: VisitSchedule | None = None,
40
41
  schedule: Schedule | None = None,
41
42
  report_datetime: datetime | None = None,
42
- appointment_model: str = None,
43
+ appointment_model: str | None = None,
43
44
  site_id: int | None = None,
44
45
  skip_baseline: bool | None = None,
45
46
  ):
@@ -103,13 +104,12 @@ class AppointmentsCreator:
103
104
  else:
104
105
  self.delete_appointments_after_timepoint(last_timepoint)
105
106
 
106
- appointments = self.appointment_model_cls.objects.filter(
107
+ return self.appointment_model_cls.objects.filter(
107
108
  subject_identifier=self.subject_identifier,
108
109
  site_id=self.site_id,
109
110
  visit_schedule_name=self.visit_schedule.name,
110
111
  schedule_name=self.schedule.name,
111
112
  ).order_by("timepoint")
112
- return appointments
113
113
 
114
114
  def update_or_create_appointment(self, **kwargs) -> Appointment:
115
115
  """Updates or creates an appointment for this subject
@@ -133,10 +133,8 @@ class AppointmentsCreator:
133
133
  schedule_name=self.schedule.name,
134
134
  )
135
135
  for appointment in appointments:
136
- try:
136
+ with contextlib.suppress(ProtectedError):
137
137
  appointment.delete()
138
- except ProtectedError:
139
- pass
140
138
 
141
139
  def delete_appointments_after_timepoint(self, last_timepoint) -> None:
142
140
  """Delete appointments after a given timepoint.
@@ -151,7 +149,5 @@ class AppointmentsCreator:
151
149
  visit_schedule_name=self.visit_schedule.name,
152
150
  schedule_name=self.schedule.name,
153
151
  ):
154
- try:
152
+ with contextlib.suppress(ProtectedError):
155
153
  appointment.delete()
156
- except ProtectedError:
157
- pass
edc_dx/diagnoses.py CHANGED
@@ -1,9 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from datetime import date, datetime
4
- from typing import Dict
5
4
 
6
5
  from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
6
+
7
7
  from edc_constants.constants import YES
8
8
  from edc_dx_review.utils import (
9
9
  get_clinical_review_baseline_model_cls,
@@ -130,7 +130,7 @@ class Diagnoses:
130
130
 
131
131
  def report_datetime_opts(
132
132
  self, prefix: str = None, lte: bool = None
133
- ) -> Dict[str, datetime]:
133
+ ) -> dict[str, datetime]:
134
134
  opts = {}
135
135
  prefix = prefix.lower() or ""
136
136
  if self.report_datetime:
@@ -1,4 +1,5 @@
1
1
  from django import forms
2
+
2
3
  from edc_constants.constants import YES
3
4
 
4
5
  from ..diagnoses import (
@@ -1,9 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Tuple
4
-
5
3
  from django import forms
6
4
  from django.conf import settings
5
+
7
6
  from edc_dx_review.utils import raise_if_clinical_review_does_not_exist
8
7
  from edc_form_validators import INVALID_ERROR, FormValidator
9
8
  from edc_utils import convert_php_dateformat
@@ -13,7 +12,7 @@ from ..diagnoses import ClinicalReviewBaselineRequired, Diagnoses, InitialReview
13
12
 
14
13
 
15
14
  class ResultFormValidatorMixin(FormValidator):
16
- dx: Tuple[str, str] # e.g. (HIV, "HIV Infection")
15
+ dx: tuple[str, str] # e.g. (HIV, "HIV Infection")
17
16
 
18
17
  def clean(self):
19
18
  raise_if_baseline(self.cleaned_data.get("subject_visit"))
@@ -50,16 +49,15 @@ class ResultFormValidatorMixin(FormValidator):
50
49
  raise forms.ValidationError(
51
50
  f"A {dx_msg_label} diagnosis has not been reported for this subject."
52
51
  )
53
- else:
54
- if dx_date > self.cleaned_data.get(drawn_date_fld):
55
- formatted_date = dx_date.strftime(
56
- convert_php_dateformat(settings.SHORT_DATE_FORMAT)
57
- )
58
- raise forms.ValidationError(
59
- {
60
- "drawn_date": (
61
- "Invalid. Subject was diagnosed with "
62
- f"{dx_msg_label} on {formatted_date}."
63
- )
64
- }
65
- )
52
+ if dx_date > self.cleaned_data.get(drawn_date_fld):
53
+ formatted_date = dx_date.strftime(
54
+ convert_php_dateformat(settings.SHORT_DATE_FORMAT)
55
+ )
56
+ raise forms.ValidationError(
57
+ {
58
+ "drawn_date": (
59
+ "Invalid. Subject was diagnosed with "
60
+ f"{dx_msg_label} on {formatted_date}."
61
+ )
62
+ }
63
+ )
@@ -1,5 +1,6 @@
1
1
  from django import forms
2
2
  from django.core.exceptions import ObjectDoesNotExist
3
+
3
4
  from edc_model.utils import model_exists_or_raise
4
5
 
5
6
  from ..utils import get_clinical_review_baseline_model_cls
@@ -4,6 +4,7 @@ from datetime import date, datetime
4
4
 
5
5
  from django.conf import settings
6
6
  from django.core.exceptions import ValidationError
7
+
7
8
  from edc_constants.constants import GT, GTE, LT, LTE
8
9
  from edc_model import estimated_date_from_ago
9
10
  from edc_utils import convert_php_dateformat
@@ -23,7 +24,7 @@ class MedicalDateError(ValidationError):
23
24
 
24
25
  @property
25
26
  def message_dict(self):
26
- getattr(self, "error_dict")
27
+ self.error_dict
27
28
  return {k: v[0] for k, v in dict(self).items()}
28
29
 
29
30
 
@@ -1,4 +1,5 @@
1
1
  from django.db import models
2
+
2
3
  from edc_constants.choices import YES_NO
3
4
  from edc_constants.constants import YES
4
5
  from edc_crf.model_mixins import SingletonCrfModelMixin
@@ -1,6 +1,7 @@
1
1
  from django.db import models
2
2
  from django.utils.html import format_html
3
3
  from django.utils.safestring import mark_safe
4
+
4
5
  from edc_constants.choices import YES_NO_NA
5
6
  from edc_constants.constants import NOT_APPLICABLE
6
7
  from edc_model import models as edc_models
@@ -1,6 +1,7 @@
1
1
  from django.db import models
2
2
  from django.utils.html import format_html
3
3
  from django.utils.safestring import mark_safe
4
+
4
5
  from edc_constants.choices import YES_NO_NA
5
6
  from edc_constants.constants import NOT_APPLICABLE
6
7
  from edc_model import models as edc_models
@@ -1,6 +1,7 @@
1
1
  from django.db import models
2
2
  from django.utils.html import format_html
3
3
  from django.utils.safestring import mark_safe
4
+
4
5
  from edc_constants.choices import YES_NO_NA
5
6
  from edc_constants.constants import NOT_APPLICABLE
6
7
  from edc_model import models as edc_models
@@ -1,6 +1,7 @@
1
1
  from django.db import models
2
2
  from django.utils.html import format_html
3
3
  from django.utils.safestring import mark_safe
4
+
4
5
  from edc_constants.choices import YES_NO_NA
5
6
  from edc_constants.constants import NOT_APPLICABLE
6
7
  from edc_model import models as edc_models
@@ -1,4 +1,5 @@
1
1
  from django.db import models
2
+
2
3
  from edc_constants.choices import YES_NO
3
4
  from edc_constants.constants import YES
4
5
  from edc_crf.model_mixins import SingletonCrfModelMixin
@@ -1,4 +1,5 @@
1
1
  from django.db import models
2
+
2
3
  from edc_model import models as edc_models
3
4
 
4
5
 
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from django.db import models
4
+
4
5
  from edc_constants.choices import YES_NO
5
6
  from edc_constants.constants import CHOL, DM, HIV, HTN, NO
6
7
  from edc_dx import get_diagnosis_labels
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from datetime import date
4
4
 
5
5
  from django.db import models
6
+
6
7
  from edc_constants.constants import NO, NOT_APPLICABLE, YES
7
8
  from edc_model import duration_to_date
8
9