meta-edc 0.3.38__py3-none-any.whl → 0.3.39__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.
- meta_analytics/__init__.py +0 -2
- meta_analytics/dataframes/__init__.py +1 -0
- meta_analytics/dataframes/get_last_imp_visits_df.py +101 -0
- meta_auth/auth_objects.py +1 -0
- meta_consent/consents.py +6 -0
- meta_consent/locale/lg/LC_MESSAGES/django.po +69 -0
- meta_consent/locale/sw/LC_MESSAGES/django.po +12 -12
- meta_dashboard/locale/lg/LC_MESSAGES/django.po +30 -0
- meta_dashboard/locale/sw/LC_MESSAGES/django.po +11 -2
- meta_dashboard/navbars.py +2 -0
- meta_dashboard/tests/urls.py +0 -1
- meta_dashboard/view_utils/subject_screening_button.py +2 -2
- meta_edc/__init__.py +3 -10
- meta_edc/{celery/debug.py → celery.py} +2 -2
- meta_edc/navbars.py +2 -0
- meta_edc/settings/debug.py +4 -0
- meta_edc/settings/defaults.py +29 -16
- meta_edc/templates/meta_edc/bootstrap3/home.html +1 -1
- meta_edc/urls.py +1 -0
- {meta_edc-0.3.38.dist-info → meta_edc-0.3.39.dist-info}/METADATA +6 -6
- {meta_edc-0.3.38.dist-info → meta_edc-0.3.39.dist-info}/RECORD +70 -59
- {meta_edc-0.3.38.dist-info → meta_edc-0.3.39.dist-info}/WHEEL +1 -1
- meta_pharmacy/admin/__init__.py +0 -1
- meta_pharmacy/admin/actions.py +38 -0
- meta_pharmacy/admin_site.py +5 -1
- meta_pharmacy/apps.py +2 -0
- meta_pharmacy/forms/__init__.py +2 -0
- meta_pharmacy/forms/rx_form.py +16 -0
- meta_pharmacy/{forms.py → forms/substitutions_form.py} +1 -14
- meta_pharmacy/label_configs.py +30 -0
- meta_pharmacy/labels/__init__.py +3 -1
- meta_pharmacy/labels/draw_label_for_subject_with_barcode.py +58 -0
- meta_pharmacy/labels/draw_label_for_subject_with_code128.py +14 -0
- meta_pharmacy/labels/draw_label_with_test_data.py +26 -0
- meta_pharmacy/labels/label_data.py +14 -0
- meta_pharmacy/labels/print_sheets.py +22 -11
- meta_pharmacy/list_data.py +8 -0
- meta_pharmacy/management/commands/__init__.py +0 -0
- meta_pharmacy/management/commands/update_initial_pharmacy_data.py +10 -0
- meta_pharmacy/migrations/0002_initial.py +7 -5
- meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py +390 -0
- meta_pharmacy/migrations/0009_remove_historicalrx_slug.py +17 -0
- meta_pharmacy/models/__init__.py +1 -2
- meta_pharmacy/models/label_data.py +38 -0
- meta_pharmacy/models/{label.py → rx_label.py} +8 -19
- meta_pharmacy/utils/__init__.py +1 -0
- meta_pharmacy/utils/update_initial_pharmacy_data.py +146 -0
- meta_prn/admin/pregnancy_notification_admin.py +6 -2
- meta_reports/admin/__init__.py +1 -0
- meta_reports/admin/dbviews/glucose_summary_admin.py +1 -1
- meta_reports/admin/last_imp_refill_admin.py +181 -0
- meta_reports/migrations/0052_lastimpvisit.py +57 -0
- meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py +31 -0
- meta_reports/models/__init__.py +1 -0
- meta_reports/models/last_imp_refill.py +34 -0
- meta_subject/admin/study_medication_admin.py +10 -0
- meta_subject/forms/study_medication_form.py +35 -0
- meta_subject/locale/lg/LC_MESSAGES/django.po +470 -0
- meta_subject/locale/sw/LC_MESSAGES/django.po +191 -89
- meta_subject/metadata_rules/predicates.py +34 -7
- meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py +44 -0
- meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py +46 -0
- meta_subject/tests/tests/test_mnsi.py +180 -113
- meta_visit_schedule/visit_schedules/phase_three/crfs.py +18 -6
- tests/test_settings.py +4 -1
- meta_edc/celery/__init__.py +0 -2
- meta_edc/celery/live.py +0 -17
- meta_edc/celery/uat.py +0 -17
- meta_pharmacy/admin/lot_number_admin.py +0 -43
- meta_pharmacy/labels/get_label_data.py +0 -30
- meta_pharmacy/models/lot_number.py +0 -25
- meta_reports/models/unmanaged/README +0 -14
- meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.py +0 -26
- meta_reports/models/unmanaged/patient_history_missing_baseline_cd4.sql +0 -10
- meta_reports/models/unmanaged/unattended_three_in_row.py +0 -24
- meta_reports/models/unmanaged/unattended_three_in_row.sql +0 -19
- meta_reports/models/unmanaged/unattended_three_in_row2.py +0 -24
- meta_reports/models/unmanaged/unattended_three_in_row2.sql +0 -39
- meta_reports/models/unmanaged/unattended_two_in_row.py +0 -22
- meta_reports/models/unmanaged/unattended_two_in_row.sql +0 -19
- {meta_reports/models/unmanaged → meta_edc/migrations}/__init__.py +0 -0
- {meta_edc-0.3.38.dist-info → meta_edc-0.3.39.dist-info}/AUTHORS +0 -0
- {meta_edc-0.3.38.dist-info → meta_edc-0.3.39.dist-info}/LICENSE +0 -0
- {meta_edc-0.3.38.dist-info → meta_edc-0.3.39.dist-info}/top_level.txt +0 -0
- /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=
|
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=
|
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=
|
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=
|
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/
|
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=
|
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/
|
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
|
@@ -192,10 +195,10 @@ meta_dashboard/templatetags/meta_dashboard_extras.py,sha256=d_jtyuxSbIhSpKkA5uI5
|
|
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=
|
198
|
+
meta_dashboard/tests/urls.py,sha256=FJlQvMLAMbR7UBW2Kl6VQXW9XmYOvqXnZJ4SeQh535E,2674
|
196
199
|
meta_dashboard/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
197
200
|
meta_dashboard/view_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
198
|
-
meta_dashboard/view_utils/subject_screening_button.py,sha256=
|
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,35 +214,33 @@ 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=
|
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=
|
222
|
-
meta_edc/urls.py,sha256=
|
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
|
236
|
-
meta_edc/settings/defaults.py,sha256=
|
236
|
+
meta_edc/settings/debug.py,sha256=BAM92tixl3zuBypdK2aiBrAnQJTXH_X1HbxLj1m-jZI,1152
|
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=
|
243
|
+
meta_edc/templates/meta_edc/bootstrap3/home.html,sha256=7dZi4nPEslUm6WwAmE_ow-BT9sOyxRefMmk1PU_4Ez0,4588
|
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
246
|
meta_edc/tests/tests/test_endpoints.py,sha256=Vo7rOuBUqCwVWBLSPgwRBqiyU6o4Wc-7Em84PBwFJw0,23497
|
@@ -290,33 +291,46 @@ 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=
|
294
|
-
meta_pharmacy/apps.py,sha256=
|
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/
|
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=
|
300
|
-
meta_pharmacy/admin/
|
301
|
-
meta_pharmacy/admin/lot_number_admin.py,sha256=q35jVWzqyqup_NtLUa0b_c3_3H3S30U5DroCdbGkyy0,981
|
301
|
+
meta_pharmacy/admin/__init__.py,sha256=ZnYHFOt9xatSSEhPoGtWC6zCvsaygIJX3qJy7iZ9qWk,82
|
302
|
+
meta_pharmacy/admin/actions.py,sha256=wRVN7mmZDT0w8FpBLPPZhkTc72WFFd-xGxzsFpcm5Fs,1314
|
302
303
|
meta_pharmacy/admin/rx_admin.py,sha256=SQGsugSnhbU3YUk_ssSTMmCH6no8ZkHoqLLkbZbBbk0,1851
|
303
304
|
meta_pharmacy/admin/substitutions_admin.py,sha256=N2WcuC4REAEX0zrNqQHsPbZI82I4T5UM7EP-ohDOSSI,1934
|
304
|
-
meta_pharmacy/
|
305
|
-
meta_pharmacy/
|
306
|
-
meta_pharmacy/
|
305
|
+
meta_pharmacy/forms/__init__.py,sha256=5d28GOPegzZ9ptI-tVx_E19yPTrJ_wQh16xr9ivmS6M,78
|
306
|
+
meta_pharmacy/forms/rx_form.py,sha256=zqt45XGAv2Zj4p7k-CDGUHF0LKoeYnncHJBZ3MmN4qI,319
|
307
|
+
meta_pharmacy/forms/substitutions_form.py,sha256=f37xagh6D00w3iu6zvh45UWX_L9oD0FsW_0fTsB7540,1894
|
308
|
+
meta_pharmacy/labels/__init__.py,sha256=2HgWs6k0cwsAEbwazzorAW-T00238zNBJ111TxM5Gso,223
|
309
|
+
meta_pharmacy/labels/draw_label_for_subject_with_barcode.py,sha256=RWJDIoiHZQp8e5N2LEW2Mu8qwI6qAkxfOPALf52TlZI,2155
|
310
|
+
meta_pharmacy/labels/draw_label_for_subject_with_code128.py,sha256=dK1F_N91Fhw8rtKi3GWRjbYw5V-XfOjzpF2UDBsE65M,459
|
311
|
+
meta_pharmacy/labels/draw_label_with_test_data.py,sha256=KQeQZEka3-2FL1hLIr7Sn9XQX6eXLOOJUlbS612AORA,1188
|
312
|
+
meta_pharmacy/labels/label_data.py,sha256=K6kgU3oc8n8NNJLjUZUbvyXakx38V1QL1GgOgWCMzZw,365
|
313
|
+
meta_pharmacy/labels/print_sheets.py,sha256=a-qMddeIwY9YIZonBkRXtbxUKBCuMo4FylvIbBeTJc4,2771
|
314
|
+
meta_pharmacy/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
315
|
+
meta_pharmacy/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
316
|
+
meta_pharmacy/management/commands/update_initial_pharmacy_data.py,sha256=g6_TxYzkqpKLMHORcitQZzjEAb12tezFHKwzS16BzbA,241
|
307
317
|
meta_pharmacy/migrations/0001_initial.py,sha256=2uyWhZ-Qkjum1gJJA5v-BWUdpmKhkf8BcuDQMl8895s,1115
|
308
|
-
meta_pharmacy/migrations/0002_initial.py,sha256=
|
318
|
+
meta_pharmacy/migrations/0002_initial.py,sha256=SrbCf6knF3Q_qTzh59wrAiQBhobJf3VjkktoRMlsPDs,27397
|
309
319
|
meta_pharmacy/migrations/0003_auto_20240909_2335.py,sha256=_hbzV6HaBm-VS_jQMhl3w5srvyaYOQclLBvr_8f79uk,2227
|
310
320
|
meta_pharmacy/migrations/0004_alter_historicalsubstitutions_report_datetime_and_more.py,sha256=33SpQ4UtFs3gblj4WG3KtKtalo8Wynv3uyUOqBe7_Zo,585
|
311
321
|
meta_pharmacy/migrations/0005_auto_20240911_0352.py,sha256=ZwjFlBX_ubNDbTnDny7cvgCb4aSiqhVKhTYDWd6oQmg,534
|
312
322
|
meta_pharmacy/migrations/0006_lotnumber_label.py,sha256=hdxvRC-v6appuLFzBJg-PAY30qgkdA_XdAZP6mwq7Mo,11279
|
313
323
|
meta_pharmacy/migrations/0007_lotnumber_medication.py,sha256=uTR_ZYm22n8C1uiWJGfWgtEcYBQ8DdEGvNhQAH_PqNA,646
|
324
|
+
meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py,sha256=Wqm3ekvrwEgxo9IqWE6QvUkoB9la9Y6TFd0vVQ4PuA0,15420
|
325
|
+
meta_pharmacy/migrations/0009_remove_historicalrx_slug.py,sha256=_f0fDBxRCZeB9irk0KouqPgeJljq41dXr2TBmTNPTXs,356
|
314
326
|
meta_pharmacy/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
315
|
-
meta_pharmacy/models/__init__.py,sha256=
|
316
|
-
meta_pharmacy/models/
|
317
|
-
meta_pharmacy/models/lot_number.py,sha256=JUT-TXsM_2U3UO6VDz7D10WTNupIjYYAlBVBlzi2VmU,693
|
327
|
+
meta_pharmacy/models/__init__.py,sha256=KToZJXSsHyBIN-o7Qzpuxt7I79DsPkp3T9iRg8Ycle8,105
|
328
|
+
meta_pharmacy/models/label_data.py,sha256=dV8fpmJ6QpKidHVRfN3IdWEciEGQch8Q8jqJgqkqzFg,1442
|
318
329
|
meta_pharmacy/models/rx.py,sha256=cx0T9j2Vb-6tEotWA7ohsn2OGHnQpxiFQnu7__hx7Ts,379
|
330
|
+
meta_pharmacy/models/rx_label.py,sha256=iBqy3c-DvoPnw1g8BAVGQcY5OpI9Ie2YT78rYY0G7WM,1202
|
319
331
|
meta_pharmacy/models/substitutions.py,sha256=9FjjD4x66B8SxABZR5atan2S5uE4nJH0tn0ujB4xEbA,3071
|
332
|
+
meta_pharmacy/utils/__init__.py,sha256=PiPRCZqgxPiudXWEvQmXOqFZMoj56NEiOeRuYEyE_9w,71
|
333
|
+
meta_pharmacy/utils/update_initial_pharmacy_data.py,sha256=Od0QL41unsDEGDBYsVCe8k-T3GpMae0DtHt61vz4sYM,4621
|
320
334
|
meta_prn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
321
335
|
meta_prn/action_items.py,sha256=wz6X7Ve8ibqPBO5kB6S9rYYkWfx8JxsoYRVppzIGAzk,9110
|
322
336
|
meta_prn/admin_site.py,sha256=E4dJ6ofu9Kp-1SIWIuY3PraVPbEJSWBBqhorJPGUNqU,161
|
@@ -338,7 +352,7 @@ meta_prn/admin/offschedule_postnatal_admin.py,sha256=SpLsX75Q01mqKTSGKXoQ1EKUzYm
|
|
338
352
|
meta_prn/admin/offschedule_pregnancy_admin.py,sha256=XHM-1EmQ6gzKL7AOf0NlMM_Pn6XOK9TtTSq36HjFY4U,1703
|
339
353
|
meta_prn/admin/onschedule_admin.py,sha256=GX4_wSqMDtQdB_x3nhodaDZ_E3d8kPPy-Yprpp6BJOk,1440
|
340
354
|
meta_prn/admin/onschedule_dm_referral_admin.py,sha256=gfWE-NpHC4ICjKb1Fhb5XZUQ5syTp0s0_9IU1-ZTp0k,1470
|
341
|
-
meta_prn/admin/pregnancy_notification_admin.py,sha256=
|
355
|
+
meta_prn/admin/pregnancy_notification_admin.py,sha256=fIAbpU1QEVAGeewxc2xcRu7aipz0srjzRNxPv7ZZrR8,2284
|
342
356
|
meta_prn/admin/protocol_incident_admin.py,sha256=fTlYJAxsrPDB8skZc-_2DxKH21k_cG7UH7wCgnviBck,739
|
343
357
|
meta_prn/admin/subject_transfer_admin.py,sha256=YKViIZLAaAquiN5RO-V6lRoGP76bYwcb_EA5QTEeI2Y,723
|
344
358
|
meta_prn/form_validators/__init__.py,sha256=ROZbWrtQ4dLCwy-aeBcOh0mnYm12qFrvUWzV-BkGvTU,111
|
@@ -455,13 +469,14 @@ meta_reports/pdf_report.py,sha256=9lWnRc_BNieDFXC4VgA0QHK6g_ct58u8tupPRsbRvV0,23
|
|
455
469
|
meta_reports/tasks.py,sha256=wPzfm99Hox1AIvt1KxYg1r6g9v8ta2AHOHesoN6AxEk,370
|
456
470
|
meta_reports/urls.py,sha256=_c6AMrK4U5MsyFSU2JSPNfiZlbhuw24C7CyPNYpqGd0,206
|
457
471
|
meta_reports/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
458
|
-
meta_reports/admin/__init__.py,sha256=
|
472
|
+
meta_reports/admin/__init__.py,sha256=om3lFa4YxsZSNlYIi2sZv8li2irOMoSeBtOpPk4V3lk,488
|
459
473
|
meta_reports/admin/endpoints_admin.py,sha256=7wZCdC-D-QHI1bb_ucgyDZYlnYD7mWtcZpcH_LftkLs,514
|
460
474
|
meta_reports/admin/endpoints_all_admin.py,sha256=_czdezZf9fSjwZJmO-3HbmdXrXP6nk8-HdiweqUzPRE,476
|
475
|
+
meta_reports/admin/last_imp_refill_admin.py,sha256=iXXRHQa9irNWs3N6wkw-7fF4ZCyh-5mEaLRlYXOpZL0,6719
|
461
476
|
meta_reports/admin/list_filters.py,sha256=pByBzz9-qGwqBfdZFlByxJUZDTJQXOTWfNLjmK8KF00,870
|
462
477
|
meta_reports/admin/modeladmin_mixins.py,sha256=tEZYw0xNMfBvo2RLDrYfi_S9lbZU02dwtLxdRDZob4Q,3663
|
463
478
|
meta_reports/admin/dbviews/__init__.py,sha256=2yPu0SO7ZX9yjan0OS9izzws14YYoXcGXmZhwJhax1I,675
|
464
|
-
meta_reports/admin/dbviews/glucose_summary_admin.py,sha256=
|
479
|
+
meta_reports/admin/dbviews/glucose_summary_admin.py,sha256=ASvYcPIKJ0sLkRT-rwxkcpLPN36XVRs6wUg6msOaA9Y,4001
|
465
480
|
meta_reports/admin/dbviews/imp_substitutions_admin.py,sha256=-poOw3fJK7jQERB1PNXNDrWNthwEQpiwmrxoWOsDtjI,3622
|
466
481
|
meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py,sha256=XyroEqxlX816xrdi0IVSelNPxPBWi96niKa-MQVGkck,2058
|
467
482
|
meta_reports/admin/dbviews/unattended_three_in_row2_admin.py,sha256=0r13KRr0gsH2osmSlffRV11SpSBpWM612AYl-GOoYm0,1347
|
@@ -530,10 +545,13 @@ meta_reports/migrations/0048_auto_20240909_2338.py,sha256=mYAOUzJohv9eW9y93fpZTm
|
|
530
545
|
meta_reports/migrations/0049_auto_20240911_0327.py,sha256=APBkFY9kwzEmhTXkK2-bu6csikh_dVEMH6t2dv_Iz9M,4760
|
531
546
|
meta_reports/migrations/0050_alter_endpoints_created.py,sha256=nqNIgK_cek2gtEhopdy0Sm1HuIjL3-PscYPN16ma474,439
|
532
547
|
meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py,sha256=jq5N4un7QTCLe54WKJjfCL32X_QnyCiDRV3spwgseJI,1053
|
548
|
+
meta_reports/migrations/0052_lastimpvisit.py,sha256=MWQhY3-2RGjB8k-cuiEVbWxeYNL7QfbngyaWIGgEsU4,2231
|
549
|
+
meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py,sha256=XYb3V0JQ0877DhaAaR0PxzPHdeBmmR_NQLJaGSzfHAI,887
|
533
550
|
meta_reports/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
534
|
-
meta_reports/models/__init__.py,sha256=
|
551
|
+
meta_reports/models/__init__.py,sha256=2F-4CS39Pu2LijF8ZkSn2nE3Lps3YEC9ZcBtNnmNXjI,423
|
535
552
|
meta_reports/models/endpoints.py,sha256=iMx8QIi_hLANIwZmAw1OJ_jPuDdml8s181Skh8UF9bM,901
|
536
553
|
meta_reports/models/endpoints_proxy.py,sha256=3h3JGaPmnJedFPVWGrk4idV4YtdihqiCI5W7QomwG4E,318
|
554
|
+
meta_reports/models/last_imp_refill.py,sha256=LkJtsZU7fhem5O-OqsyN-qgGQm_IUGAYEpP3ESqdm88,988
|
537
555
|
meta_reports/models/dbviews/README,sha256=GdeboB7Xqb-Qo_rE1ondcxP8Ps93MIjLzCePQCePig0,686
|
538
556
|
meta_reports/models/dbviews/__init__.py,sha256=C5YGOKwVAexjWxLh5vl0m561TBMWDM_yAvIrwqG_M70,559
|
539
557
|
meta_reports/models/dbviews/glucose_summary/__init__.py,sha256=Tfgjso4TpxMCidAdRJp8g1Ykqqa43yWlQSotzAaORAo,93
|
@@ -566,16 +584,6 @@ meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py,sha256=1
|
|
566
584
|
meta_reports/models/dbviews/unattended_two_in_row/__init__.py,sha256=-ZZTOTTDZN5-zUj6gyvAyRrJgVPo0AyYZkHsgms6_Og,48
|
567
585
|
meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py,sha256=jrHsOHC0dhLoSQjY1PIlEQe9q_9Epv_ZNGXQtkTXbCs,870
|
568
586
|
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
587
|
meta_reports/templates/meta_reports/endpoints_all_change_list_note.html,sha256=4tDN-rF9V2LOzQBnz-ZeMClpRQHXnGmpveDggJEVQlk,701
|
580
588
|
meta_reports/templates/meta_reports/endpoints_change_list_note.html,sha256=3WdEHRQMFgi5xwYV8JX5CveBfaSJaFGq7NhOfVXizks,760
|
581
589
|
meta_reports/templates/meta_reports/columns/subject_identifier_column.html,sha256=BSjZRpQOwVRQbSq5H0S4KICt1A6Ecyqti-Ut1e_9HbM,109
|
@@ -759,7 +767,7 @@ meta_subject/admin/patient_history_admin.py,sha256=kXglsPOngnjYY2FQYP_YHoH5IcSJu
|
|
759
767
|
meta_subject/admin/physical_exam_admin.py,sha256=nCcY42CQXbZCro4vsQUfw5gQ1KKs-zjsHPqP-KtUQQc,1858
|
760
768
|
meta_subject/admin/pregnancy_update_admin.py,sha256=-H3olHeXv4gkcUXb1Ye2DmB-X72cVFeS2arSv-C5J4I,913
|
761
769
|
meta_subject/admin/sf12_admin.py,sha256=1PDNewdE_JDcjfyh0tb0MEWnBgpE3-7W0tkNfWkSX5U,742
|
762
|
-
meta_subject/admin/study_medication_admin.py,sha256=
|
770
|
+
meta_subject/admin/study_medication_admin.py,sha256=8XQL0zgc1ItRHwkz1uq2_74WfpYqvDKH7B70ADbmfxk,6289
|
763
771
|
meta_subject/admin/subject_requisition_admin.py,sha256=qx-6AxfwzUIFMTJFO6CYOWE67wTGgQbiBofmWksXx1c,1848
|
764
772
|
meta_subject/admin/subject_visit_admin.py,sha256=Ic3OrFtBsiHTB5sI8efWQkhPsuqu-1P1xV7eKP1F6aA,1389
|
765
773
|
meta_subject/admin/subject_visit_missed_admin.py,sha256=vRLttLzVT1EbOHGVU1G-d5FNlySalX6g4_-0bRNr6GM,1414
|
@@ -810,7 +818,7 @@ meta_subject/forms/physical_exam_form.py,sha256=QgH1zAmYgp8Hi1tU-e68HaRRkZxf-6xG
|
|
810
818
|
meta_subject/forms/pregnancy_update_form.py,sha256=BTiWPoQ-HYbZhW0Go2DSqYU_e51pmJ_UIxEdSNlzTwE,559
|
811
819
|
meta_subject/forms/sf12_form.py,sha256=VDV4hyU9UckPX70isylfHWggcWZwiQfCWrpk9kGvxis,397
|
812
820
|
meta_subject/forms/slider_widget.py,sha256=KOIyTfpl8yrcR9GZH4zrba8JUsVVEJME3AvrYiPHYJc,821
|
813
|
-
meta_subject/forms/study_medication_form.py,sha256=
|
821
|
+
meta_subject/forms/study_medication_form.py,sha256=at4ee0f5NNipYD15R_T8h3B7R9EH-H0V-co_B3n12WE,2969
|
814
822
|
meta_subject/forms/subject_requisition_form.py,sha256=BWWk1njDTxenHAX1a-VHPgz9zAGTJxMNHtVsobO7Vqo,953
|
815
823
|
meta_subject/forms/subject_visit_form.py,sha256=Zxyjb5-7wUmcLHD-M76ofuM8Vr92yzjvXqQ7GsB3U6o,1374
|
816
824
|
meta_subject/forms/subject_visit_missed_form.py,sha256=Qrvo2A8836CspOKll_iN3a6U6ttzz1TFNbEbJRrg62g,2275
|
@@ -829,13 +837,14 @@ meta_subject/forms/diabetes/dm_followup_form.py,sha256=ToJwQ1NViZn_CX-0YUyLQ5SSi
|
|
829
837
|
meta_subject/forms/health_economics/__init__.py,sha256=xlJD5--IDyBs5lRrjpOpIgLHLmJgNdnR9vbwgGZbv-0,136
|
830
838
|
meta_subject/forms/health_economics/health_economics_simple_form.py,sha256=MlPppvF8lrka9hAzmAV7aiyerjtVihxmOWpbTF-k5P8,392
|
831
839
|
meta_subject/forms/health_economics/health_economics_update_form.py,sha256=gpdBcJxSXG8hp34JWdTQHrKT2pXeuBGAF503zCXLyEs,308
|
832
|
-
meta_subject/locale/
|
840
|
+
meta_subject/locale/lg/LC_MESSAGES/django.po,sha256=rENk0A-EfLRxdK5GR05BBr7reDnp7bNy5Ton7PCtX48,11016
|
841
|
+
meta_subject/locale/sw/LC_MESSAGES/django.po,sha256=kLgzLiTOTu6Rf8J5kmFH_R9MlPWvpVSwz4g9Rl2CdOw,11063
|
833
842
|
meta_subject/management/commands/create_missing_refills.py,sha256=IkxEOV2AHl2FYhLDtiWmiK0SoAcGFz24pLUXjNpFAAA,2432
|
834
843
|
meta_subject/management/commands/create_missing_rx.py,sha256=jAqgz9yxhaEL1XBN9FqM-5cPv1TpNtL4XdltLPArOEA,1463
|
835
844
|
meta_subject/management/commands/missed.py,sha256=qTHggBxlJWcEF_V4cGtxe93UJXlaW-ON6m1SOpJzmgg,8209
|
836
845
|
meta_subject/metadata_rules/__init__.py,sha256=U8fKGiHsbSWW27dWbTp2A2pCmdcFgybbJDhazP591cE,53
|
837
846
|
meta_subject/metadata_rules/metadata_rules.py,sha256=Pe7YK1Ss9P_0vi75ImqC0eaOi3rgEGYeukanVzyXXAY,3981
|
838
|
-
meta_subject/metadata_rules/predicates.py,sha256=
|
847
|
+
meta_subject/metadata_rules/predicates.py,sha256=QAaguLepmT9DQnF3TdXvdLZk0dBF7skGsZw1KnjG31g,9214
|
839
848
|
meta_subject/migrations/0001_initial.py,sha256=UHMfeHsfaGWg97-gMxfcmD4_-xDnrj-cslhT_mZQdZw,408932
|
840
849
|
meta_subject/migrations/0002_auto_20191021_0353.py,sha256=ekA3FFPdsAGmqWt2wrwQahzuwTE98e1VZLouXbZocrY,29351
|
841
850
|
meta_subject/migrations/0003_auto_20191021_0534.py,sha256=Ye9au73hXxbvd1tBmrafin20NPWUZfhxj50x4S-tYqk,4024
|
@@ -1049,6 +1058,8 @@ meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py,sha256=_
|
|
1049
1058
|
meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py,sha256=e5lG4G_F4uPR862lOvR_rACONzyMpg5duH-39QXAxLA,1615
|
1050
1059
|
meta_subject/migrations/0212_auto_20240827_2222.py,sha256=ClHxTDTE9Ft6w8qT2LMSfDkbQko_aAKO8ULQvAIB-2E,772
|
1051
1060
|
meta_subject/migrations/0213_rename_bloodresultslipid_bloodresultslipids_and_more.py,sha256=51UvT_rl0R2phHX0-QCdJqIPbfDcWzVMWdONwhWQ7Ws,1129
|
1061
|
+
meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py,sha256=Mzz4aPKvLeANXy9osTlefXXqbi-VwTA1SOBewkTLZ1I,1422
|
1062
|
+
meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py,sha256=bUPpZPSwmRGnXOdd6kw1fmkGPEHdA0SWQ_P6wMtKyvI,1580
|
1052
1063
|
meta_subject/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1053
1064
|
meta_subject/model_mixins/__init__.py,sha256=6DdDDOwDdagrz6Q7X9lxuAVszsFWFhwPqLz4JOD85Wo,286
|
1054
1065
|
meta_subject/model_mixins/arv_history_model_mixin.py,sha256=6ILacF2koyYmwZIFHmmQO1uIT1eWzrahXxhAlxpQiX0,2898
|
@@ -1117,7 +1128,7 @@ meta_subject/tests/tests/test_followup.py,sha256=rembohm-ecEp9rGFdjc2CkvXGfYZ8A8
|
|
1117
1128
|
meta_subject/tests/tests/test_manager_order.py,sha256=wmVxMd85mJ6HGAL_3Z_mSp_mqeNQvK7MW_6mvQPDeO8,454
|
1118
1129
|
meta_subject/tests/tests/test_medication_adherence.py,sha256=o-4vTFx4GdYBS_lWiKpycA8IOce9nTB1_7vAl4HAKhI,2517
|
1119
1130
|
meta_subject/tests/tests/test_metadata_rules.py,sha256=LUBYByb9t9dClj_LKzHA-WpHQba56KwRqpr7BaCVbNI,5717
|
1120
|
-
meta_subject/tests/tests/test_mnsi.py,sha256=
|
1131
|
+
meta_subject/tests/tests/test_mnsi.py,sha256=wAXHGupWJh-7vSNyeYyT1F4n6JNZFCIfDKs-M_XuPzQ,13585
|
1121
1132
|
meta_subject/tests/tests/test_patient_history_form.py,sha256=JzqCx_-g2jeknngGl94FhZNVCl0CfnWIAZ9R11y7-wY,2827
|
1122
1133
|
meta_subject/tests/tests/test_physical_exam.py,sha256=U3TKOPWTVu8iXxsS8LGgJJEY8e2sKJ5iTBcIWIHKCAo,2947
|
1123
1134
|
meta_subject/tests/tests/test_sf12.py,sha256=8FMdZGG-boyu3zs37kLR8M2Wf7Xf0MevHYlQLX5Odgs,7330
|
@@ -1133,7 +1144,7 @@ meta_visit_schedule/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
1133
1144
|
meta_visit_schedule/tests/tests/test_schedule.py,sha256=858fXo-PvbppgIsCAGll05fqnuWW6f-vMIwnvRLZgnc,7351
|
1134
1145
|
meta_visit_schedule/visit_schedules/__init__.py,sha256=j0Q8tAGhHHbFBd3R-iLRy4QB47WgtucWG7xCLLfVvFU,339
|
1135
1146
|
meta_visit_schedule/visit_schedules/phase_three/__init__.py,sha256=18ken4S10X0dkEFHj1EFO2M4xblXD04cjfhzIEkhYUQ,74
|
1136
|
-
meta_visit_schedule/visit_schedules/phase_three/crfs.py,sha256=
|
1147
|
+
meta_visit_schedule/visit_schedules/phase_three/crfs.py,sha256=mPfCfbwvTyWNBwZWX3_sOw6-GAAYhIydZvIElWYjhVk,16060
|
1137
1148
|
meta_visit_schedule/visit_schedules/phase_three/crfs_pregnancy.py,sha256=_I6IVLMC3-KlpI86eii790mlx-p2vxWxvNRKD927rXo,169
|
1138
1149
|
meta_visit_schedule/visit_schedules/phase_three/requisitions.py,sha256=Noeki8zX2MCwQVmCCWfuOyh_aN4YC-cyhUmrAZP8d5g,4579
|
1139
1150
|
meta_visit_schedule/visit_schedules/phase_three/schedule.py,sha256=J91AMawOdKWLJz_WAH897PJYr8264_Q_b8pZhI0Pj38,8228
|
@@ -1142,7 +1153,7 @@ meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py,sha256=0V2
|
|
1142
1153
|
meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py,sha256=ak4qazeKlpIlvpqrK9hDDO0fwWuWyvb4Ec-JU31IJxc,654
|
1143
1154
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1144
1155
|
tests/holidays.csv,sha256=LIEIm79wHRzbfXcFW_2ogFOYEZaWEGF1hwgOzZy2y34,538
|
1145
|
-
tests/test_settings.py,sha256=
|
1156
|
+
tests/test_settings.py,sha256=4RE06P5s2RtXxR1uLogyjvuuLtf5ZPh758MpBg1BRco,7221
|
1146
1157
|
tests/etc/randomization_list.csv,sha256=oYkac2c8AHo0gE72kjwmQ9rXNz-3EU8RKrUM3rqNk9s,5307
|
1147
1158
|
tests/etc/randomization_list_phase_three.csv,sha256=ZPPKcePnt6BlpDkIXX6DCOAbowLzIFrgnYS8-pfForA,5794
|
1148
1159
|
tests/etc/user-aes-local.key,sha256=qA7Oe6D5yFUSM4ZORzkrzzONedbP28MhtflyW0HAjDY,256
|
@@ -1153,9 +1164,9 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
|
|
1153
1164
|
tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
|
1154
1165
|
tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
|
1155
1166
|
tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
|
1156
|
-
meta_edc-0.3.
|
1157
|
-
meta_edc-0.3.
|
1158
|
-
meta_edc-0.3.
|
1159
|
-
meta_edc-0.3.
|
1160
|
-
meta_edc-0.3.
|
1161
|
-
meta_edc-0.3.
|
1167
|
+
meta_edc-0.3.39.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1168
|
+
meta_edc-0.3.39.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
1169
|
+
meta_edc-0.3.39.dist-info/METADATA,sha256=j3D64wRKMMzgZj04aExF7BIiYqchhoPycYjV0xhPaJI,43529
|
1170
|
+
meta_edc-0.3.39.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
1171
|
+
meta_edc-0.3.39.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
|
1172
|
+
meta_edc-0.3.39.dist-info/RECORD,,
|
meta_pharmacy/admin/__init__.py
CHANGED
@@ -0,0 +1,38 @@
|
|
1
|
+
import random
|
2
|
+
|
3
|
+
from django.contrib import messages
|
4
|
+
from django.http import FileResponse
|
5
|
+
from django.utils.translation import gettext as _
|
6
|
+
from django_pylabels.models import LabelSpecification
|
7
|
+
from edc_utils import get_utcnow
|
8
|
+
from pylabels import Sheet, Specification
|
9
|
+
|
10
|
+
from ..labels import draw_label_with_code39
|
11
|
+
from ..models import LabelData
|
12
|
+
|
13
|
+
random.seed(7825541)
|
14
|
+
|
15
|
+
|
16
|
+
def print_label_sheet(modeladmin, request, queryset):
|
17
|
+
label_data = [obj for obj in queryset]
|
18
|
+
obj = LabelSpecification.objects.get(name="meta3")
|
19
|
+
specs = Specification(**obj.as_dict)
|
20
|
+
sheet = Sheet(specs, draw_label_with_code39, border=obj.border)
|
21
|
+
sheet.add_labels(label_data)
|
22
|
+
buffer = sheet.save_to_buffer()
|
23
|
+
now = get_utcnow()
|
24
|
+
queryset.update(printed=True, printed_datetime=now)
|
25
|
+
return FileResponse(
|
26
|
+
buffer, as_attachment=True, filename=f"{obj.name}_{now.strftime("%Y-%m-%d %H:%M")}.pdf"
|
27
|
+
)
|
28
|
+
|
29
|
+
|
30
|
+
def print_label_sheet_from_batch(modeladmin, request, queryset):
|
31
|
+
if queryset.count() > 1 or queryset.count() == 0:
|
32
|
+
messages.add_message(
|
33
|
+
request,
|
34
|
+
messages.ERROR,
|
35
|
+
_("Select one and only one existing label specification"),
|
36
|
+
)
|
37
|
+
queryset = LabelData.objects.filter(label_batch=queryset.first())
|
38
|
+
return print_label_sheet(modeladmin, request, queryset)
|
meta_pharmacy/admin_site.py
CHANGED
@@ -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(
|
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,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
|
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
|
+
)
|
meta_pharmacy/labels/__init__.py
CHANGED
@@ -1,2 +1,4 @@
|
|
1
|
-
from .
|
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
|
+
from .label_data import LabelData
|
2
4
|
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
|