meta-edc 0.2.24__py3-none-any.whl → 1.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- meta_ae/action_items.py +40 -29
- meta_ae/admin/__init__.py +12 -2
- meta_ae/admin/ae_followup_admin.py +2 -2
- meta_ae/admin/ae_initial_admin.py +7 -4
- meta_ae/admin/ae_local_review_admin.py +2 -2
- meta_ae/admin/ae_sponsor_review_admin.py +2 -2
- meta_ae/admin/ae_susar_admin.py +3 -3
- meta_ae/admin/ae_tmg_admin.py +2 -2
- meta_ae/admin/death_report_admin.py +3 -3
- meta_ae/admin/death_report_tmg_admin.py +4 -2
- meta_ae/admin/death_report_tmg_second_admin.py +4 -2
- meta_ae/admin/hospitalization_admin.py +15 -0
- meta_ae/admin/modeladmin_mixins.py +14 -16
- meta_ae/baker_recipes.py +5 -6
- meta_ae/choices.py +1 -1
- meta_ae/forms/__init__.py +14 -0
- meta_ae/forms/death_report_form.py +1 -2
- meta_ae/forms/hospitalization_form.py +11 -0
- meta_ae/forms/modelform_mixins.py +2 -2
- meta_ae/list_data.py +2 -1
- meta_ae/migrations/0001_initial.py +27 -28
- meta_ae/migrations/0002_auto_20191024_1000.py +0 -1
- meta_ae/migrations/0003_auto_20191102_0033.py +0 -1
- meta_ae/migrations/0004_auto_20191114_0821.py +0 -1
- meta_ae/migrations/0005_auto_20210624_0225.py +0 -1
- meta_ae/migrations/0006_aelocalreview_aesponsorreview.py +5 -6
- meta_ae/migrations/0007_auto_20210911_2036.py +0 -1
- meta_ae/migrations/0008_auto_20211011_1657.py +0 -1
- meta_ae/migrations/0009_auto_20220307_1929.py +0 -1
- meta_ae/migrations/0010_auto_20220704_1841.py +0 -1
- meta_ae/migrations/0011_alter_aefollowup_action_identifier_and_more.py +0 -1
- meta_ae/migrations/0012_auto_20220826_0258.py +0 -1
- meta_ae/migrations/0013_auto_20220826_0322.py +0 -1
- meta_ae/migrations/0014_auto_20220826_0406.py +0 -1
- meta_ae/migrations/0015_auto_20220907_0157.py +0 -1
- meta_ae/migrations/0016_rename_narrative_aetmg_investigator_narrative_and_more.py +128 -0
- meta_ae/migrations/0017_auto_20221130_2257.py +29 -0
- meta_ae/migrations/0018_alter_deathreporttmg_cause_of_death_agreed_and_more.py +45 -0
- meta_ae/migrations/0019_alter_aefollowup_managers_alter_aeinitial_managers_and_more.py +529 -0
- meta_ae/migrations/0020_alter_aesusar_options_alter_aetmg_options_and_more.py +532 -0
- meta_ae/migrations/0021_alter_aefollowup_site_alter_aeinitial_site_and_more.py +158 -0
- meta_ae/migrations/0022_historicalhospitalization_hospitalization.py +590 -0
- meta_ae/migrations/0023_alter_aefollowup_action_identifier_and_more.py +2017 -0
- meta_ae/model_mixins/__init__.py +2 -0
- meta_ae/model_mixins/ae_review_model_mixin.py +8 -8
- meta_ae/model_mixins/death_report_model_mixin.py +3 -4
- meta_ae/models/__init__.py +14 -0
- meta_ae/models/ae_initial.py +4 -0
- meta_ae/models/death_report.py +0 -1
- meta_ae/models/death_report_tmg_second.py +0 -1
- meta_ae/models/hospitalization.py +21 -0
- meta_ae/models/managers.py +1 -4
- meta_ae/pdf_reports/__init__.py +4 -2
- meta_ae/pdf_reports/ae_pdf_report.py +7 -0
- meta_ae/pdf_reports/death_pdf_report.py +7 -0
- meta_ae/pdf_reports/meta_pdf_report_mixin.py +4 -2
- meta_ae/templatetags/meta_ae_extras.py +5 -6
- meta_analytics/.DS_Store +0 -0
- meta_analytics/README.rst +16 -0
- meta_analytics/dataframes/__init__.py +46 -0
- meta_analytics/dataframes/constants.py +36 -0
- meta_analytics/dataframes/get_eos_df.py +38 -0
- meta_analytics/dataframes/get_glucose_df.py +166 -0
- meta_analytics/dataframes/get_glucose_fbg_df.py +26 -0
- meta_analytics/dataframes/get_glucose_fbg_ogtt_df.py +21 -0
- meta_analytics/dataframes/get_last_imp_visits_df.py +103 -0
- meta_analytics/dataframes/glucose_endpoints/__init__.py +4 -0
- meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +184 -0
- meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +407 -0
- meta_analytics/dataframes/screening/__init__.py +4 -0
- meta_analytics/dataframes/screening/get_glucose_tested_only_df.py +19 -0
- meta_analytics/dataframes/screening/get_screening_df.py +156 -0
- meta_analytics/dataframes/utils.py +74 -0
- meta_analytics/get_tables.py +80 -0
- meta_analytics/tables/__init__.py +4 -0
- meta_analytics/tables/eligible.py +106 -0
- meta_analytics/tables/enrolled/glucose.py +27 -0
- meta_analytics/tables/has_dm.py +61 -0
- meta_analytics/utils.py +81 -0
- meta_auth/auth_objects.py +34 -5
- meta_auth/auths.py +21 -6
- meta_consent/action_items.py +22 -3
- meta_consent/admin/__init__.py +8 -1
- meta_consent/admin/actions/__init__.py +2 -0
- meta_consent/admin/actions/create_missing_prescriptions.py +2 -2
- meta_consent/admin/list_filters.py +22 -0
- meta_consent/admin/modeladmin_mixins.py +148 -0
- meta_consent/admin/subject_consent_admin.py +6 -134
- meta_consent/admin/subject_consent_v1_admin.py +19 -0
- meta_consent/admin/subject_consent_v1_ext_admin.py +93 -0
- meta_consent/baker_recipes.py +11 -11
- meta_consent/consents.py +27 -8
- meta_consent/constants.py +1 -0
- meta_consent/form_validators/__init__.py +3 -0
- meta_consent/form_validators/subject_consent_form_validator.py +30 -0
- meta_consent/forms/__init__.py +10 -1
- meta_consent/forms/subject_consent_form.py +26 -46
- meta_consent/forms/subject_consent_v1_ext_form.py +47 -0
- meta_consent/forms/subject_consent_v1_form.py +26 -0
- meta_consent/forms/subject_reconsent_form.py +4 -4
- meta_consent/locale/lg/LC_MESSAGES/django.po +69 -0
- meta_consent/locale/sw/LC_MESSAGES/django.po +70 -0
- meta_consent/management/commands/create_missing_prescriptions.py +5 -3
- meta_consent/migrations/0001_initial.py +9 -10
- meta_consent/migrations/0002_auto_20191024_1000.py +0 -1
- meta_consent/migrations/0003_auto_20200325_0901.py +0 -1
- meta_consent/migrations/0004_auto_20210624_0225.py +0 -1
- meta_consent/migrations/0005_alter_subjectconsent_options.py +0 -1
- meta_consent/migrations/0006_auto_20210911_2036.py +0 -1
- meta_consent/migrations/0007_auto_20220128_1719.py +0 -1
- meta_consent/migrations/0008_auto_20220412_2151.py +0 -1
- meta_consent/migrations/0009_auto_20220704_1841.py +0 -1
- meta_consent/migrations/0010_alter_historicalsubjectreconsent_action_identifier_and_more.py +0 -1
- meta_consent/migrations/0011_auto_20220826_0258.py +0 -1
- meta_consent/migrations/0012_auto_20220826_0322.py +0 -1
- meta_consent/migrations/0013_auto_20220826_0406.py +0 -1
- meta_consent/migrations/0014_alter_subjectconsent_managers.py +1 -2
- meta_consent/migrations/0015_auto_20220914_0542.py +0 -1
- meta_consent/migrations/0016_auto_20220914_0547.py +0 -2
- meta_consent/migrations/0017_auto_20220929_1742.py +3 -3
- meta_consent/migrations/0018_alter_subjectconsent_options_and_more.py +170 -0
- meta_consent/migrations/0019_alter_subjectconsent_options_and_more.py +191 -0
- meta_consent/migrations/0020_historicalsubjectconsent_model_name_and_more.py +34 -0
- meta_consent/migrations/0021_auto_20240111_0442.py +17 -0
- meta_consent/migrations/0022_alter_historicalsubjectconsent_site_and_more.py +36 -0
- meta_consent/migrations/0023_subjectconsentv1_and_more.py +86 -0
- meta_consent/migrations/0024_historicalsubjectconsentv1.py +595 -0
- meta_consent/migrations/0025_alter_historicalsubjectconsent_first_name_and_more.py +151 -0
- meta_consent/migrations/0026_historicalsubjectconsentv1ext_subjectconsentv1ext.py +535 -0
- meta_consent/migrations/0027_auto_20250111_0344.py +30 -0
- meta_consent/migrations/0028_historicalsubjectconsentv1ext_assessment_score_and_more.py +162 -0
- meta_consent/migrations/0029_alter_historicalsubjectconsentv1ext_agrees_to_extension_and_more.py +33 -0
- meta_consent/migrations/0030_auto_20250120_2114.py +40 -0
- meta_consent/migrations/0031_alter_historicalsubjectconsent_guardian_name_and_more.py +124 -0
- meta_consent/migrations/0032_alter_historicalsubjectconsent_device_created_and_more.py +678 -0
- meta_consent/migrations/0033_historicalsubjectconsentspfq_subjectconsentspfq.py +615 -0
- meta_consent/migrations/0034_remove_subjectconsentspfq_site_and_more.py +23 -0
- meta_consent/migrations/0035_alter_historicalsubjectconsent_consent_definition_name_and_more.py +43 -0
- meta_consent/models/__init__.py +11 -0
- meta_consent/models/model_mixins.py +1 -2
- meta_consent/models/signals.py +68 -52
- meta_consent/models/subject_consent.py +9 -20
- meta_consent/models/subject_consent_v1.py +15 -0
- meta_consent/models/subject_consent_v1_ext.py +34 -0
- meta_consent/models/subject_reconsent.py +6 -7
- meta_dashboard/apps.py +0 -40
- meta_dashboard/locale/lg/LC_MESSAGES/django.po +30 -0
- meta_dashboard/locale/sw/LC_MESSAGES/django.po +31 -0
- meta_dashboard/navbars.py +12 -14
- meta_dashboard/patterns.py +1 -1
- meta_dashboard/templates/meta_dashboard/{bootstrap3/buttons → buttons}/dashboard_button.html +1 -1
- meta_dashboard/templates/meta_dashboard/{bootstrap3/buttons → buttons}/eligibility_button.html +1 -1
- meta_dashboard/templates/meta_dashboard/{bootstrap3/buttons → buttons}/screening_button.html +1 -1
- meta_dashboard/templates/meta_dashboard/{bootstrap3/screening → screening}/listboard.html +18 -17
- meta_dashboard/templates/meta_dashboard/subject/dashboard/sidebar.html +24 -0
- meta_dashboard/templates/meta_dashboard/{bootstrap3/subject → subject}/dashboard/top_bar.html +1 -1
- meta_dashboard/templates/meta_dashboard/subject/dashboard.html +14 -0
- meta_dashboard/templates/meta_dashboard/{bootstrap3/subject → subject}/listboard.html +14 -6
- meta_dashboard/templatetags/meta_dashboard_extras.py +77 -78
- meta_dashboard/urls.py +10 -10
- meta_dashboard/view_utils/__init__.py +13 -0
- meta_dashboard/view_utils/subject_screening_button.py +114 -0
- meta_dashboard/views/__init__.py +8 -0
- meta_dashboard/views/ae/__init__.py +2 -0
- meta_dashboard/views/ae/ae_listboard_view.py +3 -4
- meta_dashboard/views/ae/death_report_listboard_view.py +4 -4
- meta_dashboard/views/screening/__init__.py +2 -0
- meta_dashboard/views/screening/listboard_view.py +5 -16
- 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 +41 -3
- meta_dashboard/views/subject/listboard/__init__.py +2 -0
- meta_dashboard/views/subject/listboard/listboard_view.py +8 -12
- meta_data_manager/handlers.py +0 -1
- meta_edc/__init__.py +10 -0
- meta_edc/admin.py +3 -4
- meta_edc/celery.py +6 -14
- meta_edc/celery_live.py +19 -0
- meta_edc/celery_uat.py +25 -0
- meta_edc/management/commands/update_forms_reference.py +16 -17
- meta_edc/meta_version.py +2 -2
- meta_edc/navbars.py +17 -12
- meta_edc/settings/debug.py +30 -9
- meta_edc/settings/defaults.py +145 -94
- meta_edc/settings/live.py +5 -10
- meta_edc/settings/logging.py +10 -3
- meta_edc/settings/minimal.py +5 -5
- meta_edc/settings/uat.py +4 -13
- meta_edc/templates/meta_edc/{bootstrap3/base.html → base.html} +1 -1
- meta_edc/templates/meta_edc/{bootstrap3/home.html → home.html} +14 -8
- meta_edc/urls.py +10 -4
- meta_edc/utils.py +3 -1
- meta_edc/views/__init__.py +2 -0
- meta_edc/views/home_view.py +6 -7
- meta_edc/wsgi.py +1 -1
- meta_edc/wsgi_live.py +1 -1
- meta_edc/wsgi_uat.py +1 -1
- meta_edc-1.4.0.dist-info/METADATA +174 -0
- meta_edc-1.4.0.dist-info/RECORD +1164 -0
- meta_edc-1.4.0.dist-info/WHEEL +4 -0
- meta_labs/list_data.py +2 -2
- meta_labs/reportables.py +80 -11
- meta_lists/admin.py +30 -0
- meta_lists/list_data.py +60 -5
- meta_lists/migrations/0001_initial.py +0 -1
- meta_lists/migrations/0002_auto_20191026_2231.py +0 -1
- meta_lists/migrations/0003_auto_20191102_0033.py +0 -1
- meta_lists/migrations/0004_auto_20191102_1859.py +0 -1
- meta_lists/migrations/0005_auto_20191104_0930.py +0 -1
- meta_lists/migrations/0006_auto_20200514_1959.py +0 -1
- meta_lists/migrations/0007_auto_20200516_2356.py +0 -1
- meta_lists/migrations/0008_auto_20200528_1517.py +3 -4
- meta_lists/migrations/0009_auto_20200613_2041.py +0 -1
- meta_lists/migrations/0010_auto_20200617_1738.py +0 -1
- meta_lists/migrations/0011_auto_20210624_0225.py +0 -1
- meta_lists/migrations/0012_auto_20210728_1809.py +0 -1
- meta_lists/migrations/0013_transferreasons_and_more.py +0 -1
- meta_lists/migrations/0014_auto_20220913_2139.py +0 -1
- meta_lists/migrations/0015_abnormalfootappearanceobservations_extra_value_and_more.py +67 -0
- meta_lists/migrations/0016_alter_abnormalfootappearanceobservations_options_and_more.py +617 -0
- meta_lists/migrations/0017_complications_dmmedications_dmtreatments_and_more.py +365 -0
- meta_lists/migrations/0018_missedreferralreasons.py +73 -0
- meta_lists/migrations/0019_auto_20250128_0143.py +48 -0
- meta_lists/migrations/0020_alter_abnormalfootappearanceobservations_extra_value_and_more.py +404 -0
- meta_lists/models.py +36 -0
- meta_pharmacy/admin/__init__.py +7 -0
- meta_pharmacy/admin/rx_admin.py +76 -0
- meta_pharmacy/admin/substitutions_admin.py +67 -0
- meta_pharmacy/admin_site.py +9 -0
- meta_pharmacy/apps.py +5 -0
- meta_pharmacy/constants.py +10 -0
- meta_pharmacy/forms/__init__.py +4 -0
- meta_pharmacy/forms/rx_form.py +15 -0
- meta_pharmacy/forms/substitutions_form.py +56 -0
- meta_pharmacy/label_configs.py +30 -0
- meta_pharmacy/labels/__init__.py +7 -0
- meta_pharmacy/labels/draw_label_for_subject_with_barcode.py +61 -0
- meta_pharmacy/labels/draw_label_for_subject_with_code128.py +14 -0
- meta_pharmacy/labels/draw_label_with_test_data.py +26 -0
- meta_pharmacy/labels/label_data.py +13 -0
- meta_pharmacy/labels/print_sheets.py +95 -0
- meta_pharmacy/list_data.py +8 -0
- meta_pharmacy/management/commands/update_initial_pharmacy_data.py +11 -0
- meta_pharmacy/migrations/0001_initial.py +32 -0
- meta_pharmacy/migrations/0002_initial.py +682 -0
- meta_pharmacy/migrations/0003_auto_20240909_2335.py +65 -0
- meta_pharmacy/migrations/0004_alter_historicalsubstitutions_report_datetime_and_more.py +23 -0
- meta_pharmacy/migrations/0005_auto_20240911_0352.py +17 -0
- meta_pharmacy/migrations/0006_lotnumber_label.py +280 -0
- meta_pharmacy/migrations/0007_lotnumber_medication.py +24 -0
- meta_pharmacy/migrations/0008_remove_lotnumber_medication_and_more.py +389 -0
- meta_pharmacy/migrations/0009_remove_historicalrx_slug.py +17 -0
- meta_pharmacy/migrations/0010_alter_historicallabeldata_device_created_and_more.py +382 -0
- meta_pharmacy/models/__init__.py +10 -0
- meta_pharmacy/models/label_data.py +37 -0
- meta_pharmacy/models/rx.py +18 -0
- meta_pharmacy/models/rx_label.py +38 -0
- meta_pharmacy/models/substitutions.py +88 -0
- meta_pharmacy/prepare_meta_pharmacy.py +1 -1
- meta_pharmacy/urls.py +8 -0
- meta_pharmacy/utils/__init__.py +3 -0
- meta_pharmacy/utils/update_initial_pharmacy_data.py +146 -0
- meta_prn/action_items.py +76 -27
- meta_prn/admin/__init__.py +20 -1
- meta_prn/admin/dm_referral_admin.py +50 -0
- meta_prn/admin/end_of_study_admin.py +28 -18
- meta_prn/admin/loss_to_followup_admin.py +5 -5
- meta_prn/admin/off_study_medication_admin.py +7 -9
- meta_prn/admin/offschedule_admin.py +14 -14
- meta_prn/admin/offschedule_dm_referral_admin.py +48 -0
- meta_prn/admin/offschedule_postnatal_admin.py +17 -10
- meta_prn/admin/offschedule_pregnancy_admin.py +20 -12
- meta_prn/admin/onschedule_admin.py +9 -11
- meta_prn/admin/onschedule_dm_referral_admin.py +38 -0
- meta_prn/admin/pregnancy_notification_admin.py +13 -11
- meta_prn/admin/protocol_incident_admin.py +6 -104
- meta_prn/admin/subject_transfer_admin.py +3 -2
- meta_prn/baker_recipes.py +15 -8
- meta_prn/choices.py +15 -10
- meta_prn/constants.py +5 -2
- meta_prn/form_validators/__init__.py +5 -0
- meta_prn/form_validators/end_of_study.py +65 -21
- meta_prn/form_validators/protocol_incident.py +1 -2
- meta_prn/forms/__init__.py +15 -0
- meta_prn/forms/dm_referral_form.py +34 -0
- meta_prn/forms/end_of_study_form.py +1 -2
- meta_prn/forms/loss_to_followup_form.py +1 -2
- meta_prn/forms/off_study_medication_form.py +2 -3
- meta_prn/forms/offschedule_dm_referral_form.py +35 -0
- meta_prn/forms/offschedule_form.py +31 -1
- meta_prn/forms/offschedule_pregnancy_form.py +0 -1
- meta_prn/forms/pregnancy_notification_form.py +16 -19
- meta_prn/forms/subject_transfer_form.py +0 -1
- meta_prn/list_data.py +3 -3
- meta_prn/migrations/0001_initial.py +25 -26
- meta_prn/migrations/0002_auto_20191024_1000.py +0 -1
- meta_prn/migrations/0003_auto_20200120_2020.py +0 -1
- meta_prn/migrations/0004_auto_20200403_0332.py +0 -1
- meta_prn/migrations/0005_auto_20200524_1944.py +0 -1
- meta_prn/migrations/0006_auto_20210624_0225.py +0 -1
- meta_prn/migrations/0007_auto_20210721_0335.py +0 -1
- meta_prn/migrations/0008_auto_20210910_0238.py +0 -1
- meta_prn/migrations/0009_auto_20210910_0239.py +0 -1
- meta_prn/migrations/0010_auto_20210910_1906.py +0 -1
- meta_prn/migrations/0011_auto_20210910_1911.py +1 -2
- meta_prn/migrations/0012_auto_20210911_0004.py +1 -2
- meta_prn/migrations/0013_auto_20210911_2036.py +0 -1
- meta_prn/migrations/0014_auto_20211003_1709.py +0 -1
- meta_prn/migrations/0015_auto_20211104_1447.py +0 -1
- meta_prn/migrations/0016_auto_20220128_1719.py +0 -1
- meta_prn/migrations/0017_auto_20220307_1929.py +5 -6
- meta_prn/migrations/0018_auto_20220309_2106.py +9 -10
- meta_prn/migrations/0019_auto_20220309_2230.py +0 -1
- meta_prn/migrations/0020_auto_20220310_0439.py +0 -1
- meta_prn/migrations/0021_auto_20220316_2147.py +13 -14
- meta_prn/migrations/0022_auto_20220318_0133.py +9 -10
- meta_prn/migrations/0023_auto_20220415_1747.py +0 -1
- meta_prn/migrations/0024_alter_protocoldeviationviolation_violation.py +0 -1
- meta_prn/migrations/0025_alter_historicalprotocoldeviationviolation_options_and_more.py +0 -1
- meta_prn/migrations/0026_remove_historicalprotocoldeviationviolation_violation_type_and_more.py +0 -1
- meta_prn/migrations/0027_rename_historicalprotocoldeviationviolation_historicalprotocolincident_and_more.py +0 -1
- meta_prn/migrations/0028_historicalpregnancynotification_bhcg_date_and_more.py +0 -1
- meta_prn/migrations/0029_alter_historicalpregnancynotification_edd_and_more.py +0 -1
- meta_prn/migrations/0030_auto_20220627_1119.py +0 -1
- meta_prn/migrations/0031_alter_historicaloffschedule_options_and_more.py +0 -1
- meta_prn/migrations/0032_historicalegfrnotification_egfrnotification.py +5 -14
- meta_prn/migrations/0033_remove_historicalegfrnotification_action_item_and_more.py +0 -1
- meta_prn/migrations/0034_auto_20220630_1110.py +4 -5
- meta_prn/migrations/0035_auto_20220630_1140.py +61 -60
- meta_prn/migrations/0036_remove_endofstudy_meta_prn_en_id_a50384_idx_and_more.py +0 -1
- meta_prn/migrations/0037_endofstudy_delivery_date_endofstudy_pregnancy_date_and_more.py +0 -1
- meta_prn/migrations/0038_alter_endofstudy_delivery_date_and_more.py +5 -14
- meta_prn/migrations/0039_historicaloffstudymedication_reason_other_and_more.py +0 -1
- meta_prn/migrations/0040_remove_historicaloffstudymedication_expected_restart_date_and_more.py +0 -1
- meta_prn/migrations/0041_endofstudy_transfer_date_and_more.py +5 -14
- meta_prn/migrations/0042_remove_endofstudy_investigator_decision_and_more.py +0 -1
- meta_prn/migrations/0043_auto_20220704_1841.py +0 -1
- meta_prn/migrations/0044_alter_endofstudy_action_identifier_and_more.py +0 -1
- meta_prn/migrations/0045_auto_20220826_0258.py +0 -1
- meta_prn/migrations/0046_auto_20220826_0322.py +0 -1
- meta_prn/migrations/0047_auto_20220826_0406.py +0 -1
- meta_prn/migrations/0048_auto_20220922_2236.py +0 -1
- meta_prn/migrations/0049_auto_20220929_1742.py +0 -1
- meta_prn/migrations/0050_auto_20221004_0629.py +0 -1
- meta_prn/migrations/0051_historicalprotocolincident_reasons_withdrawn_and_more.py +54 -0
- meta_prn/migrations/0052_alter_historicalprotocolincident_reasons_withdrawn_and_more.py +22 -0
- meta_prn/migrations/0053_alter_losstofollowup_options_and_more.py +975 -0
- meta_prn/migrations/0054_alter_losstofollowup_options_and_more.py +834 -0
- meta_prn/migrations/0055_alter_endofstudy_site_and_more.py +278 -0
- meta_prn/migrations/0056_alter_endofstudy_clinical_withdrawal_reason_and_more.py +97 -0
- meta_prn/migrations/0057_historicalonscheduledmreferral_and_more.py +1131 -0
- meta_prn/migrations/0058_dmreferral_referral_note_and_more.py +29 -0
- meta_prn/migrations/0059_alter_historicaloffstudymedication_reason_and_more.py +53 -0
- meta_prn/migrations/0060_alter_onschedule_managers_and_more.py +55 -0
- meta_prn/migrations/0061_auto_20250115_2025.py +56 -0
- meta_prn/migrations/0062_alter_endofstudy_offstudy_reason_and_more.py +72 -0
- meta_prn/migrations/0063_historicaloffstudymedication_singleton_field_and_more.py +37 -0
- meta_prn/migrations/0064_auto_20250602_2143.py +18 -0
- meta_prn/migrations/0065_alter_historicaloffstudymedication_subject_identifier_and_more.py +23 -0
- meta_prn/migrations/0066_alter_historicallosstofollowup_subject_identifier_and_more.py +23 -0
- meta_prn/migrations/0067_alter_offschedule_managers_and_more.py +2557 -0
- meta_prn/migrations/0068_alter_dmreferral_referral_note_and_more.py +235 -0
- meta_prn/migrations/0069_alter_historicaloffstudymedication_singleton_field_and_more.py +37 -0
- meta_prn/models/__init__.py +33 -2
- meta_prn/models/dm_referral.py +39 -0
- meta_prn/models/end_of_study.py +29 -25
- meta_prn/models/loss_to_followup.py +10 -13
- meta_prn/models/off_study_medication.py +8 -6
- meta_prn/models/offschedule.py +16 -8
- meta_prn/models/onschedule.py +10 -5
- meta_prn/models/pregnancy_notification.py +4 -7
- meta_prn/models/protocol_incident.py +6 -4
- meta_prn/models/signals.py +56 -16
- meta_prn/models/subject_transfer.py +7 -0
- meta_prn/pregnancy_action_item_mixin.py +2 -1
- meta_prn/templates/meta_prn/eos/additional_instructions.html +3 -0
- meta_prn/templates/meta_prn/offschedule/additional_instructions.html +2 -0
- meta_rando/migrations/0001_initial.py +5 -6
- meta_rando/migrations/0002_auto_20220704_1841.py +0 -1
- meta_rando/migrations/0003_auto_20220826_1640.py +0 -1
- meta_rando/migrations/0004_alter_randomizationlist_options_and_more.py +95 -0
- meta_rando/migrations/0005_alter_randomizationlist_options_and_more.py +98 -0
- meta_rando/migrations/0006_alter_historicalrandomizationlist_allocated_user_and_more.py +130 -0
- meta_rando/migrations/0007_spfqlist.py +197 -0
- meta_rando/migrations/0008_delete_spfqlist.py +16 -0
- meta_rando/models/__init__.py +1 -0
- meta_rando/{models.py → models/randomization_list.py} +3 -4
- meta_rando/randomizers.py +2 -3
- meta_reports/__init__.py +3 -0
- meta_reports/admin/__init__.py +31 -0
- meta_reports/admin/dbviews/__init__.py +27 -0
- meta_reports/admin/dbviews/glucose_summary_admin.py +116 -0
- meta_reports/admin/dbviews/imp_substitutions_admin.py +102 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/__init__.py +7 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/note_model_admin.py +77 -0
- meta_reports/admin/dbviews/missing_screening_ogtt_admin/unmanaged_model_admin.py +84 -0
- meta_reports/admin/dbviews/on_study_missing_lab_values_admin/__init__.py +3 -0
- meta_reports/admin/dbviews/on_study_missing_lab_values_admin/unmanaged_model_admin.py +10 -0
- meta_reports/admin/dbviews/on_study_missing_values_admin/__init__.py +3 -0
- meta_reports/admin/dbviews/on_study_missing_values_admin/unmanaged_model_admin.py +12 -0
- meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py +58 -0
- meta_reports/admin/dbviews/unattended_three_in_row2_admin.py +47 -0
- meta_reports/admin/dbviews/unattended_three_in_row_admin.py +35 -0
- meta_reports/admin/dbviews/unattended_two_in_row_admin.py +34 -0
- meta_reports/admin/endpoints_admin.py +14 -0
- meta_reports/admin/endpoints_all_admin.py +12 -0
- meta_reports/admin/last_imp_refill_admin.py +178 -0
- meta_reports/admin/list_filters.py +30 -0
- meta_reports/admin/modeladmin_mixins.py +105 -0
- meta_reports/admin_site.py +5 -0
- meta_reports/ae_report.py +2 -3
- meta_reports/apps.py +1 -17
- meta_reports/death_report.py +3 -5
- meta_reports/forms/__init__.py +3 -0
- meta_reports/forms/missing_ogtt_note_form.py +32 -0
- meta_reports/management/commands/generate_endpoints.py +14 -0
- meta_reports/migrations/0001_initial.py +87 -0
- meta_reports/migrations/0002_patienthistorymissingbaselinecd4_and_more.py +64 -0
- meta_reports/migrations/0003_auto_20240618_0505.py +12 -0
- meta_reports/migrations/0004_alter_patienthistorymissingbaselinecd4_table.py +17 -0
- meta_reports/migrations/0005_endpoints.py +47 -0
- meta_reports/migrations/0006_endpoints_baseline_datetime.py +18 -0
- meta_reports/migrations/0007_alter_endpoints_endpoint_label_and_more.py +43 -0
- meta_reports/migrations/0008_alter_endpoints_endpoint_label.py +18 -0
- meta_reports/migrations/0009_alter_endpoints_options.py +21 -0
- meta_reports/migrations/0010_alter_patienthistorymissingbaselinecd4_options_and_more.py +49 -0
- meta_reports/migrations/0011_auto_20240813_0156.py +54 -0
- meta_reports/migrations/0012_auto_20240813_1516.py +48 -0
- meta_reports/migrations/0013_auto_20240813_1516.py +48 -0
- meta_reports/migrations/0014_auto_20240813_1517.py +48 -0
- meta_reports/migrations/0015_alter_endpoints_site.py +22 -0
- meta_reports/migrations/0016_missingscreeningogtt.py +47 -0
- meta_reports/migrations/0017_auto_20240819_1711.py +166 -0
- meta_reports/migrations/0018_auto_20240819_1713.py +54 -0
- meta_reports/migrations/0019_auto_20240819_1721.py +54 -0
- meta_reports/migrations/0020_auto_20240819_1811.py +54 -0
- meta_reports/migrations/0021_auto_20240819_1817.py +54 -0
- meta_reports/migrations/0022_auto_20240819_1832.py +54 -0
- meta_reports/migrations/0023_endpoints_meta_report_subject_a56b22_idx.py +20 -0
- meta_reports/migrations/0024_glucosesummary.py +38 -0
- meta_reports/migrations/0025_auto_20240822_0115.py +87 -0
- meta_reports/migrations/0026_auto_20240822_0120.py +54 -0
- meta_reports/migrations/0027_auto_20240822_0140.py +54 -0
- meta_reports/migrations/0028_alter_glucosesummary_options.py +22 -0
- meta_reports/migrations/0029_auto_20240822_0149.py +54 -0
- meta_reports/migrations/0030_auto_20240822_1637.py +54 -0
- meta_reports/migrations/0031_endpointsproxy.py +25 -0
- meta_reports/migrations/0032_alter_endpointsproxy_options.py +21 -0
- meta_reports/migrations/0033_auto_20240823_0012.py +54 -0
- meta_reports/migrations/0034_auto_20240823_1642.py +54 -0
- meta_reports/migrations/0035_historicalmissingogttnote_missingogttnote.py +448 -0
- meta_reports/migrations/0036_historicalmissingogttnote_fasting_and_more.py +86 -0
- meta_reports/migrations/0037_historicalmissingogttnote_result_status_and_more.py +51 -0
- meta_reports/migrations/0038_alter_historicalmissingogttnote_fasting_and_more.py +33 -0
- meta_reports/migrations/0039_onstudymissingvalues.py +44 -0
- meta_reports/migrations/0040_auto_20240824_0412.py +282 -0
- meta_reports/migrations/0041_auto_20240828_2229.py +14 -0
- meta_reports/migrations/0042_onstudymissinglabvalues.py +43 -0
- meta_reports/migrations/0043_auto_20240828_2309.py +88 -0
- meta_reports/migrations/0044_auto_20240828_2323.py +93 -0
- meta_reports/migrations/0045_auto_20240829_0248.py +54 -0
- meta_reports/migrations/0046_auto_20240829_0250.py +54 -0
- meta_reports/migrations/0047_impsubstitutions.py +56 -0
- meta_reports/migrations/0048_auto_20240909_2338.py +48 -0
- meta_reports/migrations/0049_auto_20240911_0327.py +54 -0
- meta_reports/migrations/0050_alter_endpoints_created.py +19 -0
- meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py +40 -0
- meta_reports/migrations/0052_lastimpvisit.py +57 -0
- meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py +31 -0
- meta_reports/migrations/0054_auto_20250422_2003.py +81 -0
- meta_reports/migrations/0055_alter_glucosesummary_table.py +17 -0
- meta_reports/migrations/0056_auto_20250422_2214.py +54 -0
- meta_reports/migrations/0057_auto_20250422_2224.py +54 -0
- meta_reports/migrations/0058_auto_20250422_2232.py +54 -0
- meta_reports/migrations/0059_alter_endpoints_created_and_more.py +161 -0
- meta_reports/migrations/0060_auto_20250926_0242.py +366 -0
- meta_reports/migrations/0061_auto_20251004_0043.py +21 -0
- meta_reports/migrations/0062_auto_20251004_0106.py +21 -0
- meta_reports/models/__init__.py +33 -0
- meta_reports/models/dbviews/README +14 -0
- meta_reports/models/dbviews/__init__.py +23 -0
- meta_reports/models/dbviews/glucose_summary/__init__.py +4 -0
- meta_reports/models/dbviews/glucose_summary/unmanaged_model.py +47 -0
- meta_reports/models/dbviews/glucose_summary/view_definition.py +31 -0
- meta_reports/models/dbviews/imp_substitutions/__init__.py +3 -0
- meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py +40 -0
- meta_reports/models/dbviews/imp_substitutions/view_definition.py +21 -0
- meta_reports/models/dbviews/missing_screening_ogtt/__init__.py +4 -0
- meta_reports/models/dbviews/missing_screening_ogtt/note_model.py +57 -0
- meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py +42 -0
- meta_reports/models/dbviews/missing_screening_ogtt/view_definition.py +20 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/__init__.py +3 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/qa_cases.py +55 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/unmanged_model.py +19 -0
- meta_reports/models/dbviews/on_study_missing_lab_values/view_definition.py +17 -0
- meta_reports/models/dbviews/on_study_missing_values/__init__.py +3 -0
- meta_reports/models/dbviews/on_study_missing_values/qa_cases.py +72 -0
- meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py +19 -0
- meta_reports/models/dbviews/on_study_missing_values/view_definition.py +17 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py +3 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/unmanaged_model.py +30 -0
- meta_reports/models/dbviews/patient_history_missing_baseline_cd4/view_definition.py +21 -0
- meta_reports/models/dbviews/unattended_three_in_row/__init__.py +3 -0
- meta_reports/models/dbviews/unattended_three_in_row/unmanaged_model.py +28 -0
- meta_reports/models/dbviews/unattended_three_in_row/view_definition.py +31 -0
- meta_reports/models/dbviews/unattended_three_in_row2/__init__.py +3 -0
- meta_reports/models/dbviews/unattended_three_in_row2/unmanaged_model.py +28 -0
- meta_reports/models/dbviews/unattended_three_in_row2/view_definition.py +50 -0
- meta_reports/models/dbviews/unattended_two_in_row/__init__.py +3 -0
- meta_reports/models/dbviews/unattended_two_in_row/unmanaged_model.py +26 -0
- meta_reports/models/dbviews/unattended_two_in_row/view_definition.py +30 -0
- meta_reports/models/endpoints.py +35 -0
- meta_reports/models/endpoints_proxy.py +11 -0
- meta_reports/models/last_imp_refill.py +33 -0
- meta_reports/pdf_report.py +2 -4
- meta_reports/tasks.py +13 -0
- meta_reports/templates/meta_reports/columns/subject_identifier_column.html +1 -0
- meta_reports/templates/meta_reports/endpoints_all_change_list_note.html +12 -0
- meta_reports/templates/meta_reports/endpoints_change_list_note.html +12 -0
- meta_reports/templates/meta_reports/last_imp_refill/changelist_note.html +13 -0
- meta_reports/urls.py +8 -0
- meta_screening/admin/__init__.py +8 -0
- meta_screening/admin/fieldsets.py +13 -16
- meta_screening/admin/list_filters.py +7 -15
- meta_screening/admin/screening_part_one_admin.py +3 -5
- meta_screening/admin/screening_part_three_admin.py +4 -5
- meta_screening/admin/screening_part_two_admin.py +9 -10
- meta_screening/admin/subject_refusal_admin.py +9 -5
- meta_screening/admin/subject_screening_admin.py +28 -11
- meta_screening/baker_recipes.py +18 -10
- meta_screening/calculators.py +1 -1
- meta_screening/choices.py +1 -1
- meta_screening/constants.py +1 -1
- meta_screening/eligibility/__init__.py +9 -0
- meta_screening/eligibility/eligibility.py +21 -14
- meta_screening/eligibility/eligibility_part_one.py +3 -3
- meta_screening/eligibility/eligibility_part_three/__init__.py +2 -0
- meta_screening/eligibility/eligibility_part_three/base_eligibility_part_three.py +72 -50
- meta_screening/eligibility/eligibility_part_three/eligibility_part_three_phase_three.py +15 -16
- meta_screening/eligibility/eligibility_part_two.py +3 -3
- meta_screening/form_validators/__init__.py +8 -0
- meta_screening/form_validators/screening_part_one.py +2 -8
- meta_screening/form_validators/screening_part_three.py +6 -7
- meta_screening/form_validators/screening_part_two.py +3 -5
- meta_screening/form_validators/subject_refusal.py +1 -1
- meta_screening/forms/__init__.py +20 -0
- meta_screening/forms/field_lists.py +17 -18
- meta_screening/forms/screening_part_one_form.py +11 -2
- meta_screening/forms/screening_part_three_form.py +5 -4
- meta_screening/forms/screening_part_two_form.py +1 -6
- meta_screening/forms/subject_refusal_form.py +0 -5
- meta_screening/forms/subject_screening_form.py +4 -6
- meta_screening/migrations/0001_initial.py +15 -16
- meta_screening/migrations/0002_auto_20191020_0612.py +0 -1
- meta_screening/migrations/0003_auto_20191020_0627.py +0 -1
- meta_screening/migrations/0004_auto_20191020_0738.py +0 -1
- meta_screening/migrations/0005_auto_20191021_0353.py +0 -1
- meta_screening/migrations/0006_auto_20191022_0134.py +0 -1
- meta_screening/migrations/0007_auto_20191024_1000.py +0 -1
- meta_screening/migrations/0008_auto_20191031_0745.py +0 -1
- meta_screening/migrations/0009_auto_20191105_0122.py +0 -1
- meta_screening/migrations/0010_auto_20191106_0828.py +5 -6
- meta_screening/migrations/0011_auto_20191107_0342.py +2 -3
- meta_screening/migrations/0012_auto_20191107_0427.py +3 -4
- meta_screening/migrations/0013_auto_20191107_0442.py +0 -1
- meta_screening/migrations/0014_auto_20191107_0528.py +0 -1
- meta_screening/migrations/0015_auto_20191107_2249.py +0 -1
- meta_screening/migrations/0016_auto_20191119_2331.py +0 -1
- meta_screening/migrations/0017_auto_20191213_0314.py +0 -1
- meta_screening/migrations/0018_auto_20200118_1854.py +0 -1
- meta_screening/migrations/0019_auto_20200120_2256.py +0 -1
- meta_screening/migrations/0020_auto_20200524_1944.py +0 -1
- meta_screening/migrations/0021_auto_20210628_2105.py +0 -1
- meta_screening/migrations/0022_auto_20210702_0426.py +0 -1
- meta_screening/migrations/0023_auto_20210702_0533.py +0 -1
- meta_screening/migrations/0024_auto_20210710_1929.py +0 -1
- meta_screening/migrations/0025_auto_20210710_2247.py +0 -1
- meta_screening/migrations/0026_auto_20210712_0433.py +0 -1
- meta_screening/migrations/0027_auto_20210804_0438.py +0 -1
- meta_screening/migrations/0028_auto_20210823_2353.py +0 -1
- meta_screening/migrations/0029_auto_20211123_1645.py +0 -1
- meta_screening/migrations/0030_auto_20220128_1719.py +0 -1
- meta_screening/migrations/0031_auto_20220304_0448.py +0 -1
- meta_screening/migrations/0032_auto_20220304_0501.py +0 -1
- meta_screening/migrations/0033_auto_20220304_0504.py +0 -1
- meta_screening/migrations/0034_auto_20220304_0508.py +0 -1
- meta_screening/migrations/0035_auto_20220304_2233.py +0 -1
- meta_screening/migrations/0036_auto_20220304_2307.py +0 -1
- meta_screening/migrations/0037_auto_20220312_0339.py +0 -1
- meta_screening/migrations/0038_auto_20220312_1929.py +0 -1
- meta_screening/migrations/0039_auto_20220312_1938.py +0 -1
- meta_screening/migrations/0040_auto_20220316_2147.py +0 -1
- meta_screening/migrations/0041_auto_20220403_1227.py +0 -1
- meta_screening/migrations/0042_auto_20220403_1402.py +0 -1
- meta_screening/migrations/0043_auto_20220407_1713.py +0 -1
- meta_screening/migrations/0044_alter_historicalscreeningpartone_severe_htn_and_more.py +0 -1
- meta_screening/migrations/0045_historicalscreeningpartone_contact_number_and_more.py +0 -1
- meta_screening/migrations/0046_historicalscreeningpartone_hba1c_datetime_and_more.py +0 -1
- meta_screening/migrations/0047_historicalscreeningpartone_appt_datetime_repeat_and_more.py +0 -1
- meta_screening/migrations/0048_rename_appt_datetime_repeat_historicalscreeningpartone_repeat_appt_datetime_and_more.py +0 -1
- meta_screening/migrations/0049_historicalscreeningpartone_p3_ltfu_and_more.py +0 -1
- meta_screening/migrations/0050_historicalscreeningpartone_agree_to_p3_and_more.py +0 -1
- meta_screening/migrations/0051_alter_historicalscreeningpartone_advised_to_fast_and_more.py +0 -1
- meta_screening/migrations/0052_alter_historicalscreeningpartone_p3_ltfu_and_more.py +0 -1
- meta_screening/migrations/0053_auto_20220704_1841.py +0 -1
- meta_screening/migrations/0054_auto_20220722_2130.py +0 -1
- meta_screening/migrations/0055_alter_historicalscreeningpartone_creatinine_value_and_more.py +0 -1
- meta_screening/migrations/0056_alter_historicalscreeningpartone_agree_to_p3_and_more.py +0 -1
- meta_screening/migrations/0057_alter_historicalscreeningpartone_calculated_egfr_value_and_more.py +397 -0
- meta_screening/migrations/0058_alter_historicalscreeningpartone_eligibility_datetime_and_more.py +210 -0
- meta_screening/migrations/0059_alter_icpreferral_managers_and_more.py +323 -0
- meta_screening/migrations/0060_historicalicpreferral_locale_created_and_more.py +210 -0
- meta_screening/migrations/0061_alter_historicalicpreferral_site_and_more.py +128 -0
- meta_screening/migrations/0062_remove_icpreferral_site_and_more.py +27 -0
- meta_screening/migrations/0063_alter_historicalscreeningpartone_fasting_duration_str_and_more.py +184 -0
- meta_screening/migrations/0064_remove_historicalscreeningpartone_fasting_duration_minutes_and_more.py +126 -0
- meta_screening/migrations/0065_auto_20240516_0352.py +31 -0
- meta_screening/migrations/0066_alter_historicalscreeningpartone_fasting_duration_delta_and_more.py +103 -0
- meta_screening/migrations/0067_alter_historicalscreeningpartone_report_datetime_and_more.py +84 -0
- meta_screening/migrations/0068_alter_historicalscreeningpartone_acute_condition_and_more.py +1579 -0
- meta_screening/model_mixins/__init__.py +8 -0
- meta_screening/model_mixins/calculated_model_mixin.py +8 -9
- meta_screening/model_mixins/creatinine_fields_model_mixin.py +2 -4
- meta_screening/model_mixins/eligibility_model_mixin.py +6 -5
- meta_screening/model_mixins/part_one_fields_model_mixin.py +17 -21
- meta_screening/model_mixins/part_three_fields_model_mixin.py +19 -33
- meta_screening/model_mixins/part_two_fields_model_mixin.py +19 -18
- meta_screening/models/__init__.py +10 -1
- meta_screening/models/icp_referral.py +9 -8
- meta_screening/models/proxy_models.py +9 -1
- meta_screening/models/signals.py +10 -11
- meta_screening/models/subject_refusal.py +5 -5
- meta_screening/models/subject_screening.py +19 -3
- meta_sites/__init__.py +0 -1
- meta_sites/apps.py +0 -23
- meta_sites/sites.py +61 -53
- meta_subject/action_items.py +58 -27
- meta_subject/admin/__init__.py +46 -2
- meta_subject/admin/birth_outcome_admin.py +13 -15
- meta_subject/admin/blood_results/__init__.py +10 -2
- meta_subject/admin/blood_results/blood_results_fbc_admin.py +6 -3
- meta_subject/admin/blood_results/blood_results_hba1c_admin.py +6 -3
- meta_subject/admin/blood_results/blood_results_ins_admin.py +6 -3
- meta_subject/admin/blood_results/blood_results_lft_admin.py +6 -3
- meta_subject/admin/blood_results/blood_results_lipids_admin.py +24 -0
- meta_subject/admin/blood_results/blood_results_rft_admin.py +8 -8
- meta_subject/admin/complications_admin.py +3 -4
- meta_subject/admin/complications_glycemia_admin.py +4 -4
- meta_subject/admin/concomitant_medication_admin.py +3 -3
- meta_subject/admin/delivery_admin.py +8 -13
- meta_subject/admin/diabetes/__init__.py +4 -0
- meta_subject/admin/diabetes/dm_endpoint_admin.py +35 -0
- meta_subject/admin/diabetes/dm_followup_admin.py +97 -0
- meta_subject/admin/egfr_drop_notification_admin.py +1 -4
- meta_subject/admin/eq5d3l_admin.py +4 -4
- meta_subject/admin/fields.py +5 -5
- meta_subject/admin/fieldsets.py +5 -5
- meta_subject/admin/followup_examination_admin.py +12 -11
- meta_subject/admin/followup_vitals_admin.py +31 -7
- meta_subject/admin/glucose_admin.py +37 -5
- meta_subject/admin/glucose_fbg_admin.py +89 -0
- meta_subject/admin/health_economics/__init__.py +4 -0
- meta_subject/admin/{health_economics_simple_admin.py → health_economics/health_economics_simple_admin.py} +7 -7
- meta_subject/admin/health_economics/health_economics_update_admin.py +101 -0
- meta_subject/admin/hepatitis_test_admin.py +4 -4
- meta_subject/admin/hiv_exit_review_admin.py +55 -0
- meta_subject/admin/list_filters.py +76 -0
- meta_subject/admin/malaria_test_admin.py +4 -29
- meta_subject/admin/medication_adherence_admin.py +5 -10
- meta_subject/admin/mnsi_admin.py +9 -8
- meta_subject/admin/modeladmin.py +9 -8
- meta_subject/admin/next_appointment_admin.py +19 -0
- meta_subject/admin/other_arv_regimens_admin.py +10 -14
- meta_subject/admin/patient_history_admin.py +7 -7
- meta_subject/admin/physical_exam_admin.py +4 -4
- meta_subject/admin/pregnancy_update_admin.py +4 -4
- meta_subject/admin/sf12_admin.py +3 -3
- meta_subject/admin/study_medication_admin.py +56 -11
- meta_subject/admin/subject_requisition_admin.py +5 -5
- meta_subject/admin/subject_visit_admin.py +5 -3
- meta_subject/admin/subject_visit_missed_admin.py +5 -4
- meta_subject/admin/urine_dipstick_test_admin.py +4 -4
- meta_subject/admin/urine_pregnancy_admin.py +4 -4
- meta_subject/apps.py +1 -1
- meta_subject/baker_recipes.py +20 -14
- meta_subject/choices.py +125 -123
- meta_subject/constants.py +4 -0
- meta_subject/form_validators/__init__.py +23 -0
- meta_subject/form_validators/birth_outcomes_form_validator.py +13 -0
- meta_subject/form_validators/delivery_form_validator.py +83 -0
- meta_subject/form_validators/dm_endpoint_form_validator.py +37 -0
- meta_subject/form_validators/dm_followup_form_validator.py +236 -0
- meta_subject/form_validators/egfr_drop_notification_form_validator.py +12 -0
- meta_subject/form_validators/followup_examination_form_validator.py +105 -0
- meta_subject/form_validators/glucose_fbg_form_validator.py +76 -0
- meta_subject/form_validators/glucose_form_validator.py +26 -0
- meta_subject/form_validators/health_economics_form_validator.py +7 -0
- meta_subject/form_validators/hiv_exit_review_form_validator.py +18 -0
- meta_subject/form_validators/mixins.py +95 -0
- meta_subject/forms/__init__.py +48 -3
- meta_subject/forms/birth_outcomes_form.py +1 -13
- meta_subject/forms/blood_results/__init__.py +10 -2
- meta_subject/forms/blood_results/blood_results_fbc_form.py +0 -1
- meta_subject/forms/blood_results/blood_results_hba1c_form.py +1 -2
- meta_subject/forms/blood_results/blood_results_ins_form.py +0 -1
- meta_subject/forms/blood_results/blood_results_lft_form.py +0 -1
- meta_subject/forms/blood_results/{blood_results_lipid_form.py → blood_results_lipids_form.py} +5 -6
- meta_subject/forms/blood_results/blood_results_rft_form.py +60 -5
- meta_subject/forms/complications_glycemia_form.py +1 -7
- meta_subject/forms/concomitant_medication_form.py +1 -7
- meta_subject/forms/delivery_form.py +2 -82
- meta_subject/forms/diabetes/__init__.py +4 -0
- meta_subject/forms/diabetes/dm_endpoint_form.py +13 -0
- meta_subject/forms/diabetes/dm_followup_form.py +25 -0
- meta_subject/forms/egfr_drop_notification_form.py +1 -13
- meta_subject/forms/eq53d3l_form.py +1 -5
- meta_subject/forms/followup_examination_form.py +1 -103
- meta_subject/forms/followup_vitals_form.py +23 -2
- meta_subject/forms/glucose_fbg_form.py +13 -0
- meta_subject/forms/glucose_form.py +1 -7
- meta_subject/forms/health_economics/__init__.py +4 -0
- meta_subject/forms/health_economics/health_economics_simple_form.py +13 -0
- meta_subject/forms/health_economics/health_economics_update_form.py +12 -0
- meta_subject/forms/hepatitis_test_form.py +1 -3
- meta_subject/forms/hiv_exit_review_form.py +13 -0
- meta_subject/forms/malaria_test_form.py +1 -13
- meta_subject/forms/medication_adherence_form.py +0 -1
- meta_subject/forms/mixins.py +1 -1
- meta_subject/forms/mnsi_form.py +0 -1
- meta_subject/forms/next_appointment_form.py +36 -0
- meta_subject/forms/other_arv_regimens_detail_form.py +3 -1
- meta_subject/forms/other_arv_regimens_form.py +1 -2
- meta_subject/forms/patient_history_form.py +1 -3
- meta_subject/forms/physical_exam_form.py +1 -3
- meta_subject/forms/pregnancy_update_form.py +1 -2
- meta_subject/forms/slider_widget.py +1 -2
- meta_subject/forms/study_medication_form.py +47 -8
- meta_subject/forms/subject_requisition_form.py +1 -2
- meta_subject/forms/subject_visit_form.py +18 -3
- meta_subject/forms/subject_visit_missed_form.py +1 -3
- meta_subject/forms/urine_dipstick_test_form.py +1 -3
- meta_subject/forms/urine_pregnancy_form.py +1 -3
- meta_subject/locale/lg/LC_MESSAGES/django.po +470 -0
- meta_subject/locale/sw/LC_MESSAGES/django.po +471 -0
- meta_subject/management/commands/create_missing_refills.py +3 -3
- meta_subject/management/commands/create_missing_rx.py +2 -2
- meta_subject/management/commands/missed.py +251 -0
- meta_subject/metadata_rules/__init__.py +2 -0
- meta_subject/metadata_rules/metadata_rules.py +49 -8
- meta_subject/metadata_rules/predicates.py +122 -27
- meta_subject/migrations/0001_initial.py +61 -62
- meta_subject/migrations/0002_auto_20191021_0353.py +5 -6
- meta_subject/migrations/0003_auto_20191021_0534.py +0 -1
- meta_subject/migrations/0004_auto_20191022_0134.py +0 -1
- meta_subject/migrations/0005_auto_20191024_1000.py +0 -1
- meta_subject/migrations/0006_auto_20191104_0756.py +0 -1
- meta_subject/migrations/0007_auto_20191107_2249.py +0 -1
- meta_subject/migrations/0008_auto_20191115_0132.py +0 -1
- meta_subject/migrations/0009_auto_20191119_2331.py +0 -1
- meta_subject/migrations/0010_auto_20191213_0314.py +0 -1
- meta_subject/migrations/0011_auto_20200118_1854.py +0 -1
- meta_subject/migrations/0012_auto_20200118_2334.py +5 -6
- meta_subject/migrations/0013_auto_20200119_0013.py +0 -1
- meta_subject/migrations/0014_auto_20200120_1622.py +5 -6
- meta_subject/migrations/0015_auto_20200120_1943.py +0 -1
- meta_subject/migrations/0016_auto_20200123_1508.py +0 -1
- meta_subject/migrations/0017_auto_20200325_0901.py +0 -1
- meta_subject/migrations/0018_coronakap_historicalcoronakap.py +5 -6
- meta_subject/migrations/0019_auto_20200417_0315.py +0 -1
- meta_subject/migrations/0020_auto_20200417_0329.py +0 -1
- meta_subject/migrations/0021_auto_20200417_0332.py +0 -1
- meta_subject/migrations/0022_auto_20200419_2223.py +0 -1
- meta_subject/migrations/0023_auto_20200419_2305.py +0 -1
- meta_subject/migrations/0024_auto_20200419_2331.py +0 -1
- meta_subject/migrations/0025_auto_20200420_1455.py +0 -1
- meta_subject/migrations/0026_auto_20200420_1524.py +0 -1
- meta_subject/migrations/0027_auto_20200420_1645.py +0 -1
- meta_subject/migrations/0028_auto_20200420_1732.py +0 -1
- meta_subject/migrations/0029_auto_20200420_1751.py +0 -1
- meta_subject/migrations/0030_auto_20200420_1816.py +0 -1
- meta_subject/migrations/0031_auto_20200422_2039.py +0 -1
- meta_subject/migrations/0032_auto_20200515_0307.py +0 -1
- meta_subject/migrations/0033_auto_20200516_2356.py +5 -6
- meta_subject/migrations/0034_auto_20200517_0125.py +0 -1
- meta_subject/migrations/0035_auto_20200517_0128.py +0 -1
- meta_subject/migrations/0036_auto_20200517_0150.py +0 -1
- meta_subject/migrations/0037_auto_20200517_0207.py +0 -1
- meta_subject/migrations/0038_auto_20200520_0020.py +5 -6
- meta_subject/migrations/0039_auto_20200524_1944.py +0 -1
- meta_subject/migrations/0040_auto_20200527_2155.py +1 -2
- meta_subject/migrations/0041_auto_20200528_0242.py +0 -1
- meta_subject/migrations/0042_auto_20200528_0252.py +0 -1
- meta_subject/migrations/0043_auto_20200528_1555.py +0 -1
- meta_subject/migrations/0044_auto_20200528_1853.py +0 -1
- meta_subject/migrations/0045_auto_20200530_1801.py +1 -2
- meta_subject/migrations/0046_auto_20200530_1804.py +0 -1
- meta_subject/migrations/0047_auto_20200530_1819.py +0 -1
- meta_subject/migrations/0048_auto_20200530_1819.py +0 -1
- meta_subject/migrations/0049_auto_20200613_2041.py +0 -1
- meta_subject/migrations/0050_auto_20200614_1934.py +0 -1
- meta_subject/migrations/0051_auto_20200617_2117.py +5 -6
- meta_subject/migrations/0052_auto_20210624_0225.py +0 -1
- meta_subject/migrations/0053_auto_20210628_2105.py +0 -1
- meta_subject/migrations/0054_auto_20210628_2314.py +0 -1
- meta_subject/migrations/0055_auto_20210628_2331.py +0 -1
- meta_subject/migrations/0056_auto_20210702_0426.py +0 -1
- meta_subject/migrations/0057_auto_20210702_0458.py +0 -1
- meta_subject/migrations/0058_auto_20210702_0533.py +0 -1
- meta_subject/migrations/0059_auto_20210709_2056.py +0 -1
- meta_subject/migrations/0060_auto_20210709_2241.py +0 -1
- meta_subject/migrations/0061_auto_20210710_1929.py +0 -1
- meta_subject/migrations/0062_auto_20210713_0616.py +0 -1
- meta_subject/migrations/0063_auto_20210715_0337.py +5 -6
- meta_subject/migrations/0064_auto_20210715_2336.py +0 -1
- meta_subject/migrations/0065_auto_20210716_0813.py +0 -1
- meta_subject/migrations/0066_auto_20210721_0335.py +9 -10
- meta_subject/migrations/0067_auto_20210726_0340.py +5 -6
- meta_subject/migrations/0068_auto_20210728_1809.py +5 -6
- meta_subject/migrations/0069_auto_20210801_2021.py +0 -1
- meta_subject/migrations/0070_auto_20210804_0438.py +0 -1
- meta_subject/migrations/0071_auto_20210804_0715.py +0 -1
- meta_subject/migrations/0072_auto_20210805_1545.py +7 -8
- meta_subject/migrations/0073_auto_20210809_0055.py +5 -6
- meta_subject/migrations/0075_auto_20210809_1744.py +0 -1
- meta_subject/migrations/0076_auto_20210809_1854.py +0 -1
- meta_subject/migrations/0077_auto_20210809_2323.py +3 -4
- meta_subject/migrations/0078_auto_20210810_0857.py +0 -1
- meta_subject/migrations/0079_auto_20210812_0335.py +0 -1
- meta_subject/migrations/0080_auto_20210812_0400.py +0 -1
- meta_subject/migrations/0081_auto_20210817_2306.py +0 -1
- meta_subject/migrations/0082_auto_20210823_1612.py +3 -4
- meta_subject/migrations/0083_auto_20210823_1620.py +3 -4
- meta_subject/migrations/0084_auto_20210910_0234.py +0 -1
- meta_subject/migrations/0085_auto_20210911_2036.py +0 -1
- meta_subject/migrations/0086_auto_20210920_0229.py +0 -1
- meta_subject/migrations/0087_auto_20210922_2058.py +0 -1
- meta_subject/migrations/0088_auto_20210924_0027.py +5 -6
- meta_subject/migrations/0089_auto_20210924_0121.py +0 -1
- meta_subject/migrations/0090_auto_20210924_0424.py +5 -6
- meta_subject/migrations/0091_auto_20210929_2324.py +0 -1
- meta_subject/migrations/0092_auto_20211013_0447.py +0 -1
- meta_subject/migrations/0093_auto_20211117_0352.py +5 -6
- meta_subject/migrations/0094_auto_20211123_1645.py +0 -1
- meta_subject/migrations/0095_auto_20220128_1719.py +5 -6
- meta_subject/migrations/0096_auto_20220304_0501.py +0 -1
- meta_subject/migrations/0097_auto_20220304_2233.py +0 -1
- meta_subject/migrations/0098_auto_20220309_2106.py +5 -6
- meta_subject/migrations/0099_auto_20220309_2218.py +0 -1
- meta_subject/migrations/0100_auto_20220309_2238.py +0 -1
- meta_subject/migrations/0101_auto_20220316_2147.py +13 -14
- meta_subject/migrations/0102_auto_20220324_0304.py +0 -1
- meta_subject/migrations/0103_auto_20220324_0326.py +0 -1
- meta_subject/migrations/0104_auto_20220412_2151.py +0 -1
- meta_subject/migrations/0105_auto_20220412_2310.py +0 -1
- meta_subject/migrations/0106_auto_20220414_1741.py +0 -1
- meta_subject/migrations/0107_auto_20220415_0043.py +28 -23
- meta_subject/migrations/0108_auto_20220415_1747.py +0 -1
- meta_subject/migrations/0109_auto_20220415_1758.py +0 -1
- meta_subject/migrations/0110_auto_20220512_1811.py +0 -1
- meta_subject/migrations/0111_alter_followupvitals_severe_htn_and_more.py +0 -1
- meta_subject/migrations/0112_historicalsubjectvisit_document_status_comments_and_more.py +0 -1
- meta_subject/migrations/0113_bloodresultsrft_egfr_percent_change_and_more.py +0 -1
- meta_subject/migrations/0114_alter_bloodresultsrft_egfr_percent_change_and_more.py +0 -1
- meta_subject/migrations/0115_historicalegfrnotification_egfrnotification.py +5 -14
- meta_subject/migrations/0116_egfrnotification_report_status_and_more.py +0 -1
- meta_subject/migrations/0117_alter_egfrnotification_managers_and_more.py +0 -1
- meta_subject/migrations/0118_delivery_crf_status_delivery_crf_status_comments_and_more.py +0 -1
- meta_subject/migrations/0119_historicalstudymedication_roundup_divisible_by_and_more.py +0 -1
- meta_subject/migrations/0120_alter_birthoutcomes_managers_and_more.py +0 -1
- meta_subject/migrations/0121_auto_20220704_1841.py +0 -1
- meta_subject/migrations/0122_auto_20220708_2144.py +0 -1
- meta_subject/migrations/0123_auto_20220714_2136.py +0 -1
- meta_subject/migrations/0124_auto_20220714_2303.py +0 -1
- meta_subject/migrations/0125_auto_20220719_2134.py +0 -1
- meta_subject/migrations/0126_auto_20220719_2142.py +4 -5
- meta_subject/migrations/0127_auto_20220720_0053.py +0 -1
- meta_subject/migrations/0128_auto_20220720_0055.py +1 -2
- meta_subject/migrations/0129_auto_20220720_0108.py +0 -1
- meta_subject/migrations/0130_auto_20220720_0216.py +0 -1
- meta_subject/migrations/0131_auto_20220722_0411.py +29 -25
- meta_subject/migrations/0132_auto_20220722_1825.py +10 -7
- meta_subject/migrations/0133_auto_20220722_2140.py +0 -1
- meta_subject/migrations/0134_auto_20220722_2211.py +0 -1
- meta_subject/migrations/0135_auto_20220722_2212.py +41 -37
- meta_subject/migrations/0136_egfrdropnotification_creatinine_quantifier_and_more.py +0 -1
- meta_subject/migrations/0137_alter_egfrdropnotification_egfr_percent_change_and_more.py +0 -1
- meta_subject/migrations/0138_alter_glucose_fbg_datetime_and_more.py +0 -1
- meta_subject/migrations/0139_alter_bloodresultsins_ins_units_and_more.py +0 -1
- meta_subject/migrations/0140_alter_bloodresultsfbc_action_identifier_and_more.py +0 -1
- meta_subject/migrations/0141_auto_20220826_0258.py +0 -1
- meta_subject/migrations/0142_auto_20220826_0322.py +0 -1
- meta_subject/migrations/0143_auto_20220826_0406.py +0 -1
- meta_subject/migrations/0144_auto_20220907_0157.py +0 -1
- meta_subject/migrations/0145_auto_20220907_0202.py +0 -1
- meta_subject/migrations/0146_auto_20220907_0207.py +0 -1
- meta_subject/migrations/0147_auto_20220907_1505.py +0 -1
- meta_subject/migrations/0148_auto_20220908_1826.py +0 -1
- meta_subject/migrations/0149_auto_20220913_2139.py +0 -1
- meta_subject/migrations/0150_auto_20220914_0039.py +15 -13
- meta_subject/migrations/0151_auto_20220918_0508.py +0 -1
- meta_subject/migrations/0152_auto_20220925_0509.py +0 -1
- meta_subject/migrations/0153_auto_20220928_0250.py +0 -1
- meta_subject/migrations/0154_auto_20220928_0419.py +0 -1
- meta_subject/migrations/0155_auto_20220929_1742.py +0 -1
- meta_subject/migrations/0156_alter_bloodresultsfbc_assay_datetime_and_more.py +153 -0
- meta_subject/migrations/0157_remove_bloodresultsfbc_crf_status_and_more.py +512 -0
- meta_subject/migrations/0158_alter_followupexamination_attended_clinic_and_more.py +52 -0
- meta_subject/migrations/0159_alter_bloodresultsfbc_results_abnormal_and_more.py +152 -0
- meta_subject/migrations/0160_alter_healtheconomicssimple_education_certificate_and_more.py +44 -0
- meta_subject/migrations/0161_alter_birthoutcomes_options_and_more.py +3307 -0
- meta_subject/migrations/0162_alter_followupexamination_abdominal_tenderness_and_more.py +66 -0
- meta_subject/migrations/0163_alter_birthoutcomes_options_and_more.py +3470 -0
- meta_subject/migrations/0164_dmreferralfollowup_historicaldmreferralfollowup.py +709 -0
- meta_subject/migrations/0165_alter_dmreferralfollowup_healthcare_workers.py +22 -0
- meta_subject/migrations/0166_rename_dm_medications_other_dmreferralfollowup_other_dm_medications_and_more.py +184 -0
- meta_subject/migrations/0167_rename_healthcare_workers_other_dmreferralfollowup_other_healthcare_workers_and_more.py +25 -0
- meta_subject/migrations/0168_alter_dmreferralfollowup_last_missed_pill_and_more.py +53 -0
- meta_subject/migrations/0169_alter_dmreferralfollowup_options_and_more.py +94 -0
- meta_subject/migrations/0170_remove_glucose_repeat_fbg_and_more.py +52 -0
- meta_subject/migrations/0171_alter_glucose_endpoint_today_and_more.py +80 -0
- meta_subject/migrations/0172_remove_historicalbloodresultsglu_action_item_and_more.py +67 -0
- meta_subject/migrations/0173_alter_glucosefbg_options_and_more.py +117 -0
- meta_subject/migrations/0174_remove_glucosefbg_glucose_abnormal_and_more.py +105 -0
- meta_subject/migrations/0175_auto_20240214_2239.py +23 -0
- meta_subject/migrations/0176_alter_glucosefbg_glucose_value_and_more.py +44 -0
- meta_subject/migrations/0177_alter_bloodresultslft_alp_value_and_more.py +91 -0
- meta_subject/migrations/0178_historicalhealtheconomicsupdate_and_more.py +719 -0
- meta_subject/migrations/0179_alter_birthoutcomes_consent_model_and_more.py +835 -0
- meta_subject/migrations/0180_dmreferralfollowup_missed_referral_reasons_and_more.py +62 -0
- meta_subject/migrations/0181_dmreferralfollowup_action_identifier_and_more.py +143 -0
- meta_subject/migrations/0182_rename_dmreferralfollowup_dmfollowup_and_more.py +54 -0
- meta_subject/migrations/0183_alter_dmfollowup_on_dm_medications_and_more.py +31 -0
- meta_subject/migrations/0184_alter_glucose_options_and_more.py +31 -0
- meta_subject/migrations/0185_alter_bloodresultsins_fasting_duration_str_and_more.py +82 -0
- meta_subject/migrations/0186_healtheconomicsupdate_singleton_field_and_more.py +54 -0
- meta_subject/migrations/0187_dmdiagnosis_historicaldmdiagnosis_dmdxresult_and_more.py +442 -0
- meta_subject/migrations/0188_historicaldmdxresult_dmdxresult.py +394 -0
- meta_subject/migrations/0189_alter_dmdxresult_options_and_more.py +116 -0
- meta_subject/migrations/0190_dmdiagnosis_dx_no_tmg_reason_and_more.py +65 -0
- meta_subject/migrations/0191_alter_dmdiagnosis_dx_no_tmg_reason_and_more.py +70 -0
- meta_subject/migrations/0192_rename_glucose_quantifier_glucosefbg_fbg_quantifier_and_more.py +44 -0
- meta_subject/migrations/0193_alter_glucosefbg_fbg_value_and_more.py +44 -0
- meta_subject/migrations/0194_remove_glucosefbg_assay_datetime_and_more.py +166 -0
- meta_subject/migrations/0195_alter_glucosefbg_fbg_datetime_and_more.py +27 -0
- meta_subject/migrations/0196_glucosefbg_fbg_not_performed_reason_and_more.py +49 -0
- meta_subject/migrations/0197_glucosefbg_fasting_duration_estimated_and_more.py +33 -0
- meta_subject/migrations/0198_alter_glucosefbg_fasting_duration_estimated_and_more.py +33 -0
- meta_subject/migrations/0199_auto_20240516_0247.py +18 -0
- meta_subject/migrations/0200_rename_fasting_duration_minutes_bloodresultsins_fasting_duration_delta_and_more.py +43 -0
- meta_subject/migrations/0201_alter_bloodresultsins_fasting_duration_delta_and_more.py +58 -0
- meta_subject/migrations/0202_auto_20240516_0315.py +32 -0
- meta_subject/migrations/0203_alter_bloodresultsins_fasting_duration_delta_and_more.py +67 -0
- meta_subject/migrations/0204_glucosefbg_repeat_fbg_date_and_more.py +27 -0
- meta_subject/migrations/0205_historicalsubjectrequisition_crf_status_and_more.py +80 -0
- meta_subject/migrations/0206_bloodresultsfbc_crf_status_and_more.py +62 -0
- meta_subject/migrations/0207_alter_historicalphysicalexam_waist_circumference_and_more.py +46 -0
- meta_subject/migrations/0208_birthoutcomes_crf_status_and_more.py +62 -0
- meta_subject/migrations/0209_remove_historicaldmdxresult_dm_diagnosis_and_more.py +36 -0
- meta_subject/migrations/0210_remove_dmdxresult_dm_diagnosis_and_more.py +123 -0
- meta_subject/migrations/0211_dmendpoint_endpoint_reached_and_more.py +45 -0
- meta_subject/migrations/0212_auto_20240827_2222.py +23 -0
- meta_subject/migrations/0213_rename_bloodresultslipid_bloodresultslipids_and_more.py +35 -0
- meta_subject/migrations/0214_historicalstudymedication_stock_codes_and_more.py +44 -0
- meta_subject/migrations/0215_alter_historicalstudymedication_stock_codes_and_more.py +46 -0
- meta_subject/migrations/0216_historicalnextappointment_nextappointment.py +553 -0
- meta_subject/migrations/0217_alter_historicalnextappointment_appt_datetime_and_more.py +42 -0
- meta_subject/migrations/0218_alter_historicalnextappointment_appt_date_and_more.py +53 -0
- meta_subject/migrations/0219_remove_historicalnextappointment_allow_create_interim_and_more.py +92 -0
- meta_subject/migrations/0220_historicalbloodresultsgludummy_bloodresultsgludummy.py +825 -0
- meta_subject/migrations/0221_auto_20250402_1913.py +42 -0
- meta_subject/migrations/0222_alter_historicalstudymedication_stock_codes_and_more.py +46 -0
- meta_subject/migrations/0223_bloodresultsfbc_errors_bloodresultsgludummy_errors_and_more.py +83 -0
- meta_subject/migrations/0224_bloodresultsfbc_abnormal_summary_and_more.py +153 -0
- meta_subject/migrations/0225_followupvitals_waist_circumference_and_more.py +46 -0
- meta_subject/migrations/0226_followupvitals_waist_circumference_comment_and_more.py +97 -0
- meta_subject/migrations/0227_alter_followupvitals_waist_circumference_comment_and_more.py +97 -0
- meta_subject/migrations/0228_bloodresultshba1c_hba1c_datetime_and_more.py +2518 -0
- meta_subject/migrations/0229_alter_glucosefbg_consent_model_and_more.py +1918 -0
- meta_subject/migrations/0230_alter_historicaldelivery_action_identifier_and_more.py +1733 -0
- meta_subject/migrations/0231_alter_historicalmedicationadherence_consent_model_and_more.py +2054 -0
- meta_subject/migrations/0232_alter_patienthistory_concomitant_conditions_and_more.py +1170 -0
- meta_subject/migrations/0233_historicalspfq_spfq.py +1066 -0
- meta_subject/migrations/0234_remove_spfq_site_remove_spfq_subject_visit_and_more.py +27 -0
- meta_subject/migrations/0235_glucosefbg_endpoint_today_and_more.py +606 -0
- meta_subject/migrations/0236_alter_historicalhivexitreview_other_current_arv_regimen_and_more.py +58 -0
- meta_subject/migrations/0237_historicalhivexitreview_singleton_field_and_more.py +68 -0
- meta_subject/migrations/0238_historicalhivexitreview_available_and_more.py +88 -0
- meta_subject/model_mixins/__init__.py +10 -0
- meta_subject/model_mixins/arv_history_model_mixin.py +5 -46
- meta_subject/model_mixins/arv_review_model_mixin.py +53 -0
- meta_subject/model_mixins/search_slug_model_mixin.py +1 -2
- meta_subject/model_mixins/vitals_fields_model_mixin.py +33 -1
- meta_subject/models/__init__.py +61 -4
- meta_subject/models/birth_outcomes.py +17 -8
- meta_subject/models/blood_results/__init__.py +12 -2
- meta_subject/models/blood_results/blood_results_fbc.py +9 -4
- meta_subject/models/blood_results/blood_results_glu.py +9 -4
- meta_subject/models/blood_results/blood_results_hba1c.py +8 -2
- meta_subject/models/blood_results/blood_results_ins.py +8 -2
- meta_subject/models/blood_results/blood_results_lft.py +8 -2
- meta_subject/models/blood_results/{blood_results_lipid.py → blood_results_lipids.py} +11 -4
- meta_subject/models/blood_results/blood_results_rft.py +7 -1
- meta_subject/models/complications.py +1 -3
- meta_subject/models/complications_glycemia.py +3 -4
- meta_subject/models/concomitant_medication.py +0 -1
- meta_subject/models/delivery.py +4 -6
- meta_subject/models/diabetes/__init__.py +4 -0
- meta_subject/models/diabetes/dm_endpoint.py +61 -0
- meta_subject/models/diabetes/dm_followup.py +215 -0
- meta_subject/models/diet_and_lifestyle.py +5 -5
- meta_subject/models/egfr_drop_notification.py +0 -1
- meta_subject/models/followup_examination.py +28 -32
- meta_subject/models/followup_vitals.py +3 -4
- meta_subject/models/glucose.py +50 -15
- meta_subject/models/glucose_fbg.py +74 -0
- meta_subject/models/glucose_review.py +15 -0
- meta_subject/models/health_economics/__init__.py +5 -0
- meta_subject/models/{health_economics.py → health_economics/health_economics.py} +13 -14
- meta_subject/models/{health_economics_simple.py → health_economics/health_economics_simple.py} +3 -4
- meta_subject/models/health_economics/health_economics_update.py +97 -0
- meta_subject/models/hepatitis_test.py +2 -3
- meta_subject/models/hiv_exit_review.py +44 -0
- meta_subject/models/malaria_test.py +3 -31
- meta_subject/models/next_appointment.py +15 -0
- meta_subject/models/off_study_drug.py +0 -1
- meta_subject/models/other_arv_regimens_detail.py +3 -5
- meta_subject/models/patient_history.py +6 -8
- meta_subject/models/physical_exam.py +6 -6
- meta_subject/models/pregnancy_update.py +1 -2
- meta_subject/models/sf12.py +0 -3
- meta_subject/models/signals.py +32 -11
- meta_subject/models/study_medication.py +0 -1
- meta_subject/models/subject_requisition.py +3 -5
- meta_subject/models/subject_visit.py +5 -8
- meta_subject/models/subject_visit_missed.py +0 -1
- meta_subject/models/todo.txt +1 -1
- meta_subject/models/urine_dipstick_test.py +2 -3
- meta_subject/models/urine_pregnancy.py +1 -2
- meta_subject/static/meta_subject/slider.css +1 -1
- meta_subject/templates/meta_subject/endpoint_review_instructions.html +6 -0
- meta_subject/templates/meta_subject/widgets/slider.html +0 -1
- meta_visit_schedule/constants.py +7 -1
- meta_visit_schedule/visit_schedules/__init__.py +3 -1
- meta_visit_schedule/visit_schedules/phase_three/__init__.py +2 -0
- meta_visit_schedule/visit_schedules/phase_three/crfs.py +212 -95
- meta_visit_schedule/visit_schedules/phase_three/crfs_pregnancy.py +2 -2
- meta_visit_schedule/visit_schedules/phase_three/requisitions.py +30 -51
- meta_visit_schedule/visit_schedules/phase_three/schedule.py +72 -7
- meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py +59 -0
- meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py +7 -5
- meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py +3 -1
- meta_ae/pdf_reports/ae_report.py +0 -8
- meta_ae/pdf_reports/death_report.py +0 -8
- meta_ae/tests/holidays.csv +0 -15
- meta_ae/tests/tests/test_actions.py +0 -127
- meta_ae/tests/urls.py +0 -10
- meta_consent/admin/subject_reconsent_admin.py +0 -77
- meta_consent/tests/holidays.csv +0 -15
- meta_consent/tests/tests/test_form_validators.py +0 -85
- meta_consent/tests/tests/test_subject_consent.py +0 -10
- meta_consent/tests/urls.py +0 -18
- meta_dashboard/model_wrappers/__init__.py +0 -8
- meta_dashboard/model_wrappers/ae_initial_model_wrapper.py +0 -6
- meta_dashboard/model_wrappers/death_report_model_wrapper.py +0 -15
- meta_dashboard/model_wrappers/subject_refusal_model_wrapper.py +0 -16
- meta_dashboard/model_wrappers/subject_screening_model_wrapper.py +0 -85
- meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard.html +0 -11
- meta_dashboard/tests/admin.py +0 -22
- meta_dashboard/tests/holidays.csv +0 -15
- meta_dashboard/tests/tests/test_model_wrappers.py +0 -71
- meta_dashboard/tests/urls.py +0 -59
- meta_edc/tests/etc/randomization_list_phase_three.csv +0 -241
- meta_edc/tests/etc/user-aes-local.key +0 -1
- meta_edc/tests/etc/user-aes-restricted.key +0 -0
- meta_edc/tests/etc/user-rsa-local-private.pem +0 -27
- meta_edc/tests/etc/user-rsa-local-public.pem +0 -9
- meta_edc/tests/etc/user-rsa-restricted-private.pem +0 -27
- meta_edc/tests/etc/user-rsa-restricted-public.pem +0 -9
- meta_edc/tests/etc/user-salt-local.key +0 -0
- meta_edc/tests/etc/user-salt-restricted.key +0 -0
- meta_edc/tests/tests/test_endpoints.py +0 -525
- meta_edc-0.2.24.dist-info/METADATA +0 -180
- meta_edc-0.2.24.dist-info/RECORD +0 -849
- meta_edc-0.2.24.dist-info/WHEEL +0 -5
- meta_edc-0.2.24.dist-info/top_level.txt +0 -19
- meta_labs/tests/test_labs.py +0 -27
- meta_labs/tests/test_reportables.py +0 -16
- meta_labs/tests/urls.py +0 -4
- meta_lists/tests/test_lists.py +0 -8
- meta_pharmacy/models.py +0 -0
- meta_prn/tests/__init__.py +0 -0
- meta_prn/tests/tests/__init__.py +0 -0
- meta_prn/tests/tests/test_actions.py +0 -97
- meta_prn/tests/tests/test_manager_order.py +0 -15
- meta_prn/tests/tests/test_pregnancy_notification.py +0 -94
- meta_prn/tests/urls.py +0 -10
- meta_rando/tests/__init__.py +0 -0
- meta_rando/tests/tests/__init__.py +0 -0
- meta_rando/tests/tests/test_randomizers.py +0 -58
- meta_reference/__init__.py +0 -0
- meta_reference/apps.py +0 -6
- meta_reference/migrations/__init__.py +0 -0
- meta_reference/reference_model_configs.py +0 -5
- meta_reports/models.py +0 -0
- meta_reports/tests/__init__.py +0 -0
- meta_reports/tests/holidays.csv +0 -15
- meta_reports/tests/test_reports.py +0 -36
- meta_reports/tests/urls.py +0 -4
- meta_screening/offline_models.py +0 -3
- meta_screening/tests/__init__.py +0 -0
- meta_screening/tests/holidays.csv +0 -15
- meta_screening/tests/meta_test_case_mixin.py +0 -214
- meta_screening/tests/options.py +0 -124
- meta_screening/tests/tests/__init__.py +0 -0
- meta_screening/tests/tests/test_forms.py +0 -397
- meta_screening/tests/tests/test_screening_part_one.py +0 -108
- meta_screening/tests/tests/test_screening_part_three.py +0 -437
- meta_screening/tests/tests/test_screening_part_two.py +0 -86
- meta_sites/tests/__init__.py +0 -0
- meta_sites/tests/test_sites.py +0 -16
- meta_sites/tests/urls.py +0 -4
- meta_subject/admin/blood_results/blood_results_glu_admin.py +0 -30
- meta_subject/admin/blood_results/blood_results_lipid_admin.py +0 -21
- meta_subject/forms/blood_results/blood_results_glu_form.py +0 -26
- meta_subject/forms/health_economics_simple_form.py +0 -19
- meta_subject/tests/__init__.py +0 -0
- meta_subject/tests/holidays.csv +0 -15
- meta_subject/tests/tests/__init__.py +0 -0
- meta_subject/tests/tests/test_egfr.py +0 -222
- meta_subject/tests/tests/test_followup.py +0 -50
- meta_subject/tests/tests/test_manager_order.py +0 -31
- meta_subject/tests/tests/test_medication_adherence.py +0 -72
- meta_subject/tests/tests/test_metadata_rules.py +0 -105
- meta_subject/tests/tests/test_mnsi.py +0 -246
- meta_subject/tests/tests/test_patient_history_form.py +0 -71
- meta_subject/tests/tests/test_physical_exam.py +0 -81
- meta_subject/tests/tests/test_sf12.py +0 -164
- meta_subject/tests/tests/test_study_medication.py +0 -230
- meta_subject/tests/urls.py +0 -25
- meta_visit_schedule/tests/__init__.py +0 -0
- meta_visit_schedule/tests/tests/__init__.py +0 -0
- meta_visit_schedule/tests/tests/test_schedule.py +0 -177
- meta_visit_schedule/tests/urls.py +0 -4
- tests/__init__.py +0 -0
- tests/etc/randomization_list.csv +0 -241
- tests/etc/user-aes-local.key +0 -0
- tests/etc/user-aes-restricted.key +0 -1
- tests/etc/user-rsa-local-private.pem +0 -27
- tests/etc/user-rsa-local-public.pem +0 -9
- tests/etc/user-rsa-restricted-private.pem +0 -27
- tests/etc/user-rsa-restricted-public.pem +0 -9
- tests/etc/user-salt-local.key +0 -0
- tests/etc/user-salt-restricted.key +0 -0
- tests/holidays.csv +0 -15
- /meta_ae/templates/meta_ae/{bootstrap3/ae_initial_description.html → aeinitial_description.html} +0 -0
- {meta_ae/tests → meta_analytics}/__init__.py +0 -0
- /meta_ae/tests/tests/__init__.py → /meta_analytics/constants.py +0 -0
- {meta_consent/tests → meta_analytics/tables/enrolled}/__init__.py +0 -0
- /meta_dashboard/templates/meta_dashboard/{bootstrap3/buttons → buttons}/add_consent_button.html +0 -0
- /meta_dashboard/templates/meta_dashboard/{bootstrap3/buttons → buttons}/refusal_button.html +0 -0
- {meta_consent/tests/tests → meta_edc/migrations}/__init__.py +0 -0
- {meta_edc-0.2.24.dist-info → meta_edc-1.4.0.dist-info/licenses}/LICENSE +0 -0
- {meta_dashboard/tests → meta_pharmacy/management}/__init__.py +0 -0
- {meta_dashboard/tests/tests → meta_pharmacy/management/commands}/__init__.py +0 -0
- {meta_edc/tests → meta_reports/management}/__init__.py +0 -0
- {meta_edc/tests/tests → meta_reports/management/commands}/__init__.py +0 -0
- /meta_edc-0.2.24.dist-info/AUTHORS → /meta_reports/utils.py +0 -0
- /meta_labs/tests/__init__.py → /meta_subject/management/__init__py.py +0 -0
- /meta_lists/tests/__init__.py → /meta_subject/management/commands/__init__py.py +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated by Django 5.1 on 2024-08-19 15:32
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0021_auto_20240819_1817"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
"select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
18
|
+
"missing_screening_ogtt_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
"select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
23
|
+
"missing_screening_ogtt_view",
|
|
24
|
+
engine="django.db.backends.mysql",
|
|
25
|
+
),
|
|
26
|
+
atomic=False,
|
|
27
|
+
),
|
|
28
|
+
django_db_views.operations.ViewRunPython(
|
|
29
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
30
|
+
"select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
31
|
+
"missing_screening_ogtt_view",
|
|
32
|
+
engine="django.db.backends.postgresql",
|
|
33
|
+
),
|
|
34
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
35
|
+
"select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
36
|
+
"missing_screening_ogtt_view",
|
|
37
|
+
engine="django.db.backends.postgresql",
|
|
38
|
+
),
|
|
39
|
+
atomic=False,
|
|
40
|
+
),
|
|
41
|
+
django_db_views.operations.ViewRunPython(
|
|
42
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
43
|
+
"SELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value, \n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
44
|
+
"missing_screening_ogtt_view",
|
|
45
|
+
engine="django.db.backends.sqlite3",
|
|
46
|
+
),
|
|
47
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
48
|
+
"SELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value, \n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
49
|
+
"missing_screening_ogtt_view",
|
|
50
|
+
engine="django.db.backends.sqlite3",
|
|
51
|
+
),
|
|
52
|
+
atomic=False,
|
|
53
|
+
),
|
|
54
|
+
]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-19 19:18
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("meta_reports", "0022_auto_20240819_1832"),
|
|
10
|
+
("sites", "0002_alter_domain_unique"),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.AddIndex(
|
|
15
|
+
model_name="endpoints",
|
|
16
|
+
index=models.Index(
|
|
17
|
+
fields=["subject_identifier", "site"], name="meta_report_subject_a56b22_idx"
|
|
18
|
+
),
|
|
19
|
+
),
|
|
20
|
+
]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-21 22:12
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("meta_reports", "0023_endpoints_meta_report_subject_a56b22_idx"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.CreateModel(
|
|
14
|
+
name="GlucoseSummary",
|
|
15
|
+
fields=[
|
|
16
|
+
(
|
|
17
|
+
"id",
|
|
18
|
+
models.BigAutoField(
|
|
19
|
+
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
|
|
20
|
+
),
|
|
21
|
+
),
|
|
22
|
+
("report_model", models.CharField(max_length=50)),
|
|
23
|
+
("subject_identifier", models.CharField(max_length=25)),
|
|
24
|
+
("created", models.DateTimeField()),
|
|
25
|
+
("fbg_value", models.DecimalField(decimal_places=2, max_digits=8, null=True)),
|
|
26
|
+
("fbg_datetime", models.DateTimeField(null=True)),
|
|
27
|
+
("ogtt_value", models.DecimalField(decimal_places=2, max_digits=8, null=True)),
|
|
28
|
+
("ogtt_datetime", models.DateTimeField(null=True)),
|
|
29
|
+
],
|
|
30
|
+
options={
|
|
31
|
+
"verbose_name": "GlucoseSummary",
|
|
32
|
+
"verbose_name_plural": "GlucoseSummary",
|
|
33
|
+
"db_table": "glucose_summary_view",
|
|
34
|
+
"managed": False,
|
|
35
|
+
"default_permissions": ("view", "export", "viewallsites"),
|
|
36
|
+
},
|
|
37
|
+
),
|
|
38
|
+
]
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-21 22:15
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0024_glucosesummary"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
"# noqa\nselect subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime',\nfbg.site_id, 'glucose_summary_view' as report_model \nfrom meta_subject_glucosefbg as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\nUNION\nselect subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucose as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\norder by subject_identifier, fbg_datetime",
|
|
18
|
+
"glucose_summary_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
"", "glucose_summary_view", engine="django.db.backends.mysql"
|
|
23
|
+
),
|
|
24
|
+
atomic=False,
|
|
25
|
+
),
|
|
26
|
+
django_db_views.operations.ViewRunPython(
|
|
27
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
28
|
+
"# noqa\nselect subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucosefbg as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\nUNION\nselect subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucose as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\norder by subject_identifier, fbg_datetime",
|
|
29
|
+
"glucose_summary_view",
|
|
30
|
+
engine="django.db.backends.postgresql",
|
|
31
|
+
),
|
|
32
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
33
|
+
"", "glucose_summary_view", engine="django.db.backends.postgresql"
|
|
34
|
+
),
|
|
35
|
+
atomic=False,
|
|
36
|
+
),
|
|
37
|
+
django_db_views.operations.ViewRunPython(
|
|
38
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
39
|
+
"# noqa\nselect subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucosefbg as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\nUNION\nselect subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucose as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\norder by subject_identifier, fbg_datetime",
|
|
40
|
+
"glucose_summary_view",
|
|
41
|
+
engine="django.db.backends.sqlite3",
|
|
42
|
+
),
|
|
43
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
44
|
+
"", "glucose_summary_view", engine="django.db.backends.sqlite3"
|
|
45
|
+
),
|
|
46
|
+
atomic=False,
|
|
47
|
+
),
|
|
48
|
+
django_db_views.operations.ViewRunPython(
|
|
49
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
50
|
+
"# noqa\n select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
51
|
+
"missing_screening_ogtt_view",
|
|
52
|
+
engine="django.db.backends.mysql",
|
|
53
|
+
),
|
|
54
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
55
|
+
"select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
56
|
+
"missing_screening_ogtt_view",
|
|
57
|
+
engine="django.db.backends.mysql",
|
|
58
|
+
),
|
|
59
|
+
atomic=False,
|
|
60
|
+
),
|
|
61
|
+
django_db_views.operations.ViewRunPython(
|
|
62
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
63
|
+
"# noqa\n select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
64
|
+
"missing_screening_ogtt_view",
|
|
65
|
+
engine="django.db.backends.postgresql",
|
|
66
|
+
),
|
|
67
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
68
|
+
"select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
69
|
+
"missing_screening_ogtt_view",
|
|
70
|
+
engine="django.db.backends.postgresql",
|
|
71
|
+
),
|
|
72
|
+
atomic=False,
|
|
73
|
+
),
|
|
74
|
+
django_db_views.operations.ViewRunPython(
|
|
75
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
76
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value,\n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
77
|
+
"missing_screening_ogtt_view",
|
|
78
|
+
engine="django.db.backends.sqlite3",
|
|
79
|
+
),
|
|
80
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
81
|
+
"SELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value, \n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id \n from meta_screening_subjectscreening \n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier",
|
|
82
|
+
"missing_screening_ogtt_view",
|
|
83
|
+
engine="django.db.backends.sqlite3",
|
|
84
|
+
),
|
|
85
|
+
atomic=False,
|
|
86
|
+
),
|
|
87
|
+
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-21 22:20
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0025_auto_20240822_0115"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
"# noqa\nselect *, uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime', fbg.site_id \n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, fbg.site_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
18
|
+
"glucose_summary_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
"# noqa\nselect subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime',\nfbg.site_id, 'glucose_summary_view' as report_model \nfrom meta_subject_glucosefbg as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\nUNION\nselect subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucose as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\norder by subject_identifier, fbg_datetime",
|
|
23
|
+
"glucose_summary_view",
|
|
24
|
+
engine="django.db.backends.mysql",
|
|
25
|
+
),
|
|
26
|
+
atomic=False,
|
|
27
|
+
),
|
|
28
|
+
django_db_views.operations.ViewRunPython(
|
|
29
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
30
|
+
"# noqa\nselect *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime, fbg.site_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, fbg.site_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
31
|
+
"glucose_summary_view",
|
|
32
|
+
engine="django.db.backends.postgresql",
|
|
33
|
+
),
|
|
34
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
35
|
+
"# noqa\nselect subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucosefbg as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\nUNION\nselect subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucose as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\norder by subject_identifier, fbg_datetime",
|
|
36
|
+
"glucose_summary_view",
|
|
37
|
+
engine="django.db.backends.postgresql",
|
|
38
|
+
),
|
|
39
|
+
atomic=False,
|
|
40
|
+
),
|
|
41
|
+
django_db_views.operations.ViewRunPython(
|
|
42
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
43
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, 'glucose_summary_view' as report_model\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, 'glucose_summary_view' as report_model\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
44
|
+
"glucose_summary_view",
|
|
45
|
+
engine="django.db.backends.sqlite3",
|
|
46
|
+
),
|
|
47
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
48
|
+
"# noqa\nselect subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucosefbg as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\nUNION\nselect subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\nfbg.site_id, 'glucose_summary_view' as report_model\nfrom meta_subject_glucose as fbg \nleft join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\norder by subject_identifier, fbg_datetime",
|
|
49
|
+
"glucose_summary_view",
|
|
50
|
+
engine="django.db.backends.sqlite3",
|
|
51
|
+
),
|
|
52
|
+
atomic=False,
|
|
53
|
+
),
|
|
54
|
+
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-21 22:40
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0026_auto_20240822_0120"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
"# noqa\nselect *, uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime',\n fbg.site_id, v.visit_code, v.visit_code_sequence \n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
18
|
+
"glucose_summary_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
"# noqa\nselect *, uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime', fbg.site_id \n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, fbg.site_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
23
|
+
"glucose_summary_view",
|
|
24
|
+
engine="django.db.backends.mysql",
|
|
25
|
+
),
|
|
26
|
+
atomic=False,
|
|
27
|
+
),
|
|
28
|
+
django_db_views.operations.ViewRunPython(
|
|
29
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
30
|
+
"# noqa\nselect *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
31
|
+
"glucose_summary_view",
|
|
32
|
+
engine="django.db.backends.postgresql",
|
|
33
|
+
),
|
|
34
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
35
|
+
"# noqa\nselect *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime, fbg.site_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, fbg.site_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
36
|
+
"glucose_summary_view",
|
|
37
|
+
engine="django.db.backends.postgresql",
|
|
38
|
+
),
|
|
39
|
+
atomic=False,
|
|
40
|
+
),
|
|
41
|
+
django_db_views.operations.ViewRunPython(
|
|
42
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
43
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
44
|
+
"glucose_summary_view",
|
|
45
|
+
engine="django.db.backends.sqlite3",
|
|
46
|
+
),
|
|
47
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
48
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, 'glucose_summary_view' as report_model\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, 'glucose_summary_view' as report_model\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
49
|
+
"glucose_summary_view",
|
|
50
|
+
engine="django.db.backends.sqlite3",
|
|
51
|
+
),
|
|
52
|
+
atomic=False,
|
|
53
|
+
),
|
|
54
|
+
]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-21 22:48
|
|
2
|
+
|
|
3
|
+
from django.db import migrations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("meta_reports", "0027_auto_20240822_0140"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterModelOptions(
|
|
14
|
+
name="glucosesummary",
|
|
15
|
+
options={
|
|
16
|
+
"default_permissions": ("view", "export", "viewallsites"),
|
|
17
|
+
"managed": False,
|
|
18
|
+
"verbose_name": "Glucose Summary",
|
|
19
|
+
"verbose_name_plural": "Glucose Summary",
|
|
20
|
+
},
|
|
21
|
+
),
|
|
22
|
+
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-21 22:49
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0028_alter_glucosesummary_options"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
"# noqa\nselect *, uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
18
|
+
"glucose_summary_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
"# noqa\nselect *, uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime',\n fbg.site_id, v.visit_code, v.visit_code_sequence \n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
23
|
+
"glucose_summary_view",
|
|
24
|
+
engine="django.db.backends.mysql",
|
|
25
|
+
),
|
|
26
|
+
atomic=False,
|
|
27
|
+
),
|
|
28
|
+
django_db_views.operations.ViewRunPython(
|
|
29
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
30
|
+
"# noqa\nselect *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
31
|
+
"glucose_summary_view",
|
|
32
|
+
engine="django.db.backends.postgresql",
|
|
33
|
+
),
|
|
34
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
35
|
+
"# noqa\nselect *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
36
|
+
"glucose_summary_view",
|
|
37
|
+
engine="django.db.backends.postgresql",
|
|
38
|
+
),
|
|
39
|
+
atomic=False,
|
|
40
|
+
),
|
|
41
|
+
django_db_views.operations.ViewRunPython(
|
|
42
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
43
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
44
|
+
"glucose_summary_view",
|
|
45
|
+
engine="django.db.backends.sqlite3",
|
|
46
|
+
),
|
|
47
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
48
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
49
|
+
"glucose_summary_view",
|
|
50
|
+
engine="django.db.backends.sqlite3",
|
|
51
|
+
),
|
|
52
|
+
atomic=False,
|
|
53
|
+
),
|
|
54
|
+
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-22 13:37
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0029_auto_20240822_0149"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
'# noqa\nselect *, uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as \'ogtt_value\', null as \'ogtt_datetime\',\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime',
|
|
18
|
+
"glucose_summary_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
"# noqa\nselect *, uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as 'ogtt_value', null as 'ogtt_datetime',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
23
|
+
"glucose_summary_view",
|
|
24
|
+
engine="django.db.backends.mysql",
|
|
25
|
+
),
|
|
26
|
+
atomic=False,
|
|
27
|
+
),
|
|
28
|
+
django_db_views.operations.ViewRunPython(
|
|
29
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
30
|
+
'# noqa\nselect *, get_random_uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime',
|
|
31
|
+
"glucose_summary_view",
|
|
32
|
+
engine="django.db.backends.postgresql",
|
|
33
|
+
),
|
|
34
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
35
|
+
"# noqa\nselect *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
36
|
+
"glucose_summary_view",
|
|
37
|
+
engine="django.db.backends.postgresql",
|
|
38
|
+
),
|
|
39
|
+
atomic=False,
|
|
40
|
+
),
|
|
41
|
+
django_db_views.operations.ViewRunPython(
|
|
42
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
43
|
+
'# noqa\nSELECT *, lower(\n hex(randomblob(4)) || \'-\' || hex(randomblob(2)) || \'-\' || \'4\' ||\n substr(hex( randomblob(2)), 2) || \'-\' ||\n substr(\'AB89\', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || \'-\' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime',
|
|
44
|
+
"glucose_summary_view",
|
|
45
|
+
engine="django.db.backends.sqlite3",
|
|
46
|
+
),
|
|
47
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
48
|
+
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, 'meta_reports.glucose_summary_view' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg \n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime",
|
|
49
|
+
"glucose_summary_view",
|
|
50
|
+
engine="django.db.backends.sqlite3",
|
|
51
|
+
),
|
|
52
|
+
atomic=False,
|
|
53
|
+
),
|
|
54
|
+
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-22 19:34
|
|
2
|
+
|
|
3
|
+
from django.db import migrations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("meta_reports", "0030_auto_20240822_1637"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.CreateModel(
|
|
14
|
+
name="EndpointsProxy",
|
|
15
|
+
fields=[],
|
|
16
|
+
options={
|
|
17
|
+
"verbose_name": "Endpoints (DM): All",
|
|
18
|
+
"verbose_name_plural": "Endpoints (DM): All",
|
|
19
|
+
"proxy": True,
|
|
20
|
+
"indexes": [],
|
|
21
|
+
"constraints": [],
|
|
22
|
+
},
|
|
23
|
+
bases=("meta_reports.endpoints",),
|
|
24
|
+
),
|
|
25
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-22 19:36
|
|
2
|
+
|
|
3
|
+
from django.db import migrations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("meta_reports", "0031_endpointsproxy"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterModelOptions(
|
|
14
|
+
name="endpointsproxy",
|
|
15
|
+
options={
|
|
16
|
+
"default_permissions": ("view", "export", "viewallsites"),
|
|
17
|
+
"verbose_name": "Endpoints (DM): All",
|
|
18
|
+
"verbose_name_plural": "Endpoints (DM): All",
|
|
19
|
+
},
|
|
20
|
+
),
|
|
21
|
+
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated by Django 5.0.8 on 2024-08-22 21:12
|
|
2
|
+
|
|
3
|
+
import django_db_views.migration_functions
|
|
4
|
+
import django_db_views.operations
|
|
5
|
+
from django.db import migrations
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
("meta_reports", "0032_alter_endpointsproxy_options"),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
django_db_views.operations.ViewRunPython(
|
|
16
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
17
|
+
'# noqa\nselect *, uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select v.subject_identifier, fbg_value, fbg_datetime, null as \'ogtt_value\', null as \'ogtt_datetime\',\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n UNION\n select v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n) as A\norder by subject_identifier, fbg_datetime',
|
|
18
|
+
"glucose_summary_view",
|
|
19
|
+
engine="django.db.backends.mysql",
|
|
20
|
+
),
|
|
21
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
22
|
+
'# noqa\nselect *, uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as \'ogtt_value\', null as \'ogtt_datetime\',\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as \'fasted\',\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime',
|
|
23
|
+
"glucose_summary_view",
|
|
24
|
+
engine="django.db.backends.mysql",
|
|
25
|
+
),
|
|
26
|
+
atomic=False,
|
|
27
|
+
),
|
|
28
|
+
django_db_views.operations.ViewRunPython(
|
|
29
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
30
|
+
'# noqa\nselect *, get_random_uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select v.subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n UNION\n select v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n) as A\norder by subject_identifier, fbg_datetime',
|
|
31
|
+
"glucose_summary_view",
|
|
32
|
+
engine="django.db.backends.postgresql",
|
|
33
|
+
),
|
|
34
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
35
|
+
'# noqa\nselect *, get_random_uuid() as id, now() as created, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime',
|
|
36
|
+
"glucose_summary_view",
|
|
37
|
+
engine="django.db.backends.postgresql",
|
|
38
|
+
),
|
|
39
|
+
atomic=False,
|
|
40
|
+
),
|
|
41
|
+
django_db_views.operations.ViewRunPython(
|
|
42
|
+
code=django_db_views.migration_functions.ForwardViewMigration(
|
|
43
|
+
'# noqa\nSELECT *, lower(\n hex(randomblob(4)) || \'-\' || hex(randomblob(2)) || \'-\' || \'4\' ||\n substr(hex( randomblob(2)), 2) || \'-\' ||\n substr(\'AB89\', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || \'-\' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select v.subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier\n UNION\n select v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n left join meta_prn_endofstudy as eos on v.subject_identifier=eos.subject_identifier \n ) as A\norder by subject_identifier, fbg_datetime',
|
|
44
|
+
"glucose_summary_view",
|
|
45
|
+
engine="django.db.backends.sqlite3",
|
|
46
|
+
),
|
|
47
|
+
reverse_code=django_db_views.migration_functions.BackwardViewMigration(
|
|
48
|
+
'# noqa\nSELECT *, lower(\n hex(randomblob(4)) || \'-\' || hex(randomblob(2)) || \'-\' || \'4\' ||\n substr(hex( randomblob(2)), 2) || \'-\' ||\n substr(\'AB89\', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || \'-\' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`, \'meta_reports.glucose_summary_view\' as report_model\nfrom (\n select subject_identifier, fbg_value, fbg_datetime, null as ogtt_value, null as ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucosefbg as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id\n UNION\n select subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime,\n case when fasting="fasting" then "Yes" when fasting="non_fasting" then "No" else fasting end as fasted,\n fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id\n from meta_subject_glucose as fbg\n left join meta_subject_subjectvisit as v on v.id=fbg.subject_visit_id) as A\norder by subject_identifier, fbg_datetime',
|
|
49
|
+
"glucose_summary_view",
|
|
50
|
+
engine="django.db.backends.sqlite3",
|
|
51
|
+
),
|
|
52
|
+
atomic=False,
|
|
53
|
+
),
|
|
54
|
+
]
|