meta-edc 0.3.38__py3-none-any.whl → 0.3.40__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 (89) hide show
  1. meta_analytics/__init__.py +0 -2
  2. meta_analytics/dataframes/__init__.py +1 -0
  3. meta_analytics/dataframes/get_last_imp_visits_df.py +101 -0
  4. meta_auth/auth_objects.py +1 -0
  5. meta_consent/consents.py +6 -0
  6. meta_consent/locale/lg/LC_MESSAGES/django.po +69 -0
  7. meta_consent/locale/sw/LC_MESSAGES/django.po +12 -12
  8. meta_dashboard/locale/lg/LC_MESSAGES/django.po +30 -0
  9. meta_dashboard/locale/sw/LC_MESSAGES/django.po +11 -2
  10. meta_dashboard/navbars.py +2 -0
  11. meta_dashboard/templatetags/meta_dashboard_extras.py +1 -1
  12. meta_dashboard/tests/urls.py +0 -1
  13. meta_dashboard/view_utils/__init__.py +6 -0
  14. meta_dashboard/view_utils/subject_screening_button.py +2 -2
  15. meta_edc/__init__.py +3 -10
  16. meta_edc/{celery/debug.py → celery.py} +2 -2
  17. meta_edc/navbars.py +2 -0
  18. meta_edc/settings/debug.py +8 -0
  19. meta_edc/settings/defaults.py +29 -16
  20. meta_edc/templates/meta_edc/bootstrap3/home.html +2 -2
  21. meta_edc/tests/tests/test_endpoints.py +1 -0
  22. meta_edc/urls.py +1 -0
  23. {meta_edc-0.3.38.dist-info → meta_edc-0.3.40.dist-info}/METADATA +6 -6
  24. {meta_edc-0.3.38.dist-info → meta_edc-0.3.40.dist-info}/RECORD +74 -64
  25. {meta_edc-0.3.38.dist-info → meta_edc-0.3.40.dist-info}/WHEEL +1 -1
  26. meta_pharmacy/admin/__init__.py +0 -1
  27. meta_pharmacy/admin_site.py +5 -1
  28. meta_pharmacy/apps.py +2 -0
  29. meta_pharmacy/forms/__init__.py +2 -0
  30. meta_pharmacy/forms/rx_form.py +16 -0
  31. meta_pharmacy/{forms.py → forms/substitutions_form.py} +1 -14
  32. meta_pharmacy/label_configs.py +30 -0
  33. meta_pharmacy/labels/__init__.py +5 -2
  34. meta_pharmacy/labels/draw_label_for_subject_with_barcode.py +58 -0
  35. meta_pharmacy/labels/draw_label_for_subject_with_code128.py +14 -0
  36. meta_pharmacy/labels/draw_label_with_test_data.py +26 -0
  37. meta_pharmacy/labels/label_data.py +14 -0
  38. meta_pharmacy/labels/print_sheets.py +22 -11
  39. meta_pharmacy/list_data.py +8 -0
  40. meta_pharmacy/management/commands/__init__.py +0 -0
  41. meta_pharmacy/management/commands/update_initial_pharmacy_data.py +10 -0
  42. meta_pharmacy/migrations/0002_initial.py +7 -5
  43. meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py +390 -0
  44. meta_pharmacy/migrations/0009_remove_historicalrx_slug.py +17 -0
  45. meta_pharmacy/models/__init__.py +1 -2
  46. meta_pharmacy/models/label_data.py +38 -0
  47. meta_pharmacy/models/{label.py → rx_label.py} +8 -19
  48. meta_pharmacy/utils/__init__.py +1 -0
  49. meta_pharmacy/utils/update_initial_pharmacy_data.py +146 -0
  50. meta_prn/admin/pregnancy_notification_admin.py +6 -2
  51. meta_reports/admin/__init__.py +1 -0
  52. meta_reports/admin/dbviews/glucose_summary_admin.py +1 -1
  53. meta_reports/admin/last_imp_refill_admin.py +181 -0
  54. meta_reports/migrations/0052_lastimpvisit.py +57 -0
  55. meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py +31 -0
  56. meta_reports/models/__init__.py +1 -0
  57. meta_reports/models/last_imp_refill.py +34 -0
  58. meta_subject/admin/study_medication_admin.py +10 -0
  59. meta_subject/forms/study_medication_form.py +35 -0
  60. meta_subject/locale/lg/LC_MESSAGES/django.po +470 -0
  61. meta_subject/locale/sw/LC_MESSAGES/django.po +191 -89
  62. meta_subject/metadata_rules/predicates.py +34 -7
  63. meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py +44 -0
  64. meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py +46 -0
  65. meta_subject/tests/tests/test_metadata_rules.py +2 -2
  66. meta_subject/tests/tests/test_mnsi.py +180 -113
  67. meta_subject/tests/tests/test_sf12.py +0 -12
  68. meta_visit_schedule/visit_schedules/phase_three/crfs.py +18 -6
  69. tests/test_settings.py +4 -1
  70. meta_edc/celery/__init__.py +0 -2
  71. meta_edc/celery/live.py +0 -17
  72. meta_edc/celery/uat.py +0 -17
  73. meta_pharmacy/admin/lot_number_admin.py +0 -43
  74. meta_pharmacy/labels/get_label_data.py +0 -30
  75. meta_pharmacy/models/lot_number.py +0 -25
  76. meta_reports/models/unmanaged/README +0 -14
  77. meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.py +0 -26
  78. meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.sql +0 -10
  79. meta_reports/models/unmanaged/unattended_three_in_row.py +0 -24
  80. meta_reports/models/unmanaged/unattended_three_in_row.sql +0 -19
  81. meta_reports/models/unmanaged/unattended_three_in_row2.py +0 -24
  82. meta_reports/models/unmanaged/unattended_three_in_row2.sql +0 -39
  83. meta_reports/models/unmanaged/unattended_two_in_row.py +0 -22
  84. meta_reports/models/unmanaged/unattended_two_in_row.sql +0 -19
  85. {meta_reports/models/unmanaged → meta_edc/migrations}/__init__.py +0 -0
  86. {meta_edc-0.3.38.dist-info → meta_edc-0.3.40.dist-info}/AUTHORS +0 -0
  87. {meta_edc-0.3.38.dist-info → meta_edc-0.3.40.dist-info}/LICENSE +0 -0
  88. {meta_edc-0.3.38.dist-info → meta_edc-0.3.40.dist-info}/top_level.txt +0 -0
  89. /meta_pharmacy/{admin/label_admin.py → management/__init__.py} +0 -0
@@ -82,12 +82,13 @@ 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
83
  meta_ae/tests/tests/test_actions.py,sha256=W4UglCSs4GLU0_I5grpCz3xprk2OQso2Q6c_9aYWiu8,4915
84
84
  meta_analytics/README.rst,sha256=x5KDks1P2bSPdyq3f9CNkynAAgJaXl7AX_3rnmC16HU,357
85
- meta_analytics/__init__.py,sha256=O4Fkrtyo15GEfghFcb5u_5MRt5J0BvKvtU_mqUX5_yU,116
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
88
- meta_analytics/dataframes/__init__.py,sha256=lTRGk8ctu02SFDTVLoLOUHja2_bzvTQyRgqqUuvCWfg,488
88
+ meta_analytics/dataframes/__init__.py,sha256=DHO81CYc5foDgy2HBEnlaHRtohMo-blvSvZPMDQaHUk,547
89
89
  meta_analytics/dataframes/constants.py,sha256=Wcub_3U5xHa027ykotySiUxMECjmswGIADVeT0iJXXs,792
90
90
  meta_analytics/dataframes/get_eos_df.py,sha256=YJ0YB93FkqwpNfWDphzFbX6B7BannbvfScc0WEgtn2w,778
91
+ meta_analytics/dataframes/get_last_imp_visits_df.py,sha256=ROBsYzJvlmSk86jA35dq-hK-2r7Nh6XSyAY8m1Zl93Q,3756
91
92
  meta_analytics/dataframes/utils.py,sha256=2V3nFFnaysuJvNrcHUOLqOk8e_3aP71079kB_YBXcQw,2014
92
93
  meta_analytics/dataframes/enrolled/__init__.py,sha256=uKniE7L86umlSmGOjAFuwwsbyZj31mELGUpY3hByo4s,43
93
94
  meta_analytics/dataframes/enrolled/get_glucose_df.py,sha256=L4gzszNjYzu-QmYu4gs1c7_Edcv7FgAjucihxHtANSY,5004
@@ -106,7 +107,7 @@ meta_analytics/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
106
107
  meta_analytics/tests/test_endpoints_by_date.py,sha256=43uBO5VTcF5zq9I5ow9f6Isn-xs7Km_qOrXELJjaew4,3034
107
108
  meta_auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
109
  meta_auth/apps.py,sha256=AcVJmdM3EuebpqB7A1vXRfYBcovgsqPvE71lnGuM-qo,298
109
- meta_auth/auth_objects.py,sha256=C9ANQTiqML8oH8DharMc8JQYYKV0At9kGCysehcrTfU,2539
110
+ meta_auth/auth_objects.py,sha256=iMbkkeSs_Oua53KBmdIHpsFB52CEopzyQoHq2Okq1sA,2608
110
111
  meta_auth/auths.py,sha256=EBdK6b5b2yduDvqYmnmJFRvuJ0fLDQ_q226iuwHA_QU,3008
111
112
  meta_auth/urls.py,sha256=_sVCnQeiAFRYKhxga3_DjoKj_4bgs1s2gjcynDiapvA,111
112
113
  meta_consent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -114,7 +115,7 @@ meta_consent/action_items.py,sha256=JIU5DCNeenaOk0PVTsDkAvFmHCquXBeFZf4Vw7JONl0,
114
115
  meta_consent/admin_site.py,sha256=r5FtGwonVpqhyGekVNplmHr2mwbEGilJBiyvsIz2_lY,169
115
116
  meta_consent/apps.py,sha256=asTFgxJ1PmX7FkcqjvC5_GkcZVuI5grNx-1qrgNrcyM,282
116
117
  meta_consent/baker_recipes.py,sha256=F0AcBhCJhF2cVDG6EAMoq633I8q005B799yJ6S_Sz1k,1343
117
- meta_consent/consents.py,sha256=EsMjCErt9gUb_NjMF4RcwknJHxbYFhwVSvY_cJfM1DY,552
118
+ meta_consent/consents.py,sha256=dtMsE-uTIwW5m1Uf1gtC8vZtPaK99-MYugXFFZsSQyM,755
118
119
  meta_consent/constants.py,sha256=NezBNv0UVC3ZyG9NRN5Q9Inos8ukd1LoWbLVaGVQ0us,31
119
120
  meta_consent/urls.py,sha256=YXQLoyH5tFMPUK9PTk33Yve_HCWw-rhUrlXegbadxlw,206
120
121
  meta_consent/admin/__init__.py,sha256=dkdGNzXrJ0uBOwFFsmamJ65UAWm1e-CJm3QhuD9kIJE,115
@@ -129,7 +130,8 @@ meta_consent/forms/__init__.py,sha256=rk8VofOfyy4Eybh_gOJCXIRzu1tn57hd82yHUmuF9K
129
130
  meta_consent/forms/subject_consent_form.py,sha256=Dwnwn7y-8AABvzgTa1zfs2b2Mli0OKnNMsx0VOxO9n0,1293
130
131
  meta_consent/forms/subject_consent_v1_form.py,sha256=XHrklzP-wh6ny3VJ2Bf9v7BTaUlfTToYVrpIAm3JZFc,766
131
132
  meta_consent/forms/subject_reconsent_form.py,sha256=lJAaVb3TXwTFjg8-iAJo836wAw2D3ofsfgGUZu_svb0,1306
132
- meta_consent/locale/sw/LC_MESSAGES/django.po,sha256=RzVxgOtTXGX5pWTXogP4ZlkzkMkeEhXdt_HBBW6-isw,1845
133
+ meta_consent/locale/lg/LC_MESSAGES/django.po,sha256=qWq1GuH-sIg05d2vydpYIxS71-fjutlJTPiLEJ905rw,1969
134
+ meta_consent/locale/sw/LC_MESSAGES/django.po,sha256=2xMMhgncC2222wfCMuVBZVi69asNlVq5Z0Z6XtCrVpw,2016
133
135
  meta_consent/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
136
  meta_consent/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
137
  meta_consent/management/commands/create_missing_prescriptions.py,sha256=h1dMyxfnuVGAQd0mdpzXmdMuvpxK5d7Gnxgd0pumd7U,1438
@@ -173,10 +175,11 @@ meta_consent/tests/tests/test_form_validators.py,sha256=wfDtChl3xxexb9moDJrE586d
173
175
  meta_consent/tests/tests/test_subject_consent.py,sha256=WIWhSDNdJ_dMDw1pwIW75Nfdxje1-Anc7Ic7fYyedhk,376
174
176
  meta_dashboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
177
  meta_dashboard/apps.py,sha256=xTdgYwloNayjOFxtsxEjSSrn50CqD_xWMe5B6SWEaO4,313
176
- meta_dashboard/navbars.py,sha256=PQg6J4Ho4hnnXYObBJM1MpYHtaHjD_m6rkPOqJ42ZVI,1168
178
+ meta_dashboard/navbars.py,sha256=WJvZI5i3IsOA9PLqn_usUHrwMRzr-hILLeCfmDCneP4,1260
177
179
  meta_dashboard/patterns.py,sha256=y5Of5zem791RMcTLj8YGFE1HkROuAwbGIWy0VtLwloI,47
178
180
  meta_dashboard/urls.py,sha256=Nr9bQyY82rzsYecbD2hClGsiAfcT5UQIiwbKSalbHyg,1193
179
- meta_dashboard/locale/sw/LC_MESSAGES/django.po,sha256=fC_uvrM8tAoFxf2NRNvWqZ0cwC9aYpLgYtUbft21lTk,698
181
+ meta_dashboard/locale/lg/LC_MESSAGES/django.po,sha256=k_8rNvTYu-a1KsGfcGsJ-cx65vxa67yhkTJUVu5mP64,836
182
+ meta_dashboard/locale/sw/LC_MESSAGES/django.po,sha256=lL2_fidRWe_Zv2Q8t_lCfx6GtBNtlSwybL0xm7CLbGA,883
180
183
  meta_dashboard/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
184
  meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/add_consent_button.html,sha256=6keqMZ7NrAvcCcl4Dx0dDn0MASj_cAd2IpaXK1ZglK4,447
182
185
  meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/dashboard_button.html,sha256=xGuwTLyegM1kVrFkRlDpXkzD7mcRVfSeO6ZVlQ6A_k8,280
@@ -188,14 +191,14 @@ meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard.html,sha256
188
191
  meta_dashboard/templates/meta_dashboard/bootstrap3/subject/listboard.html,sha256=AyVcossXTf7grSrbWaz7Wek12YRixEdddxEQWatSXgs,1398
189
192
  meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard/top_bar.html,sha256=5u2ySYTBEwsKKLmQaEmPoObvtx1vduwIcy9DvkS4AO0,230
190
193
  meta_dashboard/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
- meta_dashboard/templatetags/meta_dashboard_extras.py,sha256=d_jtyuxSbIhSpKkA5uI5ffCPei4dABo6kOMpb2G73C4,3947
194
+ meta_dashboard/templatetags/meta_dashboard_extras.py,sha256=aVUypkmzt4ih7zFcqTak26jmFyxZUeO6yxIN_OUycBw,3922
192
195
  meta_dashboard/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
196
  meta_dashboard/tests/admin.py,sha256=4k_kM3YURLIInujRNpPRql3rLxODOZQhCXueoUdU064,716
194
197
  meta_dashboard/tests/holidays.csv,sha256=LIEIm79wHRzbfXcFW_2ogFOYEZaWEGF1hwgOzZy2y34,538
195
- meta_dashboard/tests/urls.py,sha256=MU7MdHlU2VZusGC5cPlrosTulbyut9q-ck9iHv7lreg,2751
198
+ meta_dashboard/tests/urls.py,sha256=FJlQvMLAMbR7UBW2Kl6VQXW9XmYOvqXnZJ4SeQh535E,2674
196
199
  meta_dashboard/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
- meta_dashboard/view_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
- meta_dashboard/view_utils/subject_screening_button.py,sha256=VgCw-5YcygNAuq31QbPxVBS7cbAfGND8e67RUpbVsBg,3370
200
+ meta_dashboard/view_utils/__init__.py,sha256=qkoHOxLcwAr53q1e_aR5mx0ZSEX6kAC8bShg82UOJ40,177
201
+ meta_dashboard/view_utils/subject_screening_button.py,sha256=NEDMydqrz7FoYMXViOpnvGpFzcRer_I_cfBkt3Mx-84,3327
199
202
  meta_dashboard/views/__init__.py,sha256=TWsNFphAI57Bw2d-X-fy7yayR8AlbtWJ5Wx3YjZPntQ,222
200
203
  meta_dashboard/views/ae/__init__.py,sha256=YjsScDD8GqpXOwZGMgAWZfo64JSc117no6pCt3uGDBo,113
201
204
  meta_dashboard/views/ae/ae_listboard_view.py,sha256=Hwe_alqfy6H4etYqCkKJamT2aJiEqLw6tzJmX1j8Yj8,452
@@ -211,38 +214,36 @@ meta_data_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
211
214
  meta_data_manager/apps.py,sha256=xpcMy8CxRMgyWiKmD2JhbfKgPKTgs42wD4AdNwZJANI,233
212
215
  meta_data_manager/data_manager.py,sha256=T9SWFI0iTSDjff-WX-exBNa3I2d985o-JjyCkrHL1FM,167
213
216
  meta_data_manager/handlers.py,sha256=UMeO8WYs6aVVPtLmnyatT42N9zc7NZI9V1Y6Up08WDA,952
214
- meta_edc/__init__.py,sha256=eJj81bDocr5aG01KG8Ictg5oEnozqtpn6wFZ0Befwrw,600
217
+ meta_edc/__init__.py,sha256=2J3-xicgO6hqSC5ec6bRfCUTlFrouiF_zLHC-sq0eSY,343
215
218
  meta_edc/admin.py,sha256=pbISDsySzbQxK8VFvFncxDXy_ackWj6c7z2H0PYCQGA,845
216
219
  meta_edc/apps.py,sha256=vg5C0EBve4bOFwwPee-boI4qA5geShGcD-DHkpGkWTU,450
217
220
  meta_edc/asgi.py,sha256=jDODkEq-jgxRwl2BL1cDAjOAcoNtvlTIC7MlzBr7FS8,175
221
+ meta_edc/celery.py,sha256=fVeob70iU1S9N3DsVR6RzXSRQiehgvQST7bdH92_LHk,426
218
222
  meta_edc/meta_version.py,sha256=8IASYGnr43t18oDhNAPNnQoKvFYVAUnPILl6a05HAoc,211
219
223
  meta_edc/model_callers.py,sha256=PjQEW7Kp5HHcUMdmz7dvxg53HvGJHXUKr6QTd-4hsyE,1339
220
224
  meta_edc/models.py,sha256=DLA-hDdFszAVNCe1sZqVoLmIXifFW0HeZsipP9D1Ic4,46
221
- meta_edc/navbars.py,sha256=1E7JzjI9NUGKwOVvyMGE2Gs2FM40vImMcuB_01t5FTs,1099
222
- meta_edc/urls.py,sha256=BpDuV2XX7Qe8xkSgjhT7ehiZ7QCVtQwzQiY2YPhta_I,3534
225
+ meta_edc/navbars.py,sha256=XOuo4QEUCBtabYpW0IorT4Hs6GtJgVk7NkB0H_Bb7Vs,1191
226
+ meta_edc/urls.py,sha256=hLeGIjUDoYiCFOao3jCpFL6nkBllEyJ-oV07xR_tsYc,3578
223
227
  meta_edc/utils.py,sha256=FdGGHT0zCUM9FLovLanH_ultcxbVitCvvPAwq0U3yYc,342
224
228
  meta_edc/wsgi.py,sha256=Ns9vu_jcEqpOLM5tb-hwVUh3ciInocrG3kUPAxh7nJg,165
225
229
  meta_edc/wsgi_live.py,sha256=EprgdsDiEvNN033w6lUQHaS8Y3ntpPrWHDTOgZcjaCQ,164
226
230
  meta_edc/wsgi_uat.py,sha256=xZj3TGy1XEi-3OTYvyZzdhgWQu52sYZw-Gt3ZSMKQc4,163
227
- meta_edc/celery/__init__.py,sha256=yeeXVNISo_WG2xDNgPeSg10KyLBQ4btuGw4sSEznrTE,66
228
- meta_edc/celery/debug.py,sha256=zQsPL504VBSdqkSNYlBxldeSKflOj2O5THfvJwVd6bg,432
229
- meta_edc/celery/live.py,sha256=tNk-sb3B5rZb8Yh0lkeSwXx7QHJn-1SWKT7gJuYtvVE,431
230
- meta_edc/celery/uat.py,sha256=m2QXih9y2ePHF5ve84KQ_LunCpjxHNBW4IgAFw4ze6E,430
231
231
  meta_edc/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
232
  meta_edc/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
233
  meta_edc/management/commands/update_forms_reference.py,sha256=_DiCqhHUk8lGhDGlsjOA069EE-g7UBDlZQCH6L1xiHo,1003
234
+ meta_edc/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
235
  meta_edc/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
- meta_edc/settings/debug.py,sha256=-PvZN-nPpEBr49ndpBHFcV71SDu1tAXmVfKESDFIr4Q,947
236
- meta_edc/settings/defaults.py,sha256=Q1WJEfWQF5A-IvFoMeyQi0n5BaPmXSgpfAkJ011B_SY,18764
236
+ meta_edc/settings/debug.py,sha256=ys60bSDcEMbWewoTdE4HRIp2woOwy3RPjIgXMUCEJpQ,1296
237
+ meta_edc/settings/defaults.py,sha256=pUyhSJdaYlvpoEPuU0mAWB3XFUL8xjblhald4DjZ3gs,19165
237
238
  meta_edc/settings/live.py,sha256=uLTlsIc3H6gdE_7pkL6vyOVa6V_74hnXFkiojqGFAYY,264
238
239
  meta_edc/settings/logging.py,sha256=6qVUE37OMkf5rzwTmMq4krFsZ2jcyCpWdFtGih_Cs4U,1938
239
240
  meta_edc/settings/minimal.py,sha256=3z-7GBluflnUkuSotKZlYvpL34NZ6tfFNuQNJLCyflo,592
240
241
  meta_edc/settings/uat.py,sha256=P1hovGPgCnuyiVZ-RuZfoEskAEz39hkMAVGjEeP7RDM,270
241
242
  meta_edc/templates/meta_edc/bootstrap3/base.html,sha256=8Agovk1eTpW-2oAgVGsYwL_DAD6zB3DNwGGpPJ2bx-g,165
242
- meta_edc/templates/meta_edc/bootstrap3/home.html,sha256=hHy9fQYEfN_oqsuyC3s-smX7eWf_520t-zBlIs6pcZE,4585
243
+ meta_edc/templates/meta_edc/bootstrap3/home.html,sha256=JjNhNaLXUUCMwTmUm7F5fdNOj6GdXJspfsXx3-0OV6U,4590
243
244
  meta_edc/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
245
  meta_edc/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
245
- meta_edc/tests/tests/test_endpoints.py,sha256=Vo7rOuBUqCwVWBLSPgwRBqiyU6o4Wc-7Em84PBwFJw0,23497
246
+ meta_edc/tests/tests/test_endpoints.py,sha256=5FdIHTd1xhUIgQLBzMV-Ml3VoFrlBrLLUbNarme5raw,23541
246
247
  meta_edc/views/__init__.py,sha256=TBXTih4Mpsg5Oh2jbyXqL9kH7bu3vWNRgVe93hvLCl8,32
247
248
  meta_edc/views/home_view.py,sha256=a3A0DMoqCWQuLkb2MSIR-I0Su-mVU5D82FwAIC21low,1006
248
249
  meta_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -290,33 +291,45 @@ meta_lists/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
290
291
  meta_lists/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
291
292
  meta_lists/tests/test_lists.py,sha256=qcp2emRyd5-cP2oLluy8MpUucBDQ8_GdUxjh2KbZPv4,212
292
293
  meta_pharmacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
- meta_pharmacy/admin_site.py,sha256=Ekq8Z13f1w4Llm6exO5w4Jk4Bvt-5WN1ydy_BS2rbdI,171
294
- meta_pharmacy/apps.py,sha256=VNiKT23F5d5nkXxzu1L-kAqovNOdfxzp-cUC6qcioVQ,732
294
+ meta_pharmacy/admin_site.py,sha256=rFJDvq7WzcQR7_Tc83k5XtTyLZJBy0tp4h8C0cmvUU4,211
295
+ meta_pharmacy/apps.py,sha256=xjzNu2UMNqR1W2pmJDc-JRTUXKgO5IvRWW3kZBza2XQ,804
295
296
  meta_pharmacy/constants.py,sha256=d3NAZwpxCDm9LLQ_QGKBG2txooYg748Ajh8a2deF0kw,263
296
- meta_pharmacy/forms.py,sha256=4BX6rB7FWBWYlOB2BX4hh3scz5eeKaxt2OCyQBCBO-E,2162
297
+ meta_pharmacy/label_configs.py,sha256=BOblOFyNQsYin8GCs_UeYBn62CnaJQr2EIfff6B-a-I,816
298
+ meta_pharmacy/list_data.py,sha256=HB_TuRUEq01tG-KB1gGzT1V84m4JGYiMT9IoqJInEVc,210
297
299
  meta_pharmacy/prepare_meta_pharmacy.py,sha256=5gNiPkmOzWwCW-_q6hgIzj_0tnPuN4Tl1lVI6FygNgs,2945
298
300
  meta_pharmacy/urls.py,sha256=jncXssL_SeRhb_OJVXLdGFvPT3BqtrkSPdq-eyJnGfY,207
299
- meta_pharmacy/admin/__init__.py,sha256=64RWTeC6qO1G800qe2V7vgeQQ5qo5yEKXTnvviKUBQ4,127
300
- meta_pharmacy/admin/label_admin.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
- meta_pharmacy/admin/lot_number_admin.py,sha256=q35jVWzqyqup_NtLUa0b_c3_3H3S30U5DroCdbGkyy0,981
301
+ meta_pharmacy/admin/__init__.py,sha256=ZnYHFOt9xatSSEhPoGtWC6zCvsaygIJX3qJy7iZ9qWk,82
302
302
  meta_pharmacy/admin/rx_admin.py,sha256=SQGsugSnhbU3YUk_ssSTMmCH6no8ZkHoqLLkbZbBbk0,1851
303
303
  meta_pharmacy/admin/substitutions_admin.py,sha256=N2WcuC4REAEX0zrNqQHsPbZI82I4T5UM7EP-ohDOSSI,1934
304
- meta_pharmacy/labels/__init__.py,sha256=fT7pVRKOJGbW4RLqfTP1UsdmZpI1k2tG1G53XVKQZHw,82
305
- meta_pharmacy/labels/get_label_data.py,sha256=QsveAPMlb_LKnltP5Hxsk1mdCkSGhn-cQ_nDkHE3QD0,1088
306
- meta_pharmacy/labels/print_sheets.py,sha256=Z72s2Uu-nWSk2ETlkc6TA59XHgrloIh4t5F9jihoCuU,2540
304
+ meta_pharmacy/forms/__init__.py,sha256=5d28GOPegzZ9ptI-tVx_E19yPTrJ_wQh16xr9ivmS6M,78
305
+ meta_pharmacy/forms/rx_form.py,sha256=zqt45XGAv2Zj4p7k-CDGUHF0LKoeYnncHJBZ3MmN4qI,319
306
+ meta_pharmacy/forms/substitutions_form.py,sha256=f37xagh6D00w3iu6zvh45UWX_L9oD0FsW_0fTsB7540,1894
307
+ meta_pharmacy/labels/__init__.py,sha256=k1LKzruteQ1jUmPkh0vzzzmi4kjOANJhborPRLc8Mcw,228
308
+ meta_pharmacy/labels/draw_label_for_subject_with_barcode.py,sha256=RWJDIoiHZQp8e5N2LEW2Mu8qwI6qAkxfOPALf52TlZI,2155
309
+ meta_pharmacy/labels/draw_label_for_subject_with_code128.py,sha256=dK1F_N91Fhw8rtKi3GWRjbYw5V-XfOjzpF2UDBsE65M,459
310
+ meta_pharmacy/labels/draw_label_with_test_data.py,sha256=KQeQZEka3-2FL1hLIr7Sn9XQX6eXLOOJUlbS612AORA,1188
311
+ meta_pharmacy/labels/label_data.py,sha256=K6kgU3oc8n8NNJLjUZUbvyXakx38V1QL1GgOgWCMzZw,365
312
+ meta_pharmacy/labels/print_sheets.py,sha256=a-qMddeIwY9YIZonBkRXtbxUKBCuMo4FylvIbBeTJc4,2771
313
+ meta_pharmacy/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
+ meta_pharmacy/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
315
+ meta_pharmacy/management/commands/update_initial_pharmacy_data.py,sha256=g6_TxYzkqpKLMHORcitQZzjEAb12tezFHKwzS16BzbA,241
307
316
  meta_pharmacy/migrations/0001_initial.py,sha256=2uyWhZ-Qkjum1gJJA5v-BWUdpmKhkf8BcuDQMl8895s,1115
308
- meta_pharmacy/migrations/0002_initial.py,sha256=zkPXmGhdEi-EM0HJRBaTUAltdiLRjW1BhU4GEydoBM8,27355
317
+ meta_pharmacy/migrations/0002_initial.py,sha256=SrbCf6knF3Q_qTzh59wrAiQBhobJf3VjkktoRMlsPDs,27397
309
318
  meta_pharmacy/migrations/0003_auto_20240909_2335.py,sha256=_hbzV6HaBm-VS_jQMhl3w5srvyaYOQclLBvr_8f79uk,2227
310
319
  meta_pharmacy/migrations/0004_alter_historicalsubstitutions_report_datetime_and_more.py,sha256=33SpQ4UtFs3gblj4WG3KtKtalo8Wynv3uyUOqBe7_Zo,585
311
320
  meta_pharmacy/migrations/0005_auto_20240911_0352.py,sha256=ZwjFlBX_ubNDbTnDny7cvgCb4aSiqhVKhTYDWd6oQmg,534
312
321
  meta_pharmacy/migrations/0006_lotnumber_label.py,sha256=hdxvRC-v6appuLFzBJg-PAY30qgkdA_XdAZP6mwq7Mo,11279
313
322
  meta_pharmacy/migrations/0007_lotnumber_medication.py,sha256=uTR_ZYm22n8C1uiWJGfWgtEcYBQ8DdEGvNhQAH_PqNA,646
323
+ meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py,sha256=Wqm3ekvrwEgxo9IqWE6QvUkoB9la9Y6TFd0vVQ4PuA0,15420
324
+ meta_pharmacy/migrations/0009_remove_historicalrx_slug.py,sha256=_f0fDBxRCZeB9irk0KouqPgeJljq41dXr2TBmTNPTXs,356
314
325
  meta_pharmacy/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
315
- meta_pharmacy/models/__init__.py,sha256=lMchriYF--D3oW_nFVd9n6VuFNRdDbrlWQj8ARyyVuA,130
316
- meta_pharmacy/models/label.py,sha256=FlnBQyXZmPUrT_Ibg0L-FQ6oPwBGxFWvf_pMSKDxs-s,1546
317
- meta_pharmacy/models/lot_number.py,sha256=JUT-TXsM_2U3UO6VDz7D10WTNupIjYYAlBVBlzi2VmU,693
326
+ meta_pharmacy/models/__init__.py,sha256=KToZJXSsHyBIN-o7Qzpuxt7I79DsPkp3T9iRg8Ycle8,105
327
+ meta_pharmacy/models/label_data.py,sha256=dV8fpmJ6QpKidHVRfN3IdWEciEGQch8Q8jqJgqkqzFg,1442
318
328
  meta_pharmacy/models/rx.py,sha256=cx0T9j2Vb-6tEotWA7ohsn2OGHnQpxiFQnu7__hx7Ts,379
329
+ meta_pharmacy/models/rx_label.py,sha256=iBqy3c-DvoPnw1g8BAVGQcY5OpI9Ie2YT78rYY0G7WM,1202
319
330
  meta_pharmacy/models/substitutions.py,sha256=9FjjD4x66B8SxABZR5atan2S5uE4nJH0tn0ujB4xEbA,3071
331
+ meta_pharmacy/utils/__init__.py,sha256=PiPRCZqgxPiudXWEvQmXOqFZMoj56NEiOeRuYEyE_9w,71
332
+ meta_pharmacy/utils/update_initial_pharmacy_data.py,sha256=Od0QL41unsDEGDBYsVCe8k-T3GpMae0DtHt61vz4sYM,4621
320
333
  meta_prn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
334
  meta_prn/action_items.py,sha256=wz6X7Ve8ibqPBO5kB6S9rYYkWfx8JxsoYRVppzIGAzk,9110
322
335
  meta_prn/admin_site.py,sha256=E4dJ6ofu9Kp-1SIWIuY3PraVPbEJSWBBqhorJPGUNqU,161
@@ -338,7 +351,7 @@ meta_prn/admin/offschedule_postnatal_admin.py,sha256=SpLsX75Q01mqKTSGKXoQ1EKUzYm
338
351
  meta_prn/admin/offschedule_pregnancy_admin.py,sha256=XHM-1EmQ6gzKL7AOf0NlMM_Pn6XOK9TtTSq36HjFY4U,1703
339
352
  meta_prn/admin/onschedule_admin.py,sha256=GX4_wSqMDtQdB_x3nhodaDZ_E3d8kPPy-Yprpp6BJOk,1440
340
353
  meta_prn/admin/onschedule_dm_referral_admin.py,sha256=gfWE-NpHC4ICjKb1Fhb5XZUQ5syTp0s0_9IU1-ZTp0k,1470
341
- meta_prn/admin/pregnancy_notification_admin.py,sha256=GhLyllX8VWmzsu6Uxn218WZork1ljwEXdhMvmyYLLZU,2144
354
+ meta_prn/admin/pregnancy_notification_admin.py,sha256=fIAbpU1QEVAGeewxc2xcRu7aipz0srjzRNxPv7ZZrR8,2284
342
355
  meta_prn/admin/protocol_incident_admin.py,sha256=fTlYJAxsrPDB8skZc-_2DxKH21k_cG7UH7wCgnviBck,739
343
356
  meta_prn/admin/subject_transfer_admin.py,sha256=YKViIZLAaAquiN5RO-V6lRoGP76bYwcb_EA5QTEeI2Y,723
344
357
  meta_prn/form_validators/__init__.py,sha256=ROZbWrtQ4dLCwy-aeBcOh0mnYm12qFrvUWzV-BkGvTU,111
@@ -455,13 +468,14 @@ meta_reports/pdf_report.py,sha256=9lWnRc_BNieDFXC4VgA0QHK6g_ct58u8tupPRsbRvV0,23
455
468
  meta_reports/tasks.py,sha256=wPzfm99Hox1AIvt1KxYg1r6g9v8ta2AHOHesoN6AxEk,370
456
469
  meta_reports/urls.py,sha256=_c6AMrK4U5MsyFSU2JSPNfiZlbhuw24C7CyPNYpqGd0,206
457
470
  meta_reports/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
458
- meta_reports/admin/__init__.py,sha256=3GDQM-HA1h8FdsmGSAiPaCd1paMGGJHTq6Ivd4Ob9bA,434
471
+ meta_reports/admin/__init__.py,sha256=om3lFa4YxsZSNlYIi2sZv8li2irOMoSeBtOpPk4V3lk,488
459
472
  meta_reports/admin/endpoints_admin.py,sha256=7wZCdC-D-QHI1bb_ucgyDZYlnYD7mWtcZpcH_LftkLs,514
460
473
  meta_reports/admin/endpoints_all_admin.py,sha256=_czdezZf9fSjwZJmO-3HbmdXrXP6nk8-HdiweqUzPRE,476
474
+ meta_reports/admin/last_imp_refill_admin.py,sha256=iXXRHQa9irNWs3N6wkw-7fF4ZCyh-5mEaLRlYXOpZL0,6719
461
475
  meta_reports/admin/list_filters.py,sha256=pByBzz9-qGwqBfdZFlByxJUZDTJQXOTWfNLjmK8KF00,870
462
476
  meta_reports/admin/modeladmin_mixins.py,sha256=tEZYw0xNMfBvo2RLDrYfi_S9lbZU02dwtLxdRDZob4Q,3663
463
477
  meta_reports/admin/dbviews/__init__.py,sha256=2yPu0SO7ZX9yjan0OS9izzws14YYoXcGXmZhwJhax1I,675
464
- meta_reports/admin/dbviews/glucose_summary_admin.py,sha256=NqnDKx5l0Q-2xxRGdnf50DaRX1Sn8-DC0jHSk96LkRo,4005
478
+ meta_reports/admin/dbviews/glucose_summary_admin.py,sha256=ASvYcPIKJ0sLkRT-rwxkcpLPN36XVRs6wUg6msOaA9Y,4001
465
479
  meta_reports/admin/dbviews/imp_substitutions_admin.py,sha256=-poOw3fJK7jQERB1PNXNDrWNthwEQpiwmrxoWOsDtjI,3622
466
480
  meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py,sha256=XyroEqxlX816xrdi0IVSelNPxPBWi96niKa-MQVGkck,2058
467
481
  meta_reports/admin/dbviews/unattended_three_in_row2_admin.py,sha256=0r13KRr0gsH2osmSlffRV11SpSBpWM612AYl-GOoYm0,1347
@@ -530,10 +544,13 @@ meta_reports/migrations/0048_auto_20240909_2338.py,sha256=mYAOUzJohv9eW9y93fpZTm
530
544
  meta_reports/migrations/0049_auto_20240911_0327.py,sha256=APBkFY9kwzEmhTXkK2-bu6csikh_dVEMH6t2dv_Iz9M,4760
531
545
  meta_reports/migrations/0050_alter_endpoints_created.py,sha256=nqNIgK_cek2gtEhopdy0Sm1HuIjL3-PscYPN16ma474,439
532
546
  meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py,sha256=jq5N4un7QTCLe54WKJjfCL32X_QnyCiDRV3spwgseJI,1053
547
+ meta_reports/migrations/0052_lastimpvisit.py,sha256=MWQhY3-2RGjB8k-cuiEVbWxeYNL7QfbngyaWIGgEsU4,2231
548
+ meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py,sha256=XYb3V0JQ0877DhaAaR0PxzPHdeBmmR_NQLJaGSzfHAI,887
533
549
  meta_reports/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
534
- meta_reports/models/__init__.py,sha256=8JnKMG9devIPboCCGj423x77Ylry2ROdGOnDSk5Xo4w,380
550
+ meta_reports/models/__init__.py,sha256=2F-4CS39Pu2LijF8ZkSn2nE3Lps3YEC9ZcBtNnmNXjI,423
535
551
  meta_reports/models/endpoints.py,sha256=iMx8QIi_hLANIwZmAw1OJ_jPuDdml8s181Skh8UF9bM,901
536
552
  meta_reports/models/endpoints_proxy.py,sha256=3h3JGaPmnJedFPVWGrk4idV4YtdihqiCI5W7QomwG4E,318
553
+ meta_reports/models/last_imp_refill.py,sha256=LkJtsZU7fhem5O-OqsyN-qgGQm_IUGAYEpP3ESqdm88,988
537
554
  meta_reports/models/dbviews/README,sha256=GdeboB7Xqb-Qo_rE1ondcxP8Ps93MIjLzCePQCePig0,686
538
555
  meta_reports/models/dbviews/__init__.py,sha256=C5YGOKwVAexjWxLh5vl0m561TBMWDM_yAvIrwqG_M70,559
539
556
  meta_reports/models/dbviews/glucose_summary/__init__.py,sha256=Tfgjso4TpxMCidAdRJp8g1Ykqqa43yWlQSotzAaORAo,93
@@ -566,16 +583,6 @@ meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py,sha256=1
566
583
  meta_reports/models/dbviews/unattended_two_in_row/__init__.py,sha256=-ZZTOTTDZN5-zUj6gyvAyRrJgVPo0AyYZkHsgms6_Og,48
567
584
  meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py,sha256=jrHsOHC0dhLoSQjY1PIlEQe9q_9Epv_ZNGXQtkTXbCs,870
568
585
  meta_reports/models/dbviews/unattended_two_in_row/view_definition.py,sha256=fT-LngyxVBGVc5SIF5Fb2fUskvcC6-balydSkVDtueY,1379
569
- meta_reports/models/unmanaged/README,sha256=GdeboB7Xqb-Qo_rE1ondcxP8Ps93MIjLzCePQCePig0,686
570
- meta_reports/models/unmanaged/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
571
- meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.py,sha256=kyw91RklvGzBU8HrE3vEH1XLUs5X5mALdozd9nTnYsI,825
572
- meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.sql,sha256=XWpZzDRzi-FCD42Ft0NjIB-T04oJJKzzSQvH19eaJA8,566
573
- meta_reports/models/unmanaged/unattended_three_in_row.py,sha256=TJxYeZ69b7uAsKs2_miWyh_oTVxlfuQLIKHiqfd5G7Y,734
574
- meta_reports/models/unmanaged/unattended_three_in_row.sql,sha256=EBF8sS-5uYGdzAqgmMd-YN-cpEd3Hh5Ja3sbw09BX3g,1135
575
- meta_reports/models/unmanaged/unattended_three_in_row2.py,sha256=6nBnEkaG4-z4Vd8ruKGVAW0q9ReRyBgVtwXuxSKDkGw,762
576
- meta_reports/models/unmanaged/unattended_three_in_row2.sql,sha256=AUPfQt_RE1QSYUQ3ODWZ1gw4FbNeY3gnkhyQ4477jVE,2221
577
- meta_reports/models/unmanaged/unattended_two_in_row.py,sha256=LofMGO9okr76riRXBxBqa25Y3SA-hkg7zMp87wzf6j0,681
578
- meta_reports/models/unmanaged/unattended_two_in_row.sql,sha256=cFBHrkbo5548JNXcHJnSZ66hvXYpAF9LADuy-EfZ9Bw,1176
579
586
  meta_reports/templates/meta_reports/endpoints_all_change_list_note.html,sha256=4tDN-rF9V2LOzQBnz-ZeMClpRQHXnGmpveDggJEVQlk,701
580
587
  meta_reports/templates/meta_reports/endpoints_change_list_note.html,sha256=3WdEHRQMFgi5xwYV8JX5CveBfaSJaFGq7NhOfVXizks,760
581
588
  meta_reports/templates/meta_reports/columns/subject_identifier_column.html,sha256=BSjZRpQOwVRQbSq5H0S4KICt1A6Ecyqti-Ut1e_9HbM,109
@@ -759,7 +766,7 @@ meta_subject/admin/patient_history_admin.py,sha256=kXglsPOngnjYY2FQYP_YHoH5IcSJu
759
766
  meta_subject/admin/physical_exam_admin.py,sha256=nCcY42CQXbZCro4vsQUfw5gQ1KKs-zjsHPqP-KtUQQc,1858
760
767
  meta_subject/admin/pregnancy_update_admin.py,sha256=-H3olHeXv4gkcUXb1Ye2DmB-X72cVFeS2arSv-C5J4I,913
761
768
  meta_subject/admin/sf12_admin.py,sha256=1PDNewdE_JDcjfyh0tb0MEWnBgpE3-7W0tkNfWkSX5U,742
762
- meta_subject/admin/study_medication_admin.py,sha256=WXFHrRHaJ5NhoYs59H84kQxuimIDAgpDieYvUR0eAo8,5983
769
+ meta_subject/admin/study_medication_admin.py,sha256=8XQL0zgc1ItRHwkz1uq2_74WfpYqvDKH7B70ADbmfxk,6289
763
770
  meta_subject/admin/subject_requisition_admin.py,sha256=qx-6AxfwzUIFMTJFO6CYOWE67wTGgQbiBofmWksXx1c,1848
764
771
  meta_subject/admin/subject_visit_admin.py,sha256=Ic3OrFtBsiHTB5sI8efWQkhPsuqu-1P1xV7eKP1F6aA,1389
765
772
  meta_subject/admin/subject_visit_missed_admin.py,sha256=vRLttLzVT1EbOHGVU1G-d5FNlySalX6g4_-0bRNr6GM,1414
@@ -810,7 +817,7 @@ meta_subject/forms/physical_exam_form.py,sha256=QgH1zAmYgp8Hi1tU-e68HaRRkZxf-6xG
810
817
  meta_subject/forms/pregnancy_update_form.py,sha256=BTiWPoQ-HYbZhW0Go2DSqYU_e51pmJ_UIxEdSNlzTwE,559
811
818
  meta_subject/forms/sf12_form.py,sha256=VDV4hyU9UckPX70isylfHWggcWZwiQfCWrpk9kGvxis,397
812
819
  meta_subject/forms/slider_widget.py,sha256=KOIyTfpl8yrcR9GZH4zrba8JUsVVEJME3AvrYiPHYJc,821
813
- meta_subject/forms/study_medication_form.py,sha256=zclTIvyh1PuRwS4_gQnq8FNH4W86wFH1VU2GhDx6whQ,1481
820
+ meta_subject/forms/study_medication_form.py,sha256=at4ee0f5NNipYD15R_T8h3B7R9EH-H0V-co_B3n12WE,2969
814
821
  meta_subject/forms/subject_requisition_form.py,sha256=BWWk1njDTxenHAX1a-VHPgz9zAGTJxMNHtVsobO7Vqo,953
815
822
  meta_subject/forms/subject_visit_form.py,sha256=Zxyjb5-7wUmcLHD-M76ofuM8Vr92yzjvXqQ7GsB3U6o,1374
816
823
  meta_subject/forms/subject_visit_missed_form.py,sha256=Qrvo2A8836CspOKll_iN3a6U6ttzz1TFNbEbJRrg62g,2275
@@ -829,13 +836,14 @@ meta_subject/forms/diabetes/dm_followup_form.py,sha256=ToJwQ1NViZn_CX-0YUyLQ5SSi
829
836
  meta_subject/forms/health_economics/__init__.py,sha256=xlJD5--IDyBs5lRrjpOpIgLHLmJgNdnR9vbwgGZbv-0,136
830
837
  meta_subject/forms/health_economics/health_economics_simple_form.py,sha256=MlPppvF8lrka9hAzmAV7aiyerjtVihxmOWpbTF-k5P8,392
831
838
  meta_subject/forms/health_economics/health_economics_update_form.py,sha256=gpdBcJxSXG8hp34JWdTQHrKT2pXeuBGAF503zCXLyEs,308
832
- meta_subject/locale/sw/LC_MESSAGES/django.po,sha256=pLMlxQZ-mLbdieZ_xevY7g1kHRRooEYClJAL5q46eKs,5685
839
+ meta_subject/locale/lg/LC_MESSAGES/django.po,sha256=rENk0A-EfLRxdK5GR05BBr7reDnp7bNy5Ton7PCtX48,11016
840
+ meta_subject/locale/sw/LC_MESSAGES/django.po,sha256=kLgzLiTOTu6Rf8J5kmFH_R9MlPWvpVSwz4g9Rl2CdOw,11063
833
841
  meta_subject/management/commands/create_missing_refills.py,sha256=IkxEOV2AHl2FYhLDtiWmiK0SoAcGFz24pLUXjNpFAAA,2432
834
842
  meta_subject/management/commands/create_missing_rx.py,sha256=jAqgz9yxhaEL1XBN9FqM-5cPv1TpNtL4XdltLPArOEA,1463
835
843
  meta_subject/management/commands/missed.py,sha256=qTHggBxlJWcEF_V4cGtxe93UJXlaW-ON6m1SOpJzmgg,8209
836
844
  meta_subject/metadata_rules/__init__.py,sha256=U8fKGiHsbSWW27dWbTp2A2pCmdcFgybbJDhazP591cE,53
837
845
  meta_subject/metadata_rules/metadata_rules.py,sha256=Pe7YK1Ss9P_0vi75ImqC0eaOi3rgEGYeukanVzyXXAY,3981
838
- meta_subject/metadata_rules/predicates.py,sha256=wDFN3-kj97jFq3PznYu1tVNAox4YdJtEGBbYbEyVmIA,8140
846
+ meta_subject/metadata_rules/predicates.py,sha256=QAaguLepmT9DQnF3TdXvdLZk0dBF7skGsZw1KnjG31g,9214
839
847
  meta_subject/migrations/0001_initial.py,sha256=UHMfeHsfaGWg97-gMxfcmD4_-xDnrj-cslhT_mZQdZw,408932
840
848
  meta_subject/migrations/0002_auto_20191021_0353.py,sha256=ekA3FFPdsAGmqWt2wrwQahzuwTE98e1VZLouXbZocrY,29351
841
849
  meta_subject/migrations/0003_auto_20191021_0534.py,sha256=Ye9au73hXxbvd1tBmrafin20NPWUZfhxj50x4S-tYqk,4024
@@ -1049,6 +1057,8 @@ meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py,sha256=_
1049
1057
  meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py,sha256=e5lG4G_F4uPR862lOvR_rACONzyMpg5duH-39QXAxLA,1615
1050
1058
  meta_subject/migrations/0212_auto_20240827_2222.py,sha256=ClHxTDTE9Ft6w8qT2LMSfDkbQko_aAKO8ULQvAIB-2E,772
1051
1059
  meta_subject/migrations/0213_rename_bloodresultslipid_bloodresultslipids_and_more.py,sha256=51UvT_rl0R2phHX0-QCdJqIPbfDcWzVMWdONwhWQ7Ws,1129
1060
+ meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py,sha256=Mzz4aPKvLeANXy9osTlefXXqbi-VwTA1SOBewkTLZ1I,1422
1061
+ meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py,sha256=bUPpZPSwmRGnXOdd6kw1fmkGPEHdA0SWQ_P6wMtKyvI,1580
1052
1062
  meta_subject/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1053
1063
  meta_subject/model_mixins/__init__.py,sha256=6DdDDOwDdagrz6Q7X9lxuAVszsFWFhwPqLz4JOD85Wo,286
1054
1064
  meta_subject/model_mixins/arv_history_model_mixin.py,sha256=6ILacF2koyYmwZIFHmmQO1uIT1eWzrahXxhAlxpQiX0,2898
@@ -1116,11 +1126,11 @@ meta_subject/tests/tests/test_fixes.py,sha256=2jOB0lcEonJft5rWEbrDEtGCuGLaaUN8zA
1116
1126
  meta_subject/tests/tests/test_followup.py,sha256=rembohm-ecEp9rGFdjc2CkvXGfYZ8A8BOX0MdBBZSF0,1871
1117
1127
  meta_subject/tests/tests/test_manager_order.py,sha256=wmVxMd85mJ6HGAL_3Z_mSp_mqeNQvK7MW_6mvQPDeO8,454
1118
1128
  meta_subject/tests/tests/test_medication_adherence.py,sha256=o-4vTFx4GdYBS_lWiKpycA8IOce9nTB1_7vAl4HAKhI,2517
1119
- meta_subject/tests/tests/test_metadata_rules.py,sha256=LUBYByb9t9dClj_LKzHA-WpHQba56KwRqpr7BaCVbNI,5717
1120
- meta_subject/tests/tests/test_mnsi.py,sha256=wXEKfPsS05HzAtJc14VjXNBG02px6hVEGgzvO_Nn8Dg,9964
1129
+ meta_subject/tests/tests/test_metadata_rules.py,sha256=4mSQVXf4EteDUUjrRkpKhOzDukEBC1M9IXkyg0MEAOA,5712
1130
+ meta_subject/tests/tests/test_mnsi.py,sha256=wAXHGupWJh-7vSNyeYyT1F4n6JNZFCIfDKs-M_XuPzQ,13585
1121
1131
  meta_subject/tests/tests/test_patient_history_form.py,sha256=JzqCx_-g2jeknngGl94FhZNVCl0CfnWIAZ9R11y7-wY,2827
1122
1132
  meta_subject/tests/tests/test_physical_exam.py,sha256=U3TKOPWTVu8iXxsS8LGgJJEY8e2sKJ5iTBcIWIHKCAo,2947
1123
- meta_subject/tests/tests/test_sf12.py,sha256=8FMdZGG-boyu3zs37kLR8M2Wf7Xf0MevHYlQLX5Odgs,7330
1133
+ meta_subject/tests/tests/test_sf12.py,sha256=5Daf-R4EeLjfDpsC5PZELfPIqY--joGzrj8nPVUiatI,6837
1124
1134
  meta_subject/tests/tests/test_study_medication.py,sha256=EFvAvjxJ1c0Bk-vi6S8ejf9Q5UsQ8c0PSTw9l-1iHvo,10161
1125
1135
  meta_visit_schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1126
1136
  meta_visit_schedule/apps.py,sha256=Uy3glJJ3-yCcXZ_MvhDEzxVxQbBuCTsZxLNmd5p1DHw,164
@@ -1133,7 +1143,7 @@ meta_visit_schedule/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
1133
1143
  meta_visit_schedule/tests/tests/test_schedule.py,sha256=858fXo-PvbppgIsCAGll05fqnuWW6f-vMIwnvRLZgnc,7351
1134
1144
  meta_visit_schedule/visit_schedules/__init__.py,sha256=j0Q8tAGhHHbFBd3R-iLRy4QB47WgtucWG7xCLLfVvFU,339
1135
1145
  meta_visit_schedule/visit_schedules/phase_three/__init__.py,sha256=18ken4S10X0dkEFHj1EFO2M4xblXD04cjfhzIEkhYUQ,74
1136
- meta_visit_schedule/visit_schedules/phase_three/crfs.py,sha256=Gi9H3RmgNbrtgNCkDwkV3EXnE0Drct8dpsVA5AQhoFs,15402
1146
+ meta_visit_schedule/visit_schedules/phase_three/crfs.py,sha256=mPfCfbwvTyWNBwZWX3_sOw6-GAAYhIydZvIElWYjhVk,16060
1137
1147
  meta_visit_schedule/visit_schedules/phase_three/crfs_pregnancy.py,sha256=_I6IVLMC3-KlpI86eii790mlx-p2vxWxvNRKD927rXo,169
1138
1148
  meta_visit_schedule/visit_schedules/phase_three/requisitions.py,sha256=Noeki8zX2MCwQVmCCWfuOyh_aN4YC-cyhUmrAZP8d5g,4579
1139
1149
  meta_visit_schedule/visit_schedules/phase_three/schedule.py,sha256=J91AMawOdKWLJz_WAH897PJYr8264_Q_b8pZhI0Pj38,8228
@@ -1142,7 +1152,7 @@ meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py,sha256=0V2
1142
1152
  meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py,sha256=ak4qazeKlpIlvpqrK9hDDO0fwWuWyvb4Ec-JU31IJxc,654
1143
1153
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1144
1154
  tests/holidays.csv,sha256=LIEIm79wHRzbfXcFW_2ogFOYEZaWEGF1hwgOzZy2y34,538
1145
- tests/test_settings.py,sha256=US_2IOowZ_mE_yGtRzsAcCBXQXSrvKCbfETEUR0ncHA,7100
1155
+ tests/test_settings.py,sha256=4RE06P5s2RtXxR1uLogyjvuuLtf5ZPh758MpBg1BRco,7221
1146
1156
  tests/etc/randomization_list.csv,sha256=oYkac2c8AHo0gE72kjwmQ9rXNz-3EU8RKrUM3rqNk9s,5307
1147
1157
  tests/etc/randomization_list_phase_three.csv,sha256=ZPPKcePnt6BlpDkIXX6DCOAbowLzIFrgnYS8-pfForA,5794
1148
1158
  tests/etc/user-aes-local.key,sha256=qA7Oe6D5yFUSM4ZORzkrzzONedbP28MhtflyW0HAjDY,256
@@ -1153,9 +1163,9 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
1153
1163
  tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
1154
1164
  tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
1155
1165
  tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
1156
- meta_edc-0.3.38.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1157
- meta_edc-0.3.38.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1158
- meta_edc-0.3.38.dist-info/METADATA,sha256=7pQ_LETLSQ6O_1bbVxu21m_GUXdMm4Ef251Z1Fd_d7g,43436
1159
- meta_edc-0.3.38.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
1160
- meta_edc-0.3.38.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1161
- meta_edc-0.3.38.dist-info/RECORD,,
1166
+ meta_edc-0.3.40.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1167
+ meta_edc-0.3.40.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1168
+ meta_edc-0.3.40.dist-info/METADATA,sha256=VQe8G_-Y-Iy0xli87MoKXUZxDcROe4qyFGljtnm0Ooo,43529
1169
+ meta_edc-0.3.40.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1170
+ meta_edc-0.3.40.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1171
+ meta_edc-0.3.40.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,3 +1,2 @@
1
- from .lot_number_admin import LotNumberAdmin
2
1
  from .rx_admin import RxAdmin
3
2
  from .substitutions_admin import SubstitutionsAdmin
@@ -2,4 +2,8 @@ from edc_model_admin.admin_site import EdcAdminSite
2
2
 
3
3
  from .apps import AppConfig
4
4
 
5
- meta_pharmacy_admin = EdcAdminSite(name="meta_pharmacy_admin", app_label=AppConfig.name)
5
+ meta_pharmacy_admin = EdcAdminSite(
6
+ name="meta_pharmacy_admin",
7
+ app_label=AppConfig.name,
8
+ keep_delete_action=True,
9
+ )
meta_pharmacy/apps.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from django.apps import AppConfig as DjangoAppConfig
2
2
  from django.db.models.signals import post_migrate
3
3
  from django_extensions.management.color import color_style
4
+ from edc_list_data import site_list_data
4
5
 
5
6
  from .prepare_meta_pharmacy import prepare_meta_pharmacy
6
7
 
@@ -9,6 +10,7 @@ style = color_style()
9
10
 
10
11
  def post_migrate_populate_pharmacy_models(sender=None, **kwargs): # noqa
11
12
  """Create or update pharmacy static models."""
13
+ site_list_data.load_data()
12
14
  prepare_meta_pharmacy()
13
15
 
14
16
 
@@ -0,0 +1,2 @@
1
+ from .rx_form import RxForm
2
+ from .substitutions_form import SubstitutionsForm
@@ -0,0 +1,16 @@
1
+ from django import forms
2
+
3
+ from ..models import Rx
4
+
5
+
6
+ class RxForm(forms.ModelForm):
7
+
8
+ subject_identifier = forms.CharField(
9
+ label="Subject Identifier",
10
+ required=False,
11
+ widget=forms.TextInput(attrs={"readonly": "readonly"}),
12
+ )
13
+
14
+ class Meta:
15
+ model = Rx
16
+ fields = "__all__"
@@ -9,7 +9,7 @@ from edc_sites.forms import SiteModelFormMixin
9
9
 
10
10
  from meta_rando.models import RandomizationList
11
11
 
12
- from .models import Rx, Substitutions
12
+ from ..models import Rx, Substitutions
13
13
 
14
14
 
15
15
  class SubstitutionsFormValidator(PrnFormValidatorMixin, FormValidator):
@@ -52,16 +52,3 @@ class SubstitutionsForm(
52
52
  class Meta:
53
53
  model = Substitutions
54
54
  fields = "__all__"
55
-
56
-
57
- class RxForm(forms.ModelForm):
58
-
59
- subject_identifier = forms.CharField(
60
- label="Subject Identifier",
61
- required=False,
62
- widget=forms.TextInput(attrs={"readonly": "readonly"}),
63
- )
64
-
65
- class Meta:
66
- model = Rx
67
- fields = "__all__"
@@ -0,0 +1,30 @@
1
+ from edc_pharmacy.labels import (
2
+ draw_bulk_stock_label_code128,
3
+ draw_vertical_barcode_only_code128,
4
+ )
5
+ from edc_pylabels.site_label_configs import site_label_configs
6
+
7
+ from .labels import draw_label_for_subject_with_code128, draw_label_with_test_data
8
+
9
+ # create a label class to pass instead of a model
10
+
11
+ site_label_configs.register(
12
+ "stock_vertical_barcode",
13
+ draw_vertical_barcode_only_code128,
14
+ "edc_pharmacy.stock",
15
+ test_data_func=draw_label_with_test_data,
16
+ )
17
+
18
+ site_label_configs.register(
19
+ "stock_bulk_barcode",
20
+ draw_bulk_stock_label_code128,
21
+ "edc_pharmacy.stock",
22
+ test_data_func=draw_label_with_test_data,
23
+ )
24
+
25
+ site_label_configs.register(
26
+ "patient_barcode",
27
+ draw_label_for_subject_with_code128,
28
+ "edc_pharmacy.stock",
29
+ test_data_func=draw_label_with_test_data,
30
+ )
@@ -1,2 +1,5 @@
1
- from .get_label_data import get_label_data
2
- from .print_sheets import print_sheets
1
+ from .draw_label_for_subject_with_code128 import draw_label_for_subject_with_code128
2
+ from .draw_label_with_test_data import draw_label_with_test_data
3
+
4
+ # from .label_data import LabelData
5
+ # from .print_sheets import print_sheets
@@ -0,0 +1,58 @@
1
+ from edc_pharmacy.models import Stock
2
+ from edc_pharmacy.utils import format_qty
3
+ from edc_sites.site import sites as site_sites
4
+ from reportlab.graphics.shapes import Drawing, Group, String
5
+ from reportlab.pdfbase.pdfmetrics import stringWidth
6
+
7
+
8
+ def draw_label_for_subject_with_barcode(
9
+ barcode_cls,
10
+ barcode_opts: dict,
11
+ label: Drawing,
12
+ width: int | float,
13
+ height: int | float,
14
+ obj: Stock,
15
+ ) -> Drawing:
16
+ """Callable to draw a single study medication label given a model
17
+ instance `obj`
18
+ """
19
+ try:
20
+ single_site = site_sites.get(
21
+ obj.allocation.stock_request_item.stock_request.location.site.id
22
+ )
23
+ except AttributeError:
24
+ label.add(String(15, height - 20, "Error: Unable to generate label", fontSize=10))
25
+ label.add(String(15, height - 40, str(obj.code), fontSize=10))
26
+ label.add(String(15, height - 60, str(obj.location), fontSize=10))
27
+ else:
28
+ br = barcode_cls(**barcode_opts)
29
+ br.value = obj.code
30
+ br.x = width - 110
31
+ br.y = 40
32
+ label.add(br)
33
+
34
+ label.add(String(15, height - 35, single_site.title, fontSize=10))
35
+
36
+ label.add(String(15, height - 20, "META III Study", fontSize=12))
37
+ label.add(String(15, height - 55, "Dawa kwa ajili ya utafiti", fontSize=10))
38
+ label.add(String(15, height - 67, "wa META III.", fontSize=10))
39
+ label.add(String(15, height - 79, "Meza vidonge vinne usiku tu.", fontSize=10))
40
+
41
+ text_group = Group()
42
+ subject_identifier = (
43
+ obj.allocation.registered_subject.subject_identifier or "999-99-99999-9"
44
+ )
45
+ text_width = stringWidth(subject_identifier, "Helvetica", 12)
46
+ text_string = String(
47
+ width - text_width - 10, height - 20, subject_identifier, fontSize=12
48
+ )
49
+ text_group.add(text_string)
50
+
51
+ qty_text = f"{format_qty(obj.container.qty, obj.container)} tabs"
52
+ text_width = stringWidth(qty_text, "Helvetica", 10)
53
+ text_string = String(width - text_width - 10, height - 95, qty_text, fontSize=10)
54
+ text_group.add(text_string)
55
+
56
+ label.add(text_group)
57
+
58
+ return label
@@ -0,0 +1,14 @@
1
+ from reportlab.graphics.barcode.widgets import BarcodeCode128
2
+ from reportlab.graphics.shapes import Drawing
3
+
4
+ from .draw_label_for_subject_with_barcode import draw_label_for_subject_with_barcode
5
+
6
+
7
+ def draw_label_for_subject_with_code128(*args) -> Drawing:
8
+ barcode_opts = dict(
9
+ humanReadable=True,
10
+ barHeight=30,
11
+ barWidth=0.7,
12
+ gap=1.7,
13
+ )
14
+ return draw_label_for_subject_with_barcode(BarcodeCode128, barcode_opts, *args)
@@ -0,0 +1,26 @@
1
+ from django.apps import apps as django_apps
2
+ from edc_utils import get_utcnow
3
+
4
+
5
+ def draw_label_with_test_data() -> dict:
6
+ receive_model_cls = django_apps.get_model("edc_pharmacy.receive")
7
+ receive_item_model_cls = django_apps.get_model("edc_pharmacy.receiveitem")
8
+ location_model_cls = django_apps.get_model("edc_pharmacy.location")
9
+ lot_model_cls = django_apps.get_model("edc_pharmacy.lot")
10
+ container_type_model_cls = django_apps.get_model("edc_pharmacy.containertype")
11
+ container_model_cls = django_apps.get_model("edc_pharmacy.container")
12
+ container_type = container_type_model_cls(name="bottle")
13
+ container = container_model_cls(
14
+ name="bottle of 128", container_type=container_type, qty=128
15
+ )
16
+ return dict(
17
+ subject_identifier="999-99999-9",
18
+ code="A9B8C7",
19
+ location=location_model_cls.objects.filter(site__isnull=False).first(),
20
+ container=container,
21
+ lot=lot_model_cls(lot_no="999999999", expiration_date=get_utcnow().date()),
22
+ receive_item=receive_item_model_cls(
23
+ receive=receive_model_cls(receive_identifier="99999999"),
24
+ receive_item_identifier="99999999",
25
+ ),
26
+ )
@@ -0,0 +1,14 @@
1
+ import random
2
+ import string
3
+
4
+
5
+ class LabelData:
6
+
7
+ def __init__(self):
8
+ self.subject_identifier = "999-99-9999-9" # nosec B311
9
+ self.reference = "".join(
10
+ random.choices(string.ascii_letters.upper() + "23456789", k=6) # nosec B311
11
+ )
12
+ self.sid = "12345"
13
+ self.site_name = "AMANA"
14
+ self.pills_per_bottle = 128