meta-edc 0.3.15__py3-none-any.whl → 0.3.50__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- meta_ae/action_items.py +2 -2
- meta_ae/migrations/0017_auto_20221130_2257.py +12 -7
- meta_ae/tests/holidays.csv +1 -1
- meta_analytics/README.rst +17 -0
- meta_analytics/dataframes/__init__.py +19 -0
- meta_analytics/dataframes/constants.py +33 -0
- meta_analytics/dataframes/enrolled/__init__.py +1 -0
- meta_analytics/dataframes/enrolled/get_glucose_df.py +122 -0
- meta_analytics/dataframes/get_eos_df.py +26 -0
- meta_analytics/dataframes/get_last_imp_visits_df.py +101 -0
- meta_analytics/dataframes/glucose_endpoints/__init__.py +2 -0
- meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +183 -0
- meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +531 -0
- meta_analytics/dataframes/screening/__init__.py +2 -0
- meta_analytics/dataframes/screening/get_glucose_tested_only_df.py +20 -0
- meta_analytics/dataframes/screening/get_screening_df.py +163 -0
- meta_analytics/dataframes/utils.py +65 -0
- meta_analytics/get_tables.py +81 -0
- meta_analytics/tables/__init__.py +2 -0
- meta_analytics/tables/eligible.py +106 -0
- meta_analytics/tables/enrolled/__init__.py +0 -0
- meta_analytics/tables/enrolled/glucose.py +28 -0
- meta_analytics/tables/has_dm.py +61 -0
- meta_analytics/tests/__init__.py +0 -0
- meta_analytics/tests/test_endpoints_by_date.py +94 -0
- meta_auth/auth_objects.py +22 -0
- meta_auth/auths.py +18 -3
- meta_consent/action_items.py +18 -1
- meta_consent/admin/__init__.py +1 -0
- meta_consent/admin/subject_consent_v1_ext_admin.py +45 -0
- meta_consent/baker_recipes.py +1 -0
- meta_consent/consents.py +20 -1
- meta_consent/constants.py +1 -0
- meta_consent/forms/__init__.py +1 -0
- meta_consent/forms/subject_consent_v1_ext_form.py +16 -0
- meta_consent/locale/lg/LC_MESSAGES/django.po +69 -0
- meta_consent/locale/sw/LC_MESSAGES/django.po +12 -12
- meta_consent/migrations/0026_historicalsubjectconsentv1ext_subjectconsentv1ext.py +544 -0
- meta_consent/migrations/0027_auto_20250111_0344.py +30 -0
- meta_consent/models/__init__.py +1 -0
- meta_consent/models/signals.py +18 -0
- meta_consent/models/subject_consent_v1_ext.py +29 -0
- meta_consent/tests/holidays.csv +1 -1
- meta_dashboard/locale/lg/LC_MESSAGES/django.po +30 -0
- meta_dashboard/locale/sw/LC_MESSAGES/django.po +11 -2
- meta_dashboard/navbars.py +3 -1
- meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/eligibility_button.html +1 -1
- meta_dashboard/templates/meta_dashboard/bootstrap3/buttons/screening_button.html +1 -1
- meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard/sidebar.html +24 -0
- meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard.html +3 -0
- meta_dashboard/templatetags/meta_dashboard_extras.py +1 -1
- meta_dashboard/tests/holidays.csv +1 -1
- meta_dashboard/tests/urls.py +0 -1
- meta_dashboard/view_utils/__init__.py +6 -0
- meta_dashboard/view_utils/subject_screening_button.py +2 -2
- meta_dashboard/views/subject/dashboard/dashboard_view.py +38 -0
- meta_edc/__init__.py +7 -0
- meta_edc/celery.py +4 -13
- meta_edc/celery_live.py +18 -0
- meta_edc/celery_uat.py +24 -0
- meta_edc/management/commands/update_forms_reference.py +6 -2
- meta_edc/migrations/__init__.py +0 -0
- meta_edc/navbars.py +2 -1
- meta_edc/settings/debug.py +10 -2
- meta_edc/settings/defaults.py +58 -43
- meta_edc/templates/meta_edc/bootstrap3/home.html +5 -2
- meta_edc/tests/tests/test_endpoints.py +2 -0
- meta_edc/urls.py +4 -1
- meta_edc/wsgi.py +1 -1
- meta_edc/wsgi_live.py +1 -1
- meta_edc/wsgi_uat.py +1 -1
- meta_edc-0.3.50.dist-info/AUTHORS +0 -0
- meta_edc-0.3.50.dist-info/METADATA +766 -0
- {meta_edc-0.3.15.dist-info → meta_edc-0.3.50.dist-info}/RECORD +316 -127
- {meta_edc-0.3.15.dist-info → meta_edc-0.3.50.dist-info}/WHEEL +1 -1
- {meta_edc-0.3.15.dist-info → meta_edc-0.3.50.dist-info}/top_level.txt +1 -0
- meta_pharmacy/admin/__init__.py +2 -0
- meta_pharmacy/admin/rx_admin.py +75 -0
- meta_pharmacy/admin/substitutions_admin.py +67 -0
- meta_pharmacy/admin_site.py +9 -0
- meta_pharmacy/apps.py +5 -0
- meta_pharmacy/constants.py +10 -0
- meta_pharmacy/forms/__init__.py +2 -0
- meta_pharmacy/forms/rx_form.py +16 -0
- meta_pharmacy/forms/substitutions_form.py +54 -0
- meta_pharmacy/label_configs.py +30 -0
- meta_pharmacy/labels/__init__.py +5 -0
- meta_pharmacy/labels/draw_label_for_subject_with_barcode.py +62 -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 +97 -0
- meta_pharmacy/list_data.py +8 -0
- meta_pharmacy/management/__init__.py +0 -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 +695 -0
- meta_pharmacy/migrations/0003_auto_20240909_2335.py +64 -0
- meta_pharmacy/migrations/0004_alter_historicalsubstitutions_report_datetime_and_more.py +23 -0
- meta_pharmacy/migrations/0005_auto_20240911_0352.py +17 -0
- meta_pharmacy/migrations/0006_lotnumber_label.py +289 -0
- meta_pharmacy/migrations/0007_lotnumber_medication.py +24 -0
- 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 +3 -0
- meta_pharmacy/models/label_data.py +38 -0
- meta_pharmacy/models/rx.py +18 -0
- meta_pharmacy/models/rx_label.py +39 -0
- meta_pharmacy/models/substitutions.py +88 -0
- meta_pharmacy/urls.py +8 -0
- meta_pharmacy/utils/__init__.py +1 -0
- meta_pharmacy/utils/update_initial_pharmacy_data.py +146 -0
- meta_prn/action_items.py +9 -1
- meta_prn/admin/pregnancy_notification_admin.py +6 -2
- meta_prn/migrations/0034_auto_20220630_1110.py +3 -3
- meta_prn/migrations/0035_auto_20220630_1140.py +59 -56
- meta_prn/tests/tests/test_dm_referral.py +3 -6
- meta_reports/__init__.py +1 -0
- meta_reports/admin/__init__.py +15 -0
- meta_reports/admin/dbviews/__init__.py +14 -0
- meta_reports/admin/dbviews/glucose_summary_admin.py +116 -0
- meta_reports/admin/dbviews/imp_substitutions_admin.py +101 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/__init__.py +2 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/note_model_admin.py +53 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/unmanaged_model_admin.py +84 -0
- meta_reports/admin/dbviews/on_study_missing_lab_values_admin/__init__.py +1 -0
- meta_reports/admin/dbviews/on_study_missing_lab_values_admin/unmanaged_model_admin.py +13 -0
- meta_reports/admin/dbviews/on_study_missing_values_admin/__init__.py +1 -0
- meta_reports/admin/dbviews/on_study_missing_values_admin/unmanaged_model_admin.py +13 -0
- meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py +58 -0
- meta_reports/admin/dbviews/unattended_three_in_row2_admin.py +47 -0
- meta_reports/admin/dbviews/unattended_three_in_row_admin.py +35 -0
- meta_reports/admin/dbviews/unattended_two_in_row_admin.py +34 -0
- meta_reports/admin/endpoints_admin.py +14 -0
- meta_reports/admin/endpoints_all_admin.py +13 -0
- meta_reports/admin/last_imp_refill_admin.py +181 -0
- meta_reports/admin/list_filters.py +30 -0
- meta_reports/admin/modeladmin_mixins.py +112 -0
- meta_reports/admin_site.py +5 -0
- meta_reports/apps.py +1 -16
- meta_reports/forms/__init__.py +1 -0
- meta_reports/forms/missing_ogtt_note_form.py +33 -0
- meta_reports/management/__init__.py +0 -0
- meta_reports/management/commands/__init__.py +0 -0
- meta_reports/management/commands/generate_endpoints.py +13 -0
- meta_reports/migrations/0001_initial.py +87 -0
- meta_reports/migrations/0002_patienthistorymissingbaselinecd4_and_more.py +64 -0
- meta_reports/migrations/0003_auto_20240618_0505.py +12 -0
- meta_reports/migrations/0004_alter_patienthistorymissingbaselinecd4_table.py +17 -0
- meta_reports/migrations/0005_endpoints.py +47 -0
- meta_reports/migrations/0006_endpoints_baseline_datetime.py +18 -0
- meta_reports/migrations/0007_alter_endpoints_endpoint_label_and_more.py +43 -0
- meta_reports/migrations/0008_alter_endpoints_endpoint_label.py +18 -0
- meta_reports/migrations/0009_alter_endpoints_options.py +21 -0
- meta_reports/migrations/0010_alter_patienthistorymissingbaselinecd4_options_and_more.py +49 -0
- meta_reports/migrations/0011_auto_20240813_0156.py +54 -0
- meta_reports/migrations/0012_auto_20240813_1516.py +48 -0
- meta_reports/migrations/0013_auto_20240813_1516.py +48 -0
- meta_reports/migrations/0014_auto_20240813_1517.py +48 -0
- meta_reports/migrations/0015_alter_endpoints_site.py +22 -0
- meta_reports/migrations/0016_missingscreeningogtt.py +47 -0
- meta_reports/migrations/0017_auto_20240819_1711.py +166 -0
- meta_reports/migrations/0018_auto_20240819_1713.py +54 -0
- meta_reports/migrations/0019_auto_20240819_1721.py +54 -0
- meta_reports/migrations/0020_auto_20240819_1811.py +54 -0
- meta_reports/migrations/0021_auto_20240819_1817.py +54 -0
- meta_reports/migrations/0022_auto_20240819_1832.py +54 -0
- meta_reports/migrations/0023_endpoints_meta_report_subject_a56b22_idx.py +20 -0
- meta_reports/migrations/0024_glucosesummary.py +38 -0
- meta_reports/migrations/0025_auto_20240822_0115.py +87 -0
- meta_reports/migrations/0026_auto_20240822_0120.py +54 -0
- meta_reports/migrations/0027_auto_20240822_0140.py +54 -0
- meta_reports/migrations/0028_alter_glucosesummary_options.py +22 -0
- meta_reports/migrations/0029_auto_20240822_0149.py +54 -0
- meta_reports/migrations/0030_auto_20240822_1637.py +54 -0
- meta_reports/migrations/0031_endpointsproxy.py +25 -0
- meta_reports/migrations/0032_alter_endpointsproxy_options.py +21 -0
- meta_reports/migrations/0033_auto_20240823_0012.py +54 -0
- meta_reports/migrations/0034_auto_20240823_1642.py +54 -0
- meta_reports/migrations/0035_historicalmissingogttnote_missingogttnote.py +457 -0
- meta_reports/migrations/0036_historicalmissingogttnote_fasting_and_more.py +86 -0
- meta_reports/migrations/0037_historicalmissingogttnote_result_status_and_more.py +51 -0
- meta_reports/migrations/0038_alter_historicalmissingogttnote_fasting_and_more.py +33 -0
- meta_reports/migrations/0039_onstudymissingvalues.py +44 -0
- meta_reports/migrations/0040_auto_20240824_0412.py +282 -0
- meta_reports/migrations/0041_auto_20240828_2229.py +14 -0
- meta_reports/migrations/0042_onstudymissinglabvalues.py +43 -0
- meta_reports/migrations/0043_auto_20240828_2309.py +88 -0
- meta_reports/migrations/0044_auto_20240828_2323.py +93 -0
- meta_reports/migrations/0045_auto_20240829_0248.py +54 -0
- meta_reports/migrations/0046_auto_20240829_0250.py +54 -0
- meta_reports/migrations/0047_impsubstitutions.py +56 -0
- meta_reports/migrations/0048_auto_20240909_2338.py +48 -0
- meta_reports/migrations/0049_auto_20240911_0327.py +54 -0
- meta_reports/migrations/0050_alter_endpoints_created.py +19 -0
- meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py +40 -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 +16 -0
- meta_reports/models/dbviews/README +14 -0
- meta_reports/models/dbviews/__init__.py +9 -0
- meta_reports/models/dbviews/glucose_summary/__init__.py +2 -0
- meta_reports/models/dbviews/glucose_summary/unmanaged_model.py +35 -0
- meta_reports/models/dbviews/glucose_summary/view_definition.py +28 -0
- meta_reports/models/dbviews/imp_substitutions/__init__.py +1 -0
- meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py +41 -0
- meta_reports/models/dbviews/imp_substitutions/view_definition.py +21 -0
- meta_reports/models/dbviews/missing_screening_ogtt/__init__.py +2 -0
- meta_reports/models/dbviews/missing_screening_ogtt/note_model.py +57 -0
- meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py +41 -0
- meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py +20 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/__init__.py +1 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/qa_cases.py +53 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/unmanged_model.py +20 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/view_definition.py +17 -0
- meta_reports/models/dbviews/on_study_missing_values/__init__.py +1 -0
- meta_reports/models/dbviews/on_study_missing_values/qa_cases.py +54 -0
- meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py +20 -0
- meta_reports/models/dbviews/on_study_missing_values/view_definition.py +17 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py +1 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/unmanaged_model.py +31 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py +21 -0
- meta_reports/models/dbviews/unattended_three_in_row/__init__.py +1 -0
- meta_reports/models/dbviews/unattended_three_in_row/unmanaged_model.py +29 -0
- meta_reports/models/dbviews/unattended_three_in_row/view_definition.py +31 -0
- meta_reports/models/dbviews/unattended_three_in_row2/__init__.py +1 -0
- meta_reports/models/dbviews/unattended_three_in_row2/unmanaged_model.py +29 -0
- meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py +50 -0
- meta_reports/models/dbviews/unattended_two_in_row/__init__.py +1 -0
- meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py +27 -0
- meta_reports/models/dbviews/unattended_two_in_row/view_definition.py +30 -0
- meta_reports/models/endpoints.py +31 -0
- meta_reports/models/endpoints_proxy.py +11 -0
- meta_reports/models/last_imp_refill.py +34 -0
- meta_reports/tasks.py +12 -0
- meta_reports/templates/meta_reports/columns/subject_identifier_column.html +1 -0
- meta_reports/templates/meta_reports/endpoints_all_change_list_note.html +12 -0
- meta_reports/templates/meta_reports/endpoints_change_list_note.html +12 -0
- meta_reports/tests/test_sql_gen.py +5 -0
- meta_reports/urls.py +8 -0
- meta_reports/utils.py +0 -0
- meta_screening/admin/subject_screening_admin.py +1 -0
- meta_screening/migrations/0067_alter_historicalscreeningpartone_report_datetime_and_more.py +84 -0
- meta_screening/tests/holidays.csv +1 -1
- meta_screening/tests/meta_test_case_mixin.py +15 -0
- meta_sites/tests/test_sites.py +1 -1
- meta_subject/action_items.py +2 -2
- meta_subject/admin/__init__.py +2 -1
- meta_subject/admin/birth_outcome_admin.py +2 -0
- meta_subject/admin/blood_results/__init__.py +1 -1
- meta_subject/admin/blood_results/{blood_results_lipid_admin.py → blood_results_lipids_admin.py} +7 -7
- meta_subject/admin/diabetes/__init__.py +1 -1
- meta_subject/admin/diabetes/dm_endpoint_admin.py +35 -0
- meta_subject/admin/glucose_fbg_admin.py +4 -0
- meta_subject/admin/other_arv_regimens_admin.py +2 -0
- meta_subject/admin/study_medication_admin.py +10 -0
- meta_subject/form_validators/__init__.py +1 -1
- meta_subject/form_validators/dm_endpoint_form_validator.py +35 -0
- meta_subject/forms/__init__.py +2 -2
- meta_subject/forms/blood_results/__init__.py +1 -1
- meta_subject/forms/blood_results/{blood_results_lipid_form.py → blood_results_lipids_form.py} +5 -5
- meta_subject/forms/diabetes/__init__.py +1 -2
- meta_subject/forms/diabetes/dm_endpoint_form.py +13 -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/metadata_rules.py +7 -0
- meta_subject/metadata_rules/predicates.py +45 -8
- meta_subject/migrations/0107_auto_20220415_0043.py +28 -22
- meta_subject/migrations/0126_auto_20220719_2142.py +4 -4
- meta_subject/migrations/0131_auto_20220722_0411.py +28 -23
- meta_subject/migrations/0132_auto_20220722_1825.py +10 -6
- meta_subject/migrations/0135_auto_20220722_2212.py +39 -35
- meta_subject/migrations/0150_auto_20220914_0039.py +15 -11
- meta_subject/migrations/0207_alter_historicalphysicalexam_waist_circumference_and_more.py +46 -0
- meta_subject/migrations/0208_birthoutcomes_crf_status_and_more.py +62 -0
- meta_subject/migrations/0209_remove_historicaldmdxresult_dm_diagnosis_and_more.py +37 -0
- meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py +123 -0
- meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py +45 -0
- meta_subject/migrations/0212_auto_20240827_2222.py +23 -0
- meta_subject/migrations/0213_rename_bloodresultslipid_bloodresultslipids_and_more.py +35 -0
- 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/model_mixins/arv_history_model_mixin.py +3 -3
- meta_subject/models/__init__.py +3 -2
- meta_subject/models/birth_outcomes.py +6 -1
- meta_subject/models/blood_results/__init__.py +1 -1
- meta_subject/models/blood_results/{blood_results_lipid.py → blood_results_lipids.py} +3 -3
- meta_subject/models/diabetes/__init__.py +1 -2
- meta_subject/models/diabetes/dm_endpoint.py +61 -0
- meta_subject/models/glucose.py +4 -1
- meta_subject/models/physical_exam.py +1 -0
- meta_subject/models/signals.py +19 -0
- meta_subject/models/todo.txt +1 -1
- meta_subject/static/meta_subject/slider.css +1 -1
- meta_subject/templates/meta_subject/endpoint_review_instructions.html +1 -1
- meta_subject/templates/meta_subject/widgets/slider.html +0 -1
- meta_subject/tests/holidays.csv +1 -1
- meta_subject/tests/tests/test_medication_adherence.py +5 -1
- meta_subject/tests/tests/test_metadata_rules.py +2 -2
- meta_subject/tests/tests/test_mnsi.py +212 -121
- meta_subject/tests/tests/test_sf12.py +0 -12
- meta_visit_schedule/constants.py +4 -0
- meta_visit_schedule/tests/tests/test_schedule.py +4 -0
- meta_visit_schedule/visit_schedules/phase_three/crfs.py +75 -13
- meta_visit_schedule/visit_schedules/phase_three/requisitions.py +12 -0
- meta_visit_schedule/visit_schedules/phase_three/schedule.py +65 -2
- meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py +1 -1
- tests/etc/randomization_list.csv +1 -1
- {meta_edc/tests → tests}/etc/randomization_list_phase_three.csv +4 -4
- tests/holidays.csv +1 -1
- {meta_edc/tests → tests}/test_settings.py +16 -6
- meta_edc/tests/etc/user-aes-local.key +0 -1
- meta_edc/tests/etc/user-aes-restricted.key +0 -0
- meta_edc/tests/etc/user-rsa-local-private.pem +0 -27
- meta_edc/tests/etc/user-rsa-local-public.pem +0 -9
- meta_edc/tests/etc/user-rsa-restricted-private.pem +0 -27
- meta_edc/tests/etc/user-rsa-restricted-public.pem +0 -9
- meta_edc/tests/etc/user-salt-local.key +0 -0
- meta_edc/tests/etc/user-salt-restricted.key +0 -0
- meta_edc-0.3.15.dist-info/METADATA +0 -88
- meta_reports/tests/holidays.csv +0 -15
- meta_subject/admin/diabetes/dm_diagnosis_admin.py +0 -89
- meta_subject/form_validators/dm_diagnosis_form_validator.py +0 -38
- meta_subject/form_validators/dm_dx_result_form_validator.py +0 -7
- meta_subject/forms/diabetes/dm_diagnosis_form.py +0 -13
- meta_subject/forms/diabetes/dm_dx_result_form.py +0 -11
- meta_subject/models/diabetes/dm_diagnosis.py +0 -50
- meta_subject/models/diabetes/dm_dx_result.py +0 -70
- /meta_edc-0.3.15.dist-info/AUTHORS → /meta_analytics/__init__.py +0 -0
- /meta_pharmacy/models.py → /meta_analytics/constants.py +0 -0
- /meta_reports/models.py → /meta_analytics/notebooks/cleaning/__init__.py +0 -0
- {meta_edc-0.3.15.dist-info → meta_edc-0.3.50.dist-info}/LICENSE +0 -0
@@ -8,7 +8,7 @@ msgid ""
|
|
8
8
|
msgstr ""
|
9
9
|
"Project-Id-Version: PACKAGE VERSION\n"
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
11
|
-
"POT-Creation-Date:
|
11
|
+
"POT-Creation-Date: 2024-11-19 23:35+0300\n"
|
12
12
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -18,352 +18,454 @@ msgstr ""
|
|
18
18
|
"Content-Transfer-Encoding: 8bit\n"
|
19
19
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20
20
|
|
21
|
-
#:
|
21
|
+
#: meta_subject/admin/health_economics/health_economics_update_admin.py:18
|
22
|
+
msgid ""
|
23
|
+
"We want to learn about the household and we use these\n"
|
24
|
+
" questions to get an understanding of wealth and opportunities\n"
|
25
|
+
" in the community. A person or persons (people/ members) who share\n"
|
26
|
+
" the same kitchen (pot), live together, and run the household\n"
|
27
|
+
" expenditure from the same income is known as a 'household'. "
|
28
|
+
"Household\n"
|
29
|
+
" members should be identified on the basis that they shared a place "
|
30
|
+
"of\n"
|
31
|
+
" living together most of time for the past one year. When it is\n"
|
32
|
+
" difficult to demarcate 'most of the time', living together for the\n"
|
33
|
+
" past six months or more should be used to find out whether or not\n"
|
34
|
+
" the person is a household member. For polygamous households, the\n"
|
35
|
+
" household head should think about all the households and respond\n"
|
36
|
+
" with respect to all households."
|
37
|
+
msgstr ""
|
38
|
+
|
39
|
+
#: meta_subject/admin/health_economics/health_economics_update_admin.py:58
|
40
|
+
msgid ""
|
41
|
+
"Before asking about household income, we would first liketo know about the "
|
42
|
+
"number of rooms in the home and number of beds. "
|
43
|
+
msgstr ""
|
44
|
+
|
45
|
+
#: meta_subject/admin/health_economics/health_economics_update_admin.py:72
|
46
|
+
msgid ""
|
47
|
+
"Now, I will ask about income for the household from paid workor other "
|
48
|
+
"sources. Please think of the total income for the household, including "
|
49
|
+
"income from all household members as defined above. I know it may be "
|
50
|
+
"difficult to estimate, but please do try to give amounts as accurately as "
|
51
|
+
"possible. Please note that all information will be kept strictly "
|
52
|
+
"confidential. This information is important to assess overall health and "
|
53
|
+
"well-being of people in your household, compared to other similar households."
|
54
|
+
msgstr ""
|
55
|
+
|
56
|
+
#: meta_subject/choices.py:39 meta_subject/choices.py:48
|
22
57
|
msgid "Working"
|
23
58
|
msgstr ""
|
24
59
|
|
25
|
-
#: choices.py:
|
60
|
+
#: meta_subject/choices.py:40 meta_subject/choices.py:49
|
26
61
|
msgid "Studying"
|
27
62
|
msgstr ""
|
28
63
|
|
29
|
-
#: choices.py:
|
64
|
+
#: meta_subject/choices.py:41 meta_subject/choices.py:50
|
30
65
|
msgid "Caring for children"
|
31
66
|
msgstr ""
|
32
67
|
|
33
|
-
#: choices.py:
|
68
|
+
#: meta_subject/choices.py:42
|
34
69
|
msgid "Other, please specify"
|
35
70
|
msgstr ""
|
36
71
|
|
37
|
-
#: choices.py:
|
38
|
-
#: choices.py:
|
72
|
+
#: meta_subject/choices.py:47 meta_subject/choices.py:59
|
73
|
+
#: meta_subject/choices.py:66 meta_subject/choices.py:81
|
74
|
+
#: meta_subject/choices.py:88 meta_subject/choices.py:118
|
75
|
+
#: meta_subject/choices.py:140 meta_subject/choices.py:167
|
76
|
+
#: meta_subject/choices.py:175 meta_subject/choices.py:220
|
39
77
|
msgid "Not applicable"
|
40
78
|
msgstr ""
|
41
79
|
|
42
|
-
#: choices.py:
|
80
|
+
#: meta_subject/choices.py:51
|
43
81
|
msgid "House maintenance"
|
44
82
|
msgstr ""
|
45
83
|
|
46
|
-
#: choices.py:
|
84
|
+
#: meta_subject/choices.py:52
|
47
85
|
msgid "Nothing"
|
48
86
|
msgstr ""
|
49
87
|
|
50
|
-
#: choices.py:
|
88
|
+
#: meta_subject/choices.py:53 meta_subject/choices.py:210
|
51
89
|
msgid "Other, specify"
|
52
90
|
msgstr ""
|
53
91
|
|
54
|
-
#: choices.py:
|
92
|
+
#: meta_subject/choices.py:57
|
55
93
|
msgid "Study participant"
|
56
94
|
msgstr ""
|
57
95
|
|
58
|
-
#: choices.py:
|
96
|
+
#: meta_subject/choices.py:58 meta_subject/choices.py:133
|
97
|
+
#: meta_subject/choices.py:219
|
59
98
|
msgid "Other"
|
60
99
|
msgstr ""
|
61
100
|
|
62
|
-
#: choices.py:
|
101
|
+
#: meta_subject/choices.py:63
|
63
102
|
msgid "At home"
|
64
103
|
msgstr ""
|
65
104
|
|
66
|
-
#: choices.py:
|
105
|
+
#: meta_subject/choices.py:64
|
67
106
|
msgid "Hospital / Clinic"
|
68
107
|
msgstr ""
|
69
108
|
|
70
|
-
#: choices.py:
|
109
|
+
#: meta_subject/choices.py:65
|
71
110
|
msgid "Other location, specify"
|
72
111
|
msgstr ""
|
73
112
|
|
74
|
-
#: choices.py:
|
113
|
+
#: meta_subject/choices.py:70
|
75
114
|
msgid "Excellent"
|
76
115
|
msgstr ""
|
77
116
|
|
78
|
-
#: choices.py:
|
117
|
+
#: meta_subject/choices.py:71
|
79
118
|
msgid "Very good"
|
80
119
|
msgstr ""
|
81
120
|
|
82
|
-
#: choices.py:
|
121
|
+
#: meta_subject/choices.py:72
|
83
122
|
msgid "Good"
|
84
123
|
msgstr ""
|
85
124
|
|
86
|
-
#: choices.py:
|
125
|
+
#: meta_subject/choices.py:73
|
87
126
|
msgid "Fair"
|
88
127
|
msgstr ""
|
89
128
|
|
90
|
-
#: choices.py:
|
129
|
+
#: meta_subject/choices.py:74
|
91
130
|
msgid "Poor"
|
92
131
|
msgstr ""
|
93
132
|
|
94
|
-
#: choices.py:
|
133
|
+
#: meta_subject/choices.py:80
|
95
134
|
msgid "Other, specify below ..."
|
96
135
|
msgstr ""
|
97
136
|
|
98
|
-
#: choices.py:
|
137
|
+
#: meta_subject/choices.py:86
|
138
|
+
msgid "No. A repeat FBG will be scheduled"
|
139
|
+
msgstr ""
|
140
|
+
|
141
|
+
#: meta_subject/choices.py:92 meta_subject/choices.py:146
|
99
142
|
msgid "All of the time"
|
100
143
|
msgstr ""
|
101
144
|
|
102
|
-
#: choices.py:
|
145
|
+
#: meta_subject/choices.py:93 meta_subject/choices.py:147
|
103
146
|
msgid "Most of the time"
|
104
147
|
msgstr ""
|
105
148
|
|
106
|
-
#: choices.py:
|
149
|
+
#: meta_subject/choices.py:94
|
107
150
|
msgid "A good bit of the time"
|
108
151
|
msgstr ""
|
109
152
|
|
110
|
-
#: choices.py:
|
153
|
+
#: meta_subject/choices.py:95 meta_subject/choices.py:148
|
111
154
|
msgid "Some of the time"
|
112
155
|
msgstr ""
|
113
156
|
|
114
|
-
#: choices.py:
|
157
|
+
#: meta_subject/choices.py:96 meta_subject/choices.py:149
|
115
158
|
msgid "A little of the time"
|
116
159
|
msgstr ""
|
117
160
|
|
118
|
-
#: choices.py:
|
161
|
+
#: meta_subject/choices.py:97 meta_subject/choices.py:150
|
119
162
|
msgid "None of the time"
|
120
163
|
msgstr ""
|
121
164
|
|
122
|
-
#: choices.py:
|
165
|
+
#: meta_subject/choices.py:102
|
123
166
|
msgid "Live birth at term"
|
124
167
|
msgstr ""
|
125
168
|
|
126
|
-
#: choices.py:
|
169
|
+
#: meta_subject/choices.py:103
|
127
170
|
msgid "Live birth preterm"
|
128
171
|
msgstr ""
|
129
172
|
|
130
|
-
#: choices.py:
|
173
|
+
#: meta_subject/choices.py:104
|
131
174
|
msgid "Stillbirth"
|
132
175
|
msgstr ""
|
133
176
|
|
134
|
-
#: choices.py:
|
177
|
+
#: meta_subject/choices.py:105
|
135
178
|
msgid "Miscarriage"
|
136
179
|
msgstr ""
|
137
180
|
|
138
|
-
#: choices.py:
|
181
|
+
#: meta_subject/choices.py:109
|
139
182
|
msgid "Study appointment"
|
140
183
|
msgstr ""
|
141
184
|
|
142
|
-
#: choices.py:
|
185
|
+
#: meta_subject/choices.py:110
|
143
186
|
msgid "Other routine appointment"
|
144
187
|
msgstr ""
|
145
188
|
|
146
|
-
#: choices.py:
|
189
|
+
#: meta_subject/choices.py:111
|
147
190
|
msgid "Unschedule visit"
|
148
191
|
msgstr ""
|
149
192
|
|
150
|
-
#: choices.py:
|
193
|
+
#: meta_subject/choices.py:112
|
151
194
|
msgid "Other reason, specify below ..."
|
152
195
|
msgstr ""
|
153
196
|
|
154
|
-
#: choices.py:
|
197
|
+
#: meta_subject/choices.py:116 meta_subject/choices.py:117
|
155
198
|
#, python-format
|
156
199
|
msgid "Grade %(num)s"
|
157
200
|
msgstr ""
|
158
201
|
|
159
|
-
#: choices.py:
|
202
|
+
#: meta_subject/choices.py:122
|
160
203
|
msgid "YES, limited a lot"
|
161
204
|
msgstr ""
|
162
205
|
|
163
|
-
#: choices.py:
|
206
|
+
#: meta_subject/choices.py:123
|
164
207
|
msgid "YES, limited a little"
|
165
208
|
msgstr ""
|
166
209
|
|
167
|
-
#: choices.py:
|
210
|
+
#: meta_subject/choices.py:124
|
168
211
|
msgid "NO, not at all limited"
|
169
212
|
msgstr ""
|
170
213
|
|
171
|
-
#: choices.py:
|
214
|
+
#: meta_subject/choices.py:128
|
172
215
|
msgid "Hospital notes"
|
173
216
|
msgstr ""
|
174
217
|
|
175
|
-
#: choices.py:
|
218
|
+
#: meta_subject/choices.py:129
|
176
219
|
msgid "Outpatient cards"
|
177
220
|
msgstr ""
|
178
221
|
|
179
|
-
#: choices.py:
|
222
|
+
#: meta_subject/choices.py:130
|
180
223
|
msgid "Patient"
|
181
224
|
msgstr ""
|
182
225
|
|
183
|
-
#: choices.py:
|
226
|
+
#: meta_subject/choices.py:131
|
184
227
|
msgid "Collateral History from relative/guardian"
|
185
228
|
msgstr ""
|
186
229
|
|
187
|
-
#: choices.py:
|
230
|
+
#: meta_subject/choices.py:132
|
188
231
|
msgid "Not applicable (if missed)"
|
189
232
|
msgstr ""
|
190
233
|
|
191
|
-
#: choices.py:
|
234
|
+
#: meta_subject/choices.py:139
|
192
235
|
msgid "Hospital / Clinic records"
|
193
236
|
msgstr ""
|
194
237
|
|
195
|
-
#: choices.py:
|
238
|
+
#: meta_subject/choices.py:154
|
196
239
|
msgid "No retinopathy"
|
197
240
|
msgstr ""
|
198
241
|
|
199
|
-
#: choices.py:
|
242
|
+
#: meta_subject/choices.py:155
|
200
243
|
msgid "Background retinopathy"
|
201
244
|
msgstr ""
|
202
245
|
|
203
|
-
#: choices.py:
|
246
|
+
#: meta_subject/choices.py:156
|
204
247
|
msgid "Pre-proliferative retinopathy"
|
205
248
|
msgstr ""
|
206
249
|
|
207
|
-
#: choices.py:
|
250
|
+
#: meta_subject/choices.py:157
|
208
251
|
msgid "Proliferative retinopathy"
|
209
252
|
msgstr ""
|
210
253
|
|
211
|
-
#: choices.py:
|
254
|
+
#: meta_subject/choices.py:158
|
212
255
|
msgid "Maculopathy"
|
213
256
|
msgstr ""
|
214
257
|
|
215
|
-
#: choices.py:
|
258
|
+
#: meta_subject/choices.py:159 meta_subject/choices.py:181
|
259
|
+
#: meta_subject/choices.py:188 meta_subject/choices.py:242
|
216
260
|
msgid "Exam not performed"
|
217
261
|
msgstr ""
|
218
262
|
|
219
|
-
#: choices.py:
|
263
|
+
#: meta_subject/choices.py:163
|
220
264
|
msgid "No complications"
|
221
265
|
msgstr ""
|
222
266
|
|
223
|
-
#: choices.py:
|
267
|
+
#: meta_subject/choices.py:164
|
224
268
|
msgid "Complications with full recovery"
|
225
269
|
msgstr ""
|
226
270
|
|
227
|
-
#: choices.py:
|
271
|
+
#: meta_subject/choices.py:165
|
228
272
|
msgid "Complications with ongoing recovery"
|
229
273
|
msgstr ""
|
230
274
|
|
231
|
-
#: choices.py:
|
275
|
+
#: meta_subject/choices.py:166
|
232
276
|
msgid "Maternal mortality"
|
233
277
|
msgstr ""
|
234
278
|
|
235
|
-
#: choices.py:
|
279
|
+
#: meta_subject/choices.py:171
|
236
280
|
msgid "Own cash"
|
237
281
|
msgstr ""
|
238
282
|
|
239
|
-
#: choices.py:
|
283
|
+
#: meta_subject/choices.py:172
|
240
284
|
msgid "Insurance"
|
241
285
|
msgstr ""
|
242
286
|
|
243
|
-
#: choices.py:
|
287
|
+
#: meta_subject/choices.py:173
|
244
288
|
msgid "Relative of others paying"
|
245
289
|
msgstr ""
|
246
290
|
|
247
|
-
#: choices.py:
|
291
|
+
#: meta_subject/choices.py:174
|
248
292
|
msgid "Free drugs from the pharmacy"
|
249
293
|
msgstr ""
|
250
294
|
|
251
|
-
#: choices.py:
|
295
|
+
#: meta_subject/choices.py:179 meta_subject/choices.py:185
|
252
296
|
msgid "Present"
|
253
297
|
msgstr ""
|
254
298
|
|
255
|
-
#: choices.py:
|
299
|
+
#: meta_subject/choices.py:180 meta_subject/choices.py:187
|
256
300
|
msgid "Absent"
|
257
301
|
msgstr ""
|
258
302
|
|
259
|
-
#: choices.py:
|
303
|
+
#: meta_subject/choices.py:186
|
260
304
|
msgid "Present with reinforcement"
|
261
305
|
msgstr ""
|
262
306
|
|
263
|
-
#: choices.py:
|
307
|
+
#: meta_subject/choices.py:193
|
264
308
|
msgid "New"
|
265
309
|
msgstr ""
|
266
310
|
|
267
|
-
#: choices.py:
|
311
|
+
#: meta_subject/choices.py:194
|
268
312
|
msgid "Open. Some information is still pending."
|
269
313
|
msgstr ""
|
270
314
|
|
271
|
-
#: choices.py:
|
315
|
+
#: meta_subject/choices.py:195
|
272
316
|
msgid "Closed. This report is complete"
|
273
317
|
msgstr ""
|
274
318
|
|
275
|
-
#: choices.py:
|
319
|
+
#: meta_subject/choices.py:200
|
276
320
|
msgid "Bus"
|
277
321
|
msgstr ""
|
278
322
|
|
279
|
-
#: choices.py:
|
323
|
+
#: meta_subject/choices.py:201
|
280
324
|
msgid "Train"
|
281
325
|
msgstr ""
|
282
326
|
|
283
|
-
#: choices.py:
|
327
|
+
#: meta_subject/choices.py:202
|
284
328
|
msgid "Ambulance"
|
285
329
|
msgstr ""
|
286
330
|
|
287
|
-
#: choices.py:
|
331
|
+
#: meta_subject/choices.py:203
|
288
332
|
msgid "Private taxi"
|
289
333
|
msgstr ""
|
290
334
|
|
291
|
-
#: choices.py:
|
335
|
+
#: meta_subject/choices.py:204
|
292
336
|
msgid "Own bicycle"
|
293
337
|
msgstr ""
|
294
338
|
|
295
|
-
#: choices.py:
|
339
|
+
#: meta_subject/choices.py:205
|
296
340
|
msgid "Hired motorbike"
|
297
341
|
msgstr ""
|
298
342
|
|
299
|
-
#: choices.py:
|
343
|
+
#: meta_subject/choices.py:206
|
300
344
|
msgid "Own car"
|
301
345
|
msgstr ""
|
302
346
|
|
303
|
-
#: choices.py:
|
347
|
+
#: meta_subject/choices.py:207
|
304
348
|
msgid "Own motorbike"
|
305
349
|
msgstr ""
|
306
350
|
|
307
|
-
#: choices.py:
|
351
|
+
#: meta_subject/choices.py:208
|
308
352
|
msgid "Hired bicycle"
|
309
353
|
msgstr ""
|
310
354
|
|
311
|
-
#: choices.py:
|
355
|
+
#: meta_subject/choices.py:209
|
312
356
|
msgid "Foot"
|
313
357
|
msgstr ""
|
314
358
|
|
315
|
-
#: choices.py:
|
359
|
+
#: meta_subject/choices.py:215
|
316
360
|
msgid "Patient unwell (outpatient)"
|
317
361
|
msgstr ""
|
318
362
|
|
319
|
-
#: choices.py:
|
363
|
+
#: meta_subject/choices.py:216
|
320
364
|
msgid "Patient hospitalised"
|
321
365
|
msgstr ""
|
322
366
|
|
323
|
-
#: choices.py:
|
367
|
+
#: meta_subject/choices.py:217
|
324
368
|
msgid "Routine appointment (non-study)"
|
325
369
|
msgstr ""
|
326
370
|
|
327
|
-
#: choices.py:
|
371
|
+
#: meta_subject/choices.py:218
|
328
372
|
msgid "Recurrence of symptoms"
|
329
373
|
msgstr ""
|
330
374
|
|
331
|
-
#: choices.py:
|
375
|
+
#: meta_subject/choices.py:224
|
332
376
|
msgid "Scheduled visit"
|
333
377
|
msgstr ""
|
334
378
|
|
335
|
-
#: choices.py:
|
379
|
+
#: meta_subject/choices.py:225
|
336
380
|
msgid "Unscheduled visit"
|
337
381
|
msgstr ""
|
338
382
|
|
339
|
-
#: choices.py:
|
383
|
+
#: meta_subject/choices.py:226
|
340
384
|
msgid "Missed visit"
|
341
385
|
msgstr ""
|
342
386
|
|
343
|
-
#: choices.py:
|
387
|
+
#: meta_subject/choices.py:229
|
344
388
|
msgid "Estimated"
|
345
389
|
msgstr ""
|
346
390
|
|
347
|
-
#: choices.py:
|
391
|
+
#: meta_subject/choices.py:229
|
348
392
|
msgid "Measured"
|
349
393
|
msgstr ""
|
350
394
|
|
351
|
-
#: choices.py:
|
395
|
+
#: meta_subject/choices.py:232
|
352
396
|
msgid "Not at all"
|
353
397
|
msgstr ""
|
354
398
|
|
355
|
-
#: choices.py:
|
399
|
+
#: meta_subject/choices.py:233
|
356
400
|
msgid "A little bit"
|
357
401
|
msgstr ""
|
358
402
|
|
359
|
-
#: choices.py:
|
403
|
+
#: meta_subject/choices.py:234
|
360
404
|
msgid "Moderately"
|
361
405
|
msgstr ""
|
362
406
|
|
363
|
-
#: choices.py:
|
407
|
+
#: meta_subject/choices.py:235
|
364
408
|
msgid "Quite a bit"
|
365
409
|
msgstr ""
|
366
410
|
|
367
|
-
#: choices.py:
|
411
|
+
#: meta_subject/choices.py:236
|
368
412
|
msgid "Extremely"
|
369
413
|
msgstr ""
|
414
|
+
|
415
|
+
#: meta_subject/models/health_economics/health_economics_update.py:20
|
416
|
+
msgid ""
|
417
|
+
"Thinking over the last 12 months, can you tell me what the average earnings "
|
418
|
+
"of the household have been?"
|
419
|
+
msgstr ""
|
420
|
+
|
421
|
+
#: meta_subject/models/health_economics/health_economics_update.py:36
|
422
|
+
msgid "Are you the household head?"
|
423
|
+
msgstr ""
|
424
|
+
|
425
|
+
#: meta_subject/models/health_economics/health_economics_update.py:40
|
426
|
+
msgid ""
|
427
|
+
"By head of the household we mean the main decision maker in the household. "
|
428
|
+
"The head can be either male or female. If two people are equal decision-"
|
429
|
+
"makers, take the older person."
|
430
|
+
msgstr ""
|
431
|
+
|
432
|
+
#: meta_subject/models/health_economics/health_economics_update.py:48
|
433
|
+
msgid "If No, what is your relationship to the household head?"
|
434
|
+
msgstr ""
|
435
|
+
|
436
|
+
#: meta_subject/models/health_economics/health_economics_update.py:52
|
437
|
+
msgid "Not applicable if patient is head of household"
|
438
|
+
msgstr ""
|
439
|
+
|
440
|
+
#: meta_subject/models/health_economics/health_economics_update.py:56
|
441
|
+
msgid "If OTHER relationship, specify ..."
|
442
|
+
msgstr ""
|
443
|
+
|
444
|
+
#: meta_subject/models/health_economics/health_economics_update.py:61
|
445
|
+
msgid ""
|
446
|
+
"How many rooms does your dwelling have in total, without counting the "
|
447
|
+
"bathrooms/ toilets or hallways/passageways?"
|
448
|
+
msgstr ""
|
449
|
+
|
450
|
+
#: meta_subject/models/health_economics/health_economics_update.py:68
|
451
|
+
msgid "How many rooms are used for sleeping in your dwelling?"
|
452
|
+
msgstr ""
|
453
|
+
|
454
|
+
#: meta_subject/models/health_economics/health_economics_update.py:73
|
455
|
+
msgid "How many beds does your dwelling have in total?"
|
456
|
+
msgstr ""
|
457
|
+
|
458
|
+
#: meta_subject/models/health_economics/health_economics_update.py:79
|
459
|
+
msgid ""
|
460
|
+
"Outside of this household, how many other people depend on this household's "
|
461
|
+
"income?"
|
462
|
+
msgstr ""
|
463
|
+
|
464
|
+
#: meta_subject/models/health_economics/health_economics_update.py:84
|
465
|
+
msgid ""
|
466
|
+
"Insert '0' if no dependents other than the members in the household roster"
|
467
|
+
msgstr ""
|
468
|
+
|
469
|
+
#: meta_subject/models/health_economics/health_economics_update.py:89
|
470
|
+
msgid "Would you say your household's financial situation is?"
|
471
|
+
msgstr ""
|
@@ -22,6 +22,13 @@ class GlucoseRuleGroup(CrfRuleGroup):
|
|
22
22
|
target_models=["glucose"],
|
23
23
|
)
|
24
24
|
|
25
|
+
glucose_fbg = CrfRule(
|
26
|
+
predicate=pc.glucose_fbg_required,
|
27
|
+
consequence=REQUIRED,
|
28
|
+
alternative=NOT_REQUIRED,
|
29
|
+
target_models=["glucosefbg"],
|
30
|
+
)
|
31
|
+
|
25
32
|
class Meta:
|
26
33
|
app_label = "meta_subject"
|
27
34
|
source_model = "meta_subject.subjectvisit"
|
@@ -12,14 +12,18 @@ from edc_visit_schedule.constants import (
|
|
12
12
|
MONTH1,
|
13
13
|
MONTH3,
|
14
14
|
MONTH6,
|
15
|
+
MONTH12,
|
15
16
|
MONTH18,
|
16
17
|
MONTH24,
|
17
18
|
MONTH30,
|
18
19
|
MONTH36,
|
20
|
+
MONTH48,
|
19
21
|
WEEK2,
|
20
22
|
)
|
21
23
|
from edc_visit_schedule.utils import is_baseline
|
22
24
|
|
25
|
+
from meta_visit_schedule.constants import MONTH39, MONTH42, MONTH45
|
26
|
+
|
23
27
|
|
24
28
|
def hba1c_crf_required_at_baseline(visit):
|
25
29
|
model_name = "meta_subject.bloodresultshba1c"
|
@@ -67,8 +71,14 @@ class Predicates(PersistantSingletonMixin):
|
|
67
71
|
|
68
72
|
@staticmethod
|
69
73
|
def glucose_required(visit, **kwargs):
|
70
|
-
if visit.
|
71
|
-
|
74
|
+
if visit.visit_code in [MONTH12, MONTH24, MONTH36, MONTH48]:
|
75
|
+
return True
|
76
|
+
return False
|
77
|
+
|
78
|
+
@staticmethod
|
79
|
+
def glucose_fbg_required(visit, **kwargs):
|
80
|
+
if visit.report_datetime >= datetime(2024, 3, 4, tzinfo=ZoneInfo("UTC")):
|
81
|
+
if visit.visit_code in [MONTH6, MONTH18, MONTH30, MONTH42]:
|
72
82
|
return True
|
73
83
|
return False
|
74
84
|
|
@@ -196,14 +206,27 @@ class Predicates(PersistantSingletonMixin):
|
|
196
206
|
return required
|
197
207
|
|
198
208
|
def mnsi_required(self, visit, **kwargs) -> bool:
|
199
|
-
"""Returns True if
|
200
|
-
|
209
|
+
"""Returns True if:
|
210
|
+
- MNSI assessment not performed in the 1, 3 or 6M visits
|
211
|
+
- MNSI assessment not performed in the 36, 39, 42, 45M visits
|
212
|
+
- MNSI assessment not performed in the 48M visit
|
201
213
|
"""
|
214
|
+
model_cls = django_apps.get_model(f"{self.app_label}.mnsi")
|
202
215
|
required = True
|
203
|
-
if
|
204
|
-
|
205
|
-
|
206
|
-
|
216
|
+
if visit.visit_code_sequence != 0:
|
217
|
+
required = False
|
218
|
+
elif visit.visit_code not in [
|
219
|
+
MONTH1,
|
220
|
+
MONTH3,
|
221
|
+
MONTH6,
|
222
|
+
MONTH36,
|
223
|
+
MONTH39,
|
224
|
+
MONTH42,
|
225
|
+
MONTH45,
|
226
|
+
MONTH48,
|
227
|
+
]:
|
228
|
+
required = False
|
229
|
+
elif visit.visit_code in [MONTH1, MONTH3, MONTH6]:
|
207
230
|
objs = model_cls.objects.filter(
|
208
231
|
subject_visit__subject_identifier=visit.subject_identifier,
|
209
232
|
subject_visit__visit_code__in=[MONTH1, MONTH3, MONTH6],
|
@@ -213,16 +236,30 @@ class Predicates(PersistantSingletonMixin):
|
|
213
236
|
if obj.mnsi_performed == YES:
|
214
237
|
required = False
|
215
238
|
break
|
239
|
+
elif visit.visit_code in [MONTH36, MONTH39, MONTH42, MONTH45]:
|
240
|
+
objs = model_cls.objects.filter(
|
241
|
+
subject_visit__subject_identifier=visit.subject_identifier,
|
242
|
+
subject_visit__visit_code__in=[MONTH36, MONTH39, MONTH42, MONTH45],
|
243
|
+
subject_visit__visit_code_sequence=0,
|
244
|
+
)
|
245
|
+
for obj in objs:
|
246
|
+
if obj.mnsi_performed == YES:
|
247
|
+
required = False
|
248
|
+
break
|
216
249
|
return required
|
217
250
|
|
218
251
|
def sf12_required(self, visit, **kwargs):
|
219
252
|
model = f"{self.app_label}.sf12"
|
253
|
+
if visit.visit_code_sequence == 0 and visit.visit_code in [MONTH36, MONTH48]:
|
254
|
+
return True
|
220
255
|
return self.persistant_singleton_required(
|
221
256
|
visit, model=model, exclude_visit_codes=[DAY1]
|
222
257
|
)
|
223
258
|
|
224
259
|
def eq5d3l_required(self, visit, **kwargs):
|
225
260
|
model = f"{self.app_label}.eq5d3l"
|
261
|
+
if visit.visit_code_sequence == 0 and visit.visit_code in [MONTH36, MONTH48]:
|
262
|
+
return True
|
226
263
|
return self.persistant_singleton_required(
|
227
264
|
visit, model=model, exclude_visit_codes=[DAY1]
|
228
265
|
)
|