clinicedc 2.0.40__py3-none-any.whl → 2.0.42__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of clinicedc might be problematic. Click here for more details.
- {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/METADATA +3 -1
- {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/RECORD +338 -344
- edc_action_item/action.py +1 -1
- edc_action_item/action_item_notification.py +1 -1
- edc_action_item/choices.py +1 -1
- edc_action_item/data_fixers.py +1 -2
- edc_action_item/delete_action_item.py +1 -2
- edc_action_item/forms/action_item_form.py +1 -1
- edc_action_item/models/action_item.py +1 -1
- edc_action_item/models/action_type.py +1 -1
- edc_action_item/models/signals.py +1 -1
- edc_action_item/templatetags/action_item_extras.py +1 -1
- edc_action_item/utils.py +1 -2
- edc_action_item/view_mixins/action_item_view_mixin.py +1 -1
- edc_adherence/choices.py +1 -1
- edc_adherence/form_validator_mixin.py +1 -2
- edc_adherence/list_data.py +1 -1
- edc_adherence/model_mixins.py +1 -1
- edc_adverse_event/action_items/ae_followup_action.py +9 -9
- edc_adverse_event/action_items/ae_initial_action.py +12 -16
- edc_adverse_event/action_items/ae_susar_action.py +2 -1
- edc_adverse_event/action_items/ae_tmg_action.py +6 -4
- edc_adverse_event/action_items/death_report_action.py +7 -7
- edc_adverse_event/action_items/death_report_tmg_action.py +2 -1
- edc_adverse_event/action_items/death_report_tmg_second_action.py +2 -1
- edc_adverse_event/action_items/hospitalization_action.py +2 -1
- edc_adverse_event/auths.py +3 -1
- edc_adverse_event/choices.py +13 -6
- edc_adverse_event/constants.py +1 -23
- edc_adverse_event/form_validator_mixins/death_report_form_validator.py +1 -1
- edc_adverse_event/form_validator_mixins/requires_death_report_form_validator_mixin.py +1 -2
- edc_adverse_event/form_validators/ae_followup.py +2 -3
- edc_adverse_event/form_validators/ae_initial.py +2 -1
- edc_adverse_event/form_validators/ae_tmg.py +2 -1
- edc_adverse_event/form_validators/death_report_tmg.py +1 -1
- edc_adverse_event/form_validators/hospitalization.py +2 -1
- edc_adverse_event/list_data.py +1 -1
- edc_adverse_event/model_mixins/ae_followup/ae_followup_fields_model_mixin.py +1 -1
- edc_adverse_event/model_mixins/ae_followup/ae_followup_methods_model_mixin.py +1 -2
- edc_adverse_event/model_mixins/ae_initial/ae_initial_fields_model_mixin.py +1 -1
- edc_adverse_event/model_mixins/ae_initial/ae_initial_susar_model_mixin.py +2 -2
- edc_adverse_event/model_mixins/ae_susar/ae_susar_methods_model_mixin.py +1 -2
- edc_adverse_event/model_mixins/ae_tmg/ae_tmg_fields_model_mixin.py +1 -1
- edc_adverse_event/model_mixins/hospitaization/hospitalization_model_mixin.py +1 -1
- edc_adverse_event/modeladmin_mixins/ae_initial_admin_mixin.py +1 -1
- edc_adverse_event/modeladmin_mixins/ae_tmg_admin_mixin.py +1 -1
- edc_adverse_event/modeladmin_mixins/death_report_admin_mixin.py +1 -1
- edc_adverse_event/modeladmin_mixins/death_report_tmg_admin_mixin.py +1 -1
- edc_adverse_event/modelform_mixins/ae_followup_modelform_mixin.py +1 -2
- edc_adverse_event/modelform_mixins/ae_initial_modelform_mixin.py +1 -2
- edc_adverse_event/models/signals.py +2 -2
- edc_adverse_event/pdf_reports/ae_pdf_report.py +3 -2
- edc_adverse_event/pdf_reports/death_pdf_report.py +3 -2
- edc_adverse_event/templatetags/edc_adverse_event_extras.py +2 -3
- edc_adverse_event/urls.py +1 -0
- edc_adverse_event/utils.py +11 -14
- edc_adverse_event/view_mixins/ae/ae_listboard_view_mixin.py +3 -3
- edc_adverse_event/view_mixins/ae/death_report_listboard_view_mixin.py +1 -1
- edc_adverse_event/view_mixins/tmg/tmg_ae_listboard_view_mixin.py +2 -1
- edc_adverse_event/views/home_view.py +1 -0
- edc_adverse_event/views/tmg/home_view.py +1 -1
- edc_adverse_event/views/tmg/status_listboards.py +1 -1
- edc_analytics/custom_tables/age.py +1 -2
- edc_analytics/custom_tables/art.py +1 -2
- edc_analytics/custom_tables/bmi.py +1 -3
- edc_analytics/custom_tables/bp.py +1 -3
- edc_analytics/custom_tables/fasting.py +1 -2
- edc_analytics/custom_tables/fbg.py +1 -2
- edc_analytics/custom_tables/fbg_ogtt.py +1 -2
- edc_analytics/custom_tables/hba1c.py +1 -2
- edc_analytics/custom_tables/ogtt.py +1 -2
- edc_analytics/custom_tables/waist.py +1 -2
- edc_analytics/row/row_statistics_with_gender.py +1 -2
- edc_analytics/table.py +1 -2
- edc_appointment/admin/actions.py +1 -1
- edc_appointment/admin/appointment_admin.py +1 -1
- edc_appointment/appointment_reason_updater.py +1 -1
- edc_appointment/choices.py +1 -2
- edc_appointment/form_validator_mixins/next_appointment_crf_form_validator_mixin.py +1 -1
- edc_appointment/list_data.py +2 -3
- edc_appointment/model_mixins/missed_appointment_model_mixin.py +1 -1
- edc_appointment/model_mixins/next_appointment_crf_model_mixin.py +1 -2
- edc_appointment/modeladmin_mixins/next_appointment_crf_modeladmin_mixin.py +1 -1
- edc_appointment/models/signals.py +1 -1
- edc_appointment/utils.py +4 -2
- edc_auth/constants.py +3 -0
- edc_consent/choices.py +1 -1
- edc_consent/consent_definition.py +1 -1
- edc_consent/consent_definition_extension.py +1 -1
- edc_consent/field_mixins/citizen_fields_mixin.py +3 -3
- edc_consent/model_mixins/consent_model_mixin.py +1 -1
- edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_validation_mixin.py +1 -1
- edc_consent/modelform_mixins/consent_modelform_mixin/review_fields_modelform_mixin.py +1 -2
- edc_consent/validators.py +5 -10
- edc_constants/__init__.py +0 -3
- edc_constants/choices.py +2 -3
- edc_constants/context_processor.py +2 -3
- edc_constants/utils.py +2 -3
- edc_crf/model_mixins/crf_status_model_mixin.py +1 -1
- edc_crf/model_mixins/singleton_crf_model_mixin.py +0 -1
- edc_crf/update_crf_status_command.py +1 -2
- edc_crf/update_crf_status_for_instance.py +1 -2
- edc_dashboard/url_config.py +1 -2
- edc_dashboard/views/administration_view.py +1 -0
- edc_data_manager/action_items.py +7 -7
- edc_data_manager/admin/actions.py +1 -1
- edc_data_manager/admin/data_query_admin.py +10 -10
- edc_data_manager/choices.py +1 -1
- edc_data_manager/forms/data_query.py +1 -1
- edc_data_manager/handlers/handlers.py +1 -1
- edc_data_manager/migrations/0043_alter_historicalqueryrule_comment_and_more.py +51 -0
- edc_data_manager/models/data_query.py +1 -1
- edc_data_manager/models/model_mixins.py +1 -2
- edc_data_manager/models/query_rule.py +1 -1
- edc_data_manager/view_mixins/data_manager_view_mixin.py +1 -1
- edc_document_status/model_mixins.py +1 -1
- edc_document_status/models/signals.py +1 -2
- edc_dx/diagnoses.py +2 -3
- edc_dx/form_validators/diagnosis_form_validator_mixin.py +1 -2
- edc_dx_review/choices.py +1 -1
- edc_dx_review/form_validator_mixins/clinical_review_followup_form_validator_mixin.py +2 -1
- edc_dx_review/list_data.py +1 -1
- edc_dx_review/medical_date.py +1 -1
- edc_dx_review/model_mixins/clinical_review_baseline_model_mixin.py +1 -1
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py +1 -1
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py +1 -1
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py +1 -1
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py +1 -1
- edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_model_mixin.py +1 -1
- edc_dx_review/model_mixins/factory/baseline_review_model_mixin_factory.py +1 -1
- edc_dx_review/model_mixins/factory/calculate_date.py +1 -1
- edc_dx_review/model_mixins/factory/dx_initial_review_model_mixin_factory.py +1 -1
- edc_dx_review/model_mixins/factory/followup_review_model_mixin_factory.py +1 -1
- edc_dx_review/model_mixins/factory/rx_initial_review_model_mixin_factory.py +1 -1
- edc_dx_review/model_mixins/followup_review/followup_review_model_mixin.py +1 -1
- edc_dx_review/model_mixins/followup_review/hiv_followup_review_model_mixin.py +1 -1
- edc_dx_review/model_mixins/initial_review/chol_initial_review_model_mixin.py +1 -1
- edc_dx_review/model_mixins/initial_review/hiv_initial_model_mixins.py +2 -3
- edc_dx_review/model_mixins/initial_review/ncd_initial_review_model_mixin.py +1 -1
- edc_dx_review/utils.py +1 -1
- edc_egfr/__init__.py +0 -1
- edc_egfr/egfr.py +23 -15
- edc_egfr/form_validator_mixins/egfr_form_validator_mixins.py +30 -25
- edc_egfr/model_mixins/egfr_drop_notification_model_mixin.py +8 -2
- edc_egfr/model_mixins/egfr_model_mixin.py +2 -2
- edc_export/management/commands/import_receipts.py +1 -2
- edc_export/model_exporter/object_history_helpers.py +1 -2
- edc_export/models/object_history.py +1 -1
- edc_export/models/upload_export_receipt_file.py +1 -1
- edc_facility/list_data.py +1 -1
- edc_fieldsets/fieldsets_modeladmin_mixin.py +1 -2
- edc_form_validators/applicable_field_validator.py +1 -1
- edc_form_validators/date_validator.py +1 -1
- edc_form_validators/many_to_many_field_validator.py +1 -2
- edc_form_validators/other_specify_field_validator.py +1 -2
- edc_form_validators/required_field_validator.py +1 -2
- edc_glucose/form_validators/fasting_form_validator.py +1 -1
- edc_glucose/form_validators/glucose_form_validator.py +3 -3
- edc_glucose/form_validators/glucose_form_validator_mixin.py +1 -2
- edc_glucose/form_validators/ogtt_form_validator_mixin.py +1 -2
- edc_glucose/model_mixin_factories/fasting_model_mixin_factory.py +1 -1
- edc_glucose/model_mixin_factories/fbg_model_mixin_factory.py +1 -2
- edc_glucose/model_mixin_factories/glucose_model_mixin_factory.py +1 -1
- edc_glucose/model_mixin_factories/ogtt_model_mixin_factory.py +1 -2
- edc_glucose/model_mixins/hba1c_model_mixin.py +1 -3
- edc_glucose/utils.py +2 -2
- edc_identifier/model_mixins.py +1 -2
- edc_identifier/models.py +1 -1
- edc_identifier/simple_identifier.py +1 -2
- edc_lab/admin/modeladmin_mixins.py +1 -1
- edc_lab/choices.py +7 -10
- edc_lab/constants.py +0 -2
- edc_lab/form_validators/crf_requisition_form_validator_mixin.py +1 -0
- edc_lab/form_validators/requisition_form_validator_mixin.py +1 -1
- edc_lab/lab/specimen.py +1 -2
- edc_lab/model_mixins/requisition/requisition_identifier_mixin.py +1 -1
- edc_lab/model_mixins/requisition/requisition_model_mixin.py +1 -1
- edc_lab/model_mixins/shipping/manifest_model_mixin.py +1 -1
- edc_lab/model_mixins/shipping/verify_model_mixin.py +1 -2
- edc_lab/models/box.py +1 -1
- edc_lab_dashboard/middleware.py +1 -0
- edc_lab_dashboard/urls.py +1 -0
- edc_lab_dashboard/view_mixins/form_action_view_mixin.py +1 -0
- edc_lab_dashboard/view_mixins/process_requisition_view_mixin.py +1 -1
- edc_lab_dashboard/views/action_views/manage_box_item_view.py +1 -0
- edc_lab_dashboard/views/action_views/receive_view.py +1 -1
- edc_lab_dashboard/views/listboard_views/manage_box_listboard_view.py +1 -0
- edc_lab_dashboard/views/listboard_views/pack_listboard_view.py +1 -1
- edc_lab_dashboard/views/listboard_views/process_listboard_view.py +2 -1
- edc_lab_dashboard/views/listboard_views/receive_listboard_view.py +2 -1
- edc_lab_dashboard/views/listboard_views/requisition_listboard_view.py +1 -2
- edc_lab_dashboard/views/listboard_views/verify_box_listboard_view.py +1 -0
- edc_lab_results/action_items.py +1 -1
- edc_lab_results/form_validator_mixins/blood_results_fbg_form_validator_mixin.py +1 -1
- edc_lab_results/form_validator_mixins/blood_results_form_validator_mixin.py +2 -1
- edc_lab_results/model_mixin_factories/field_attrs.py +1 -1
- edc_lab_results/model_mixins/electrolytes_model_mixins.py +2 -2
- edc_lab_results/model_mixins/fbc_model_mixins.py +9 -8
- edc_lab_results/model_mixins/fbg_model_mixin.py +2 -7
- edc_lab_results/model_mixins/glucose_model_mixin.py +2 -7
- edc_lab_results/model_mixins/insulin_model_mixin.py +2 -1
- edc_lab_results/model_mixins/lft_model_mixins.py +7 -6
- edc_lab_results/model_mixins/lipid_model_mixins.py +1 -2
- edc_lab_results/model_mixins/proteinuria_model_mixin.py +1 -2
- edc_lab_results/model_mixins/rft_model_mixins.py +5 -3
- edc_listboard/views/screen/screening_listboard_view.py +1 -1
- edc_locator/action_items.py +2 -1
- edc_locator/forms/subject_locator_form_validator.py +1 -1
- edc_locator/modeladmin_mixins.py +1 -1
- edc_ltfu/action_items.py +2 -1
- edc_ltfu/choices.py +1 -1
- edc_ltfu/constants.py +0 -2
- edc_ltfu/forms/ltfu_form_validator.py +2 -1
- edc_ltfu/forms/ltfu_form_validator_mixin.py +1 -1
- edc_ltfu/modelform_mixins.py +2 -5
- edc_metadata/admin/modeladmin_mixins.py +4 -4
- edc_model/choices.py +1 -1
- edc_model/models/fields/date_estimated.py +1 -1
- edc_model_admin/context_processors.py +1 -1
- edc_model_admin/list_filters/future_date_list_filter.py +6 -7
- edc_model_admin/list_filters/list_field_with_other_list_filter.py +1 -1
- edc_model_admin/list_filters/past_date_list_filter.py +6 -7
- edc_model_admin/mixins/model_admin_redirect_on_delete_mixin.py +1 -0
- edc_model_admin/templatetags/edc_admin_modify.py +1 -1
- edc_model_fields/fields/date_estimated.py +1 -1
- edc_model_to_dataframe/model_to_dataframe.py +1 -1
- edc_navbar/navbar_item.py +1 -0
- edc_navbar/system_checks.py +3 -0
- edc_offstudy/action_items.py +2 -1
- edc_offstudy/choices.py +2 -1
- edc_pdf_reports/crf_pdf_report.py +9 -7
- edc_pdutils/dataframes/get_subject_consent.py +1 -2
- edc_pdutils/dataframes/get_subject_visit.py +1 -11
- edc_pdutils/helper.py +1 -2
- edc_pdutils/mappings.py +1 -1
- edc_pdutils/tables/crf.py +1 -2
- edc_pdutils/tables/requisition.py +1 -2
- edc_pdutils/utils/__init__.py +1 -0
- edc_pdutils/utils/convert_visit_code_to_float.py +8 -0
- edc_pdutils/utils/decrypt.py +5 -4
- edc_pdutils/utils/missing_subject_identifiers.py +5 -4
- edc_pharmacy/action_items.py +2 -1
- edc_pharmacy/admin/list_filters.py +1 -1
- edc_pharmacy/admin/stock/allocation_admin.py +1 -1
- edc_pharmacy/admin/stock/order_item_admin.py +1 -1
- edc_pharmacy/admin/stock/stock_request_admin.py +1 -1
- edc_pharmacy/admin/stock/stock_transfer_admin.py +1 -1
- edc_pharmacy/admin/stock/stock_transfer_item_admin.py +1 -1
- edc_pharmacy/choices.py +1 -2
- edc_pharmacy/form_validators/crf/study_medication_form_validator.py +1 -1
- edc_pharmacy/list_data.py +1 -1
- edc_pharmacy/model_mixins/study_medication_crf_model_mixin.py +1 -1
- edc_pharmacy/model_mixins/study_medication_refill_model_mixin.py +1 -1
- edc_pharmacy/models/model_mixins.py +1 -2
- edc_pharmacy/models/prescription/rx.py +1 -1
- edc_pharmacy/models/signals.py +1 -1
- edc_pharmacy/models/stock/order.py +1 -1
- edc_pharmacy/models/stock/order_item.py +1 -2
- edc_pharmacy/models/stock/stock_request.py +1 -1
- edc_pharmacy/views/confirm_stock_from_queryset_view.py +2 -1
- edc_pharmacy/views/confirmation_at_site_view.py +1 -1
- edc_prn/models.py +1 -2
- edc_protocol_incident/action_items.py +2 -1
- edc_protocol_incident/choices.py +1 -1
- edc_protocol_incident/form_validators/mixins.py +2 -1
- edc_protocol_incident/form_validators/protocol_deviation_violation_form_validator.py +2 -1
- edc_protocol_incident/form_validators/protocol_incident_form_validator.py +2 -1
- edc_protocol_incident/list_data.py +1 -1
- edc_protocol_incident/model_mixins/protocol_deviation_violation_model_mixin.py +1 -1
- edc_protocol_incident/modeladmin_mixins.py +1 -1
- edc_qareports/choices.py +1 -1
- edc_qareports/migrations/0017_auto_20240816_0256.py +1 -2
- edc_qareports/modeladmin_mixins/list_filters.py +1 -2
- edc_qareports/modeladmin_mixins/qa_report_modeladmin_mixin.py +1 -1
- edc_qareports/sql_generator/requisition_subquery.py +1 -1
- edc_refusal/forms.py +2 -1
- edc_refusal/list_data.py +1 -1
- edc_registration/model_mixins/updates_or_creates_registered_subject_model_mixin.py +1 -1
- edc_registration/models/registered_subject.py +1 -1
- edc_reportable/__init__.py +0 -35
- edc_reportable/choices.py +8 -3
- edc_reportable/constants.py +0 -7
- edc_reportable/data/__init__.py +0 -1
- edc_reportable/data/grading_data/ctcae_v5.py +1 -2
- edc_reportable/data/grading_data/daids_july_2017.py +7 -6
- edc_reportable/data/normal_data/africa.py +6 -5
- edc_reportable/exceptions.py +0 -4
- edc_reportable/forms/reportables_form_validator_mixin.py +2 -1
- edc_reportable/formula.py +1 -1
- edc_reportable/post_migrate_signals.py +1 -1
- edc_reportable/reference_range_evaluator.py +8 -2
- edc_reportable/units.py +2 -23
- edc_reportable/utils/__init__.py +1 -1
- edc_reportable/utils/get_mw.py +20 -0
- edc_reportable/utils/get_normal_data_or_raise.py +1 -1
- edc_review_dashboard/auths.py +1 -1
- edc_review_dashboard/middleware.py +1 -0
- edc_review_dashboard/urls.py +1 -0
- edc_review_dashboard/views/subject_review_listboard_view.py +1 -0
- edc_screening/choices.py +1 -1
- edc_screening/gender_evaluator.py +1 -1
- edc_screening/model_mixins/screening_fields_model_mixin.py +1 -1
- edc_screening/modelform_mixins.py +1 -1
- edc_screening/screening_eligibility.py +1 -2
- edc_sites/models/site_profile.py +1 -2
- edc_sites/site.py +1 -1
- edc_subject_dashboard/requisition_labels.py +1 -1
- edc_subject_dashboard/requisition_report.py +1 -1
- edc_subject_dashboard/requisition_verifier.py +1 -1
- edc_subject_dashboard/urls.py +1 -0
- edc_subject_dashboard/view_utils/go_to_forms_button.py +1 -1
- edc_subject_dashboard/views/requisition_print_actions_view.py +1 -1
- edc_subject_dashboard/views/subject_dashboard_view.py +1 -0
- edc_transfer/action_items.py +2 -1
- edc_transfer/choices.py +1 -1
- edc_transfer/form_validators.py +1 -1
- edc_transfer/list_data.py +1 -1
- edc_unblinding/action_items.py +2 -1
- edc_unblinding/models/unblinding_request.py +1 -1
- edc_unblinding/models/unblinding_review.py +1 -1
- edc_visit_schedule/action_items.py +2 -1
- edc_visit_schedule/admin/subject_schedule_history_admin.py +1 -0
- edc_visit_tracking/action_items.py +2 -1
- edc_visit_tracking/choices.py +1 -1
- edc_visit_tracking/form_validators/visit_form_validator.py +1 -1
- edc_visit_tracking/form_validators/visit_missed_form_validator.py +2 -1
- edc_visit_tracking/managers.py +1 -2
- edc_visit_tracking/model_mixins/subject_visit_missed_model_mixin.py +1 -1
- edc_visit_tracking/model_mixins/visit_model_mixin/caretaker_fields_mixin.py +1 -1
- edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_fields_mixin.py +1 -1
- edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_mixin.py +1 -1
- edc_visit_tracking/modeladmin_mixins/crf_model_admin_mixin.py +2 -1
- edc_visit_tracking/modeladmin_mixins/visit_model_admin_mixin.py +1 -1
- edc_visit_tracking/models/signals.py +1 -1
- edc_visit_tracking/view_utils/related_visit_button.py +1 -1
- edc_vitals/form_validators/blood_pressure_form_validator_mixin.py +1 -2
- edc_constants/constants.py +0 -250
- edc_constants/disease_constants.py +0 -22
- edc_egfr/calculators/__init__.py +0 -4
- edc_egfr/calculators/base_egrfr.py +0 -56
- edc_egfr/calculators/egfr_ckd_epi.py +0 -68
- edc_egfr/calculators/egfr_cockcroft_gault.py +0 -62
- edc_egfr/calculators/percent_change.py +0 -7
- edc_reportable/data/molecular_weights.py +0 -11
- edc_reportable/utils/convert_units.py +0 -163
- {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/WHEEL +0 -0
- {clinicedc-2.0.40.dist-info → clinicedc-2.0.42.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,10 +4,10 @@ from dataclasses import KW_ONLY, dataclass, field
|
|
|
4
4
|
from datetime import datetime
|
|
5
5
|
from typing import TYPE_CHECKING
|
|
6
6
|
|
|
7
|
+
from clinicedc_constants import YES
|
|
7
8
|
from django.apps import apps as django_apps
|
|
8
9
|
from django.core.exceptions import ObjectDoesNotExist
|
|
9
10
|
|
|
10
|
-
from edc_constants.constants import YES
|
|
11
11
|
from edc_protocol.research_protocol_config import ResearchProtocolConfig
|
|
12
12
|
from edc_sites import site_sites
|
|
13
13
|
from edc_utils import formatted_date
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
from clinicedc_constants import NOT_APPLICABLE
|
|
1
2
|
from django.db import models
|
|
2
3
|
|
|
3
4
|
from edc_constants.choices import YES_NO, YES_NO_NA
|
|
4
|
-
from edc_constants.constants import NOT_APPLICABLE
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class CitizenFieldsMixin(models.Model):
|
|
@@ -13,7 +13,7 @@ class CitizenFieldsMixin(models.Model):
|
|
|
13
13
|
|
|
14
14
|
legal_marriage = models.CharField(
|
|
15
15
|
verbose_name=(
|
|
16
|
-
"If not a citizen, is the participant legally
|
|
16
|
+
"If not a citizen, is the participant legally married to a Botswana citizen?"
|
|
17
17
|
),
|
|
18
18
|
max_length=3,
|
|
19
19
|
choices=YES_NO_NA,
|
|
@@ -25,7 +25,7 @@ class CitizenFieldsMixin(models.Model):
|
|
|
25
25
|
|
|
26
26
|
marriage_certificate = models.CharField(
|
|
27
27
|
verbose_name=(
|
|
28
|
-
"[Interviewer] Has the participant produced
|
|
28
|
+
"[Interviewer] Has the participant produced the marriage certificate as proof? "
|
|
29
29
|
),
|
|
30
30
|
max_length=3,
|
|
31
31
|
choices=YES_NO_NA,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from uuid import uuid4
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import OPEN
|
|
3
4
|
from django.db import models
|
|
4
5
|
from django.db.models import UniqueConstraint
|
|
5
6
|
from django_crypto_fields.fields import EncryptedTextField
|
|
6
7
|
|
|
7
|
-
from edc_constants.constants import OPEN
|
|
8
8
|
from edc_data_manager.get_data_queries import get_data_queries
|
|
9
9
|
from edc_model.validators import datetime_not_future
|
|
10
10
|
from edc_protocol.validators import datetime_not_before_study_start
|
|
@@ -3,10 +3,10 @@ from __future__ import annotations
|
|
|
3
3
|
from datetime import datetime
|
|
4
4
|
from typing import TYPE_CHECKING, Any
|
|
5
5
|
|
|
6
|
+
from clinicedc_constants import NO, YES
|
|
6
7
|
from dateutil.relativedelta import relativedelta
|
|
7
8
|
from django import forms
|
|
8
9
|
|
|
9
|
-
from edc_constants.constants import NO, YES
|
|
10
10
|
from edc_model_form.utils import get_field_or_raise
|
|
11
11
|
from edc_utils.age import AgeValueError, age, formatted_age
|
|
12
12
|
|
edc_consent/validators.py
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import re
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import DECLINED, MALE, NEG, NO, POS, UNKNOWN, YES
|
|
3
4
|
from django.core.exceptions import ValidationError
|
|
4
5
|
from django.utils.deconstruct import deconstructible
|
|
5
6
|
|
|
6
|
-
from edc_constants.constants import DECLINED, MALE, NEG, NO, POS, UNKNOWN, YES
|
|
7
|
-
|
|
8
7
|
|
|
9
8
|
@deconstructible
|
|
10
9
|
class SubjectTypeValidator:
|
|
@@ -14,7 +13,7 @@ class SubjectTypeValidator:
|
|
|
14
13
|
def __call__(self, value):
|
|
15
14
|
if value not in self.subject_types:
|
|
16
15
|
raise ValidationError(
|
|
17
|
-
"Undefined subject type. Expected one of '{subject_types}'.
|
|
16
|
+
"Undefined subject type. Expected one of '{subject_types}'. Got '{value}'.",
|
|
18
17
|
params={
|
|
19
18
|
"subject_types": "' or '".join(self.subject_types),
|
|
20
19
|
"value": value,
|
|
@@ -74,20 +73,16 @@ def eligible_if_male(value):
|
|
|
74
73
|
|
|
75
74
|
def eligible_if_negative(value):
|
|
76
75
|
if value != NEG:
|
|
77
|
-
raise ValidationError(
|
|
78
|
-
"Participant must be HIV Negative." "Participant is not eligible."
|
|
79
|
-
)
|
|
76
|
+
raise ValidationError("Participant must be HIV Negative.Participant is not eligible.")
|
|
80
77
|
|
|
81
78
|
|
|
82
79
|
def eligible_if_positive(value):
|
|
83
80
|
if value != POS:
|
|
84
|
-
raise ValidationError(
|
|
85
|
-
"Participant must be HIV Positive." "Participant is not eligible."
|
|
86
|
-
)
|
|
81
|
+
raise ValidationError("Participant must be HIV Positive.Participant is not eligible.")
|
|
87
82
|
|
|
88
83
|
|
|
89
84
|
def eligible_not_positive(value):
|
|
90
85
|
if value == POS:
|
|
91
86
|
raise ValidationError(
|
|
92
|
-
"Participant must be HIV Negative / Unknown.
|
|
87
|
+
"Participant must be HIV Negative / Unknown.Participant is not eligible."
|
|
93
88
|
)
|
edc_constants/__init__.py
CHANGED
edc_constants/choices.py
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
from
|
|
2
|
-
|
|
3
|
-
from .constants import (
|
|
1
|
+
from clinicedc_constants import (
|
|
4
2
|
ABNORMAL,
|
|
5
3
|
ABSENT,
|
|
6
4
|
AFTERNOON,
|
|
@@ -68,6 +66,7 @@ from .constants import (
|
|
|
68
66
|
WEEKENDS,
|
|
69
67
|
YES,
|
|
70
68
|
)
|
|
69
|
+
from django.utils.translation import gettext_lazy as _
|
|
71
70
|
|
|
72
71
|
ACU_EST = (
|
|
73
72
|
("Acute", _("Acute")),
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
from
|
|
2
|
-
|
|
3
|
-
from .constants import (
|
|
1
|
+
from clinicedc_constants import (
|
|
4
2
|
ABNORMAL,
|
|
5
3
|
CANCELLED,
|
|
6
4
|
CLOSED,
|
|
@@ -20,6 +18,7 @@ from .constants import (
|
|
|
20
18
|
UNKNOWN,
|
|
21
19
|
YES,
|
|
22
20
|
)
|
|
21
|
+
from django.conf import settings
|
|
23
22
|
|
|
24
23
|
|
|
25
24
|
def constants(request) -> dict:
|
edc_constants/utils.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from
|
|
1
|
+
from clinicedc_constants import QUESTION_RETIRED
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
def get_display(choices, label) -> str | None:
|
|
@@ -13,5 +13,4 @@ def get_display(choices, label) -> str | None:
|
|
|
13
13
|
def append_question_retired_choice(choices) -> tuple[tuple[str, str], ...]:
|
|
14
14
|
choices = list(choices)
|
|
15
15
|
choices.append((QUESTION_RETIRED, QUESTION_RETIRED))
|
|
16
|
-
|
|
17
|
-
return choices
|
|
16
|
+
return tuple(choices)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
from clinicedc_constants import INCOMPLETE
|
|
1
2
|
from django.conf import settings
|
|
2
3
|
from django.db import models
|
|
3
4
|
from django.utils.translation import gettext_lazy as _
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import DOCUMENT_STATUS
|
|
6
|
-
from edc_constants.constants import INCOMPLETE
|
|
7
7
|
|
|
8
8
|
from ..update_crf_status_for_instance import update_crf_status_for_instance
|
|
9
9
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
from clinicedc_constants import INCOMPLETE
|
|
1
2
|
from django.apps import apps as django_apps
|
|
2
3
|
|
|
3
|
-
from edc_constants.constants import INCOMPLETE
|
|
4
|
-
|
|
5
4
|
from .model_mixins import CrfStatusModelMixin
|
|
6
5
|
from .update_crf_status_for_instance import update_crf_status_for_instance
|
|
7
6
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import COMPLETE, INCOMPLETE
|
|
3
4
|
from django.apps import apps as django_apps
|
|
4
5
|
from django.core.exceptions import ObjectDoesNotExist
|
|
5
6
|
|
|
6
|
-
from edc_constants.constants import COMPLETE, INCOMPLETE
|
|
7
|
-
|
|
8
7
|
|
|
9
8
|
def update_crf_status_for_instance(instance: Any) -> None:
|
|
10
9
|
"""Only works for CRFs, e.g. have related_visit."""
|
edc_dashboard/url_config.py
CHANGED
|
@@ -2,10 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
+
from clinicedc_constants import UUID_PATTERN
|
|
5
6
|
from django.urls.conf import re_path
|
|
6
7
|
|
|
7
|
-
from edc_constants.constants import UUID_PATTERN
|
|
8
|
-
|
|
9
8
|
from .url_names import url_names
|
|
10
9
|
|
|
11
10
|
if TYPE_CHECKING:
|
edc_data_manager/action_items.py
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
from
|
|
2
|
-
from django.template.loader import render_to_string
|
|
3
|
-
from django.utils import timezone
|
|
4
|
-
|
|
5
|
-
from edc_action_item.action import Action
|
|
6
|
-
from edc_action_item.site_action_items import site_action_items
|
|
7
|
-
from edc_constants.constants import (
|
|
1
|
+
from clinicedc_constants import (
|
|
8
2
|
CLOSED,
|
|
9
3
|
FEEDBACK,
|
|
10
4
|
HIGH_PRIORITY,
|
|
@@ -12,6 +6,12 @@ from edc_constants.constants import (
|
|
|
12
6
|
NORMAL,
|
|
13
7
|
RESOLVED,
|
|
14
8
|
)
|
|
9
|
+
from django.conf import settings
|
|
10
|
+
from django.template.loader import render_to_string
|
|
11
|
+
from django.utils import timezone
|
|
12
|
+
|
|
13
|
+
from edc_action_item.action import Action
|
|
14
|
+
from edc_action_item.site_action_items import site_action_items
|
|
15
15
|
|
|
16
16
|
from .constants import CLOSED_WITH_ACTION
|
|
17
17
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from uuid import uuid4
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import CLOSED, OPEN
|
|
3
4
|
from django.conf import settings
|
|
4
5
|
from django.contrib import admin, messages
|
|
5
6
|
from django.core.exceptions import ObjectDoesNotExist
|
|
@@ -8,7 +9,6 @@ from django.utils import timezone
|
|
|
8
9
|
from django.utils.html import format_html
|
|
9
10
|
from django.utils.safestring import mark_safe
|
|
10
11
|
|
|
11
|
-
from edc_constants.constants import CLOSED, OPEN
|
|
12
12
|
from edc_utils.text import formatted_datetime
|
|
13
13
|
|
|
14
14
|
from ..models import QueryRule
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
from textwrap import wrap
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import (
|
|
4
|
+
CLOSED,
|
|
5
|
+
FEEDBACK,
|
|
6
|
+
HIGH_PRIORITY,
|
|
7
|
+
NEW,
|
|
8
|
+
NO,
|
|
9
|
+
OPEN,
|
|
10
|
+
RESOLVED,
|
|
11
|
+
YES,
|
|
12
|
+
)
|
|
3
13
|
from django.conf import settings
|
|
4
14
|
from django.contrib import admin
|
|
5
15
|
from django.contrib.admin.decorators import register
|
|
@@ -11,16 +21,6 @@ from django_audit_fields.admin import audit_fieldset_tuple
|
|
|
11
21
|
|
|
12
22
|
from edc_action_item.fieldsets import action_fields, action_fieldset_tuple
|
|
13
23
|
from edc_appointment.models import Appointment
|
|
14
|
-
from edc_constants.constants import (
|
|
15
|
-
CLOSED,
|
|
16
|
-
FEEDBACK,
|
|
17
|
-
HIGH_PRIORITY,
|
|
18
|
-
NEW,
|
|
19
|
-
NO,
|
|
20
|
-
OPEN,
|
|
21
|
-
RESOLVED,
|
|
22
|
-
YES,
|
|
23
|
-
)
|
|
24
24
|
from edc_model_admin.dashboard import ModelAdminSubjectDashboardMixin
|
|
25
25
|
from edc_model_admin.history import SimpleHistoryAdmin
|
|
26
26
|
from edc_sites.admin import SiteModelAdminMixin
|
edc_data_manager/choices.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
from clinicedc_constants import CLOSED, FEEDBACK, HIGH_PRIORITY, NEW, OPEN, RESOLVED
|
|
1
2
|
from django import forms
|
|
2
3
|
|
|
3
4
|
from edc_action_item.forms.action_item_form_mixin import ActionItemFormMixin
|
|
4
|
-
from edc_constants.constants import CLOSED, FEEDBACK, HIGH_PRIORITY, NEW, OPEN, RESOLVED
|
|
5
5
|
from edc_form_validators import FormValidator, FormValidatorMixin
|
|
6
6
|
|
|
7
7
|
from ..constants import CLOSED_WITH_ACTION
|
|
@@ -4,11 +4,11 @@ from datetime import datetime
|
|
|
4
4
|
from typing import TYPE_CHECKING
|
|
5
5
|
|
|
6
6
|
import arrow
|
|
7
|
+
from clinicedc_constants import NO, OPEN, RESOLVED
|
|
7
8
|
from django.conf import settings
|
|
8
9
|
from django.core.exceptions import ObjectDoesNotExist
|
|
9
10
|
from django.utils import timezone
|
|
10
11
|
|
|
11
|
-
from edc_constants.constants import NO, OPEN, RESOLVED
|
|
12
12
|
from edc_lab.utils import get_requisition_model
|
|
13
13
|
from edc_metadata.constants import KEYED, REQUIRED
|
|
14
14
|
from edc_metadata.models import CrfMetadata, RequisitionMetadata
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Generated by Django 5.2.7 on 2025-10-24 04:17
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("edc_data_manager", "0042_alter_datadictionary_revision_and_more"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterField(
|
|
14
|
+
model_name="historicalqueryrule",
|
|
15
|
+
name="comment",
|
|
16
|
+
field=models.TextField(blank=True, default=""),
|
|
17
|
+
),
|
|
18
|
+
migrations.AlterField(
|
|
19
|
+
model_name="historicalqueryrule",
|
|
20
|
+
name="query_text",
|
|
21
|
+
field=models.TextField(
|
|
22
|
+
blank=True,
|
|
23
|
+
default="",
|
|
24
|
+
help_text="Generic query text for auto-generated queries.",
|
|
25
|
+
),
|
|
26
|
+
),
|
|
27
|
+
migrations.AlterField(
|
|
28
|
+
model_name="historicalqueryrule",
|
|
29
|
+
name="reference_model",
|
|
30
|
+
field=models.CharField(default="", editable=False, max_length=150),
|
|
31
|
+
),
|
|
32
|
+
migrations.AlterField(
|
|
33
|
+
model_name="queryrule",
|
|
34
|
+
name="comment",
|
|
35
|
+
field=models.TextField(blank=True, default=""),
|
|
36
|
+
),
|
|
37
|
+
migrations.AlterField(
|
|
38
|
+
model_name="queryrule",
|
|
39
|
+
name="query_text",
|
|
40
|
+
field=models.TextField(
|
|
41
|
+
blank=True,
|
|
42
|
+
default="",
|
|
43
|
+
help_text="Generic query text for auto-generated queries.",
|
|
44
|
+
),
|
|
45
|
+
),
|
|
46
|
+
migrations.AlterField(
|
|
47
|
+
model_name="queryrule",
|
|
48
|
+
name="reference_model",
|
|
49
|
+
field=models.CharField(default="", editable=False, max_length=150),
|
|
50
|
+
),
|
|
51
|
+
]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from uuid import uuid4
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import CLOSED, RESOLVED
|
|
3
4
|
from django.core.exceptions import ObjectDoesNotExist
|
|
4
5
|
from django.core.validators import MaxValueValidator, MinValueValidator
|
|
5
6
|
from django.db import models
|
|
@@ -9,7 +10,6 @@ from django.urls.base import reverse
|
|
|
9
10
|
from django.utils import timezone
|
|
10
11
|
|
|
11
12
|
from edc_action_item.models.action_model_mixin import ActionModelMixin
|
|
12
|
-
from edc_constants.constants import CLOSED, RESOLVED
|
|
13
13
|
from edc_dashboard.url_names import InvalidDashboardUrlName, url_names
|
|
14
14
|
from edc_model.models import BaseUuidModel
|
|
15
15
|
from edc_sites.managers import CurrentSiteManager
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
from clinicedc_constants import CLOSED, NEW, NORMAL, OPEN, RESOLVED
|
|
1
2
|
from django.db import models
|
|
2
3
|
from django.db.models import PROTECT
|
|
3
4
|
from django.utils import timezone
|
|
4
5
|
|
|
5
|
-
from edc_constants.constants import CLOSED, NEW, NORMAL, OPEN, RESOLVED
|
|
6
|
-
|
|
7
6
|
from ..choices import DM_STATUS, QUERY_PRIORITY, RESPONSE_STATUS
|
|
8
7
|
from ..constants import CLOSED_WITH_ACTION
|
|
9
8
|
from .user import DataManagerUser, QueryUser
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from uuid import uuid4
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import NORMAL, NULL_STRING
|
|
3
4
|
from django.apps import apps as django_apps
|
|
4
5
|
from django.conf import settings
|
|
5
6
|
from django.contrib.sites.models import Site
|
|
@@ -7,7 +8,6 @@ from django.db import models
|
|
|
7
8
|
from django.db.models.deletion import PROTECT
|
|
8
9
|
from django.template.loader import render_to_string
|
|
9
10
|
|
|
10
|
-
from edc_constants.constants import NORMAL, NULL_STRING
|
|
11
11
|
from edc_model.models import BaseUuidModel, HistoricalRecords
|
|
12
12
|
from edc_visit_schedule.constants import DAYS, HOURS, MONTHS, WEEKS
|
|
13
13
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import NEW, OPEN, RESOLVED
|
|
3
4
|
from django.db.models import QuerySet
|
|
4
5
|
|
|
5
6
|
from edc_action_item.models import ActionItem
|
|
6
|
-
from edc_constants.constants import NEW, OPEN, RESOLVED
|
|
7
7
|
from edc_data_manager.models import DataQuery
|
|
8
8
|
from edc_sites.site import sites
|
|
9
9
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
from clinicedc_constants import INCOMPLETE
|
|
1
2
|
from django.core.exceptions import ObjectDoesNotExist
|
|
2
3
|
from django.db.models.signals import post_save
|
|
3
4
|
from django.dispatch import receiver
|
|
4
5
|
|
|
5
|
-
from edc_constants.constants import INCOMPLETE
|
|
6
|
-
|
|
7
6
|
|
|
8
7
|
@receiver(
|
|
9
8
|
post_save,
|
edc_dx/diagnoses.py
CHANGED
|
@@ -2,9 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from datetime import date, datetime
|
|
4
4
|
|
|
5
|
+
from clinicedc_constants import YES
|
|
5
6
|
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
|
|
6
7
|
|
|
7
|
-
from edc_constants.constants import YES
|
|
8
8
|
from edc_dx_review.utils import (
|
|
9
9
|
get_clinical_review_baseline_model_cls,
|
|
10
10
|
get_clinical_review_model_cls,
|
|
@@ -183,8 +183,7 @@ class Diagnoses:
|
|
|
183
183
|
subject_visit = self.initial_diagnosis_visit(name)
|
|
184
184
|
if subject_visit:
|
|
185
185
|
visit_label = (
|
|
186
|
-
f"{subject_visit.visit_code}."
|
|
187
|
-
f"{subject_visit.visit_code_sequence}"
|
|
186
|
+
f"{subject_visit.visit_code}.{subject_visit.visit_code_sequence}"
|
|
188
187
|
)
|
|
189
188
|
extra_msg = f"{description} was reported on visit {visit_label}. "
|
|
190
189
|
raise InitialReviewRequired(
|
edc_dx_review/choices.py
CHANGED
edc_dx_review/list_data.py
CHANGED
edc_dx_review/medical_date.py
CHANGED
|
@@ -2,10 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from datetime import date, datetime
|
|
4
4
|
|
|
5
|
+
from clinicedc_constants import GT, GTE, LT, LTE
|
|
5
6
|
from django.conf import settings
|
|
6
7
|
from django.core.exceptions import ValidationError
|
|
7
8
|
|
|
8
|
-
from edc_constants.constants import GT, GTE, LT, LTE
|
|
9
9
|
from edc_model import estimated_date_from_ago
|
|
10
10
|
from edc_utils.text import convert_php_dateformat
|
|
11
11
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
from clinicedc_constants import YES
|
|
1
2
|
from django.db import models
|
|
2
3
|
|
|
3
4
|
from edc_constants.choices import YES_NO
|
|
4
|
-
from edc_constants.constants import YES
|
|
5
5
|
from edc_crf.model_mixins import SingletonCrfModelMixin
|
|
6
6
|
from edc_dx import raise_on_unknown_diagnosis_labels
|
|
7
7
|
from edc_visit_schedule.utils import raise_if_not_baseline
|
edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_chol_model_mixin.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
from clinicedc_constants import NOT_APPLICABLE
|
|
1
2
|
from django.db import models
|
|
2
3
|
from django.utils.html import format_html
|
|
3
4
|
from django.utils.safestring import mark_safe
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import YES_NO_NA
|
|
6
|
-
from edc_constants.constants import NOT_APPLICABLE
|
|
7
7
|
from edc_model import models as edc_models
|
|
8
8
|
|
|
9
9
|
from ...utils import get_list_model_app
|
edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_dm_model_mixin.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
from clinicedc_constants import NOT_APPLICABLE
|
|
1
2
|
from django.db import models
|
|
2
3
|
from django.utils.html import format_html
|
|
3
4
|
from django.utils.safestring import mark_safe
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import YES_NO_NA
|
|
6
|
-
from edc_constants.constants import NOT_APPLICABLE
|
|
7
7
|
from edc_model import models as edc_models
|
|
8
8
|
|
|
9
9
|
from ...utils import get_list_model_app
|
edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_hiv_model_mixin.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
from clinicedc_constants import NOT_APPLICABLE
|
|
1
2
|
from django.db import models
|
|
2
3
|
from django.utils.html import format_html
|
|
3
4
|
from django.utils.safestring import mark_safe
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import YES_NO_NA
|
|
6
|
-
from edc_constants.constants import NOT_APPLICABLE
|
|
7
7
|
from edc_model import models as edc_models
|
|
8
8
|
|
|
9
9
|
from ...utils import get_list_model_app
|
edc_dx_review/model_mixins/clinical_review_followup/clinical_review_followup_htn_model_mixin.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
from clinicedc_constants import NOT_APPLICABLE
|
|
1
2
|
from django.db import models
|
|
2
3
|
from django.utils.html import format_html
|
|
3
4
|
from django.utils.safestring import mark_safe
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import YES_NO_NA
|
|
6
|
-
from edc_constants.constants import NOT_APPLICABLE
|
|
7
7
|
from edc_model import models as edc_models
|
|
8
8
|
|
|
9
9
|
from ...utils import get_list_model_app
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
from clinicedc_constants import YES
|
|
1
2
|
from django.db import models
|
|
2
3
|
|
|
3
4
|
from edc_constants.choices import YES_NO
|
|
4
|
-
from edc_constants.constants import YES
|
|
5
5
|
from edc_crf.model_mixins import SingletonCrfModelMixin
|
|
6
6
|
from edc_dx import raise_on_unknown_diagnosis_labels
|
|
7
7
|
from edc_visit_schedule.utils import raise_if_baseline
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import CHOL, DM, HIV, HTN, NO
|
|
3
4
|
from django.db import models
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import YES_NO
|
|
6
|
-
from edc_constants.constants import CHOL, DM, HIV, HTN, NO
|
|
7
7
|
from edc_dx import get_diagnosis_labels
|
|
8
8
|
|
|
9
9
|
default_prompts = {
|
|
@@ -2,9 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from datetime import date
|
|
4
4
|
|
|
5
|
+
from clinicedc_constants import NO, NOT_APPLICABLE, YES
|
|
5
6
|
from django.db import models
|
|
6
7
|
|
|
7
|
-
from edc_constants.constants import NO, NOT_APPLICABLE, YES
|
|
8
8
|
from edc_model import duration_to_date
|
|
9
9
|
|
|
10
10
|
|
|
@@ -2,10 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from datetime import date
|
|
4
4
|
|
|
5
|
+
from clinicedc_constants import NOT_APPLICABLE, YES
|
|
5
6
|
from django.db import models
|
|
6
7
|
|
|
7
8
|
from edc_constants.choices import YES_NO
|
|
8
|
-
from edc_constants.constants import NOT_APPLICABLE, YES
|
|
9
9
|
from edc_dx import Diagnoses
|
|
10
10
|
from edc_model.models import DurationYMDField
|
|
11
11
|
from edc_model.utils import get_report_datetime_field_name
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from clinicedc_constants import CHOL, DM, HIV, HTN, NOT_APPLICABLE
|
|
3
4
|
from django.db import models
|
|
4
5
|
|
|
5
6
|
from edc_constants.choices import YES_NO_NA
|
|
6
|
-
from edc_constants.constants import CHOL, DM, HIV, HTN, NOT_APPLICABLE
|
|
7
7
|
from edc_dx import get_diagnosis_labels
|
|
8
8
|
|
|
9
9
|
default_prompts = {
|