meta-edc 1.1.10__py3-none-any.whl → 1.1.13__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of meta-edc might be problematic. Click here for more details.
- meta_ae/__init__.py +0 -0
- meta_ae/action_items.py +2 -1
- meta_ae/admin/__init__.py +11 -0
- meta_ae/admin/ae_followup_admin.py +0 -0
- meta_ae/admin/ae_initial_admin.py +0 -0
- meta_ae/admin/ae_local_review_admin.py +0 -0
- meta_ae/admin/ae_sponsor_review_admin.py +0 -0
- meta_ae/admin/ae_susar_admin.py +1 -1
- meta_ae/admin/ae_tmg_admin.py +0 -0
- meta_ae/admin/death_report_admin.py +1 -1
- meta_ae/admin/death_report_tmg_admin.py +0 -0
- meta_ae/admin/death_report_tmg_second_admin.py +0 -0
- meta_ae/admin/hospitalization_admin.py +0 -0
- meta_ae/admin/modeladmin_mixins.py +10 -12
- meta_ae/admin_site.py +0 -0
- meta_ae/apps.py +0 -0
- meta_ae/baker_recipes.py +3 -3
- meta_ae/choices.py +0 -0
- meta_ae/constants.py +0 -0
- meta_ae/forms/__init__.py +13 -0
- meta_ae/forms/ae_followup_form.py +0 -0
- meta_ae/forms/ae_initial_form.py +0 -0
- meta_ae/forms/ae_local_review_form.py +0 -0
- meta_ae/forms/ae_sponsor_review_form.py +0 -0
- meta_ae/forms/ae_susar_form.py +0 -0
- meta_ae/forms/ae_tmg_form.py +0 -0
- meta_ae/forms/death_report_form.py +0 -0
- meta_ae/forms/death_report_tmg_form.py +0 -0
- meta_ae/forms/death_report_tmg_second_form.py +0 -0
- meta_ae/forms/hospitalization_form.py +0 -0
- meta_ae/forms/modelform_mixins.py +2 -2
- meta_ae/list_data.py +0 -0
- meta_ae/migrations/0001_initial.py +27 -27
- meta_ae/migrations/0002_auto_20191024_1000.py +0 -0
- meta_ae/migrations/0003_auto_20191102_0033.py +0 -0
- meta_ae/migrations/0004_auto_20191114_0821.py +0 -0
- meta_ae/migrations/0005_auto_20210624_0225.py +0 -0
- meta_ae/migrations/0006_aelocalreview_aesponsorreview.py +5 -5
- meta_ae/migrations/0007_auto_20210911_2036.py +0 -0
- meta_ae/migrations/0008_auto_20211011_1657.py +0 -0
- meta_ae/migrations/0009_auto_20220307_1929.py +0 -0
- meta_ae/migrations/0010_auto_20220704_1841.py +0 -0
- meta_ae/migrations/0011_alter_aefollowup_action_identifier_and_more.py +0 -0
- meta_ae/migrations/0012_auto_20220826_0258.py +0 -0
- meta_ae/migrations/0013_auto_20220826_0322.py +0 -0
- meta_ae/migrations/0014_auto_20220826_0406.py +0 -0
- meta_ae/migrations/0015_auto_20220907_0157.py +0 -0
- meta_ae/migrations/0016_rename_narrative_aetmg_investigator_narrative_and_more.py +0 -0
- meta_ae/migrations/0017_auto_20221130_2257.py +0 -0
- meta_ae/migrations/0018_alter_deathreporttmg_cause_of_death_agreed_and_more.py +0 -0
- meta_ae/migrations/0019_alter_aefollowup_managers_alter_aeinitial_managers_and_more.py +0 -0
- meta_ae/migrations/0020_alter_aesusar_options_alter_aetmg_options_and_more.py +0 -0
- meta_ae/migrations/0021_alter_aefollowup_site_alter_aeinitial_site_and_more.py +0 -0
- meta_ae/migrations/0022_historicalhospitalization_hospitalization.py +5 -13
- meta_ae/migrations/0023_alter_aefollowup_action_identifier_and_more.py +2017 -0
- meta_ae/migrations/__init__.py +0 -0
- meta_ae/model_mixins/__init__.py +2 -0
- meta_ae/model_mixins/ae_review_model_mixin.py +6 -6
- meta_ae/model_mixins/death_report_model_mixin.py +3 -3
- meta_ae/models/__init__.py +13 -0
- meta_ae/models/ae_followup.py +0 -0
- meta_ae/models/ae_initial.py +0 -0
- meta_ae/models/ae_local_review.py +0 -0
- meta_ae/models/ae_sponsor_review.py +0 -0
- meta_ae/models/ae_susar.py +0 -0
- meta_ae/models/ae_tmg.py +0 -0
- meta_ae/models/death_report.py +0 -0
- meta_ae/models/death_report_tmg.py +0 -0
- meta_ae/models/death_report_tmg_second.py +0 -0
- meta_ae/models/hospitalization.py +3 -3
- meta_ae/models/managers.py +0 -0
- meta_ae/pdf_reports/__init__.py +2 -0
- meta_ae/pdf_reports/ae_pdf_report.py +0 -0
- meta_ae/pdf_reports/death_pdf_report.py +0 -0
- meta_ae/pdf_reports/meta_pdf_report_mixin.py +0 -0
- meta_ae/templates/meta_ae/aeinitial_description.html +0 -0
- meta_ae/templatetags/__init__.py +0 -0
- meta_ae/templatetags/meta_ae_extras.py +0 -0
- meta_ae/urls.py +0 -0
- {meta_edc → meta_analytics}/.DS_Store +0 -0
- meta_analytics/README.rst +0 -0
- meta_analytics/__init__.py +0 -0
- meta_analytics/constants.py +0 -0
- meta_analytics/dataframes/__init__.py +24 -0
- meta_analytics/dataframes/constants.py +0 -0
- meta_analytics/dataframes/get_eos_df.py +1 -2
- meta_analytics/dataframes/get_glucose_df.py +6 -7
- meta_analytics/dataframes/get_glucose_fbg_df.py +2 -3
- meta_analytics/dataframes/get_glucose_fbg_ogtt_df.py +1 -2
- meta_analytics/dataframes/get_last_imp_visits_df.py +5 -6
- meta_analytics/dataframes/glucose_endpoints/__init__.py +2 -0
- meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +13 -20
- meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +9 -10
- meta_analytics/dataframes/screening/__init__.py +2 -0
- meta_analytics/dataframes/screening/get_glucose_tested_only_df.py +1 -2
- meta_analytics/dataframes/screening/get_screening_df.py +6 -10
- meta_analytics/dataframes/utils.py +3 -8
- meta_analytics/get_tables.py +1 -2
- meta_analytics/tables/__init__.py +2 -0
- meta_analytics/tables/eligible.py +0 -0
- meta_analytics/tables/enrolled/__init__.py +0 -0
- meta_analytics/tables/enrolled/glucose.py +0 -0
- meta_analytics/tables/has_dm.py +0 -0
- meta_analytics/utils.py +0 -0
- meta_auth/__init__.py +0 -0
- meta_auth/apps.py +0 -0
- meta_auth/auth_objects.py +0 -0
- meta_auth/auths.py +0 -0
- meta_auth/urls.py +0 -0
- meta_consent/__init__.py +0 -0
- meta_consent/action_items.py +2 -1
- meta_consent/admin/__init__.py +6 -0
- meta_consent/admin/actions/__init__.py +2 -0
- meta_consent/admin/actions/create_missing_prescriptions.py +1 -1
- meta_consent/admin/list_filters.py +2 -2
- meta_consent/admin/modeladmin_mixins.py +3 -4
- meta_consent/admin/subject_consent_admin.py +0 -0
- meta_consent/admin/subject_consent_v1_admin.py +0 -0
- meta_consent/admin/subject_consent_v1_ext_admin.py +2 -2
- meta_consent/admin_site.py +0 -0
- meta_consent/apps.py +0 -0
- meta_consent/baker_recipes.py +7 -8
- meta_consent/consents.py +0 -0
- meta_consent/constants.py +0 -0
- meta_consent/form_validators/__init__.py +2 -0
- meta_consent/form_validators/subject_consent_form_validator.py +0 -0
- meta_consent/forms/__init__.py +7 -0
- meta_consent/forms/subject_consent_form.py +0 -0
- meta_consent/forms/subject_consent_v1_ext_form.py +2 -3
- meta_consent/forms/subject_consent_v1_form.py +0 -0
- meta_consent/forms/subject_reconsent_form.py +4 -4
- meta_consent/locale/lg/LC_MESSAGES/django.po +0 -0
- meta_consent/locale/sw/LC_MESSAGES/django.po +0 -0
- meta_consent/management/__init__.py +0 -0
- meta_consent/management/commands/__init__.py +0 -0
- meta_consent/management/commands/create_missing_prescriptions.py +4 -2
- meta_consent/migrations/0001_initial.py +9 -9
- meta_consent/migrations/0002_auto_20191024_1000.py +0 -0
- meta_consent/migrations/0003_auto_20200325_0901.py +0 -0
- meta_consent/migrations/0004_auto_20210624_0225.py +0 -0
- meta_consent/migrations/0005_alter_subjectconsent_options.py +0 -0
- meta_consent/migrations/0006_auto_20210911_2036.py +0 -0
- meta_consent/migrations/0007_auto_20220128_1719.py +0 -0
- meta_consent/migrations/0008_auto_20220412_2151.py +0 -0
- meta_consent/migrations/0009_auto_20220704_1841.py +0 -0
- meta_consent/migrations/0010_alter_historicalsubjectreconsent_action_identifier_and_more.py +0 -0
- meta_consent/migrations/0011_auto_20220826_0258.py +0 -0
- meta_consent/migrations/0012_auto_20220826_0322.py +0 -0
- meta_consent/migrations/0013_auto_20220826_0406.py +0 -0
- meta_consent/migrations/0014_alter_subjectconsent_managers.py +0 -0
- meta_consent/migrations/0015_auto_20220914_0542.py +0 -0
- meta_consent/migrations/0016_auto_20220914_0547.py +0 -0
- meta_consent/migrations/0017_auto_20220929_1742.py +0 -0
- meta_consent/migrations/0018_alter_subjectconsent_options_and_more.py +0 -0
- meta_consent/migrations/0019_alter_subjectconsent_options_and_more.py +0 -0
- meta_consent/migrations/0020_historicalsubjectconsent_model_name_and_more.py +0 -0
- meta_consent/migrations/0021_auto_20240111_0442.py +0 -0
- meta_consent/migrations/0022_alter_historicalsubjectconsent_site_and_more.py +0 -0
- meta_consent/migrations/0023_subjectconsentv1_and_more.py +0 -0
- meta_consent/migrations/0024_historicalsubjectconsentv1.py +3 -8
- meta_consent/migrations/0025_alter_historicalsubjectconsent_first_name_and_more.py +0 -0
- meta_consent/migrations/0026_historicalsubjectconsentv1ext_subjectconsentv1ext.py +5 -14
- meta_consent/migrations/0027_auto_20250111_0344.py +0 -0
- meta_consent/migrations/0028_historicalsubjectconsentv1ext_assessment_score_and_more.py +0 -0
- meta_consent/migrations/0029_alter_historicalsubjectconsentv1ext_agrees_to_extension_and_more.py +0 -0
- meta_consent/migrations/0030_auto_20250120_2114.py +0 -0
- meta_consent/migrations/0031_alter_historicalsubjectconsent_guardian_name_and_more.py +0 -0
- meta_consent/migrations/0032_alter_historicalsubjectconsent_device_created_and_more.py +678 -0
- meta_consent/migrations/__init__.py +0 -0
- meta_consent/models/__init__.py +9 -0
- meta_consent/models/model_mixins.py +1 -2
- meta_consent/models/signals.py +9 -10
- meta_consent/models/subject_consent.py +1 -1
- meta_consent/models/subject_consent_v1.py +0 -0
- meta_consent/models/subject_consent_v1_ext.py +0 -0
- meta_consent/models/subject_reconsent.py +3 -3
- meta_consent/urls.py +0 -0
- meta_dashboard/__init__.py +0 -0
- meta_dashboard/apps.py +0 -0
- meta_dashboard/locale/lg/LC_MESSAGES/django.po +0 -0
- meta_dashboard/locale/sw/LC_MESSAGES/django.po +0 -0
- meta_dashboard/migrations/__init__.py +0 -0
- meta_dashboard/navbars.py +0 -0
- meta_dashboard/patterns.py +1 -1
- meta_dashboard/templates/meta_dashboard/buttons/add_consent_button.html +0 -0
- meta_dashboard/templates/meta_dashboard/buttons/dashboard_button.html +0 -0
- meta_dashboard/templates/meta_dashboard/buttons/eligibility_button.html +0 -0
- meta_dashboard/templates/meta_dashboard/buttons/refusal_button.html +0 -0
- meta_dashboard/templates/meta_dashboard/buttons/screening_button.html +0 -0
- meta_dashboard/templates/meta_dashboard/screening/listboard.html +0 -0
- meta_dashboard/templates/meta_dashboard/subject/dashboard/sidebar.html +0 -0
- meta_dashboard/templates/meta_dashboard/subject/dashboard/top_bar.html +0 -0
- meta_dashboard/templates/meta_dashboard/subject/dashboard.html +0 -0
- meta_dashboard/templates/meta_dashboard/subject/listboard.html +0 -0
- meta_dashboard/templatetags/__init__.py +0 -0
- meta_dashboard/templatetags/meta_dashboard_extras.py +1 -1
- meta_dashboard/urls.py +0 -0
- meta_dashboard/view_utils/__init__.py +7 -0
- meta_dashboard/view_utils/subject_screening_button.py +9 -16
- meta_dashboard/views/__init__.py +8 -0
- meta_dashboard/views/ae/__init__.py +2 -0
- meta_dashboard/views/ae/ae_listboard_view.py +1 -1
- meta_dashboard/views/ae/death_report_listboard_view.py +1 -1
- meta_dashboard/views/screening/__init__.py +2 -0
- meta_dashboard/views/screening/listboard_view.py +0 -0
- meta_dashboard/views/subject/__init__.py +2 -0
- meta_dashboard/views/subject/dashboard/__init__.py +2 -0
- meta_dashboard/views/subject/dashboard/dashboard_view.py +1 -1
- meta_dashboard/views/subject/listboard/__init__.py +2 -0
- meta_dashboard/views/subject/listboard/listboard_view.py +0 -0
- meta_data_manager/__init__.py +0 -0
- meta_data_manager/apps.py +0 -0
- meta_data_manager/data_manager.py +0 -0
- meta_data_manager/handlers.py +0 -0
- meta_edc/__init__.py +1 -1
- meta_edc/admin.py +0 -0
- meta_edc/apps.py +0 -0
- meta_edc/asgi.py +0 -0
- meta_edc/celery.py +1 -1
- meta_edc/celery_live.py +1 -1
- meta_edc/celery_uat.py +1 -1
- meta_edc/management/__init__.py +0 -0
- meta_edc/management/commands/__init__.py +0 -0
- meta_edc/management/commands/update_forms_reference.py +10 -12
- meta_edc/meta_version.py +0 -0
- meta_edc/migrations/__init__.py +0 -0
- meta_edc/model_callers.py +0 -0
- meta_edc/models.py +0 -0
- meta_edc/navbars.py +0 -0
- meta_edc/settings/__init__.py +0 -0
- meta_edc/settings/debug.py +5 -4
- meta_edc/settings/defaults.py +2 -2
- meta_edc/settings/live.py +3 -1
- meta_edc/settings/logging.py +4 -4
- meta_edc/settings/minimal.py +4 -5
- meta_edc/settings/uat.py +3 -1
- meta_edc/templates/meta_edc/base.html +0 -0
- meta_edc/templates/meta_edc/home.html +0 -0
- meta_edc/urls.py +0 -0
- meta_edc/utils.py +0 -0
- meta_edc/views/__init__.py +2 -0
- meta_edc/views/home_view.py +0 -0
- meta_edc/wsgi.py +0 -0
- meta_edc/wsgi_live.py +0 -0
- meta_edc/wsgi_uat.py +0 -0
- meta_edc-1.1.13.dist-info/METADATA +175 -0
- meta_edc-1.1.13.dist-info/RECORD +1136 -0
- {meta_edc-1.1.10.dist-info → meta_edc-1.1.13.dist-info}/WHEEL +1 -1
- {meta_edc-1.1.10.dist-info → meta_edc-1.1.13.dist-info}/licenses/LICENSE +0 -0
- meta_export/__init__.py +0 -0
- meta_export/admin_site.py +0 -0
- meta_export/apps.py +0 -0
- meta_export/urls.py +0 -0
- meta_labs/__init__.py +0 -0
- meta_labs/aliquot_types.py +0 -0
- meta_labs/apps.py +0 -0
- meta_labs/lab_profiles.py +0 -0
- meta_labs/labs.py +0 -0
- meta_labs/list_data.py +0 -0
- meta_labs/processing_profiles.py +0 -0
- meta_labs/reportables.py +0 -0
- meta_lists/__init__.py +0 -0
- meta_lists/admin.py +0 -0
- meta_lists/admin_site.py +0 -0
- meta_lists/apps.py +0 -0
- meta_lists/list_data.py +0 -0
- meta_lists/migrations/0001_initial.py +0 -0
- meta_lists/migrations/0002_auto_20191026_2231.py +0 -0
- meta_lists/migrations/0003_auto_20191102_0033.py +0 -0
- meta_lists/migrations/0004_auto_20191102_1859.py +0 -0
- meta_lists/migrations/0005_auto_20191104_0930.py +0 -0
- meta_lists/migrations/0006_auto_20200514_1959.py +0 -0
- meta_lists/migrations/0007_auto_20200516_2356.py +0 -0
- meta_lists/migrations/0008_auto_20200528_1517.py +0 -0
- meta_lists/migrations/0009_auto_20200613_2041.py +0 -0
- meta_lists/migrations/0010_auto_20200617_1738.py +0 -0
- meta_lists/migrations/0011_auto_20210624_0225.py +0 -0
- meta_lists/migrations/0012_auto_20210728_1809.py +0 -0
- meta_lists/migrations/0013_transferreasons_and_more.py +0 -0
- meta_lists/migrations/0014_auto_20220913_2139.py +0 -0
- meta_lists/migrations/0015_abnormalfootappearanceobservations_extra_value_and_more.py +0 -0
- meta_lists/migrations/0016_alter_abnormalfootappearanceobservations_options_and_more.py +0 -0
- meta_lists/migrations/0017_complications_dmmedications_dmtreatments_and_more.py +0 -0
- meta_lists/migrations/0018_missedreferralreasons.py +0 -0
- meta_lists/migrations/0019_auto_20250128_0143.py +0 -0
- meta_lists/migrations/0020_alter_abnormalfootappearanceobservations_extra_value_and_more.py +404 -0
- meta_lists/migrations/__init__.py +0 -0
- meta_lists/models.py +0 -0
- meta_lists/urls.py +0 -0
- meta_pharmacy/__init__.py +0 -0
- meta_pharmacy/admin/__init__.py +5 -0
- meta_pharmacy/admin/rx_admin.py +0 -0
- meta_pharmacy/admin/substitutions_admin.py +2 -2
- meta_pharmacy/admin_site.py +0 -0
- meta_pharmacy/apps.py +0 -0
- meta_pharmacy/constants.py +0 -0
- meta_pharmacy/forms/__init__.py +2 -0
- meta_pharmacy/forms/rx_form.py +0 -0
- meta_pharmacy/forms/substitutions_form.py +6 -4
- meta_pharmacy/label_configs.py +0 -0
- meta_pharmacy/labels/__init__.py +4 -2
- meta_pharmacy/labels/draw_label_for_subject_with_barcode.py +1 -2
- meta_pharmacy/labels/draw_label_for_subject_with_code128.py +0 -0
- meta_pharmacy/labels/draw_label_with_test_data.py +2 -2
- meta_pharmacy/labels/label_data.py +1 -2
- meta_pharmacy/labels/print_sheets.py +4 -6
- meta_pharmacy/list_data.py +0 -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 +0 -0
- meta_pharmacy/migrations/0001_initial.py +0 -0
- meta_pharmacy/migrations/0002_initial.py +7 -20
- meta_pharmacy/migrations/0003_auto_20240909_2335.py +3 -2
- meta_pharmacy/migrations/0004_alter_historicalsubstitutions_report_datetime_and_more.py +0 -0
- meta_pharmacy/migrations/0005_auto_20240911_0352.py +0 -0
- meta_pharmacy/migrations/0006_lotnumber_label.py +5 -14
- meta_pharmacy/migrations/0007_lotnumber_medication.py +0 -0
- meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py +5 -6
- meta_pharmacy/migrations/0009_remove_historicalrx_slug.py +0 -0
- meta_pharmacy/migrations/0010_alter_historicallabeldata_device_created_and_more.py +382 -0
- meta_pharmacy/migrations/__init__.py +0 -0
- meta_pharmacy/models/__init__.py +7 -0
- meta_pharmacy/models/label_data.py +4 -5
- meta_pharmacy/models/rx.py +0 -0
- meta_pharmacy/models/rx_label.py +0 -0
- meta_pharmacy/models/substitutions.py +3 -3
- meta_pharmacy/prepare_meta_pharmacy.py +1 -1
- meta_pharmacy/urls.py +0 -0
- meta_pharmacy/utils/__init__.py +2 -0
- meta_pharmacy/utils/update_initial_pharmacy_data.py +1 -1
- meta_prn/__init__.py +0 -0
- meta_prn/action_items.py +0 -0
- meta_prn/admin/__init__.py +16 -0
- meta_prn/admin/dm_referral_admin.py +2 -1
- meta_prn/admin/end_of_study_admin.py +6 -7
- meta_prn/admin/loss_to_followup_admin.py +3 -2
- meta_prn/admin/off_study_medication_admin.py +5 -6
- meta_prn/admin/offschedule_admin.py +5 -6
- meta_prn/admin/offschedule_dm_referral_admin.py +6 -6
- meta_prn/admin/offschedule_postnatal_admin.py +7 -7
- meta_prn/admin/offschedule_pregnancy_admin.py +8 -7
- meta_prn/admin/onschedule_admin.py +7 -8
- meta_prn/admin/onschedule_dm_referral_admin.py +6 -7
- meta_prn/admin/pregnancy_notification_admin.py +5 -6
- meta_prn/admin/protocol_incident_admin.py +1 -1
- meta_prn/admin/subject_transfer_admin.py +1 -1
- meta_prn/admin_site.py +0 -0
- meta_prn/apps.py +0 -0
- meta_prn/baker_recipes.py +4 -4
- meta_prn/choices.py +0 -0
- meta_prn/constants.py +0 -0
- meta_prn/form_validators/__init__.py +5 -0
- meta_prn/form_validators/end_of_study.py +2 -2
- meta_prn/form_validators/protocol_incident.py +0 -0
- meta_prn/forms/__init__.py +13 -0
- meta_prn/forms/dm_referral_form.py +0 -0
- meta_prn/forms/end_of_study_form.py +0 -0
- meta_prn/forms/loss_to_followup_form.py +0 -0
- meta_prn/forms/off_study_medication_form.py +0 -0
- meta_prn/forms/offschedule_dm_referral_form.py +0 -0
- meta_prn/forms/offschedule_form.py +0 -0
- meta_prn/forms/offschedule_pregnancy_form.py +0 -0
- meta_prn/forms/pregnancy_notification_form.py +0 -0
- meta_prn/forms/protocol_incident_form.py +0 -0
- meta_prn/forms/subject_transfer_form.py +0 -0
- meta_prn/list_data.py +0 -0
- meta_prn/migrations/0001_initial.py +25 -25
- meta_prn/migrations/0002_auto_20191024_1000.py +0 -0
- meta_prn/migrations/0003_auto_20200120_2020.py +0 -0
- meta_prn/migrations/0004_auto_20200403_0332.py +0 -0
- meta_prn/migrations/0005_auto_20200524_1944.py +0 -0
- meta_prn/migrations/0006_auto_20210624_0225.py +0 -0
- meta_prn/migrations/0007_auto_20210721_0335.py +0 -0
- meta_prn/migrations/0008_auto_20210910_0238.py +0 -0
- meta_prn/migrations/0009_auto_20210910_0239.py +0 -0
- meta_prn/migrations/0010_auto_20210910_1906.py +0 -0
- meta_prn/migrations/0011_auto_20210910_1911.py +0 -0
- meta_prn/migrations/0012_auto_20210911_0004.py +0 -0
- meta_prn/migrations/0013_auto_20210911_2036.py +0 -0
- meta_prn/migrations/0014_auto_20211003_1709.py +0 -0
- meta_prn/migrations/0015_auto_20211104_1447.py +0 -0
- meta_prn/migrations/0016_auto_20220128_1719.py +0 -0
- meta_prn/migrations/0017_auto_20220307_1929.py +5 -5
- meta_prn/migrations/0018_auto_20220309_2106.py +9 -9
- meta_prn/migrations/0019_auto_20220309_2230.py +0 -0
- meta_prn/migrations/0020_auto_20220310_0439.py +0 -0
- meta_prn/migrations/0021_auto_20220316_2147.py +13 -13
- meta_prn/migrations/0022_auto_20220318_0133.py +9 -9
- meta_prn/migrations/0023_auto_20220415_1747.py +0 -0
- meta_prn/migrations/0024_alter_protocoldeviationviolation_violation.py +0 -0
- meta_prn/migrations/0025_alter_historicalprotocoldeviationviolation_options_and_more.py +0 -0
- meta_prn/migrations/0026_remove_historicalprotocoldeviationviolation_violation_type_and_more.py +0 -0
- meta_prn/migrations/0027_rename_historicalprotocoldeviationviolation_historicalprotocolincident_and_more.py +0 -0
- meta_prn/migrations/0028_historicalpregnancynotification_bhcg_date_and_more.py +0 -0
- meta_prn/migrations/0029_alter_historicalpregnancynotification_edd_and_more.py +0 -0
- meta_prn/migrations/0030_auto_20220627_1119.py +0 -0
- meta_prn/migrations/0031_alter_historicaloffschedule_options_and_more.py +0 -0
- meta_prn/migrations/0032_historicalegfrnotification_egfrnotification.py +5 -13
- meta_prn/migrations/0033_remove_historicalegfrnotification_action_item_and_more.py +0 -0
- meta_prn/migrations/0034_auto_20220630_1110.py +0 -0
- meta_prn/migrations/0035_auto_20220630_1140.py +0 -0
- meta_prn/migrations/0036_remove_endofstudy_meta_prn_en_id_a50384_idx_and_more.py +0 -0
- meta_prn/migrations/0037_endofstudy_delivery_date_endofstudy_pregnancy_date_and_more.py +0 -0
- meta_prn/migrations/0038_alter_endofstudy_delivery_date_and_more.py +5 -13
- meta_prn/migrations/0039_historicaloffstudymedication_reason_other_and_more.py +0 -0
- meta_prn/migrations/0040_remove_historicaloffstudymedication_expected_restart_date_and_more.py +0 -0
- meta_prn/migrations/0041_endofstudy_transfer_date_and_more.py +5 -13
- meta_prn/migrations/0042_remove_endofstudy_investigator_decision_and_more.py +0 -0
- meta_prn/migrations/0043_auto_20220704_1841.py +0 -0
- meta_prn/migrations/0044_alter_endofstudy_action_identifier_and_more.py +0 -0
- meta_prn/migrations/0045_auto_20220826_0258.py +0 -0
- meta_prn/migrations/0046_auto_20220826_0322.py +0 -0
- meta_prn/migrations/0047_auto_20220826_0406.py +0 -0
- meta_prn/migrations/0048_auto_20220922_2236.py +0 -0
- meta_prn/migrations/0049_auto_20220929_1742.py +0 -0
- meta_prn/migrations/0050_auto_20221004_0629.py +0 -0
- meta_prn/migrations/0051_historicalprotocolincident_reasons_withdrawn_and_more.py +0 -0
- meta_prn/migrations/0052_alter_historicalprotocolincident_reasons_withdrawn_and_more.py +0 -0
- meta_prn/migrations/0053_alter_losstofollowup_options_and_more.py +0 -0
- meta_prn/migrations/0054_alter_losstofollowup_options_and_more.py +0 -0
- meta_prn/migrations/0055_alter_endofstudy_site_and_more.py +0 -0
- meta_prn/migrations/0056_alter_endofstudy_clinical_withdrawal_reason_and_more.py +0 -0
- meta_prn/migrations/0057_historicalonscheduledmreferral_and_more.py +13 -38
- meta_prn/migrations/0058_dmreferral_referral_note_and_more.py +0 -0
- meta_prn/migrations/0059_alter_historicaloffstudymedication_reason_and_more.py +0 -0
- meta_prn/migrations/0060_alter_onschedule_managers_and_more.py +0 -0
- meta_prn/migrations/0061_auto_20250115_2025.py +0 -0
- meta_prn/migrations/0062_alter_endofstudy_offstudy_reason_and_more.py +0 -0
- meta_prn/migrations/0063_historicaloffstudymedication_singleton_field_and_more.py +0 -0
- meta_prn/migrations/0064_auto_20250602_2143.py +0 -0
- meta_prn/migrations/0065_alter_historicaloffstudymedication_subject_identifier_and_more.py +0 -0
- meta_prn/migrations/0066_alter_historicallosstofollowup_subject_identifier_and_more.py +0 -0
- meta_prn/migrations/0067_alter_offschedule_managers_and_more.py +2557 -0
- meta_prn/migrations/__init__.py +0 -0
- meta_prn/models/__init__.py +20 -0
- meta_prn/models/dm_referral.py +0 -0
- meta_prn/models/end_of_study.py +0 -0
- meta_prn/models/loss_to_followup.py +0 -0
- meta_prn/models/off_study_medication.py +0 -0
- meta_prn/models/offschedule.py +4 -4
- meta_prn/models/onschedule.py +0 -0
- meta_prn/models/pregnancy_notification.py +0 -0
- meta_prn/models/protocol_incident.py +1 -1
- meta_prn/models/signals.py +0 -0
- meta_prn/models/subject_transfer.py +8 -0
- meta_prn/pregnancy_action_item_mixin.py +0 -0
- meta_prn/templates/meta_prn/eos/additional_instructions.html +0 -0
- meta_prn/templates/meta_prn/offschedule/additional_instructions.html +0 -0
- meta_prn/urls.py +0 -0
- meta_rando/__init__.py +0 -0
- meta_rando/apps.py +0 -0
- meta_rando/migrations/0001_initial.py +5 -5
- meta_rando/migrations/0002_auto_20220704_1841.py +0 -0
- meta_rando/migrations/0003_auto_20220826_1640.py +0 -0
- meta_rando/migrations/0004_alter_randomizationlist_options_and_more.py +0 -0
- meta_rando/migrations/0005_alter_randomizationlist_options_and_more.py +0 -0
- meta_rando/migrations/0006_alter_historicalrandomizationlist_allocated_user_and_more.py +130 -0
- meta_rando/migrations/__init__.py +0 -0
- meta_rando/models.py +0 -0
- meta_rando/randomizers.py +0 -0
- meta_reports/__init__.py +2 -0
- meta_reports/admin/__init__.py +16 -0
- meta_reports/admin/dbviews/__init__.py +13 -0
- meta_reports/admin/dbviews/glucose_summary_admin.py +6 -6
- meta_reports/admin/dbviews/imp_substitutions_admin.py +12 -11
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/__init__.py +5 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/note_model_admin.py +6 -10
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/unmanaged_model_admin.py +6 -6
- meta_reports/admin/dbviews/on_study_missing_lab_values_admin/__init__.py +2 -0
- meta_reports/admin/dbviews/on_study_missing_lab_values_admin/unmanaged_model_admin.py +0 -3
- meta_reports/admin/dbviews/on_study_missing_values_admin/__init__.py +2 -0
- meta_reports/admin/dbviews/on_study_missing_values_admin/unmanaged_model_admin.py +0 -0
- meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py +8 -8
- meta_reports/admin/dbviews/unattended_three_in_row2_admin.py +6 -6
- meta_reports/admin/dbviews/unattended_three_in_row_admin.py +5 -5
- meta_reports/admin/dbviews/unattended_two_in_row_admin.py +5 -5
- meta_reports/admin/endpoints_admin.py +1 -1
- meta_reports/admin/endpoints_all_admin.py +0 -0
- meta_reports/admin/last_imp_refill_admin.py +9 -9
- meta_reports/admin/list_filters.py +2 -2
- meta_reports/admin/modeladmin_mixins.py +9 -16
- meta_reports/admin_site.py +0 -0
- meta_reports/ae_report.py +0 -0
- meta_reports/apps.py +0 -0
- meta_reports/death_report.py +1 -1
- meta_reports/forms/__init__.py +2 -0
- meta_reports/forms/missing_ogtt_note_form.py +2 -3
- meta_reports/management/__init__.py +0 -0
- meta_reports/management/commands/__init__.py +0 -0
- meta_reports/management/commands/generate_endpoints.py +5 -4
- meta_reports/migrations/0001_initial.py +0 -0
- meta_reports/migrations/0002_patienthistorymissingbaselinecd4_and_more.py +0 -0
- meta_reports/migrations/0003_auto_20240618_0505.py +0 -0
- meta_reports/migrations/0004_alter_patienthistorymissingbaselinecd4_table.py +0 -0
- meta_reports/migrations/0005_endpoints.py +0 -0
- meta_reports/migrations/0006_endpoints_baseline_datetime.py +0 -0
- meta_reports/migrations/0007_alter_endpoints_endpoint_label_and_more.py +0 -0
- meta_reports/migrations/0008_alter_endpoints_endpoint_label.py +0 -0
- meta_reports/migrations/0009_alter_endpoints_options.py +0 -0
- meta_reports/migrations/0010_alter_patienthistorymissingbaselinecd4_options_and_more.py +0 -0
- meta_reports/migrations/0011_auto_20240813_0156.py +0 -0
- meta_reports/migrations/0012_auto_20240813_1516.py +0 -0
- meta_reports/migrations/0013_auto_20240813_1516.py +0 -0
- meta_reports/migrations/0014_auto_20240813_1517.py +0 -0
- meta_reports/migrations/0015_alter_endpoints_site.py +0 -0
- meta_reports/migrations/0016_missingscreeningogtt.py +0 -0
- meta_reports/migrations/0017_auto_20240819_1711.py +0 -0
- meta_reports/migrations/0018_auto_20240819_1713.py +0 -0
- meta_reports/migrations/0019_auto_20240819_1721.py +0 -0
- meta_reports/migrations/0020_auto_20240819_1811.py +0 -0
- meta_reports/migrations/0021_auto_20240819_1817.py +0 -0
- meta_reports/migrations/0022_auto_20240819_1832.py +0 -0
- meta_reports/migrations/0023_endpoints_meta_report_subject_a56b22_idx.py +0 -0
- meta_reports/migrations/0024_glucosesummary.py +0 -0
- meta_reports/migrations/0025_auto_20240822_0115.py +0 -0
- meta_reports/migrations/0026_auto_20240822_0120.py +0 -0
- meta_reports/migrations/0027_auto_20240822_0140.py +0 -0
- meta_reports/migrations/0028_alter_glucosesummary_options.py +0 -0
- meta_reports/migrations/0029_auto_20240822_0149.py +0 -0
- meta_reports/migrations/0030_auto_20240822_1637.py +0 -0
- meta_reports/migrations/0031_endpointsproxy.py +0 -0
- meta_reports/migrations/0032_alter_endpointsproxy_options.py +0 -0
- meta_reports/migrations/0033_auto_20240823_0012.py +0 -0
- meta_reports/migrations/0034_auto_20240823_1642.py +0 -0
- meta_reports/migrations/0035_historicalmissingogttnote_missingogttnote.py +5 -14
- meta_reports/migrations/0036_historicalmissingogttnote_fasting_and_more.py +0 -0
- meta_reports/migrations/0037_historicalmissingogttnote_result_status_and_more.py +0 -0
- meta_reports/migrations/0038_alter_historicalmissingogttnote_fasting_and_more.py +0 -0
- meta_reports/migrations/0039_onstudymissingvalues.py +0 -0
- meta_reports/migrations/0040_auto_20240824_0412.py +0 -0
- meta_reports/migrations/0041_auto_20240828_2229.py +0 -0
- meta_reports/migrations/0042_onstudymissinglabvalues.py +0 -0
- meta_reports/migrations/0043_auto_20240828_2309.py +0 -0
- meta_reports/migrations/0044_auto_20240828_2323.py +0 -0
- meta_reports/migrations/0045_auto_20240829_0248.py +0 -0
- meta_reports/migrations/0046_auto_20240829_0250.py +0 -0
- meta_reports/migrations/0047_impsubstitutions.py +0 -0
- meta_reports/migrations/0048_auto_20240909_2338.py +0 -0
- meta_reports/migrations/0049_auto_20240911_0327.py +0 -0
- meta_reports/migrations/0050_alter_endpoints_created.py +0 -0
- meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py +0 -0
- meta_reports/migrations/0052_lastimpvisit.py +0 -0
- meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py +0 -0
- meta_reports/migrations/0054_auto_20250422_2003.py +0 -0
- meta_reports/migrations/0055_alter_glucosesummary_table.py +0 -0
- meta_reports/migrations/0056_auto_20250422_2214.py +0 -0
- meta_reports/migrations/0057_auto_20250422_2224.py +0 -0
- meta_reports/migrations/0058_auto_20250422_2232.py +0 -0
- meta_reports/migrations/0059_alter_endpoints_created_and_more.py +161 -0
- meta_reports/migrations/__init__.py +0 -0
- meta_reports/models/__init__.py +17 -0
- meta_reports/models/dbviews/README +0 -0
- meta_reports/models/dbviews/__init__.py +14 -0
- meta_reports/models/dbviews/glucose_summary/__init__.py +2 -0
- meta_reports/models/dbviews/glucose_summary/unmanaged_model.py +4 -5
- meta_reports/models/dbviews/glucose_summary/view_definition.py +0 -0
- meta_reports/models/dbviews/imp_substitutions/__init__.py +2 -0
- meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py +0 -0
- meta_reports/models/dbviews/imp_substitutions/view_definition.py +1 -1
- meta_reports/models/dbviews/missing_screening_ogtt/__init__.py +2 -0
- meta_reports/models/dbviews/missing_screening_ogtt/note_model.py +1 -1
- meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py +4 -3
- meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py +0 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/__init__.py +2 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/qa_cases.py +13 -11
- meta_reports/models/dbviews/on_study_missing_lab_values/unmanged_model.py +0 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/view_definition.py +0 -0
- meta_reports/models/dbviews/on_study_missing_values/__init__.py +2 -0
- meta_reports/models/dbviews/on_study_missing_values/qa_cases.py +0 -0
- meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py +0 -0
- meta_reports/models/dbviews/on_study_missing_values/view_definition.py +0 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py +2 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/unmanaged_model.py +0 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py +0 -0
- meta_reports/models/dbviews/unattended_three_in_row/__init__.py +2 -0
- meta_reports/models/dbviews/unattended_three_in_row/unmanaged_model.py +0 -0
- meta_reports/models/dbviews/unattended_three_in_row/view_definition.py +0 -0
- meta_reports/models/dbviews/unattended_three_in_row2/__init__.py +2 -0
- meta_reports/models/dbviews/unattended_three_in_row2/unmanaged_model.py +0 -0
- meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py +0 -0
- meta_reports/models/dbviews/unattended_two_in_row/__init__.py +2 -0
- meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py +0 -0
- meta_reports/models/dbviews/unattended_two_in_row/view_definition.py +0 -0
- meta_reports/models/endpoints.py +4 -4
- meta_reports/models/endpoints_proxy.py +0 -0
- meta_reports/models/last_imp_refill.py +2 -3
- meta_reports/pdf_report.py +2 -2
- meta_reports/tasks.py +1 -1
- meta_reports/templates/meta_reports/columns/subject_identifier_column.html +0 -0
- meta_reports/templates/meta_reports/endpoints_all_change_list_note.html +0 -0
- meta_reports/templates/meta_reports/endpoints_change_list_note.html +0 -0
- meta_reports/templates/meta_reports/last_imp_refill/changelist_note.html +0 -0
- meta_reports/urls.py +0 -0
- meta_reports/utils.py +0 -0
- meta_screening/__init__.py +0 -0
- meta_screening/admin/__init__.py +8 -0
- meta_screening/admin/fieldsets.py +13 -14
- meta_screening/admin/list_filters.py +6 -4
- meta_screening/admin/screening_part_one_admin.py +1 -2
- meta_screening/admin/screening_part_three_admin.py +2 -3
- meta_screening/admin/screening_part_two_admin.py +7 -10
- meta_screening/admin/subject_refusal_admin.py +5 -3
- meta_screening/admin/subject_screening_admin.py +4 -4
- meta_screening/admin_site.py +0 -0
- meta_screening/apps.py +0 -0
- meta_screening/baker_recipes.py +9 -9
- meta_screening/calculators.py +0 -0
- meta_screening/choices.py +0 -0
- meta_screening/constants.py +0 -0
- meta_screening/eligibility/__init__.py +9 -0
- meta_screening/eligibility/eligibility.py +7 -7
- meta_screening/eligibility/eligibility_part_one.py +0 -0
- meta_screening/eligibility/eligibility_part_three/__init__.py +2 -0
- meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py +8 -8
- meta_screening/eligibility/eligibility_part_three/eligibility_part_three_phase_three.py +13 -14
- meta_screening/eligibility/eligibility_part_two.py +0 -0
- meta_screening/form_validators/__init__.py +8 -0
- meta_screening/form_validators/screening_part_one.py +0 -0
- meta_screening/form_validators/screening_part_three.py +0 -0
- meta_screening/form_validators/screening_part_two.py +0 -0
- meta_screening/form_validators/subject_refusal.py +0 -0
- meta_screening/form_validators/subject_screening.py +0 -0
- meta_screening/forms/__init__.py +20 -0
- meta_screening/forms/field_lists.py +16 -17
- meta_screening/forms/screening_part_one_form.py +2 -2
- meta_screening/forms/screening_part_three_form.py +5 -3
- meta_screening/forms/screening_part_two_form.py +1 -5
- meta_screening/forms/subject_refusal_form.py +0 -4
- meta_screening/forms/subject_screening_form.py +0 -4
- meta_screening/migrations/0001_initial.py +15 -15
- meta_screening/migrations/0002_auto_20191020_0612.py +0 -0
- meta_screening/migrations/0003_auto_20191020_0627.py +0 -0
- meta_screening/migrations/0004_auto_20191020_0738.py +0 -0
- meta_screening/migrations/0005_auto_20191021_0353.py +0 -0
- meta_screening/migrations/0006_auto_20191022_0134.py +0 -0
- meta_screening/migrations/0007_auto_20191024_1000.py +0 -0
- meta_screening/migrations/0008_auto_20191031_0745.py +0 -0
- meta_screening/migrations/0009_auto_20191105_0122.py +0 -0
- meta_screening/migrations/0010_auto_20191106_0828.py +5 -5
- meta_screening/migrations/0011_auto_20191107_0342.py +0 -0
- meta_screening/migrations/0012_auto_20191107_0427.py +0 -0
- meta_screening/migrations/0013_auto_20191107_0442.py +0 -0
- meta_screening/migrations/0014_auto_20191107_0528.py +0 -0
- meta_screening/migrations/0015_auto_20191107_2249.py +0 -0
- meta_screening/migrations/0016_auto_20191119_2331.py +0 -0
- meta_screening/migrations/0017_auto_20191213_0314.py +0 -0
- meta_screening/migrations/0018_auto_20200118_1854.py +0 -0
- meta_screening/migrations/0019_auto_20200120_2256.py +0 -0
- meta_screening/migrations/0020_auto_20200524_1944.py +0 -0
- meta_screening/migrations/0021_auto_20210628_2105.py +0 -0
- meta_screening/migrations/0022_auto_20210702_0426.py +0 -0
- meta_screening/migrations/0023_auto_20210702_0533.py +0 -0
- meta_screening/migrations/0024_auto_20210710_1929.py +0 -0
- meta_screening/migrations/0025_auto_20210710_2247.py +0 -0
- meta_screening/migrations/0026_auto_20210712_0433.py +0 -0
- meta_screening/migrations/0027_auto_20210804_0438.py +0 -0
- meta_screening/migrations/0028_auto_20210823_2353.py +0 -0
- meta_screening/migrations/0029_auto_20211123_1645.py +0 -0
- meta_screening/migrations/0030_auto_20220128_1719.py +0 -0
- meta_screening/migrations/0031_auto_20220304_0448.py +0 -0
- meta_screening/migrations/0032_auto_20220304_0501.py +0 -0
- meta_screening/migrations/0033_auto_20220304_0504.py +0 -0
- meta_screening/migrations/0034_auto_20220304_0508.py +0 -0
- meta_screening/migrations/0035_auto_20220304_2233.py +0 -0
- meta_screening/migrations/0036_auto_20220304_2307.py +0 -0
- meta_screening/migrations/0037_auto_20220312_0339.py +0 -0
- meta_screening/migrations/0038_auto_20220312_1929.py +0 -0
- meta_screening/migrations/0039_auto_20220312_1938.py +0 -0
- meta_screening/migrations/0040_auto_20220316_2147.py +0 -0
- meta_screening/migrations/0041_auto_20220403_1227.py +0 -0
- meta_screening/migrations/0042_auto_20220403_1402.py +0 -0
- meta_screening/migrations/0043_auto_20220407_1713.py +0 -0
- meta_screening/migrations/0044_alter_historicalscreeningpartone_severe_htn_and_more.py +0 -0
- meta_screening/migrations/0045_historicalscreeningpartone_contact_number_and_more.py +0 -0
- meta_screening/migrations/0046_historicalscreeningpartone_hba1c_datetime_and_more.py +0 -0
- meta_screening/migrations/0047_historicalscreeningpartone_appt_datetime_repeat_and_more.py +0 -0
- meta_screening/migrations/0048_rename_appt_datetime_repeat_historicalscreeningpartone_repeat_appt_datetime_and_more.py +0 -0
- meta_screening/migrations/0049_historicalscreeningpartone_p3_ltfu_and_more.py +0 -0
- meta_screening/migrations/0050_historicalscreeningpartone_agree_to_p3_and_more.py +0 -0
- meta_screening/migrations/0051_alter_historicalscreeningpartone_advised_to_fast_and_more.py +0 -0
- meta_screening/migrations/0052_alter_historicalscreeningpartone_p3_ltfu_and_more.py +0 -0
- meta_screening/migrations/0053_auto_20220704_1841.py +0 -0
- meta_screening/migrations/0054_auto_20220722_2130.py +0 -0
- meta_screening/migrations/0055_alter_historicalscreeningpartone_creatinine_value_and_more.py +0 -0
- meta_screening/migrations/0056_alter_historicalscreeningpartone_agree_to_p3_and_more.py +0 -0
- meta_screening/migrations/0057_alter_historicalscreeningpartone_calculated_egfr_value_and_more.py +0 -0
- meta_screening/migrations/0058_alter_historicalscreeningpartone_eligibility_datetime_and_more.py +0 -0
- meta_screening/migrations/0059_alter_icpreferral_managers_and_more.py +0 -0
- meta_screening/migrations/0060_historicalicpreferral_locale_created_and_more.py +0 -0
- meta_screening/migrations/0061_alter_historicalicpreferral_site_and_more.py +0 -0
- meta_screening/migrations/0062_remove_icpreferral_site_and_more.py +0 -0
- meta_screening/migrations/0063_alter_historicalscreeningpartone_fasting_duration_str_and_more.py +0 -0
- meta_screening/migrations/0064_remove_historicalscreeningpartone_fasting_duration_minutes_and_more.py +0 -0
- meta_screening/migrations/0065_auto_20240516_0352.py +0 -0
- meta_screening/migrations/0066_alter_historicalscreeningpartone_fasting_duration_delta_and_more.py +0 -0
- meta_screening/migrations/0067_alter_historicalscreeningpartone_report_datetime_and_more.py +0 -0
- meta_screening/migrations/0068_alter_historicalscreeningpartone_acute_condition_and_more.py +1579 -0
- meta_screening/migrations/__init__.py +0 -0
- meta_screening/model_mixins/__init__.py +8 -0
- meta_screening/model_mixins/calculated_model_mixin.py +0 -0
- meta_screening/model_mixins/creatinine_fields_model_mixin.py +0 -0
- meta_screening/model_mixins/eligibility_model_mixin.py +5 -3
- meta_screening/model_mixins/part_one_fields_model_mixin.py +5 -9
- meta_screening/model_mixins/part_three_fields_model_mixin.py +5 -6
- meta_screening/model_mixins/part_two_fields_model_mixin.py +18 -16
- meta_screening/models/__init__.py +9 -0
- meta_screening/models/icp_referral.py +5 -5
- meta_screening/models/proxy_models.py +0 -0
- meta_screening/models/signals.py +10 -11
- meta_screening/models/subject_refusal.py +1 -1
- meta_screening/models/subject_screening.py +1 -3
- meta_screening/urls.py +0 -0
- meta_sites/__init__.py +0 -0
- meta_sites/apps.py +0 -0
- meta_sites/migrations/__init__.py +0 -0
- meta_sites/models.py +0 -0
- meta_sites/sites.py +0 -0
- meta_subject/__init__.py +0 -0
- meta_subject/action_items.py +13 -15
- meta_subject/admin/__init__.py +39 -0
- meta_subject/admin/autocomplete_admin.py +0 -0
- meta_subject/admin/birth_outcome_admin.py +4 -8
- meta_subject/admin/blood_results/__init__.py +9 -0
- meta_subject/admin/blood_results/blood_results_fbc_admin.py +1 -1
- meta_subject/admin/blood_results/blood_results_hba1c_admin.py +1 -1
- meta_subject/admin/blood_results/blood_results_ins_admin.py +1 -1
- meta_subject/admin/blood_results/blood_results_lft_admin.py +1 -1
- meta_subject/admin/blood_results/blood_results_lipids_admin.py +1 -1
- meta_subject/admin/blood_results/blood_results_rft_admin.py +3 -5
- meta_subject/admin/complications_admin.py +0 -0
- meta_subject/admin/complications_glycemia_admin.py +1 -1
- meta_subject/admin/concomitant_medication_admin.py +0 -0
- meta_subject/admin/delivery_admin.py +7 -10
- meta_subject/admin/diabetes/__init__.py +2 -0
- meta_subject/admin/diabetes/dm_endpoint_admin.py +2 -2
- meta_subject/admin/diabetes/dm_followup_admin.py +3 -2
- meta_subject/admin/egfr_drop_notification_admin.py +1 -1
- meta_subject/admin/eq5d3l_admin.py +0 -0
- meta_subject/admin/fields.py +0 -0
- meta_subject/admin/fieldsets.py +0 -0
- meta_subject/admin/followup_examination_admin.py +10 -9
- meta_subject/admin/followup_vitals_admin.py +4 -5
- meta_subject/admin/glucose_admin.py +2 -4
- meta_subject/admin/glucose_fbg_admin.py +1 -3
- meta_subject/admin/health_economics/__init__.py +2 -0
- meta_subject/admin/health_economics/health_economics_simple_admin.py +1 -1
- meta_subject/admin/health_economics/health_economics_update_admin.py +1 -1
- meta_subject/admin/hepatitis_test_admin.py +1 -1
- meta_subject/admin/list_filters.py +1 -1
- meta_subject/admin/malaria_test_admin.py +0 -0
- meta_subject/admin/medication_adherence_admin.py +0 -0
- meta_subject/admin/mnsi_admin.py +7 -5
- meta_subject/admin/modeladmin.py +0 -0
- meta_subject/admin/next_appointment_admin.py +0 -0
- meta_subject/admin/other_arv_regimens_admin.py +3 -3
- meta_subject/admin/patient_history_admin.py +4 -4
- meta_subject/admin/physical_exam_admin.py +1 -1
- meta_subject/admin/pregnancy_update_admin.py +1 -1
- meta_subject/admin/sf12_admin.py +0 -0
- meta_subject/admin/study_medication_admin.py +8 -15
- meta_subject/admin/subject_requisition_admin.py +1 -1
- meta_subject/admin/subject_visit_admin.py +1 -1
- meta_subject/admin/subject_visit_missed_admin.py +1 -1
- meta_subject/admin/urine_dipstick_test_admin.py +1 -1
- meta_subject/admin/urine_pregnancy_admin.py +1 -1
- meta_subject/admin_site.py +0 -0
- meta_subject/apps.py +0 -0
- meta_subject/baker_recipes.py +15 -15
- meta_subject/choices.py +0 -0
- meta_subject/constants.py +0 -0
- meta_subject/form_validators/__init__.py +11 -0
- meta_subject/form_validators/birth_outcomes_form_validator.py +0 -0
- meta_subject/form_validators/delivery_form_validator.py +2 -3
- meta_subject/form_validators/dm_endpoint_form_validator.py +1 -1
- meta_subject/form_validators/dm_followup_form_validator.py +7 -6
- meta_subject/form_validators/egfr_drop_notification_form_validator.py +0 -0
- meta_subject/form_validators/followup_examination_form_validator.py +0 -0
- meta_subject/form_validators/glucose_form_validator.py +3 -5
- meta_subject/form_validators/health_economics_form_validator.py +0 -0
- meta_subject/forms/__init__.py +41 -0
- meta_subject/forms/birth_outcomes_form.py +0 -0
- meta_subject/forms/blood_results/__init__.py +9 -0
- meta_subject/forms/blood_results/blood_results_fbc_form.py +0 -0
- meta_subject/forms/blood_results/blood_results_hba1c_form.py +0 -0
- meta_subject/forms/blood_results/blood_results_ins_form.py +0 -0
- meta_subject/forms/blood_results/blood_results_lft_form.py +0 -0
- meta_subject/forms/blood_results/blood_results_lipids_form.py +0 -0
- meta_subject/forms/blood_results/blood_results_rft_form.py +1 -2
- meta_subject/forms/complications_glycemia_form.py +0 -0
- meta_subject/forms/concomitant_medication_form.py +0 -0
- meta_subject/forms/delivery_form.py +0 -0
- meta_subject/forms/diabetes/__init__.py +2 -0
- meta_subject/forms/diabetes/dm_endpoint_form.py +0 -0
- meta_subject/forms/diabetes/dm_followup_form.py +2 -2
- meta_subject/forms/egfr_drop_notification_form.py +0 -0
- meta_subject/forms/eq53d3l_form.py +0 -0
- meta_subject/forms/followup_examination_form.py +0 -0
- meta_subject/forms/followup_vitals_form.py +3 -8
- meta_subject/forms/glucose_fbg_form.py +0 -0
- meta_subject/forms/glucose_form.py +0 -0
- meta_subject/forms/health_economics/__init__.py +2 -0
- meta_subject/forms/health_economics/health_economics_simple_form.py +0 -0
- meta_subject/forms/health_economics/health_economics_update_form.py +0 -0
- meta_subject/forms/hepatitis_test_form.py +0 -0
- meta_subject/forms/malaria_test_form.py +0 -0
- meta_subject/forms/medication_adherence_form.py +0 -0
- meta_subject/forms/mixins.py +0 -0
- meta_subject/forms/mnsi_form.py +0 -0
- meta_subject/forms/next_appointment_form.py +2 -3
- meta_subject/forms/other_arv_regimens_detail_form.py +0 -0
- meta_subject/forms/other_arv_regimens_form.py +0 -0
- meta_subject/forms/patient_history_form.py +0 -0
- meta_subject/forms/physical_exam_form.py +0 -0
- meta_subject/forms/pregnancy_update_form.py +0 -0
- meta_subject/forms/sf12_form.py +0 -0
- meta_subject/forms/slider_widget.py +1 -1
- meta_subject/forms/study_medication_form.py +11 -8
- meta_subject/forms/subject_requisition_form.py +0 -0
- meta_subject/forms/subject_visit_form.py +0 -0
- meta_subject/forms/subject_visit_missed_form.py +0 -0
- meta_subject/forms/urine_dipstick_test_form.py +0 -0
- meta_subject/forms/urine_pregnancy_form.py +0 -0
- meta_subject/identifiers.py +0 -0
- meta_subject/locale/lg/LC_MESSAGES/django.po +0 -0
- meta_subject/locale/sw/LC_MESSAGES/django.po +0 -0
- meta_subject/management/__init__py.py +0 -0
- meta_subject/management/commands/__init__py.py +0 -0
- meta_subject/management/commands/create_missing_refills.py +3 -3
- meta_subject/management/commands/create_missing_rx.py +1 -1
- meta_subject/management/commands/missed.py +20 -23
- meta_subject/metadata_rules/__init__.py +2 -0
- meta_subject/metadata_rules/metadata_rules.py +0 -0
- meta_subject/metadata_rules/predicates.py +25 -32
- meta_subject/migrations/0001_initial.py +61 -61
- meta_subject/migrations/0002_auto_20191021_0353.py +5 -5
- meta_subject/migrations/0003_auto_20191021_0534.py +0 -0
- meta_subject/migrations/0004_auto_20191022_0134.py +0 -0
- meta_subject/migrations/0005_auto_20191024_1000.py +0 -0
- meta_subject/migrations/0006_auto_20191104_0756.py +0 -0
- meta_subject/migrations/0007_auto_20191107_2249.py +0 -0
- meta_subject/migrations/0008_auto_20191115_0132.py +0 -0
- meta_subject/migrations/0009_auto_20191119_2331.py +0 -0
- meta_subject/migrations/0010_auto_20191213_0314.py +0 -0
- meta_subject/migrations/0011_auto_20200118_1854.py +0 -0
- meta_subject/migrations/0012_auto_20200118_2334.py +5 -5
- meta_subject/migrations/0013_auto_20200119_0013.py +0 -0
- meta_subject/migrations/0014_auto_20200120_1622.py +5 -5
- meta_subject/migrations/0015_auto_20200120_1943.py +0 -0
- meta_subject/migrations/0016_auto_20200123_1508.py +0 -0
- meta_subject/migrations/0017_auto_20200325_0901.py +0 -0
- meta_subject/migrations/0018_coronakap_historicalcoronakap.py +5 -5
- meta_subject/migrations/0019_auto_20200417_0315.py +0 -0
- meta_subject/migrations/0020_auto_20200417_0329.py +0 -0
- meta_subject/migrations/0021_auto_20200417_0332.py +0 -0
- meta_subject/migrations/0022_auto_20200419_2223.py +0 -0
- meta_subject/migrations/0023_auto_20200419_2305.py +0 -0
- meta_subject/migrations/0024_auto_20200419_2331.py +0 -0
- meta_subject/migrations/0025_auto_20200420_1455.py +0 -0
- meta_subject/migrations/0026_auto_20200420_1524.py +0 -0
- meta_subject/migrations/0027_auto_20200420_1645.py +0 -0
- meta_subject/migrations/0028_auto_20200420_1732.py +0 -0
- meta_subject/migrations/0029_auto_20200420_1751.py +0 -0
- meta_subject/migrations/0030_auto_20200420_1816.py +0 -0
- meta_subject/migrations/0031_auto_20200422_2039.py +0 -0
- meta_subject/migrations/0032_auto_20200515_0307.py +0 -0
- meta_subject/migrations/0033_auto_20200516_2356.py +5 -5
- meta_subject/migrations/0034_auto_20200517_0125.py +0 -0
- meta_subject/migrations/0035_auto_20200517_0128.py +0 -0
- meta_subject/migrations/0036_auto_20200517_0150.py +0 -0
- meta_subject/migrations/0037_auto_20200517_0207.py +0 -0
- meta_subject/migrations/0038_auto_20200520_0020.py +5 -5
- meta_subject/migrations/0039_auto_20200524_1944.py +0 -0
- meta_subject/migrations/0040_auto_20200527_2155.py +1 -1
- meta_subject/migrations/0041_auto_20200528_0242.py +0 -0
- meta_subject/migrations/0042_auto_20200528_0252.py +0 -0
- meta_subject/migrations/0043_auto_20200528_1555.py +0 -0
- meta_subject/migrations/0044_auto_20200528_1853.py +0 -0
- meta_subject/migrations/0045_auto_20200530_1801.py +1 -1
- meta_subject/migrations/0046_auto_20200530_1804.py +0 -0
- meta_subject/migrations/0047_auto_20200530_1819.py +0 -0
- meta_subject/migrations/0048_auto_20200530_1819.py +0 -0
- meta_subject/migrations/0049_auto_20200613_2041.py +0 -0
- meta_subject/migrations/0050_auto_20200614_1934.py +0 -0
- meta_subject/migrations/0051_auto_20200617_2117.py +5 -5
- meta_subject/migrations/0052_auto_20210624_0225.py +0 -0
- meta_subject/migrations/0053_auto_20210628_2105.py +0 -0
- meta_subject/migrations/0054_auto_20210628_2314.py +0 -0
- meta_subject/migrations/0055_auto_20210628_2331.py +0 -0
- meta_subject/migrations/0056_auto_20210702_0426.py +0 -0
- meta_subject/migrations/0057_auto_20210702_0458.py +0 -0
- meta_subject/migrations/0058_auto_20210702_0533.py +0 -0
- meta_subject/migrations/0059_auto_20210709_2056.py +0 -0
- meta_subject/migrations/0060_auto_20210709_2241.py +0 -0
- meta_subject/migrations/0061_auto_20210710_1929.py +0 -0
- meta_subject/migrations/0062_auto_20210713_0616.py +0 -0
- meta_subject/migrations/0063_auto_20210715_0337.py +5 -5
- meta_subject/migrations/0064_auto_20210715_2336.py +0 -0
- meta_subject/migrations/0065_auto_20210716_0813.py +0 -0
- meta_subject/migrations/0066_auto_20210721_0335.py +9 -9
- meta_subject/migrations/0067_auto_20210726_0340.py +5 -5
- meta_subject/migrations/0068_auto_20210728_1809.py +5 -5
- meta_subject/migrations/0069_auto_20210801_2021.py +0 -0
- meta_subject/migrations/0070_auto_20210804_0438.py +0 -0
- meta_subject/migrations/0071_auto_20210804_0715.py +0 -0
- meta_subject/migrations/0072_auto_20210805_1545.py +7 -7
- meta_subject/migrations/0073_auto_20210809_0055.py +5 -5
- meta_subject/migrations/0074_auto_20210809_1744.py +0 -0
- meta_subject/migrations/0075_auto_20210809_1744.py +0 -0
- meta_subject/migrations/0076_auto_20210809_1854.py +0 -0
- meta_subject/migrations/0077_auto_20210809_2323.py +3 -3
- meta_subject/migrations/0078_auto_20210810_0857.py +0 -0
- meta_subject/migrations/0079_auto_20210812_0335.py +0 -0
- meta_subject/migrations/0080_auto_20210812_0400.py +0 -0
- meta_subject/migrations/0081_auto_20210817_2306.py +0 -0
- meta_subject/migrations/0082_auto_20210823_1612.py +3 -3
- meta_subject/migrations/0083_auto_20210823_1620.py +3 -3
- meta_subject/migrations/0084_auto_20210910_0234.py +0 -0
- meta_subject/migrations/0085_auto_20210911_2036.py +0 -0
- meta_subject/migrations/0086_auto_20210920_0229.py +0 -0
- meta_subject/migrations/0087_auto_20210922_2058.py +0 -0
- meta_subject/migrations/0088_auto_20210924_0027.py +5 -5
- meta_subject/migrations/0089_auto_20210924_0121.py +0 -0
- meta_subject/migrations/0090_auto_20210924_0424.py +5 -5
- meta_subject/migrations/0091_auto_20210929_2324.py +0 -0
- meta_subject/migrations/0092_auto_20211013_0447.py +0 -0
- meta_subject/migrations/0093_auto_20211117_0352.py +5 -5
- meta_subject/migrations/0094_auto_20211123_1645.py +0 -0
- meta_subject/migrations/0095_auto_20220128_1719.py +5 -5
- meta_subject/migrations/0096_auto_20220304_0501.py +0 -0
- meta_subject/migrations/0097_auto_20220304_2233.py +0 -0
- meta_subject/migrations/0098_auto_20220309_2106.py +5 -5
- meta_subject/migrations/0099_auto_20220309_2218.py +0 -0
- meta_subject/migrations/0100_auto_20220309_2238.py +0 -0
- meta_subject/migrations/0101_auto_20220316_2147.py +13 -13
- meta_subject/migrations/0102_auto_20220324_0304.py +0 -0
- meta_subject/migrations/0103_auto_20220324_0326.py +0 -0
- meta_subject/migrations/0104_auto_20220412_2151.py +0 -0
- meta_subject/migrations/0105_auto_20220412_2310.py +0 -0
- meta_subject/migrations/0106_auto_20220414_1741.py +0 -0
- meta_subject/migrations/0107_auto_20220415_0043.py +0 -0
- meta_subject/migrations/0108_auto_20220415_1747.py +0 -0
- meta_subject/migrations/0109_auto_20220415_1758.py +0 -0
- meta_subject/migrations/0110_auto_20220512_1811.py +0 -0
- meta_subject/migrations/0111_alter_followupvitals_severe_htn_and_more.py +0 -0
- meta_subject/migrations/0112_historicalsubjectvisit_document_status_comments_and_more.py +0 -0
- meta_subject/migrations/0113_bloodresultsrft_egfr_percent_change_and_more.py +0 -0
- meta_subject/migrations/0114_alter_bloodresultsrft_egfr_percent_change_and_more.py +0 -0
- meta_subject/migrations/0115_historicalegfrnotification_egfrnotification.py +5 -13
- meta_subject/migrations/0116_egfrnotification_report_status_and_more.py +0 -0
- meta_subject/migrations/0117_alter_egfrnotification_managers_and_more.py +0 -0
- meta_subject/migrations/0118_delivery_crf_status_delivery_crf_status_comments_and_more.py +0 -0
- meta_subject/migrations/0119_historicalstudymedication_roundup_divisible_by_and_more.py +0 -0
- meta_subject/migrations/0120_alter_birthoutcomes_managers_and_more.py +0 -0
- meta_subject/migrations/0121_auto_20220704_1841.py +0 -0
- meta_subject/migrations/0122_auto_20220708_2144.py +0 -0
- meta_subject/migrations/0123_auto_20220714_2136.py +0 -0
- meta_subject/migrations/0124_auto_20220714_2303.py +0 -0
- meta_subject/migrations/0125_auto_20220719_2134.py +0 -0
- meta_subject/migrations/0126_auto_20220719_2142.py +0 -0
- meta_subject/migrations/0127_auto_20220720_0053.py +0 -0
- meta_subject/migrations/0128_auto_20220720_0055.py +0 -0
- meta_subject/migrations/0129_auto_20220720_0108.py +0 -0
- meta_subject/migrations/0130_auto_20220720_0216.py +0 -0
- meta_subject/migrations/0131_auto_20220722_0411.py +0 -0
- meta_subject/migrations/0132_auto_20220722_1825.py +0 -0
- meta_subject/migrations/0133_auto_20220722_2140.py +0 -0
- meta_subject/migrations/0134_auto_20220722_2211.py +0 -0
- meta_subject/migrations/0135_auto_20220722_2212.py +0 -0
- meta_subject/migrations/0136_egfrdropnotification_creatinine_quantifier_and_more.py +0 -0
- meta_subject/migrations/0137_alter_egfrdropnotification_egfr_percent_change_and_more.py +0 -0
- meta_subject/migrations/0138_alter_glucose_fbg_datetime_and_more.py +0 -0
- meta_subject/migrations/0139_alter_bloodresultsins_ins_units_and_more.py +0 -0
- meta_subject/migrations/0140_alter_bloodresultsfbc_action_identifier_and_more.py +0 -0
- meta_subject/migrations/0141_auto_20220826_0258.py +0 -0
- meta_subject/migrations/0142_auto_20220826_0322.py +0 -0
- meta_subject/migrations/0143_auto_20220826_0406.py +0 -0
- meta_subject/migrations/0144_auto_20220907_0157.py +0 -0
- meta_subject/migrations/0145_auto_20220907_0202.py +0 -0
- meta_subject/migrations/0146_auto_20220907_0207.py +0 -0
- meta_subject/migrations/0147_auto_20220907_1505.py +0 -0
- meta_subject/migrations/0148_auto_20220908_1826.py +0 -0
- meta_subject/migrations/0149_auto_20220913_2139.py +0 -0
- meta_subject/migrations/0150_auto_20220914_0039.py +0 -0
- meta_subject/migrations/0151_auto_20220918_0508.py +0 -0
- meta_subject/migrations/0152_auto_20220925_0509.py +0 -0
- meta_subject/migrations/0153_auto_20220928_0250.py +0 -0
- meta_subject/migrations/0154_auto_20220928_0419.py +0 -0
- meta_subject/migrations/0155_auto_20220929_1742.py +0 -0
- meta_subject/migrations/0156_alter_bloodresultsfbc_assay_datetime_and_more.py +0 -0
- meta_subject/migrations/0157_remove_bloodresultsfbc_crf_status_and_more.py +0 -0
- meta_subject/migrations/0158_alter_followupexamination_attended_clinic_and_more.py +0 -0
- meta_subject/migrations/0159_alter_bloodresultsfbc_results_abnormal_and_more.py +0 -0
- meta_subject/migrations/0160_alter_healtheconomicssimple_education_certificate_and_more.py +0 -0
- meta_subject/migrations/0161_alter_birthoutcomes_options_and_more.py +0 -0
- meta_subject/migrations/0162_alter_followupexamination_abdominal_tenderness_and_more.py +0 -0
- meta_subject/migrations/0163_alter_birthoutcomes_options_and_more.py +0 -0
- meta_subject/migrations/0164_dmreferralfollowup_historicaldmreferralfollowup.py +5 -5
- meta_subject/migrations/0165_alter_dmreferralfollowup_healthcare_workers.py +0 -0
- meta_subject/migrations/0166_rename_dm_medications_other_dmreferralfollowup_other_dm_medications_and_more.py +0 -0
- meta_subject/migrations/0167_rename_healthcare_workers_other_dmreferralfollowup_other_healthcare_workers_and_more.py +0 -0
- meta_subject/migrations/0168_alter_dmreferralfollowup_last_missed_pill_and_more.py +0 -0
- meta_subject/migrations/0169_alter_dmreferralfollowup_options_and_more.py +0 -0
- meta_subject/migrations/0170_remove_glucose_repeat_fbg_and_more.py +0 -0
- meta_subject/migrations/0171_alter_glucose_endpoint_today_and_more.py +0 -0
- meta_subject/migrations/0172_remove_historicalbloodresultsglu_action_item_and_more.py +1 -2
- meta_subject/migrations/0173_alter_glucosefbg_options_and_more.py +0 -0
- meta_subject/migrations/0174_remove_glucosefbg_glucose_abnormal_and_more.py +0 -0
- meta_subject/migrations/0175_auto_20240214_2239.py +0 -0
- meta_subject/migrations/0176_alter_glucosefbg_glucose_value_and_more.py +0 -0
- meta_subject/migrations/0177_alter_bloodresultslft_alp_value_and_more.py +1 -2
- meta_subject/migrations/0178_historicalhealtheconomicsupdate_and_more.py +5 -14
- meta_subject/migrations/0179_alter_birthoutcomes_consent_model_and_more.py +0 -0
- meta_subject/migrations/0180_dmreferralfollowup_missed_referral_reasons_and_more.py +0 -0
- meta_subject/migrations/0181_dmreferralfollowup_action_identifier_and_more.py +0 -0
- meta_subject/migrations/0182_rename_dmreferralfollowup_dmfollowup_and_more.py +0 -0
- meta_subject/migrations/0183_alter_dmfollowup_on_dm_medications_and_more.py +0 -0
- meta_subject/migrations/0184_alter_glucose_options_and_more.py +0 -0
- meta_subject/migrations/0185_alter_bloodresultsins_fasting_duration_str_and_more.py +0 -0
- meta_subject/migrations/0186_healtheconomicsupdate_singleton_field_and_more.py +1 -2
- meta_subject/migrations/0187_dmdiagnosis_historicaldmdiagnosis_dmdxresult_and_more.py +5 -14
- meta_subject/migrations/0188_historicaldmdxresult_dmdxresult.py +5 -14
- meta_subject/migrations/0189_alter_dmdxresult_options_and_more.py +0 -0
- meta_subject/migrations/0190_dmdiagnosis_dx_no_tmg_reason_and_more.py +0 -0
- meta_subject/migrations/0191_alter_dmdiagnosis_dx_no_tmg_reason_and_more.py +0 -0
- meta_subject/migrations/0192_rename_glucose_quantifier_glucosefbg_fbg_quantifier_and_more.py +0 -0
- meta_subject/migrations/0193_alter_glucosefbg_fbg_value_and_more.py +0 -0
- meta_subject/migrations/0194_remove_glucosefbg_assay_datetime_and_more.py +0 -0
- meta_subject/migrations/0195_alter_glucosefbg_fbg_datetime_and_more.py +0 -0
- meta_subject/migrations/0196_glucosefbg_fbg_not_performed_reason_and_more.py +0 -0
- meta_subject/migrations/0197_glucosefbg_fasting_duration_estimated_and_more.py +0 -0
- meta_subject/migrations/0198_alter_glucosefbg_fasting_duration_estimated_and_more.py +0 -0
- meta_subject/migrations/0199_auto_20240516_0247.py +0 -0
- meta_subject/migrations/0200_rename_fasting_duration_minutes_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
- meta_subject/migrations/0201_alter_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
- meta_subject/migrations/0202_auto_20240516_0315.py +0 -0
- meta_subject/migrations/0203_alter_bloodresultsins_fasting_duration_delta_and_more.py +0 -0
- meta_subject/migrations/0204_glucosefbg_repeat_fbg_date_and_more.py +0 -0
- meta_subject/migrations/0205_historicalsubjectrequisition_crf_status_and_more.py +0 -0
- meta_subject/migrations/0206_bloodresultsfbc_crf_status_and_more.py +0 -0
- meta_subject/migrations/0207_alter_historicalphysicalexam_waist_circumference_and_more.py +0 -0
- meta_subject/migrations/0208_birthoutcomes_crf_status_and_more.py +0 -0
- meta_subject/migrations/0209_remove_historicaldmdxresult_dm_diagnosis_and_more.py +1 -2
- meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py +0 -0
- meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py +0 -0
- meta_subject/migrations/0212_auto_20240827_2222.py +0 -0
- meta_subject/migrations/0213_rename_bloodresultslipid_bloodresultslipids_and_more.py +0 -0
- meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py +0 -0
- meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py +0 -0
- meta_subject/migrations/0216_historicalnextappointment_nextappointment.py +5 -6
- meta_subject/migrations/0217_alter_historicalnextappointment_appt_datetime_and_more.py +0 -0
- meta_subject/migrations/0218_alter_historicalnextappointment_appt_date_and_more.py +0 -0
- meta_subject/migrations/0219_remove_historicalnextappointment_allow_create_interim_and_more.py +0 -0
- meta_subject/migrations/0220_historicalbloodresultsgludummy_bloodresultsgludummy.py +5 -14
- meta_subject/migrations/0221_auto_20250402_1913.py +0 -0
- meta_subject/migrations/0222_alter_historicalstudymedication_stock_codes_and_more.py +0 -0
- meta_subject/migrations/0223_bloodresultsfbc_errors_bloodresultsgludummy_errors_and_more.py +0 -0
- meta_subject/migrations/0224_bloodresultsfbc_abnormal_summary_and_more.py +0 -0
- meta_subject/migrations/0225_followupvitals_waist_circumference_and_more.py +0 -0
- meta_subject/migrations/0226_followupvitals_waist_circumference_comment_and_more.py +0 -0
- meta_subject/migrations/0227_alter_followupvitals_waist_circumference_comment_and_more.py +0 -0
- meta_subject/migrations/0228_bloodresultshba1c_hba1c_datetime_and_more.py +9297 -0
- meta_subject/migrations/__init__.py +0 -0
- meta_subject/model_mixins/__init__.py +8 -0
- meta_subject/model_mixins/arv_history_model_mixin.py +0 -0
- meta_subject/model_mixins/crf_model_mixin.py +0 -0
- meta_subject/model_mixins/crf_with_action_model_mixin.py +0 -0
- meta_subject/model_mixins/search_slug_model_mixin.py +1 -2
- meta_subject/model_mixins/vitals_fields_model_mixin.py +1 -1
- meta_subject/models/__init__.py +48 -0
- meta_subject/models/birth_outcomes.py +3 -3
- meta_subject/models/blood_results/__init__.py +11 -0
- meta_subject/models/blood_results/blood_results_fbc.py +0 -0
- meta_subject/models/blood_results/blood_results_glu.py +0 -0
- meta_subject/models/blood_results/blood_results_hba1c.py +0 -0
- meta_subject/models/blood_results/blood_results_ins.py +0 -0
- meta_subject/models/blood_results/blood_results_lft.py +0 -0
- meta_subject/models/blood_results/blood_results_lipids.py +0 -0
- meta_subject/models/blood_results/blood_results_rft.py +0 -0
- meta_subject/models/complications.py +0 -0
- meta_subject/models/complications_glycemia.py +0 -0
- meta_subject/models/concomitant_medication.py +0 -0
- meta_subject/models/delivery.py +3 -3
- meta_subject/models/diabetes/__init__.py +2 -0
- meta_subject/models/diabetes/dm_endpoint.py +4 -4
- meta_subject/models/diabetes/dm_followup.py +3 -4
- meta_subject/models/diet_and_lifestyle.py +2 -2
- meta_subject/models/egfr_drop_notification.py +0 -0
- meta_subject/models/eq5d3l.py +0 -0
- meta_subject/models/followup_examination.py +11 -11
- meta_subject/models/followup_vitals.py +0 -0
- meta_subject/models/glucose.py +4 -4
- meta_subject/models/glucose_fbg.py +2 -3
- meta_subject/models/glucose_review.py +0 -0
- meta_subject/models/health_economics/__init__.py +2 -0
- meta_subject/models/health_economics/health_economics.py +7 -7
- meta_subject/models/health_economics/health_economics_simple.py +0 -0
- meta_subject/models/health_economics/health_economics_update.py +2 -1
- meta_subject/models/hepatitis_test.py +2 -2
- meta_subject/models/malaria_test.py +0 -0
- meta_subject/models/medication_adherence.py +0 -0
- meta_subject/models/mnsi.py +0 -0
- meta_subject/models/next_appointment.py +0 -0
- meta_subject/models/off_study_drug.py +0 -0
- meta_subject/models/other_arv_regimens.py +0 -0
- meta_subject/models/other_arv_regimens_detail.py +1 -1
- meta_subject/models/patient_history.py +5 -6
- meta_subject/models/physical_exam.py +2 -2
- meta_subject/models/pregnancy_update.py +1 -1
- meta_subject/models/sf12.py +0 -0
- meta_subject/models/signals.py +14 -12
- meta_subject/models/study_medication.py +0 -0
- meta_subject/models/subject_requisition.py +0 -0
- meta_subject/models/subject_visit.py +1 -1
- meta_subject/models/subject_visit_missed.py +0 -0
- meta_subject/models/todo.txt +0 -0
- meta_subject/models/urine_dipstick_test.py +1 -1
- meta_subject/models/urine_pregnancy.py +1 -1
- meta_subject/static/meta_subject/slider.css +0 -0
- meta_subject/static/meta_subject/slider.png +0 -0
- meta_subject/templates/meta_subject/endpoint_review_instructions.html +0 -0
- meta_subject/templates/meta_subject/widgets/slider.html +0 -0
- meta_subject/urls.py +0 -0
- meta_visit_schedule/__init__.py +0 -0
- meta_visit_schedule/apps.py +0 -0
- meta_visit_schedule/constants.py +0 -0
- meta_visit_schedule/migrations/__init__.py +0 -0
- meta_visit_schedule/models.py +0 -0
- meta_visit_schedule/visit_schedules/__init__.py +2 -0
- meta_visit_schedule/visit_schedules/phase_three/__init__.py +2 -0
- meta_visit_schedule/visit_schedules/phase_three/crfs.py +0 -0
- meta_visit_schedule/visit_schedules/phase_three/crfs_pregnancy.py +0 -0
- meta_visit_schedule/visit_schedules/phase_three/requisitions.py +0 -0
- meta_visit_schedule/visit_schedules/phase_three/schedule.py +2 -2
- meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py +1 -2
- meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py +1 -2
- meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py +0 -0
- meta_analytics/.ipynb_checkpoints/get_tables-checkpoint.py +0 -105
- meta_analytics/dataframes/glucose_endpoints/utils.py +0 -0
- meta_edc-1.1.10.dist-info/METADATA +0 -89
- meta_edc-1.1.10.dist-info/RECORD +0 -1130
- meta_screening/offline_models.py +0 -3
|
File without changes
|
|
@@ -3,3 +3,11 @@ from .eligibility_model_mixin import EligibilityModelMixin
|
|
|
3
3
|
from .part_one_fields_model_mixin import PartOneFieldsModelMixin
|
|
4
4
|
from .part_three_fields_model_mixin import PartThreeFieldsModelMixin
|
|
5
5
|
from .part_two_fields_model_mixin import PartTwoFieldsModelMixin
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"CalculatedModelMixin",
|
|
9
|
+
"EligibilityModelMixin",
|
|
10
|
+
"PartOneFieldsModelMixin",
|
|
11
|
+
"PartThreeFieldsModelMixin",
|
|
12
|
+
"PartTwoFieldsModelMixin",
|
|
13
|
+
]
|
|
File without changes
|
|
File without changes
|
|
@@ -19,7 +19,7 @@ class EligibilityModelMixin(BaseEligibilityModelMixin):
|
|
|
19
19
|
help_text="system calculated value",
|
|
20
20
|
)
|
|
21
21
|
|
|
22
|
-
reasons_ineligible_part_one = models.TextField(max_length=150,
|
|
22
|
+
reasons_ineligible_part_one = models.TextField(max_length=150, default="", editable=False)
|
|
23
23
|
|
|
24
24
|
eligible_part_two = models.CharField(
|
|
25
25
|
max_length=15,
|
|
@@ -29,7 +29,7 @@ class EligibilityModelMixin(BaseEligibilityModelMixin):
|
|
|
29
29
|
help_text="system calculated value",
|
|
30
30
|
)
|
|
31
31
|
|
|
32
|
-
reasons_ineligible_part_two = models.TextField(max_length=150,
|
|
32
|
+
reasons_ineligible_part_two = models.TextField(max_length=150, default="", editable=False)
|
|
33
33
|
|
|
34
34
|
eligible_part_three = models.CharField(
|
|
35
35
|
max_length=15,
|
|
@@ -39,7 +39,9 @@ class EligibilityModelMixin(BaseEligibilityModelMixin):
|
|
|
39
39
|
help_text="system calculated value",
|
|
40
40
|
)
|
|
41
41
|
|
|
42
|
-
reasons_ineligible_part_three = models.TextField(
|
|
42
|
+
reasons_ineligible_part_three = models.TextField(
|
|
43
|
+
max_length=150, default="", editable=False
|
|
44
|
+
)
|
|
43
45
|
|
|
44
46
|
def get_report_datetime_for_eligibility_datetime(self):
|
|
45
47
|
return self.part_three_report_datetime
|
|
@@ -25,12 +25,10 @@ class PartOneFieldsModelMixin(models.Model):
|
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
meta_phase_two = models.CharField(
|
|
28
|
-
verbose_name=mark_safe(
|
|
29
|
-
"Was the subject enrolled in the <u>META Phase 2</u> trial?"
|
|
30
|
-
), # nosec B308
|
|
28
|
+
verbose_name=mark_safe("Was the subject enrolled in the <u>META Phase 2</u> trial?"), # nosec B308
|
|
31
29
|
max_length=15,
|
|
32
30
|
choices=YES_NO,
|
|
33
|
-
|
|
31
|
+
default="",
|
|
34
32
|
blank=False,
|
|
35
33
|
)
|
|
36
34
|
|
|
@@ -80,7 +78,7 @@ class PartOneFieldsModelMixin(models.Model):
|
|
|
80
78
|
),
|
|
81
79
|
max_length=15,
|
|
82
80
|
choices=YES_NO,
|
|
83
|
-
|
|
81
|
+
default="",
|
|
84
82
|
blank=False,
|
|
85
83
|
help_text="META PHASE_TWO ONLY",
|
|
86
84
|
editable=False,
|
|
@@ -93,7 +91,7 @@ class PartOneFieldsModelMixin(models.Model):
|
|
|
93
91
|
), # nosec B308
|
|
94
92
|
max_length=15,
|
|
95
93
|
choices=YES_NO,
|
|
96
|
-
|
|
94
|
+
default="",
|
|
97
95
|
blank=False,
|
|
98
96
|
)
|
|
99
97
|
|
|
@@ -102,9 +100,7 @@ class PartOneFieldsModelMixin(models.Model):
|
|
|
102
100
|
)
|
|
103
101
|
|
|
104
102
|
continue_part_two = models.CharField(
|
|
105
|
-
verbose_name=mark_safe(
|
|
106
|
-
"Continue with <U>part two</U> of the screening process?"
|
|
107
|
-
), # nosec B308
|
|
103
|
+
verbose_name=mark_safe("Continue with <U>part two</U> of the screening process?"), # nosec B308
|
|
108
104
|
max_length=15,
|
|
109
105
|
choices=YESDEFAULT_NO,
|
|
110
106
|
default=YES,
|
|
@@ -3,7 +3,7 @@ from django.core.validators import MaxValueValidator, MinValueValidator
|
|
|
3
3
|
from django.db import models
|
|
4
4
|
from edc_constants.choices import NO, YES_NO, YES_NO_PENDING_NA_GLUCOSE_SCREENING
|
|
5
5
|
from edc_constants.constants import NOT_APPLICABLE
|
|
6
|
-
from edc_glucose.
|
|
6
|
+
from edc_glucose.model_mixin_factories import (
|
|
7
7
|
fasting_model_mixin_factory,
|
|
8
8
|
fbg_model_mixin_factory,
|
|
9
9
|
ogtt_model_mixin_factory,
|
|
@@ -94,14 +94,13 @@ class PartThreeFieldsModelMixin(
|
|
|
94
94
|
):
|
|
95
95
|
repeat_glucose_opinion = models.CharField(
|
|
96
96
|
verbose_name=(
|
|
97
|
-
"In opinion of the clinician,
|
|
97
|
+
"In opinion of the clinician, should the glucose measurements be repeated?"
|
|
98
98
|
),
|
|
99
99
|
max_length=15,
|
|
100
100
|
choices=YES_NO,
|
|
101
101
|
default=NO,
|
|
102
102
|
help_text=(
|
|
103
|
-
"If repeated, must be at least 3 days "
|
|
104
|
-
"after the first glucose measures (FBG, OGTT)"
|
|
103
|
+
"If repeated, must be at least 3 days after the first glucose measures (FBG, OGTT)"
|
|
105
104
|
),
|
|
106
105
|
)
|
|
107
106
|
|
|
@@ -124,7 +123,7 @@ class PartThreeFieldsModelMixin(
|
|
|
124
123
|
verbose_name="Units (creatinine)",
|
|
125
124
|
max_length=15,
|
|
126
125
|
choices=SERUM_CREATININE_UNITS,
|
|
127
|
-
|
|
126
|
+
default="",
|
|
128
127
|
blank=True,
|
|
129
128
|
)
|
|
130
129
|
|
|
@@ -180,5 +179,5 @@ class PartThreeFieldsModelMixin(
|
|
|
180
179
|
def p3_repeat_appt(self):
|
|
181
180
|
return self.repeat_appt_datetime
|
|
182
181
|
|
|
183
|
-
class Meta:
|
|
182
|
+
class Meta: # noqa: DJ012
|
|
184
183
|
abstract = True
|
|
@@ -40,7 +40,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
40
40
|
),
|
|
41
41
|
max_length=15,
|
|
42
42
|
choices=YES_NO,
|
|
43
|
-
|
|
43
|
+
default="",
|
|
44
44
|
blank=False,
|
|
45
45
|
)
|
|
46
46
|
|
|
@@ -48,7 +48,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
48
48
|
verbose_name="Is there clinical evidence of liver disease",
|
|
49
49
|
max_length=15,
|
|
50
50
|
choices=YES_NO,
|
|
51
|
-
|
|
51
|
+
default="",
|
|
52
52
|
blank=False,
|
|
53
53
|
help_text=(
|
|
54
54
|
"Evidence of chronic liver disease: Jaundice, pruritus, "
|
|
@@ -62,7 +62,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
62
62
|
),
|
|
63
63
|
max_length=15,
|
|
64
64
|
choices=YES_NO,
|
|
65
|
-
|
|
65
|
+
default="",
|
|
66
66
|
blank=False,
|
|
67
67
|
help_text=(
|
|
68
68
|
"Evidence of alcoholism or acute alcohol intoxication: "
|
|
@@ -77,7 +77,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
77
77
|
),
|
|
78
78
|
max_length=15,
|
|
79
79
|
choices=YES_NO,
|
|
80
|
-
|
|
80
|
+
default="",
|
|
81
81
|
blank=False,
|
|
82
82
|
help_text="lactic acidosis and/or diabetic ketoacidosis",
|
|
83
83
|
)
|
|
@@ -88,7 +88,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
88
88
|
),
|
|
89
89
|
max_length=15,
|
|
90
90
|
choices=YES_NO,
|
|
91
|
-
|
|
91
|
+
default="",
|
|
92
92
|
blank=False,
|
|
93
93
|
)
|
|
94
94
|
|
|
@@ -98,7 +98,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
98
98
|
),
|
|
99
99
|
max_length=15,
|
|
100
100
|
choices=YES_NO,
|
|
101
|
-
|
|
101
|
+
default="",
|
|
102
102
|
blank=False,
|
|
103
103
|
help_text=(
|
|
104
104
|
"Including: decompensated heart failure, respiratory failure, "
|
|
@@ -113,7 +113,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
113
113
|
),
|
|
114
114
|
max_length=15,
|
|
115
115
|
choices=YES_NO,
|
|
116
|
-
|
|
116
|
+
default="",
|
|
117
117
|
blank=False,
|
|
118
118
|
)
|
|
119
119
|
|
|
@@ -124,7 +124,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
124
124
|
),
|
|
125
125
|
max_length=15,
|
|
126
126
|
choices=YES_NO,
|
|
127
|
-
|
|
127
|
+
default="",
|
|
128
128
|
blank=False,
|
|
129
129
|
help_text=(
|
|
130
130
|
"For example: Magnesium stearate, sodium carboxymethylcellulose, hypromellose"
|
|
@@ -135,7 +135,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
135
135
|
verbose_name="Is the patient known to have diabetes?",
|
|
136
136
|
max_length=15,
|
|
137
137
|
choices=YES_NO,
|
|
138
|
-
|
|
138
|
+
default="",
|
|
139
139
|
blank=False,
|
|
140
140
|
)
|
|
141
141
|
|
|
@@ -143,7 +143,7 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
143
143
|
verbose_name="Is the patient known to be taking anti-diabetic medications?",
|
|
144
144
|
max_length=15,
|
|
145
145
|
choices=YES_NO,
|
|
146
|
-
|
|
146
|
+
default="",
|
|
147
147
|
blank=False,
|
|
148
148
|
)
|
|
149
149
|
|
|
@@ -191,9 +191,9 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
191
191
|
choices=YES_PENDING_NA,
|
|
192
192
|
default=NOT_APPLICABLE,
|
|
193
193
|
help_text=(
|
|
194
|
-
"Only applicable if the patient missed the appointment for the second
|
|
195
|
-
"of screening (P3), several attempts have been made to contact the
|
|
196
|
-
"and the patient has not started P3. See above"
|
|
194
|
+
"Only applicable if the patient missed the appointment for the second "
|
|
195
|
+
"stage of screening (P3), several attempts have been made to contact the "
|
|
196
|
+
"patient, and the patient has not started P3. See above"
|
|
197
197
|
),
|
|
198
198
|
)
|
|
199
199
|
|
|
@@ -201,12 +201,14 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
201
201
|
verbose_name="Date decision made",
|
|
202
202
|
null=True,
|
|
203
203
|
blank=True,
|
|
204
|
-
help_text=
|
|
204
|
+
help_text=(
|
|
205
|
+
"Must be after the appointment date for the second stage of screening (P3)"
|
|
206
|
+
),
|
|
205
207
|
)
|
|
206
208
|
|
|
207
209
|
p3_ltfu_comment = models.TextField(
|
|
208
210
|
verbose_name="Provide any additional comments on this decision (or leave blank)",
|
|
209
|
-
|
|
211
|
+
default="",
|
|
210
212
|
blank=True,
|
|
211
213
|
)
|
|
212
214
|
|
|
@@ -214,5 +216,5 @@ class PartTwoFieldsModelMixin(models.Model):
|
|
|
214
216
|
def p3_appt(self):
|
|
215
217
|
return self.appt_datetime
|
|
216
218
|
|
|
217
|
-
class Meta:
|
|
219
|
+
class Meta: # noqa: DJ012
|
|
218
220
|
abstract = True
|
|
@@ -3,3 +3,12 @@ from .proxy_models import ScreeningPartOne, ScreeningPartThree, ScreeningPartTwo
|
|
|
3
3
|
from .signals import update_p3_ltfu_on_post_save
|
|
4
4
|
from .subject_refusal import SubjectRefusal
|
|
5
5
|
from .subject_screening import SubjectScreening
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"ScreeningPartOne",
|
|
9
|
+
"ScreeningPartThree",
|
|
10
|
+
"ScreeningPartTwo",
|
|
11
|
+
"SubjectRefusal",
|
|
12
|
+
"SubjectScreening",
|
|
13
|
+
"update_p3_ltfu_on_post_save",
|
|
14
|
+
]
|
|
@@ -21,7 +21,7 @@ class IcpReferralManager(models.Manager):
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class IcpReferral(SiteModelMixin, BaseUuidModel):
|
|
24
|
-
"""
|
|
24
|
+
"""Not used"""
|
|
25
25
|
|
|
26
26
|
subject_screening = models.OneToOneField(
|
|
27
27
|
SubjectScreening, null=True, on_delete=models.PROTECT
|
|
@@ -91,7 +91,7 @@ class IcpReferral(SiteModelMixin, BaseUuidModel):
|
|
|
91
91
|
|
|
92
92
|
referred_datetime = models.DateTimeField(null=True, help_text="Date and time of referral")
|
|
93
93
|
|
|
94
|
-
referral_reasons = models.TextField(
|
|
94
|
+
referral_reasons = models.TextField(default="")
|
|
95
95
|
|
|
96
96
|
objects = IcpReferralManager()
|
|
97
97
|
|
|
@@ -102,17 +102,17 @@ class IcpReferral(SiteModelMixin, BaseUuidModel):
|
|
|
102
102
|
def save(self, *args, **kwargs):
|
|
103
103
|
try:
|
|
104
104
|
SubjectScreening.objects.get(screening_identifier=self.screening_identifier)
|
|
105
|
-
except ObjectDoesNotExist:
|
|
105
|
+
except ObjectDoesNotExist as e:
|
|
106
106
|
raise IcpReferralError(
|
|
107
107
|
f"Invalid META screening identifier. Got {self.screening_identifier}"
|
|
108
|
-
)
|
|
108
|
+
) from e
|
|
109
109
|
super().save(*args, **kwargs)
|
|
110
110
|
|
|
111
111
|
def __str__(self):
|
|
112
112
|
return f"{self.screening_identifier} {self.gender} {self.age_in_years}"
|
|
113
113
|
|
|
114
114
|
def natural_key(self):
|
|
115
|
-
return (self.screening_identifier,)
|
|
115
|
+
return (self.screening_identifier,)
|
|
116
116
|
|
|
117
117
|
class Meta:
|
|
118
118
|
pass
|
|
File without changes
|
meta_screening/models/signals.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from django.db.models.signals import post_save
|
|
2
2
|
from django.dispatch import receiver
|
|
3
|
-
from edc_constants.constants import NOT_APPLICABLE
|
|
3
|
+
from edc_constants.constants import NOT_APPLICABLE, NULL_STRING
|
|
4
4
|
|
|
5
5
|
from .proxy_models import ScreeningPartThree
|
|
6
6
|
|
|
@@ -11,14 +11,13 @@ from .proxy_models import ScreeningPartThree
|
|
|
11
11
|
sender=ScreeningPartThree,
|
|
12
12
|
dispatch_uid="update_p3_ltfu_on_post_save",
|
|
13
13
|
)
|
|
14
|
-
def update_p3_ltfu_on_post_save(sender, instance, raw, created, **kwargs):
|
|
14
|
+
def update_p3_ltfu_on_post_save(sender, instance, raw, created, **kwargs): # noqa: ARG001
|
|
15
15
|
""" """
|
|
16
|
-
if not raw:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
instance.p3_ltfu_comment
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
instance.save_base(update_fields=["p3_ltfu", "p3_ltfu_date", "p3_ltfu_comment"])
|
|
16
|
+
if not raw and instance.p3_ltfu != NOT_APPLICABLE and instance.part_three_report_datetime:
|
|
17
|
+
msg = "[auto-updated p3 submitted]"
|
|
18
|
+
instance.p3_ltfu = NOT_APPLICABLE
|
|
19
|
+
instance.p3_ltfu_date = None
|
|
20
|
+
instance.p3_ltfu_comment = (
|
|
21
|
+
f"{msg} {instance.p3_ltfu_comment.replace(msg, NULL_STRING) or NULL_STRING}"
|
|
22
|
+
).strip()
|
|
23
|
+
instance.save_base(update_fields=["p3_ltfu", "p3_ltfu_date", "p3_ltfu_comment"])
|
|
@@ -58,7 +58,7 @@ class SubjectRefusal(NonUniqueSubjectIdentifierModelMixin, SiteModelMixin, BaseU
|
|
|
58
58
|
return (self.subject_identifier,)
|
|
59
59
|
|
|
60
60
|
def get_search_slug_fields(self):
|
|
61
|
-
return
|
|
61
|
+
return "screening_identifier", "subject_identifier"
|
|
62
62
|
|
|
63
63
|
class Meta:
|
|
64
64
|
verbose_name = "Subject Refusal"
|
|
@@ -10,8 +10,6 @@ from edc_screening.screening_identifier import (
|
|
|
10
10
|
)
|
|
11
11
|
from edc_utils import get_utcnow
|
|
12
12
|
|
|
13
|
-
from meta_consent.consents import consent_v1
|
|
14
|
-
|
|
15
13
|
from ..model_mixins import (
|
|
16
14
|
CalculatedModelMixin,
|
|
17
15
|
EligibilityModelMixin,
|
|
@@ -39,7 +37,7 @@ class SubjectScreening(
|
|
|
39
37
|
BaseUuidModel,
|
|
40
38
|
):
|
|
41
39
|
identifier_cls = ScreeningIdentifier
|
|
42
|
-
consent_definitions = [consent_v1]
|
|
40
|
+
# consent_definitions = [consent_v1]
|
|
43
41
|
|
|
44
42
|
contact_number = EncryptedCharField(
|
|
45
43
|
validators=[RegexValidator(r"^[0-9\-\(\)\ ]+$", message="Enter a valid number")],
|
meta_screening/urls.py
CHANGED
|
File without changes
|
meta_sites/__init__.py
CHANGED
|
File without changes
|
meta_sites/apps.py
CHANGED
|
File without changes
|
|
File without changes
|
meta_sites/models.py
CHANGED
|
File without changes
|
meta_sites/sites.py
CHANGED
|
File without changes
|
meta_subject/__init__.py
CHANGED
|
File without changes
|
meta_subject/action_items.py
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
from django.apps import apps as django_apps
|
|
2
|
-
from edc_action_item import Action
|
|
3
|
-
from edc_action_item.
|
|
2
|
+
from edc_action_item.action import Action
|
|
3
|
+
from edc_action_item.action_with_notification import ActionWithNotification
|
|
4
|
+
from edc_action_item.site_action_items import AlreadyRegistered, site_action_items
|
|
4
5
|
from edc_adverse_event.constants import AE_INITIAL_ACTION
|
|
5
6
|
from edc_constants.constants import GRADE3, GRADE4, HIGH_PRIORITY, NEW, NONE, POS, YES
|
|
6
7
|
from edc_egfr.constants import EGFR_DROP_NOTIFICATION_ACTION
|
|
7
|
-
from edc_lab_results.action_items import BloodResultsFbcAction
|
|
8
|
-
from edc_lab_results.action_items import (
|
|
9
|
-
BloodResultsGluAction as BaseBloodResultsGluAction,
|
|
10
|
-
)
|
|
11
8
|
from edc_lab_results.action_items import (
|
|
9
|
+
BloodResultsFbcAction,
|
|
12
10
|
BloodResultsHba1cAction,
|
|
13
11
|
BloodResultsLftAction,
|
|
14
12
|
BloodResultsLipidsAction,
|
|
15
13
|
)
|
|
14
|
+
from edc_lab_results.action_items import (
|
|
15
|
+
BloodResultsGluAction as BaseBloodResultsGluAction,
|
|
16
|
+
)
|
|
16
17
|
from edc_lab_results.action_items import (
|
|
17
18
|
BloodResultsRftAction as BaseBloodResultsRftAction,
|
|
18
19
|
)
|
|
@@ -90,8 +91,7 @@ class FollowupExaminationAction(Action):
|
|
|
90
91
|
self.reference_obj.symptoms_g3.exclude(name=NONE).count() > 0
|
|
91
92
|
or self.reference_obj.symptoms_g4.exclude(name=NONE).count() > 0
|
|
92
93
|
or self.reference_obj.any_other_problems_sae_grade in [GRADE3, GRADE4]
|
|
93
|
-
or self.reference_obj.lactic_acidosis
|
|
94
|
-
or self.reference_obj.hepatomegaly == YES
|
|
94
|
+
or YES in (self.reference_obj.lactic_acidosis, self.reference_obj.hepatomegaly)
|
|
95
95
|
) and not is_baseline(instance=self.reference_obj.subject_visit):
|
|
96
96
|
next_actions.append(AE_INITIAL_ACTION)
|
|
97
97
|
return next_actions
|
|
@@ -132,7 +132,7 @@ class DeliveryAction(ActionWithNotification):
|
|
|
132
132
|
name = DELIVERY_ACTION
|
|
133
133
|
display_name = "Submit Delivery Form"
|
|
134
134
|
notification_display_name = "Delivery Form"
|
|
135
|
-
parent_action_names =
|
|
135
|
+
parent_action_names = (PREGNANCY_NOTIFICATION_ACTION,)
|
|
136
136
|
reference_model = "meta_subject.delivery"
|
|
137
137
|
show_link_to_changelist = True
|
|
138
138
|
show_link_to_add = False
|
|
@@ -140,15 +140,14 @@ class DeliveryAction(ActionWithNotification):
|
|
|
140
140
|
priority = HIGH_PRIORITY
|
|
141
141
|
|
|
142
142
|
def get_next_actions(self):
|
|
143
|
-
|
|
144
|
-
return next_actions
|
|
143
|
+
return [OFFSCHEDULE_PREGNANCY_ACTION]
|
|
145
144
|
|
|
146
145
|
|
|
147
146
|
class EgfrDropNotificationAction(ActionWithNotification):
|
|
148
147
|
name = EGFR_DROP_NOTIFICATION_ACTION
|
|
149
148
|
display_name = "eGFR drop warning"
|
|
150
149
|
notification_display_name = "eGFR drop warning"
|
|
151
|
-
parent_action_names =
|
|
150
|
+
parent_action_names = ()
|
|
152
151
|
reference_model = "meta_subject.egfrdropnotification"
|
|
153
152
|
show_link_to_changelist = True
|
|
154
153
|
show_link_to_add = True
|
|
@@ -163,7 +162,7 @@ class DmFollowAction(ActionWithNotification):
|
|
|
163
162
|
name = DM_FOLLOWUP_ACTION
|
|
164
163
|
display_name = "Diabetes Followup"
|
|
165
164
|
notification_display_name = "Diabetes Followup"
|
|
166
|
-
parent_action_names =
|
|
165
|
+
parent_action_names = (DM_REFFERAL_ACTION,)
|
|
167
166
|
reference_model = "meta_subject.dmfollowup"
|
|
168
167
|
show_link_to_changelist = True
|
|
169
168
|
show_link_to_add = False
|
|
@@ -174,8 +173,7 @@ class DmFollowAction(ActionWithNotification):
|
|
|
174
173
|
priority = HIGH_PRIORITY
|
|
175
174
|
|
|
176
175
|
def get_next_actions(self):
|
|
177
|
-
|
|
178
|
-
return next_actions
|
|
176
|
+
return [OFFSCHEDULE_DM_REFERRAL_ACTION]
|
|
179
177
|
|
|
180
178
|
|
|
181
179
|
def register_actions():
|
meta_subject/admin/__init__.py
CHANGED
|
@@ -34,3 +34,42 @@ from .subject_visit_admin import SubjectVisitAdmin
|
|
|
34
34
|
from .subject_visit_missed_admin import SubjectVisitMissedAdmin
|
|
35
35
|
from .urine_dipstick_test_admin import UrineDipstickTestAdmin
|
|
36
36
|
from .urine_pregnancy_admin import UrinePregnancyAdmin
|
|
37
|
+
|
|
38
|
+
__all__ = [
|
|
39
|
+
"ArvRegimensAdmin",
|
|
40
|
+
"BirthOutcomesAdmin",
|
|
41
|
+
"BloodResultsFbcAdmin",
|
|
42
|
+
"BloodResultsLftAdmin",
|
|
43
|
+
"BloodResultsLipidsAdmin",
|
|
44
|
+
"BloodResultsRftAdmin",
|
|
45
|
+
"ComplicationsAdmin",
|
|
46
|
+
"ComplicationsGlycemiaAdmin",
|
|
47
|
+
"ConcomitantMedicationAdmin",
|
|
48
|
+
"DeliveryAdmin",
|
|
49
|
+
"DmEndpointAdmin",
|
|
50
|
+
"DmFollowupAdmin",
|
|
51
|
+
"EgfrDropNotificationAdmin",
|
|
52
|
+
"Eq5d3lAdmin",
|
|
53
|
+
"FollowupExaminationAdmin",
|
|
54
|
+
"FollowupVitalsAdmin",
|
|
55
|
+
"GlucoseAdmin",
|
|
56
|
+
"GlucoseFbgAdmin",
|
|
57
|
+
"HealthEconomicsSimpleAdmin",
|
|
58
|
+
"HealthEconomicsUpdateAdmin",
|
|
59
|
+
"HepatitisTestAdmin",
|
|
60
|
+
"MalariaTestAdmin",
|
|
61
|
+
"MedicationAdherenceAdmin",
|
|
62
|
+
"MnsiAdmin",
|
|
63
|
+
"NextAppointmentAdmin",
|
|
64
|
+
"OtherArvRegimensAdmin",
|
|
65
|
+
"PatientHistoryAdmin",
|
|
66
|
+
"PhysicalExamAdmin",
|
|
67
|
+
"PregnancyUpdateAdmin",
|
|
68
|
+
"Sf12Admin",
|
|
69
|
+
"StudyMedicationAdmin",
|
|
70
|
+
"SubjectRequisitionAdmin",
|
|
71
|
+
"SubjectVisitAdmin",
|
|
72
|
+
"SubjectVisitMissedAdmin",
|
|
73
|
+
"UrineDipstickTestAdmin",
|
|
74
|
+
"UrinePregnancyAdmin",
|
|
75
|
+
]
|
|
File without changes
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Tuple
|
|
2
|
-
|
|
3
1
|
from django.contrib import admin
|
|
4
2
|
from django.core.exceptions import ObjectDoesNotExist
|
|
5
3
|
from django.template.loader import render_to_string
|
|
@@ -47,11 +45,11 @@ class BirthOutcomesAdmin(
|
|
|
47
45
|
"birth_outcome",
|
|
48
46
|
)
|
|
49
47
|
|
|
50
|
-
radio_fields = {
|
|
48
|
+
radio_fields = { # noqa: RUF012
|
|
51
49
|
"birth_outcome": admin.VERTICAL,
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
def get_list_filter(self, request) ->
|
|
52
|
+
def get_list_filter(self, request) -> tuple[str, ...]:
|
|
55
53
|
fields = super().get_list_filter(request)
|
|
56
54
|
custom_fields = (
|
|
57
55
|
"birth_order",
|
|
@@ -59,7 +57,7 @@ class BirthOutcomesAdmin(
|
|
|
59
57
|
)
|
|
60
58
|
return custom_fields + fields
|
|
61
59
|
|
|
62
|
-
def get_search_fields(self, request) ->
|
|
60
|
+
def get_search_fields(self, request) -> tuple[str, ...]:
|
|
63
61
|
fields = super().get_search_fields(request)
|
|
64
62
|
custom_fields = (
|
|
65
63
|
"delivery__subject_visit__subject_identifier",
|
|
@@ -92,7 +90,5 @@ class BirthOutcomesAdmin(
|
|
|
92
90
|
if callable(super().view_on_site):
|
|
93
91
|
url = super().view_on_site(obj)
|
|
94
92
|
else:
|
|
95
|
-
raise NoReverseMatch(
|
|
96
|
-
f"{e}. See subject_dashboard_url_name for {repr(self)}."
|
|
97
|
-
)
|
|
93
|
+
raise NoReverseMatch(f"{e}. See subject_dashboard_url_name for {self!r}.")
|
|
98
94
|
return url
|
|
@@ -4,3 +4,12 @@ from .blood_results_ins_admin import BloodResultsInsAdmin
|
|
|
4
4
|
from .blood_results_lft_admin import BloodResultsLftAdmin
|
|
5
5
|
from .blood_results_lipids_admin import BloodResultsLipidsAdmin
|
|
6
6
|
from .blood_results_rft_admin import BloodResultsRftAdmin
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"BloodResultsFbcAdmin",
|
|
10
|
+
"BloodResultsHba1cAdmin",
|
|
11
|
+
"BloodResultsInsAdmin",
|
|
12
|
+
"BloodResultsLftAdmin",
|
|
13
|
+
"BloodResultsLipidsAdmin",
|
|
14
|
+
"BloodResultsRftAdmin",
|
|
15
|
+
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from django.contrib import admin
|
|
2
|
-
from edc_action_item import action_fieldset_tuple
|
|
2
|
+
from edc_action_item.fieldsets import action_fieldset_tuple
|
|
3
3
|
from edc_lab_results.admin import BloodResultsModelAdminMixin
|
|
4
4
|
from edc_lab_results.fieldsets import BloodResultFieldset
|
|
5
5
|
from edc_model_admin.history import SimpleHistoryAdmin
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from django.contrib import admin
|
|
2
|
-
from edc_action_item import action_fieldset_tuple
|
|
2
|
+
from edc_action_item.fieldsets import action_fieldset_tuple
|
|
3
3
|
from edc_lab_panel.panels import hba1c_panel
|
|
4
4
|
from edc_lab_results.admin import BloodResultsModelAdminMixin
|
|
5
5
|
from edc_lab_results.fieldsets import BloodResultFieldset
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from django.contrib import admin
|
|
2
|
-
from edc_action_item import action_fieldset_tuple
|
|
2
|
+
from edc_action_item.fieldsets import action_fieldset_tuple
|
|
3
3
|
from edc_lab_results.admin import BloodResultsModelAdminMixin
|
|
4
4
|
from edc_lab_results.fieldsets import BloodResultFieldset
|
|
5
5
|
from edc_model_admin.history import SimpleHistoryAdmin
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from django.contrib import admin
|
|
2
|
-
from edc_action_item import action_fieldset_tuple
|
|
2
|
+
from edc_action_item.fieldsets import action_fieldset_tuple
|
|
3
3
|
from edc_lab_results.admin import BloodResultsModelAdminMixin
|
|
4
4
|
from edc_lab_results.fieldsets import BloodResultFieldset
|
|
5
5
|
from edc_model_admin.history import SimpleHistoryAdmin
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from django.contrib import admin
|
|
2
|
-
from edc_action_item import action_fieldset_tuple
|
|
2
|
+
from edc_action_item.fieldsets import action_fieldset_tuple
|
|
3
3
|
from edc_lab_results.admin import BloodResultsModelAdminMixin
|
|
4
4
|
from edc_lab_results.fieldsets import BloodResultFieldset
|
|
5
5
|
from edc_model_admin.history import SimpleHistoryAdmin
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
from typing import Tuple
|
|
2
|
-
|
|
3
1
|
from django.contrib import admin, messages
|
|
4
2
|
from django.core.exceptions import MultipleObjectsReturned
|
|
5
|
-
from edc_action_item import action_fieldset_tuple
|
|
3
|
+
from edc_action_item.fieldsets import action_fieldset_tuple
|
|
6
4
|
from edc_egfr.egfr import Egfr
|
|
7
5
|
from edc_lab_results.admin import BloodResultsModelAdminMixin
|
|
8
6
|
from edc_lab_results.fieldsets import (
|
|
@@ -28,7 +26,7 @@ class BloodResultsRftAdmin(
|
|
|
28
26
|
BloodResultsModelAdminMixin, CrfModelAdminMixin, SimpleHistoryAdmin
|
|
29
27
|
):
|
|
30
28
|
form = BloodResultsRftForm
|
|
31
|
-
actions =
|
|
29
|
+
actions = ("create_or_update_egfr_notification", "recalculate_egfr")
|
|
32
30
|
fieldsets = (
|
|
33
31
|
*BloodResultFieldset(
|
|
34
32
|
BloodResultsRft.lab_panel,
|
|
@@ -42,7 +40,7 @@ class BloodResultsRftAdmin(
|
|
|
42
40
|
).fieldsets,
|
|
43
41
|
)
|
|
44
42
|
|
|
45
|
-
def get_readonly_fields(self, request, obj=None) ->
|
|
43
|
+
def get_readonly_fields(self, request, obj=None) -> tuple[str, ...]: # noqa: ARG002
|
|
46
44
|
readonly_fields = super().get_readonly_fields(request)
|
|
47
45
|
custom_fields = (
|
|
48
46
|
"egfr_value",
|
|
File without changes
|
|
@@ -98,7 +98,7 @@ class ComplicationsGlycemiaAdmin(CrfModelAdminMixin, SimpleHistoryAdmin):
|
|
|
98
98
|
audit_fieldset_tuple,
|
|
99
99
|
)
|
|
100
100
|
|
|
101
|
-
radio_fields = {
|
|
101
|
+
radio_fields = { # noqa: RUF012
|
|
102
102
|
"at_reflex": admin.VERTICAL,
|
|
103
103
|
"cataracts": admin.VERTICAL,
|
|
104
104
|
"dns_burning": admin.VERTICAL,
|
|
File without changes
|