meta-edc 1.0.7__py3-none-any.whl → 1.1.1__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.
Files changed (63) hide show
  1. meta_ae/action_items.py +10 -2
  2. meta_ae/baker_recipes.py +1 -2
  3. meta_ae/tests/tests/test_actions.py +1 -2
  4. meta_analytics/README.rst +1 -2
  5. meta_analytics/notebooks/anu.ipynb +95 -0
  6. meta_analytics/notebooks/appointment_planning.ipynb +329 -0
  7. meta_analytics/notebooks/arvs.ipynb +103 -0
  8. meta_analytics/notebooks/cleaning/consent_v1_ext.ipynb +227 -0
  9. meta_analytics/notebooks/cleaning/offschedule_eos.ipynb +353 -0
  10. meta_analytics/notebooks/dsmc/renal_dysfunction.ipynb +435 -0
  11. meta_analytics/notebooks/endpoints/meta_endpoints_by_date.ipynb +664 -0
  12. meta_analytics/notebooks/followup_examination.ipynb +141 -0
  13. meta_analytics/notebooks/hba1c.ipynb +136 -0
  14. meta_analytics/notebooks/hiv_regimens.ipynb +122 -118
  15. meta_analytics/notebooks/incidence.ipynb +232 -0
  16. meta_analytics/notebooks/liver.ipynb +389 -0
  17. meta_analytics/notebooks/magreth.ipynb +645 -0
  18. meta_analytics/notebooks/monitoring_report.ipynb +721 -448
  19. meta_analytics/notebooks/pharmacy.ipynb +405 -306
  20. meta_analytics/notebooks/pharmacy_stock_202410.ipynb +306 -0
  21. meta_analytics/notebooks/steering.ipynb +61 -0
  22. meta_analytics/notebooks/undiagnosed/meta3_screening_consort_chart.ipynb +1176 -0
  23. meta_analytics/notebooks/undiagnosed/meta3_screening_undiagnosed.ipynb +519 -0
  24. meta_analytics/notebooks/undiagnosed/meta_screening_table2.ipynb +964 -0
  25. meta_analytics/notebooks/undiagnosed/screen_undiagnosed_or.ipynb +296 -0
  26. meta_analytics/notebooks/undiagnosed/screening.ipynb +273 -0
  27. meta_analytics/notebooks/undiagnosed/screening2.ipynb +958 -0
  28. meta_analytics/notebooks/undiagnosed/screening_undiagnosed_20241002.ipynb +958 -0
  29. meta_analytics/notebooks/ven.ipynb +191 -0
  30. meta_analytics/notebooks/vitals.ipynb +263 -0
  31. meta_edc/settings/debug.py +3 -2
  32. meta_edc/urls.py +1 -0
  33. {meta_edc-1.0.7.dist-info → meta_edc-1.1.1.dist-info}/METADATA +3 -3
  34. {meta_edc-1.0.7.dist-info → meta_edc-1.1.1.dist-info}/RECORD +62 -35
  35. {meta_edc-1.0.7.dist-info → meta_edc-1.1.1.dist-info}/WHEEL +1 -1
  36. meta_labs/reportables.py +14 -11
  37. meta_labs/tests/test_reportables.py +33 -12
  38. meta_pharmacy/notebooks/pharmacy.ipynb +41 -0
  39. meta_prn/admin/offschedule_pregnancy_admin.py +3 -3
  40. meta_prn/admin/onschedule_dm_referral_admin.py +5 -5
  41. meta_prn/form_validators/end_of_study.py +2 -2
  42. meta_prn/migrations/0063_historicaloffstudymedication_singleton_field_and_more.py +37 -0
  43. meta_prn/migrations/0064_auto_20250602_2143.py +18 -0
  44. meta_prn/models/end_of_study.py +2 -0
  45. meta_prn/models/off_study_medication.py +2 -0
  46. meta_reports/admin/last_imp_refill_admin.py +3 -2
  47. meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py +59 -47
  48. meta_screening/form_validators/screening_part_three.py +6 -1
  49. meta_screening/tests/meta_test_case_mixin.py +3 -0
  50. meta_screening/tests/tests/test_forms.py +9 -2
  51. meta_screening/tests/tests/test_screening_part_three.py +11 -14
  52. meta_subject/action_items.py +2 -3
  53. meta_subject/choices.py +2 -1
  54. meta_subject/form_validators/delivery_form_validator.py +1 -0
  55. meta_subject/forms/blood_results/blood_results_rft_form.py +60 -3
  56. meta_subject/forms/delivery_form.py +2 -0
  57. meta_subject/migrations/0223_bloodresultsfbc_errors_bloodresultsgludummy_errors_and_more.py +83 -0
  58. meta_subject/migrations/0224_bloodresultsfbc_abnormal_summary_and_more.py +153 -0
  59. meta_subject/tests/tests/test_egfr.py +5 -5
  60. meta_analytics/dataframes/enrolled/__init__.py +0 -0
  61. {meta_edc-1.0.7.dist-info → meta_edc-1.1.1.dist-info}/licenses/AUTHORS.rst +0 -0
  62. {meta_edc-1.0.7.dist-info → meta_edc-1.1.1.dist-info}/licenses/LICENSE +0 -0
  63. {meta_edc-1.0.7.dist-info → meta_edc-1.1.1.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  meta_ae/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- meta_ae/action_items.py,sha256=2XKK9K4f9irwyrNb9e0_JzZcEaHd0P1ZNGmMf5waGXo,11372
2
+ meta_ae/action_items.py,sha256=JnJ2_JbnrMh6zNpXgWxQGAAfImShlELcc9-a_1GDdF4,11383
3
3
  meta_ae/admin_site.py,sha256=5nx3fbd14u5KJbpFXow_XpG9gfYhdoYe4NFasFVKMMs,159
4
4
  meta_ae/apps.py,sha256=tSj7MhDY6SxB0f1nXGPvodeTPiGFoRtrQGQd6M42egI,284
5
- meta_ae/baker_recipes.py,sha256=q4VWJRy2n-qSGQA9IskF3OvzorcQqYs_vO3vYkHYOjs,1184
5
+ meta_ae/baker_recipes.py,sha256=TPJeXRMgUYjcfTVFj084VQFyoLBT9SyXg9vOCJYekAw,1148
6
6
  meta_ae/choices.py,sha256=uPs2jdXEoS4eeTJAJlQ-_cFiMQESNJecwUChxv5mHX0,756
7
7
  meta_ae/constants.py,sha256=_x4gMjI0PflPZo9X2NOAitPGh-pOZn4oYBf-_bDlGQ8,36
8
8
  meta_ae/list_data.py,sha256=liF-AksUZkDoIcgHqtXNR7a3YOWGGrD2JFTlwJUDcXk,1416
@@ -80,8 +80,8 @@ meta_ae/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
80
  meta_ae/tests/holidays.csv,sha256=Ywr5pK_caGUJMgRwLzjMeSEUuyEpUWyJE5aJkfbg3bg,539
81
81
  meta_ae/tests/urls.py,sha256=BKiCB7JZCxtZFh6Ym-Y-Hdq92NECIt-GqMDyt6_B7o0,260
82
82
  meta_ae/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- meta_ae/tests/tests/test_actions.py,sha256=W4UglCSs4GLU0_I5grpCz3xprk2OQso2Q6c_9aYWiu8,4915
84
- meta_analytics/README.rst,sha256=x5KDks1P2bSPdyq3f9CNkynAAgJaXl7AX_3rnmC16HU,357
83
+ meta_ae/tests/tests/test_actions.py,sha256=BrSbtCudm0ZZ8KGHA36exOx9mYfCslPk3JMRlcAOB8s,4879
84
+ meta_analytics/README.rst,sha256=TRjju_9l-FoV6YU9qBwlktJDjiK3yfvrSvMo7Rd4mc8,422
85
85
  meta_analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
86
  meta_analytics/constants.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  meta_analytics/get_tables.py,sha256=3jFmvLXWHY3FPd1u5OPVpAKWUcruCH0-A0KdKiiFGpc,2219
@@ -94,7 +94,6 @@ meta_analytics/dataframes/get_glucose_fbg_df.py,sha256=iVWHRDwUeSt1PuUBRgJOyZKIV
94
94
  meta_analytics/dataframes/get_glucose_fbg_ogtt_df.py,sha256=ouRXlQKOws1CK38OgnKjGGEKf3sgG4e8Ktf9MP_SYzU,669
95
95
  meta_analytics/dataframes/get_last_imp_visits_df.py,sha256=cScwy_nBGHg04_AYpjz_pTq13Q4iyb33SiKk6CltbyQ,3803
96
96
  meta_analytics/dataframes/utils.py,sha256=NNJ2EZmpSXJqa7jCoNgqd4F3irQ_93ZsNnv6PPIm7S8,2383
97
- meta_analytics/dataframes/enrolled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
97
  meta_analytics/dataframes/glucose_endpoints/__init__.py,sha256=a9RlAnFM0Z4AKw-WztBvnGMo3tLLe1dx3292A2n_CnA,107
99
98
  meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py,sha256=4Qd3i9hfSSkn_El7QAjuJDUbzQ1LBpkmFw0rHSlBfG0,6531
100
99
  meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py,sha256=Nr92PmfmaS_OPPp6hmK1OWZsOr3eQ5FMD5u_oDF8Ylk,13682
@@ -102,10 +101,33 @@ meta_analytics/dataframes/glucose_endpoints/utils.py,sha256=47DEQpj8HBSa-_TImW-5
102
101
  meta_analytics/dataframes/screening/__init__.py,sha256=onGpmB4474gu_JcyRGdRy09YQyP2Np-mX-rYZTFdJoA,114
103
102
  meta_analytics/dataframes/screening/get_glucose_tested_only_df.py,sha256=0oMJIsIJRjurfpPONuJ4Aoab1UJikezGe3lQNWRoOo4,660
104
103
  meta_analytics/dataframes/screening/get_screening_df.py,sha256=t_xxr7YId3QsXbwjPpi7nIgkleKprmZSqAin2cuB2Vc,6273
105
- meta_analytics/notebooks/hiv_regimens.ipynb,sha256=wmwhZnbP1HkVbk8yaHzrLikpNAHHNCXvVBhdyN-8TJw,15231
106
- meta_analytics/notebooks/monitoring_report.ipynb,sha256=wUbL6-ljGZFbbt87lU6AvnBB_RyNj10PB7BJO0WHeUU,66290
107
- meta_analytics/notebooks/pharmacy.ipynb,sha256=3PKWRNjx-uDMrrpkQth368d9hdtKrYijvv5RJW2TgEw,32585
104
+ meta_analytics/notebooks/anu.ipynb,sha256=zrkC0tzKZqDRD310BW1ua8cwdSa6qQzOF2vzmUFKnSc,2263
105
+ meta_analytics/notebooks/appointment_planning.ipynb,sha256=RUI2h4Bd67hgUH9qof356XybZIStwsRNzy2BMKQAUlE,13100
106
+ meta_analytics/notebooks/arvs.ipynb,sha256=NSxKb0c9w-kN9WRx4ixNlNOHcD4BJ-1SxFQXR9cehQI,2390
107
+ meta_analytics/notebooks/followup_examination.ipynb,sha256=Ng90rFarYCBzqj3VzOPqyNLMmP0JvCSCN-mRHR_pw-A,3986
108
+ meta_analytics/notebooks/hba1c.ipynb,sha256=qrajG5zoAjT1scxAh_6C069VAHqugQnYZRg-VLzZFuo,2756
109
+ meta_analytics/notebooks/hiv_regimens.ipynb,sha256=qqRq5befPPiPQ8sheFhe6iGxPicajQBw46Kwnya77Dk,14908
110
+ meta_analytics/notebooks/incidence.ipynb,sha256=-kd0Mp67dk8ECoNEcKMTn92iBxuNLBIOC6-qLvz-31U,8101
111
+ meta_analytics/notebooks/liver.ipynb,sha256=s19AAV6vmtGqYAfN1cqVIcBeU7ptSGU94uZaeaz32qU,13985
112
+ meta_analytics/notebooks/magreth.ipynb,sha256=u4BWz6swBFLXcrOQDi_iSuFkp9NiISFk5uPahh7iXug,20773
113
+ meta_analytics/notebooks/monitoring_report.ipynb,sha256=BySeKJZ7MQPGQ6vbNNXW5JBJyNmTfvP_c8JGjskUF5U,77415
114
+ meta_analytics/notebooks/pharmacy.ipynb,sha256=rAxMyPDZIyx-Qizgrdueq-rUYyeN3zMYVqDPkbjtnSs,34298
115
+ meta_analytics/notebooks/pharmacy_stock_202410.ipynb,sha256=Kx9QVmiDW-5DWuaoSvLM2vJGHRCam-im9ZVdJsOBFfs,8823
116
+ meta_analytics/notebooks/steering.ipynb,sha256=pqJrH_Zdwp7sPgHwhahKK-XmNMQjk7bHJv7vHJaeTek,1112
117
+ meta_analytics/notebooks/ven.ipynb,sha256=JR1_BW2QGqsqteCSORS7Zz7yD3u8JeU9r4H7KJ6nRN4,5182
118
+ meta_analytics/notebooks/vitals.ipynb,sha256=mHlO6QbhD28aGUhVI0tF06MJm_JjUsKLdSpnz5NhbQI,5787
108
119
  meta_analytics/notebooks/cleaning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
+ meta_analytics/notebooks/cleaning/consent_v1_ext.ipynb,sha256=HIo8lKtyAs3blx-UXEJful5iXT-0fGQcb5vAT-o7umk,6403
121
+ meta_analytics/notebooks/cleaning/offschedule_eos.ipynb,sha256=U5KS7GzWKsWkJWIN4pXhKN9GJMCpkGVxrIEBaRoaah8,10620
122
+ meta_analytics/notebooks/dsmc/renal_dysfunction.ipynb,sha256=vy40GuSA2HH3OoCBLaHx5fxYzS3mOV5C2L7BqSUGemM,11116
123
+ meta_analytics/notebooks/endpoints/meta_endpoints_by_date.ipynb,sha256=4UxnO4ijILwKlRvYd2D7_XE5fqBj3puQqYbggu4Ouf0,22526
124
+ meta_analytics/notebooks/undiagnosed/meta3_screening_consort_chart.ipynb,sha256=B79ZyqWzsxhrBJZhajyqjJ3vP10eNzX2C3_ojc3jOIY,34653
125
+ meta_analytics/notebooks/undiagnosed/meta3_screening_undiagnosed.ipynb,sha256=MmyQzBCR63GAQlKsQ1CPxmPtgMlJYWggfEBDI81me64,11912
126
+ meta_analytics/notebooks/undiagnosed/meta_screening_table2.ipynb,sha256=bRoJbboAnkfXo6MeKmedP4j6eAVHdH4q62o35p9--No,36421
127
+ meta_analytics/notebooks/undiagnosed/screen_undiagnosed_or.ipynb,sha256=JJkQKVOSrDqqLecM-5OOrVgqe-TshdK4q52DU1zWUtU,6984
128
+ meta_analytics/notebooks/undiagnosed/screening.ipynb,sha256=8v5FPvJYTo1N4zTP1nwA0uJoaWlLEs3RsY7_I3fXdLY,6769
129
+ meta_analytics/notebooks/undiagnosed/screening2.ipynb,sha256=r4QMsNfuLMzFgTorVLY-doB32fAvl4zCfCKbujRbH38,24794
130
+ meta_analytics/notebooks/undiagnosed/screening_undiagnosed_20241002.ipynb,sha256=GiATH1CyZaS3kXvcT9aYpbCO4VPmPkBWPOtz67j4Y-Y,22182
109
131
  meta_analytics/tables/__init__.py,sha256=mhESCt0Lq4RJU-lbQ5fVfIbXzrEsootGYp7EzQIqDBI,70
110
132
  meta_analytics/tables/eligible.py,sha256=2q-SMbAsrBgOVc4Ttq5P3bpjsUKwP5hYhJBMgyH6GGI,3389
111
133
  meta_analytics/tables/has_dm.py,sha256=W6pObFI7k2hpL46Q7t2QIfYDVfo7-PHJMdCv6Q5EUQk,1739
@@ -244,7 +266,7 @@ meta_edc/meta_version.py,sha256=8IASYGnr43t18oDhNAPNnQoKvFYVAUnPILl6a05HAoc,211
244
266
  meta_edc/model_callers.py,sha256=PjQEW7Kp5HHcUMdmz7dvxg53HvGJHXUKr6QTd-4hsyE,1339
245
267
  meta_edc/models.py,sha256=DLA-hDdFszAVNCe1sZqVoLmIXifFW0HeZsipP9D1Ic4,46
246
268
  meta_edc/navbars.py,sha256=XOuo4QEUCBtabYpW0IorT4Hs6GtJgVk7NkB0H_Bb7Vs,1191
247
- meta_edc/urls.py,sha256=hLeGIjUDoYiCFOao3jCpFL6nkBllEyJ-oV07xR_tsYc,3578
269
+ meta_edc/urls.py,sha256=vTpmCfcRTaYo_kv2zmuPMLh-EO5MlwzcKc2PV-0eWd8,3624
248
270
  meta_edc/utils.py,sha256=FdGGHT0zCUM9FLovLanH_ultcxbVitCvvPAwq0U3yYc,342
249
271
  meta_edc/wsgi.py,sha256=Ns9vu_jcEqpOLM5tb-hwVUh3ciInocrG3kUPAxh7nJg,165
250
272
  meta_edc/wsgi_live.py,sha256=EprgdsDiEvNN033w6lUQHaS8Y3ntpPrWHDTOgZcjaCQ,164
@@ -254,7 +276,7 @@ meta_edc/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
254
276
  meta_edc/management/commands/update_forms_reference.py,sha256=jvCU9YdMtp9wbmjqKQsB9gxNw4DcAP97sZD-kfIxOns,1071
255
277
  meta_edc/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
278
  meta_edc/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
- meta_edc/settings/debug.py,sha256=5WkxxapNtYDi9XKXCOCnlZ3q9--zktBtRyGhCVUaMEs,1296
279
+ meta_edc/settings/debug.py,sha256=O_GNmF2yOgs0v6PhctRjiBQK2F0gEoUaUUb7Dum8MJA,1297
258
280
  meta_edc/settings/defaults.py,sha256=USh91oF6HKdUXWZ5xf5dDCwAYINSIdOPkgHCxDCsGP4,19633
259
281
  meta_edc/settings/live.py,sha256=uLTlsIc3H6gdE_7pkL6vyOVa6V_74hnXFkiojqGFAYY,264
260
282
  meta_edc/settings/logging.py,sha256=6qVUE37OMkf5rzwTmMq4krFsZ2jcyCpWdFtGih_Cs4U,1938
@@ -267,8 +289,8 @@ meta_edc/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
267
289
  meta_edc/tests/tests/test_endpoints.py,sha256=5FdIHTd1xhUIgQLBzMV-Ml3VoFrlBrLLUbNarme5raw,23541
268
290
  meta_edc/views/__init__.py,sha256=TBXTih4Mpsg5Oh2jbyXqL9kH7bu3vWNRgVe93hvLCl8,32
269
291
  meta_edc/views/home_view.py,sha256=BXydy77TcdcM0-R3S_uHI4DtfnLMIzPJMyqjFJZFSsA,916
270
- meta_edc-1.0.7.dist-info/licenses/AUTHORS.rst,sha256=wL4KUOd7FAFThhkLAJxSLQ2BPzd3ikG9q0UVZr3BbLg,244
271
- meta_edc-1.0.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
292
+ meta_edc-1.1.1.dist-info/licenses/AUTHORS.rst,sha256=wL4KUOd7FAFThhkLAJxSLQ2BPzd3ikG9q0UVZr3BbLg,244
293
+ meta_edc-1.1.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
272
294
  meta_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
295
  meta_export/admin_site.py,sha256=CiKAf0gDFvBKVc-1VM6KwM905ayVZuiY1tgaTeUeCi0,167
274
296
  meta_export/apps.py,sha256=3_5LB1MLtzfKekI2vT9Cm6puAx6t6AjtIfTTVdItdKg,226
@@ -280,10 +302,10 @@ meta_labs/lab_profiles.py,sha256=I3s07bzAQaRzNSAqBuprx6uIO048ovffL5gD28ZE2N0,957
280
302
  meta_labs/labs.py,sha256=0mpfORDUsjxBeyJdEC5NiF4kQHSQTfKiQuMKZ9Svaqw,128
281
303
  meta_labs/list_data.py,sha256=ZWvQ7ZuOgNZ8Cz-y5lzrAYCZC2HarlnlleFXdsI1P9c,477
282
304
  meta_labs/processing_profiles.py,sha256=fRX72FOl2rsnOJYhgup5QacfGSXKtWqn2gD3Giz2GDA,500
283
- meta_labs/reportables.py,sha256=Eg95Jyv7N6oh5w6QKfcvRN6jk88c0DSYRq1gqBTs2xo,512
305
+ meta_labs/reportables.py,sha256=OX1rxiWKmsi7_ODxH1O8yBGgOq56HAaiG1XTEDGaOhM,586
284
306
  meta_labs/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
285
307
  meta_labs/tests/test_labs.py,sha256=49COK2X8F5kvwsIuuPaxBSzDo665J2ctd1DZzo-O4Cs,967
286
- meta_labs/tests/test_reportables.py,sha256=lcjWhwo6MLDPv_7yTRGGdSUUVsbXq25aDl0RFy3avB0,516
308
+ meta_labs/tests/test_reportables.py,sha256=nmNR7wumpkI84BqE3pCRqz7TuvprJXv9Kbtxs8P8U90,1302
287
309
  meta_labs/tests/urls.py,sha256=_sVCnQeiAFRYKhxga3_DjoKj_4bgs1s2gjcynDiapvA,111
288
310
  meta_lists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
311
  meta_lists/admin.py,sha256=g05vpXfVIEBVG03aiPD8Vn-AnR7gL60MbPJAfzsO6R8,2157
@@ -352,6 +374,7 @@ meta_pharmacy/models/label_data.py,sha256=dV8fpmJ6QpKidHVRfN3IdWEciEGQch8Q8jqJgq
352
374
  meta_pharmacy/models/rx.py,sha256=cx0T9j2Vb-6tEotWA7ohsn2OGHnQpxiFQnu7__hx7Ts,379
353
375
  meta_pharmacy/models/rx_label.py,sha256=iBqy3c-DvoPnw1g8BAVGQcY5OpI9Ie2YT78rYY0G7WM,1202
354
376
  meta_pharmacy/models/substitutions.py,sha256=9FjjD4x66B8SxABZR5atan2S5uE4nJH0tn0ujB4xEbA,3071
377
+ meta_pharmacy/notebooks/pharmacy.ipynb,sha256=QK7Uaqr-3MbCmzaHq4PhTd4Xn4R3JLG3TjZZ3g5Cz3I,697
355
378
  meta_pharmacy/utils/__init__.py,sha256=PiPRCZqgxPiudXWEvQmXOqFZMoj56NEiOeRuYEyE_9w,71
356
379
  meta_pharmacy/utils/update_initial_pharmacy_data.py,sha256=Od0QL41unsDEGDBYsVCe8k-T3GpMae0DtHt61vz4sYM,4621
357
380
  meta_prn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -372,14 +395,14 @@ meta_prn/admin/off_study_medication_admin.py,sha256=pUc6vXvPuoAwTBxE24ztvqEOVSK4
372
395
  meta_prn/admin/offschedule_admin.py,sha256=GzmBaCc09ehWZnE93cuzSqHZxUYvXj_Fg-eLi-1PqF0,1748
373
396
  meta_prn/admin/offschedule_dm_referral_admin.py,sha256=wedIc1KtQ6l_NATXHeuuGX4dbyWsunSJ_X6-mX3w92I,1823
374
397
  meta_prn/admin/offschedule_postnatal_admin.py,sha256=USGbZIFDuB1Wwu0t-avQg6dcTNiEvpQqvkBEdrZBYk4,1970
375
- meta_prn/admin/offschedule_pregnancy_admin.py,sha256=aeX8NstvwmW8xG1xBjkGRzftFA9d04tzazh_RI8PRoY,2052
398
+ meta_prn/admin/offschedule_pregnancy_admin.py,sha256=NN9tfWe5uxK8NQr6CQgc9TwXHLfDvAMAz5E3IO1mt9c,2058
376
399
  meta_prn/admin/onschedule_admin.py,sha256=GX4_wSqMDtQdB_x3nhodaDZ_E3d8kPPy-Yprpp6BJOk,1440
377
- meta_prn/admin/onschedule_dm_referral_admin.py,sha256=gfWE-NpHC4ICjKb1Fhb5XZUQ5syTp0s0_9IU1-ZTp0k,1470
400
+ meta_prn/admin/onschedule_dm_referral_admin.py,sha256=9g7YOOYTOrRDHwzIm6uYH_nb3rJJEkEDsK6ZLlA0LHE,1480
378
401
  meta_prn/admin/pregnancy_notification_admin.py,sha256=fIAbpU1QEVAGeewxc2xcRu7aipz0srjzRNxPv7ZZrR8,2284
379
402
  meta_prn/admin/protocol_incident_admin.py,sha256=fTlYJAxsrPDB8skZc-_2DxKH21k_cG7UH7wCgnviBck,739
380
403
  meta_prn/admin/subject_transfer_admin.py,sha256=YKViIZLAaAquiN5RO-V6lRoGP76bYwcb_EA5QTEeI2Y,723
381
404
  meta_prn/form_validators/__init__.py,sha256=ROZbWrtQ4dLCwy-aeBcOh0mnYm12qFrvUWzV-BkGvTU,111
382
- meta_prn/form_validators/end_of_study.py,sha256=BlTjp3LgOpl3bFzNHn3S8OoHNE7mNUQkvJArAnu09x4,13150
405
+ meta_prn/form_validators/end_of_study.py,sha256=Qovfk0MV2CU-J0jAe9hyCfSQVQ3uAIMKa92uTVvwZDY,13128
383
406
  meta_prn/form_validators/protocol_incident.py,sha256=g28qDxXpb-RiE4szn-KHFA03GcaAp0VWJ5SD5f3NUp8,1068
384
407
  meta_prn/forms/__init__.py,sha256=rQX_sPN77qzktlfH46qQNcZ1yV1WvKThm2c-jzangNQ,565
385
408
  meta_prn/forms/dm_referral_form.py,sha256=TvJSzKyVXXCOHRw67_i3BP9yEjAwE2yT5H6Y9bLRddU,1350
@@ -454,12 +477,14 @@ meta_prn/migrations/0059_alter_historicaloffstudymedication_reason_and_more.py,s
454
477
  meta_prn/migrations/0060_alter_onschedule_managers_and_more.py,sha256=zTlobJgliy-LuQ3z_BE_cwpdVddrvpHRvhDH4Hj64zY,1791
455
478
  meta_prn/migrations/0061_auto_20250115_2025.py,sha256=u7F2GsXo-9pIN5z0VM1aXW_KoRjS82BaBqqj2xWwWzo,1937
456
479
  meta_prn/migrations/0062_alter_endofstudy_offstudy_reason_and_more.py,sha256=L1ZDX1IMS0nIs77lF4QZ0SX-ye4rXvouTLnijob8SAQ,2421
480
+ meta_prn/migrations/0063_historicaloffstudymedication_singleton_field_and_more.py,sha256=l8pNm7G0O_7hWMb7smU5wbbsjE7es-WZfCkET7zyuXw,1081
481
+ meta_prn/migrations/0064_auto_20250602_2143.py,sha256=S8-7kSWfJSFtzKrq5_puYIC0UA32wRZH_-xnQ6mt--w,512
457
482
  meta_prn/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
458
483
  meta_prn/models/__init__.py,sha256=l06P7L2_Aye2h2VmAyb1XRcIbQAOyxws08IMc8sIops,717
459
484
  meta_prn/models/dm_referral.py,sha256=XyyB5ylcaMRCumGRFPlh2Op5VvT9ROJ1A9x5q55vUuc,1096
460
- meta_prn/models/end_of_study.py,sha256=3ZzuJfhZD5MONM8kS2nJQ7H76y2orqpGsVT3sT4O8uw,5379
485
+ meta_prn/models/end_of_study.py,sha256=wg2Y8Q_via6GozskaCzqkky_jOrtSLNek77-X2KLJME,5444
461
486
  meta_prn/models/loss_to_followup.py,sha256=qo2RrK5cVC1wLE7DdE6rTCCtYn7iAMomov9IbSCFuWg,2397
462
- meta_prn/models/off_study_medication.py,sha256=qq8DadWCNvFOYLkx9VoDMyLnbuZiRGc7-gmPSb-QVFk,1701
487
+ meta_prn/models/off_study_medication.py,sha256=7PzUkyrBWTybTWcNMU5EioApbOoiIaUDnCiEcjgX-II,1779
463
488
  meta_prn/models/offschedule.py,sha256=DjQvXteecXJOzN6ijdH36FCxXoR1halzxl9EliqQJk8,1717
464
489
  meta_prn/models/onschedule.py,sha256=xAlKzvcM5VzVfzaayjUEvUSL6rsALQQSm9iFCs1rnWc,930
465
490
  meta_prn/models/pregnancy_notification.py,sha256=HqRsonJ0F1nxLczVtgPkvGb7kWQOkJDz3w67jOxi5j4,3090
@@ -501,7 +526,7 @@ meta_reports/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
501
526
  meta_reports/admin/__init__.py,sha256=om3lFa4YxsZSNlYIi2sZv8li2irOMoSeBtOpPk4V3lk,488
502
527
  meta_reports/admin/endpoints_admin.py,sha256=7wZCdC-D-QHI1bb_ucgyDZYlnYD7mWtcZpcH_LftkLs,514
503
528
  meta_reports/admin/endpoints_all_admin.py,sha256=_czdezZf9fSjwZJmO-3HbmdXrXP6nk8-HdiweqUzPRE,476
504
- meta_reports/admin/last_imp_refill_admin.py,sha256=RKODpodLqQsKx1v4ybqVULo38s2bNXd1nsUpCdPlJ1A,6431
529
+ meta_reports/admin/last_imp_refill_admin.py,sha256=be8BEaUT9Ca5LkCdsPnGPsDeJyKm0brezBf9SDksPVc,6530
505
530
  meta_reports/admin/list_filters.py,sha256=pByBzz9-qGwqBfdZFlByxJUZDTJQXOTWfNLjmK8KF00,870
506
531
  meta_reports/admin/modeladmin_mixins.py,sha256=tEZYw0xNMfBvo2RLDrYfi_S9lbZU02dwtLxdRDZob4Q,3663
507
532
  meta_reports/admin/dbviews/__init__.py,sha256=2yPu0SO7ZX9yjan0OS9izzws14YYoXcGXmZhwJhax1I,675
@@ -648,11 +673,11 @@ meta_screening/eligibility/eligibility.py,sha256=he-5p7hzUY0Apd98TSTUgzHSosgW6ff
648
673
  meta_screening/eligibility/eligibility_part_one.py,sha256=5SMmVx17lUonfcItUepapJmZnbiF2dZ4WrwGllhoKl0,1769
649
674
  meta_screening/eligibility/eligibility_part_two.py,sha256=xyCPn4wUQZu0uvBSpFSpSMsB_80IPI1PRC2wOQWB1Uk,1808
650
675
  meta_screening/eligibility/eligibility_part_three/__init__.py,sha256=UfdNfJ7SW5wTvYo_0KUxn1KrlgjCwOmY539VXQvU-rE,79
651
- meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py,sha256=-aDLPR-UBNsFrTHmXrTpOWcBVshI-QvH1Zsj0A5Rs1E,5405
676
+ meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py,sha256=vGloYoc6VhROst_idpwmULvik9mRPjAWo2Z3ZE2IxNk,6224
652
677
  meta_screening/eligibility/eligibility_part_three/eligibility_part_three_phase_three.py,sha256=9YOPxMH8jdOeEljCNcNB_i2e69HJOnMLtPSkhCtRewo,4296
653
678
  meta_screening/form_validators/__init__.py,sha256=42qN1LhCpXvgA0WhzmXfSVaESp9DaHnlQDrE0sjmo-A,308
654
679
  meta_screening/form_validators/screening_part_one.py,sha256=-CCe24UPhgFusVOkWzGJZ1uMszqmePkKsfF0hN54y0A,1213
655
- meta_screening/form_validators/screening_part_three.py,sha256=DS7lL7u8p9EA-t3IszWt4_mYYG1s9zkPxbk22I7cy0I,7606
680
+ meta_screening/form_validators/screening_part_three.py,sha256=6i_uoMMpVWZ0EElaM3dGELBOHLud09y2MoeQGugdklU,7815
656
681
  meta_screening/form_validators/screening_part_two.py,sha256=ZR9ApZfhXDOfmwxqsX-UkaN4FXVMVHVzklVp3CxNg34,4738
657
682
  meta_screening/form_validators/subject_refusal.py,sha256=QGIUkCobHEAlE1R1gDmPfAIlBBQqpzpIuArUkop8yDk,322
658
683
  meta_screening/form_validators/subject_screening.py,sha256=F4m8CrhQW2O1AmdkuvlJRki39Ha_XYGyxczP2-TBE_A,309
@@ -746,12 +771,12 @@ meta_screening/models/subject_refusal.py,sha256=oLC9FKR1C01pwy5fEM_35itOYCDQZXmW
746
771
  meta_screening/models/subject_screening.py,sha256=j-0U5zcErwEv0qYEn9ktaPiNfce-CFe67NpaYyX1lew,2269
747
772
  meta_screening/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
748
773
  meta_screening/tests/holidays.csv,sha256=Ywr5pK_caGUJMgRwLzjMeSEUuyEpUWyJE5aJkfbg3bg,539
749
- meta_screening/tests/meta_test_case_mixin.py,sha256=m9XeLYST666MWiWQcT6nCg9feEgt6TCXxh6M5tGAVAY,8779
774
+ meta_screening/tests/meta_test_case_mixin.py,sha256=dBdYp1U9mW9J7ghrgchXOOWeZPhiVcQ09mV3GHbiors,8949
750
775
  meta_screening/tests/options.py,sha256=VpRQWWPwlVUReFi4KHuJdHXTBCsWvR2IlHs4yTDxQVA,4097
751
776
  meta_screening/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
752
- meta_screening/tests/tests/test_forms.py,sha256=Uvie3DOGbzNKfg1tUtNLFv0VtkZuMQeK3p-zw92lQAA,16710
777
+ meta_screening/tests/tests/test_forms.py,sha256=wTR3fe4-v6L5sw_eApdcCn6xnu_I6Q6fpOIZlUVvcXA,16903
753
778
  meta_screening/tests/tests/test_screening_part_one.py,sha256=EyG3SRVpR6-bFB0bn9UEA4hL8638e-Kx7K0_AeaBntE,4723
754
- meta_screening/tests/tests/test_screening_part_three.py,sha256=6sPFIDme4jaehZCCiPCgH6U3UqLAHVcscHl0OwbDQvM,16774
779
+ meta_screening/tests/tests/test_screening_part_three.py,sha256=OWzfonzIgl-g59oK33VCcRuUnjzDbd2uUKRv7XHNiyM,16739
755
780
  meta_screening/tests/tests/test_screening_part_two.py,sha256=BjPJKwujqlKO-bHhMIS5OFAomInKm34fKjU6d-8QlTY,3126
756
781
  meta_sites/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
757
782
  meta_sites/apps.py,sha256=tFzSEULZZYXupXrO7B2RAh_N--joVS4E_UOykXoOKNA,278
@@ -768,11 +793,11 @@ meta_stats/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
768
793
  meta_stats/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
769
794
  meta_stats/tests/tests/test_incidence.py,sha256=Uxv05_xZ0hZKtTBDow3goRcQrK5644j9NQwyW9d_CX8,313
770
795
  meta_subject/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
771
- meta_subject/action_items.py,sha256=eRONfgYX0DbSCI5JqFbMojiy86jDRvQgV-BUlQpmNog,6895
796
+ meta_subject/action_items.py,sha256=lIEH3G2s9JpbJkxKULB4p2yy2HEg9fhGcde7kK5A108,6870
772
797
  meta_subject/admin_site.py,sha256=fxUn5QKgo6wYUG18HW11kVrPqWvmWV2_PzKbgZQM4pU,169
773
798
  meta_subject/apps.py,sha256=iAQ8lizUpKa4gJnCGkTsuRQPtGWmSjnshZn8rZUguO8,289
774
799
  meta_subject/baker_recipes.py,sha256=C8ag5z5MRczzb3MkYGL37DccQg1FykiLgxepBlitlh0,2741
775
- meta_subject/choices.py,sha256=LjKRsEG0uGJow2BHshV_oKXdNYktNGn1Xj9H8SbGtBA,6782
800
+ meta_subject/choices.py,sha256=lFseBsxliIRshCmqsIwdPnYXs1p_WT5D_Dfn2PcWONs,6754
776
801
  meta_subject/constants.py,sha256=6rpHsHj3CPV7ntdWxYScRhPVoj4YIxX2lUZdZ9lrFN0,704
777
802
  meta_subject/identifiers.py,sha256=pBYvMFXK7N2oNDMJJM2xLCvk0NuzLzzm15VqQ2Cp7Og,325
778
803
  meta_subject/urls.py,sha256=v2fM0R9gvt8MWdZj9cRnYU8xvqecLK5b_8leYVEtYZI,206
@@ -824,7 +849,7 @@ meta_subject/admin/health_economics/health_economics_simple_admin.py,sha256=1pmg
824
849
  meta_subject/admin/health_economics/health_economics_update_admin.py,sha256=MGGm_mLlU8wd61TCvlMv6HPeNe6EAlDm0Yx5aDtMXc0,3889
825
850
  meta_subject/form_validators/__init__.py,sha256=8RXC_zbXN7Q11qxuDP0ZegNSvjsL5UDhO9tao1dbUgc,555
826
851
  meta_subject/form_validators/birth_outcomes_form_validator.py,sha256=vujgXKIW4z8bJ536_9uBhETlbChhUvA3Rj5H8zR3UfI,349
827
- meta_subject/form_validators/delivery_form_validator.py,sha256=b1-B0KHjYoUyJ3WZ6KOz9YthxbPH-DJpQBEVmYnkQbM,3193
852
+ meta_subject/form_validators/delivery_form_validator.py,sha256=tZuTWjzPAIG3qsg_sEHR_qJSmVKY8DwiE0XM5Ba_sUg,3194
828
853
  meta_subject/form_validators/dm_endpoint_form_validator.py,sha256=XK7eZikVwBwSAe0cB8TJPSsoljDIEonKwJ4WoESGr58,1513
829
854
  meta_subject/form_validators/dm_followup_form_validator.py,sha256=2ssfqmC8eKK0pwvi64dr0zOpioaNmJRtBtkj_YzTZY4,7962
830
855
  meta_subject/form_validators/egfr_drop_notification_form_validator.py,sha256=y5MUdRriMo8C2Qj_yzebDWsDkjQsFhcqTGrP8tBuhfA,530
@@ -835,7 +860,7 @@ meta_subject/forms/__init__.py,sha256=LrGBLJ3Se3McgUOdcrDyTM4B7G8ChVCrxDq4DXiYDL
835
860
  meta_subject/forms/birth_outcomes_form.py,sha256=qqhZNQKiYk8C8CFebZTQB0hOm4ONrgkTG7hfuK7kW-o,374
836
861
  meta_subject/forms/complications_glycemia_form.py,sha256=yTm3qRDJ1wPuukmpf0s0lg-oXi8fZ5Y7D7T9V-CsOXk,375
837
862
  meta_subject/forms/concomitant_medication_form.py,sha256=eznM4YOSV0eSsc-qaQgkga76T76Oz6i8svyBaleW-gQ,375
838
- meta_subject/forms/delivery_form.py,sha256=PrPNGJVJf-YwNTTo1XcjSnup6Rgo6Eq9ADBw9PrI8Ds,447
863
+ meta_subject/forms/delivery_form.py,sha256=L4WZqWbo9gz_BzxSdckh3e0v6DojOSoygD2xEcT4P78,484
839
864
  meta_subject/forms/egfr_drop_notification_form.py,sha256=qQ5Q1aeGqzohD5FjBto1ThMP8iS-aNrA7I_OMrtVZFA,507
840
865
  meta_subject/forms/eq53d3l_form.py,sha256=EE67-CAIRNKZCKpmQolC8wgL5MMIjXlkn5SXe3XdhN0,508
841
866
  meta_subject/forms/followup_examination_form.py,sha256=PATGiGn1AXmK1koXy1QjMvgn43KuZn7yyZIrA_8sPXk,502
@@ -867,7 +892,7 @@ meta_subject/forms/blood_results/blood_results_hba1c_form.py,sha256=IoQSS8MnK8C9
867
892
  meta_subject/forms/blood_results/blood_results_ins_form.py,sha256=zKwobon8wRBrwpAMxonbXtR-Bg2wsJbcHraLjsqcAhY,722
868
893
  meta_subject/forms/blood_results/blood_results_lft_form.py,sha256=WKCGZXTk9ndlASymnKKIAo0rBtE9uoE_gzKsx19p-LQ,714
869
894
  meta_subject/forms/blood_results/blood_results_lipids_form.py,sha256=YcqETGjN1LH_kKTGVD0a-gW4z6X3PmM8z1xQmI0-Yfg,735
870
- meta_subject/forms/blood_results/blood_results_rft_form.py,sha256=y0pyR_Y2LTVhyVnf_VjpPAJhm2xDVuWwExhedfJrTYM,1362
895
+ meta_subject/forms/blood_results/blood_results_rft_form.py,sha256=UVVfDpwdUskiV6ut-cJdzec_jHamsBNdPajzJwZ3vdg,3459
871
896
  meta_subject/forms/diabetes/__init__.py,sha256=oOtxUWSSI4aZVk5BBSKV44SGMwpw7zKZGrAk-dljPSk,90
872
897
  meta_subject/forms/diabetes/dm_endpoint_form.py,sha256=ngmDqAauO_oLsTxEVtbT9-2jWFYYagSXAcBf66pT81I,349
873
898
  meta_subject/forms/diabetes/dm_followup_form.py,sha256=ToJwQ1NViZn_CX-0YUyLQ5SSiDayKpp6bb16NBp-cKU,828
@@ -1104,6 +1129,8 @@ meta_subject/migrations/0219_remove_historicalnextappointment_allow_create_inter
1104
1129
  meta_subject/migrations/0220_historicalbloodresultsgludummy_bloodresultsgludummy.py,sha256=6TT5p5hQAhkL-vc3mo7xAAoZlQSoPAQ_KBTWNxYkr-0,34009
1105
1130
  meta_subject/migrations/0221_auto_20250402_1913.py,sha256=4quuKgAvnd-_yRhyC211x6bMsCCI7csioPJoImrVn24,1486
1106
1131
  meta_subject/migrations/0222_alter_historicalstudymedication_stock_codes_and_more.py,sha256=hxGQ5E2_DG8RmBeg7rRxtODsigUOZANop8GJYHPNVqg,1544
1132
+ meta_subject/migrations/0223_bloodresultsfbc_errors_bloodresultsgludummy_errors_and_more.py,sha256=twzCzmB230Fd2Os2WOkLHyodfWGgHPBYBkDas7lhG7A,2714
1133
+ meta_subject/migrations/0224_bloodresultsfbc_abnormal_summary_and_more.py,sha256=U_-nNqH6AHwGDoCEqogGZ9GMdPK92s_hCrJWVeUMyrY,5471
1107
1134
  meta_subject/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1108
1135
  meta_subject/model_mixins/__init__.py,sha256=6DdDDOwDdagrz6Q7X9lxuAVszsFWFhwPqLz4JOD85Wo,286
1109
1136
  meta_subject/model_mixins/arv_history_model_mixin.py,sha256=6ILacF2koyYmwZIFHmmQO1uIT1eWzrahXxhAlxpQiX0,2898
@@ -1168,7 +1195,7 @@ meta_subject/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
1168
1195
  meta_subject/tests/holidays.csv,sha256=Ywr5pK_caGUJMgRwLzjMeSEUuyEpUWyJE5aJkfbg3bg,539
1169
1196
  meta_subject/tests/urls.py,sha256=LBuQGFG4-omBramGVGmKFtRTQosQhZLx-vBvZipMujw,1109
1170
1197
  meta_subject/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1171
- meta_subject/tests/tests/test_egfr.py,sha256=eBtt6--VDMfACcJLnL6RVz4xkJj7aUIiig1Z6HAbXgI,9994
1198
+ meta_subject/tests/tests/test_egfr.py,sha256=m4-9I3g5tue6Ed5ggI2EJwxagd009Gxxv7Ex09AfH-Q,9994
1172
1199
  meta_subject/tests/tests/test_fixes.py,sha256=2jOB0lcEonJft5rWEbrDEtGCuGLaaUN8zAj2qZjQwoU,2454
1173
1200
  meta_subject/tests/tests/test_followup.py,sha256=rembohm-ecEp9rGFdjc2CkvXGfYZ8A8BOX0MdBBZSF0,1871
1174
1201
  meta_subject/tests/tests/test_manager_order.py,sha256=wmVxMd85mJ6HGAL_3Z_mSp_mqeNQvK7MW_6mvQPDeO8,454
@@ -1211,7 +1238,7 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
1211
1238
  tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
1212
1239
  tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
1213
1240
  tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
1214
- meta_edc-1.0.7.dist-info/METADATA,sha256=mIBIIbzD6U-aFyZ2rBrvnv60vNJM12xHlZa2-_avjFE,43555
1215
- meta_edc-1.0.7.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
1216
- meta_edc-1.0.7.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1217
- meta_edc-1.0.7.dist-info/RECORD,,
1241
+ meta_edc-1.1.1.dist-info/METADATA,sha256=NSVmMjmtdVyk7EmWONAf7myJhOYoXrhcCtfsrkm1Q0w,43555
1242
+ meta_edc-1.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1243
+ meta_edc-1.1.1.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1244
+ meta_edc-1.1.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
meta_labs/reportables.py CHANGED
@@ -1,16 +1,19 @@
1
- from edc_reportable import GRADE3, GRADE4, site_reportables
2
- from edc_reportable.grading_data.daids_july_2017 import chemistries, dummies, hematology
3
- from edc_reportable.normal_data.africa import normal_data
1
+ from edc_reportable.data import africa, daids_july_2017
4
2
 
5
3
  grading_data = {}
6
- grading_data.update(**dummies)
7
- grading_data.update(**chemistries)
8
- grading_data.update(**hematology)
4
+ grading_data.update(**daids_july_2017.dummies)
5
+ grading_data.update(**daids_july_2017.chemistries)
6
+ grading_data.update(**daids_july_2017.hematology)
9
7
 
10
- site_reportables.register(
11
- name="meta",
12
- normal_data=normal_data,
8
+ collection_name = "meta"
9
+ normal_data = africa.normal_data
10
+ reportable_grades = [3, 4]
11
+ reportable_grades_exceptions = {}
12
+
13
+ reference_range_options = dict(
14
+ collection_name=collection_name,
15
+ normal_data=africa.normal_data,
13
16
  grading_data=grading_data,
14
- reportable_grades=[GRADE3, GRADE4],
15
- reportable_grades_exceptions=None,
17
+ reportable_grades=reportable_grades,
18
+ reportable_grades_exceptions=reportable_grades_exceptions,
16
19
  )
@@ -1,16 +1,37 @@
1
- from tempfile import mkdtemp
2
-
3
1
  from django.test import TestCase
4
- from edc_reportable import ParserError, site_reportables
2
+ from edc_reportable.models import GradingData, NormalData, ReferenceRangeCollection
3
+ from edc_reportable.utils import load_reference_ranges
5
4
 
6
5
 
7
6
  class TestReportables(TestCase):
8
- def test(self):
9
- try:
10
- from meta_labs import reportables # noqa
11
- except ParserError:
12
- self.fail("ParserError unexpectedly raised.")
13
- self.assertIsNotNone(site_reportables.get("meta"))
14
- filename1, filename2 = site_reportables.to_csv("meta", path=mkdtemp())
15
- print(filename1)
16
- print(filename2)
7
+ def test_load_reference_ranges(self):
8
+
9
+ from meta_labs.reportables import (
10
+ collection_name,
11
+ grading_data,
12
+ normal_data,
13
+ reportable_grades,
14
+ reportable_grades_exceptions,
15
+ )
16
+
17
+ load_reference_ranges(
18
+ collection_name=collection_name,
19
+ grading_data=grading_data,
20
+ normal_data=normal_data,
21
+ reportable_grades=reportable_grades,
22
+ reportable_grades_exceptions=reportable_grades_exceptions,
23
+ )
24
+ self.assertTrue(ReferenceRangeCollection.objects.filter(name=collection_name).exists())
25
+ reference_range_collection = ReferenceRangeCollection.objects.get(name=collection_name)
26
+ self.assertEqual(
27
+ NormalData.objects.filter(
28
+ reference_range_collection=reference_range_collection
29
+ ).count(),
30
+ 82,
31
+ )
32
+ self.assertEqual(
33
+ GradingData.objects.filter(
34
+ reference_range_collection=reference_range_collection
35
+ ).count(),
36
+ 172,
37
+ )
@@ -0,0 +1,41 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "0",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": []
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": null,
14
+ "id": "1",
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": []
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 2
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython2",
36
+ "version": "2.7.6"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
@@ -48,6 +48,6 @@ class OffSchedulePregnancyAdmin(
48
48
  custom_fields = ("offschedule_datetime",)
49
49
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
50
50
 
51
- def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
52
- custom_fields = ("subject_identifier", "offschedule_datetime")
53
- return tuple(set(super().get_readonly_fields(request, obj=obj) + custom_fields))
51
+ # def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
52
+ # custom_fields = ("subject_identifier", "offschedule_datetime")
53
+ # return tuple(set(super().get_readonly_fields(request, obj=obj) + custom_fields))
@@ -29,11 +29,11 @@ class OnScheduleDmReferralAdmin(
29
29
  custom_fields = ("onschedule_datetime",)
30
30
  return custom_fields + tuple(f for f in list_filter if f not in custom_fields)
31
31
 
32
- def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
33
- return (
34
- "subject_identifier",
35
- "onschedule_datetime",
36
- )
32
+ # def get_readonly_fields(self, request, obj=None) -> Tuple[str, ...]:
33
+ # return (
34
+ # "subject_identifier",
35
+ # "onschedule_datetime",
36
+ # )
37
37
 
38
38
  def get_search_fields(self, request) -> Tuple[str, ...]:
39
39
  return tuple(set(super().get_search_fields(request) + ("subject_identifier",)))
@@ -304,7 +304,7 @@ class EndOfStudyFormValidator(
304
304
  transfer_model_cls = django_apps.get_model("meta_prn.subjecttransfer")
305
305
  try:
306
306
  obj = transfer_model_cls.objects.get(
307
- subject_visit__subject_identifier=self.subject_identifier,
307
+ subject_identifier=self.subject_identifier,
308
308
  )
309
309
  except ObjectDoesNotExist:
310
310
  self.raise_validation_error(
@@ -317,7 +317,7 @@ class EndOfStudyFormValidator(
317
317
  INVALID_ERROR,
318
318
  )
319
319
  else:
320
- if obj.transfer_date.date() != self.cleaned_data.get("transfer_date"):
320
+ if obj.transfer_date != self.cleaned_data.get("transfer_date"):
321
321
  dt = formatted_date(obj.transfer_date)
322
322
  self.raise_validation_error(
323
323
  {
@@ -0,0 +1,37 @@
1
+ # Generated by Django 5.2.1 on 2025-06-02 18:20
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("meta_prn", "0062_alter_endofstudy_offstudy_reason_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name="historicaloffstudymedication",
15
+ name="singleton_field",
16
+ field=models.CharField(
17
+ db_index=True,
18
+ editable=False,
19
+ help_text="auto updated for unique constraint",
20
+ max_length=50,
21
+ null=True,
22
+ verbose_name="subject identifier",
23
+ ),
24
+ ),
25
+ migrations.AddField(
26
+ model_name="offstudymedication",
27
+ name="singleton_field",
28
+ field=models.CharField(
29
+ editable=False,
30
+ help_text="auto updated for unique constraint",
31
+ max_length=50,
32
+ null=True,
33
+ unique=True,
34
+ verbose_name="subject identifier",
35
+ ),
36
+ ),
37
+ ]
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.2.1 on 2025-06-02 18:43
2
+
3
+ from django.db import migrations
4
+ from django.db.models import F
5
+
6
+
7
+ def update_singeton_field(apps, schema_editor):
8
+ model_cls = apps.get_model("meta_prn.offstudymedication")
9
+ model_cls.objects.update(singleton_field=F("subject_identifier"))
10
+
11
+
12
+ class Migration(migrations.Migration):
13
+
14
+ dependencies = [
15
+ ("meta_prn", "0063_historicaloffstudymedication_singleton_field_and_more"),
16
+ ]
17
+
18
+ operations = [migrations.RunPython(update_singeton_field)]
@@ -32,6 +32,8 @@ from ..constants import CLINICAL_WITHDRAWAL, COMPLETED_FOLLOWUP_48
32
32
  # TODO: take off study meds but coninue followup (WITHDRAWAL)
33
33
  # TODO: follow on new schedule, if permanently off drug (Single 36m visit)
34
34
 
35
+ # TODO: add label for "End of followup as per protocol FEB2026"
36
+
35
37
 
36
38
  class EndOfStudy(ActionModelMixin, SiteModelMixin, OffstudyModelMixin, BaseUuidModel):
37
39
  action_name = END_OF_STUDY_ACTION
@@ -3,6 +3,7 @@ from edc_action_item.models import ActionModelMixin
3
3
  from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin
4
4
  from edc_model.models import BaseUuidModel
5
5
  from edc_pharmacy.models import Medication
6
+ from edc_prn.models import SingletonPrnModelMixin
6
7
  from edc_sites.model_mixins import SiteModelMixin
7
8
  from edc_utils import get_utcnow
8
9
 
@@ -16,6 +17,7 @@ class OffStudyMedication(
16
17
  NonUniqueSubjectIdentifierFieldMixin,
17
18
  SiteModelMixin,
18
19
  ActionModelMixin,
20
+ SingletonPrnModelMixin,
19
21
  BaseUuidModel,
20
22
  ):
21
23
  action_name = OFFSTUDY_MEDICATION_ACTION
@@ -13,6 +13,7 @@ from edc_qareports.modeladmin_mixins import QaReportModelAdminMixin
13
13
  from edc_sites.admin import SiteModelAdminMixin
14
14
  from edc_sites.admin.list_filters import SiteListFilter
15
15
  from edc_utils import get_utcnow
16
+ from rangefilter.filters import DateRangeFilterBuilder
16
17
 
17
18
  from meta_analytics.dataframes import get_last_imp_visits_df
18
19
 
@@ -101,8 +102,8 @@ class LastImpRefillAdmin(
101
102
  ]
102
103
 
103
104
  list_filter = [
104
- ImpVisitDateListFilter,
105
- NextApptDateListFilter,
105
+ ("imp_visit_date", DateRangeFilterBuilder()),
106
+ ("next_appt_date", DateRangeFilterBuilder()),
106
107
  "imp_visit_code",
107
108
  "next_visit_code",
108
109
  SiteListFilter,