endoreg-db 0.8.8.0__py3-none-any.whl → 0.8.9.2__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 endoreg-db might be problematic. Click here for more details.
- endoreg_db/data/__init__.py +22 -8
- endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +0 -1
- endoreg_db/data/examination/examinations/data.yaml +114 -14
- endoreg_db/data/examination/time-type/data.yaml +0 -3
- endoreg_db/data/examination_indication/endoscopy.yaml +108 -173
- endoreg_db/data/examination_indication_classification/endoscopy.yaml +0 -70
- endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +33 -37
- endoreg_db/data/finding/00_generic.yaml +35 -0
- endoreg_db/data/finding/00_generic_complication.yaml +9 -0
- endoreg_db/data/finding/01_gastroscopy_baseline.yaml +88 -0
- endoreg_db/data/finding/01_gastroscopy_observation.yaml +113 -0
- endoreg_db/data/finding/02_colonoscopy_baseline.yaml +53 -0
- endoreg_db/data/finding/02_colonoscopy_hidden.yaml +119 -0
- endoreg_db/data/finding/02_colonoscopy_observation.yaml +152 -0
- endoreg_db/data/finding_classification/00_generic.yaml +44 -0
- endoreg_db/data/finding_classification/00_generic_histology.yaml +28 -0
- endoreg_db/data/finding_classification/00_generic_lesion.yaml +52 -0
- endoreg_db/data/finding_classification/{colonoscopy_bowel_preparation.yaml → 02_colonoscopy_baseline.yaml} +35 -20
- endoreg_db/data/finding_classification/02_colonoscopy_histology.yaml +13 -0
- endoreg_db/data/finding_classification/02_colonoscopy_other.yaml +12 -0
- endoreg_db/data/finding_classification/02_colonoscopy_polyp.yaml +101 -0
- endoreg_db/data/finding_classification_choice/{yes_no_na.yaml → 00_generic.yaml} +5 -1
- endoreg_db/data/finding_classification_choice/{examination_setting_generic_types.yaml → 00_generic_baseline.yaml} +10 -2
- endoreg_db/data/finding_classification_choice/{complication_generic_types.yaml → 00_generic_complication.yaml} +1 -1
- endoreg_db/data/finding_classification_choice/{histology.yaml → 00_generic_histology.yaml} +1 -4
- endoreg_db/data/finding_classification_choice/00_generic_lesion.yaml +158 -0
- endoreg_db/data/finding_classification_choice/{bowel_preparation.yaml → 02_colonoscopy_bowel_preparation.yaml} +1 -30
- endoreg_db/data/{_examples/finding_classification_choice/colonoscopy_not_complete_reason.yaml → finding_classification_choice/02_colonoscopy_generic.yaml} +1 -1
- endoreg_db/data/finding_classification_choice/{histology_polyp.yaml → 02_colonoscopy_histology.yaml} +1 -1
- endoreg_db/data/{_examples/finding_classification_choice/colonoscopy_location.yaml → finding_classification_choice/02_colonoscopy_location.yaml} +23 -4
- endoreg_db/data/finding_classification_choice/02_colonoscopy_other.yaml +34 -0
- endoreg_db/data/finding_classification_choice/02_colonoscopy_polyp_advanced_imaging.yaml +76 -0
- endoreg_db/data/{_examples/finding_classification_choice/colon_lesion_paris.yaml → finding_classification_choice/02_colonoscopy_polyp_morphology.yaml} +26 -8
- endoreg_db/data/finding_classification_choice/02_colonoscopy_size.yaml +27 -0
- endoreg_db/data/finding_classification_type/{colonoscopy_basic.yaml → 00_generic.yaml} +18 -13
- endoreg_db/data/finding_classification_type/02_colonoscopy.yaml +9 -0
- endoreg_db/data/finding_intervention/00_generic_endoscopy.yaml +59 -0
- endoreg_db/data/finding_intervention/00_generic_endoscopy_ablation.yaml +44 -0
- endoreg_db/data/finding_intervention/00_generic_endoscopy_bleeding.yaml +55 -0
- endoreg_db/data/finding_intervention/00_generic_endoscopy_resection.yaml +85 -0
- endoreg_db/data/finding_intervention/00_generic_endoscopy_stenosis.yaml +17 -0
- endoreg_db/data/finding_intervention/00_generic_endoscopy_stent.yaml +9 -0
- endoreg_db/data/finding_intervention/01_gastroscopy.yaml +19 -0
- endoreg_db/data/finding_intervention/04_eus.yaml +39 -0
- endoreg_db/data/finding_intervention/05_ercp.yaml +3 -0
- endoreg_db/data/finding_type/data.yaml +8 -12
- endoreg_db/data/requirement/01_patient_data.yaml +93 -0
- endoreg_db/data/requirement_operator/new_operators.yaml +36 -0
- endoreg_db/data/requirement_set/01_endoscopy_generic.yaml +0 -2
- endoreg_db/data/requirement_set/90_coloreg.yaml +20 -8
- endoreg_db/exceptions.py +0 -1
- endoreg_db/forms/examination_form.py +1 -1
- endoreg_db/helpers/data_loader.py +124 -52
- endoreg_db/helpers/default_objects.py +116 -81
- endoreg_db/import_files/__init__.py +27 -0
- endoreg_db/import_files/context/__init__.py +7 -0
- endoreg_db/import_files/context/default_sensitive_meta.py +81 -0
- endoreg_db/import_files/context/ensure_center.py +17 -0
- endoreg_db/import_files/context/file_lock.py +66 -0
- endoreg_db/import_files/context/import_context.py +43 -0
- endoreg_db/import_files/context/validate_directories.py +56 -0
- endoreg_db/import_files/file_storage/__init__.py +15 -0
- endoreg_db/import_files/file_storage/create_report_file.py +76 -0
- endoreg_db/import_files/file_storage/create_video_file.py +75 -0
- endoreg_db/import_files/file_storage/sensitive_meta_storage.py +39 -0
- endoreg_db/import_files/file_storage/state_management.py +496 -0
- endoreg_db/import_files/file_storage/storage.py +36 -0
- endoreg_db/import_files/import_service.md +26 -0
- endoreg_db/import_files/processing/__init__.py +11 -0
- endoreg_db/import_files/processing/report_processing/report_anonymization.py +94 -0
- endoreg_db/import_files/processing/sensitive_meta_adapter.py +51 -0
- endoreg_db/import_files/processing/video_processing/video_anonymization.py +107 -0
- endoreg_db/import_files/pseudonymization/fake.py +52 -0
- endoreg_db/import_files/pseudonymization/k_anonymity.py +182 -0
- endoreg_db/import_files/pseudonymization/k_pseudonymity.py +128 -0
- endoreg_db/import_files/pseudonymization/pseudonymize.py +0 -0
- endoreg_db/import_files/report_import_service.py +141 -0
- endoreg_db/import_files/video_import_service.py +150 -0
- endoreg_db/management/commands/import_report.py +130 -65
- endoreg_db/management/commands/import_video_with_classification.py +1 -1
- endoreg_db/management/commands/load_ai_model_data.py +5 -5
- endoreg_db/management/commands/load_ai_model_label_data.py +9 -7
- endoreg_db/management/commands/load_base_db_data.py +5 -134
- endoreg_db/management/commands/load_contraindication_data.py +14 -16
- endoreg_db/management/commands/load_disease_classification_choices_data.py +15 -18
- endoreg_db/management/commands/load_disease_classification_data.py +15 -18
- endoreg_db/management/commands/load_disease_data.py +25 -28
- endoreg_db/management/commands/load_endoscope_data.py +20 -27
- endoreg_db/management/commands/load_event_data.py +14 -16
- endoreg_db/management/commands/load_examination_data.py +31 -44
- endoreg_db/management/commands/load_examination_indication_data.py +20 -21
- endoreg_db/management/commands/load_finding_data.py +52 -80
- endoreg_db/management/commands/load_information_source.py +21 -23
- endoreg_db/management/commands/load_lab_value_data.py +17 -26
- endoreg_db/management/commands/load_medication_data.py +13 -12
- endoreg_db/management/commands/load_organ_data.py +15 -19
- endoreg_db/management/commands/load_pdf_type_data.py +19 -18
- endoreg_db/management/commands/load_profession_data.py +14 -17
- endoreg_db/management/commands/load_qualification_data.py +20 -23
- endoreg_db/management/commands/load_report_reader_flag_data.py +17 -19
- endoreg_db/management/commands/load_requirement_data.py +14 -20
- endoreg_db/management/commands/load_risk_data.py +7 -6
- endoreg_db/management/commands/load_shift_data.py +20 -23
- endoreg_db/management/commands/load_tag_data.py +8 -11
- endoreg_db/management/commands/load_unit_data.py +17 -19
- endoreg_db/management/commands/start_filewatcher.py +46 -37
- endoreg_db/management/commands/validate_video_files.py +1 -5
- endoreg_db/migrations/0001_initial.py +1360 -1812
- endoreg_db/models/administration/person/patient/patient.py +72 -46
- endoreg_db/models/label/__init__.py +2 -2
- endoreg_db/models/label/annotation/video_segmentation_annotation.py +18 -26
- endoreg_db/models/label/label_video_segment/label_video_segment.py +23 -1
- endoreg_db/models/media/pdf/raw_pdf.py +136 -64
- endoreg_db/models/media/pdf/report_reader/report_reader_config.py +34 -10
- endoreg_db/models/media/processing_history/__init__.py +5 -0
- endoreg_db/models/media/processing_history/processing_history.py +96 -0
- endoreg_db/models/media/video/create_from_file.py +101 -31
- endoreg_db/models/media/video/video_file.py +125 -105
- endoreg_db/models/media/video/video_file_io.py +31 -26
- endoreg_db/models/medical/contraindication/README.md +1 -0
- endoreg_db/models/medical/examination/examination.py +28 -8
- endoreg_db/models/medical/examination/examination_indication.py +13 -79
- endoreg_db/models/medical/examination/examination_time.py +8 -3
- endoreg_db/models/medical/finding/finding.py +5 -12
- endoreg_db/models/medical/finding/finding_classification.py +18 -37
- endoreg_db/models/medical/finding/finding_intervention.py +7 -9
- endoreg_db/models/medical/hardware/endoscope.py +6 -0
- endoreg_db/models/medical/patient/medication_examples.py +5 -1
- endoreg_db/models/medical/patient/patient_finding.py +1 -1
- endoreg_db/models/metadata/pdf_meta.py +22 -10
- endoreg_db/models/metadata/sensitive_meta.py +3 -0
- endoreg_db/models/metadata/sensitive_meta_logic.py +200 -124
- endoreg_db/models/other/information_source.py +27 -6
- endoreg_db/models/report/__init__.py +0 -0
- endoreg_db/models/report/images.py +0 -0
- endoreg_db/models/report/report.py +6 -0
- endoreg_db/models/requirement/requirement.py +59 -399
- endoreg_db/models/requirement/requirement_operator.py +86 -98
- endoreg_db/models/state/audit_ledger.py +4 -5
- endoreg_db/models/state/raw_pdf.py +69 -30
- endoreg_db/models/state/video.py +65 -49
- endoreg_db/models/upload_job.py +33 -9
- endoreg_db/models/utils.py +27 -23
- endoreg_db/queries/__init__.py +3 -1
- endoreg_db/schemas/examination_evaluation.py +1 -1
- endoreg_db/serializers/__init__.py +2 -8
- endoreg_db/serializers/label_video_segment/label_video_segment.py +2 -29
- endoreg_db/serializers/meta/__init__.py +1 -6
- endoreg_db/serializers/misc/sensitive_patient_data.py +50 -26
- endoreg_db/serializers/patient_examination/patient_examination.py +3 -3
- endoreg_db/serializers/pdf/anony_text_validation.py +39 -23
- endoreg_db/serializers/video/video_file_list.py +65 -34
- endoreg_db/services/__old/pdf_import.py +1487 -0
- endoreg_db/services/__old/video_import.py +1306 -0
- endoreg_db/services/anonymization.py +63 -26
- endoreg_db/services/lookup_service.py +28 -28
- endoreg_db/services/lookup_store.py +2 -2
- endoreg_db/services/pdf_import.py +0 -1480
- endoreg_db/services/report_import.py +10 -0
- endoreg_db/services/video_import.py +6 -1165
- endoreg_db/tasks/upload_tasks.py +79 -70
- endoreg_db/tasks/video_ingest.py +8 -4
- endoreg_db/urls/__init__.py +0 -14
- endoreg_db/urls/ai.py +32 -0
- endoreg_db/urls/media.py +21 -24
- endoreg_db/utils/dataloader.py +87 -57
- endoreg_db/utils/paths.py +110 -46
- endoreg_db/utils/pipelines/Readme.md +1 -1
- endoreg_db/utils/requirement_operator_logic/new_operator_logic.py +97 -0
- endoreg_db/utils/video/ffmpeg_wrapper.py +217 -52
- endoreg_db/views/__init__.py +85 -173
- endoreg_db/views/ai/__init__.py +8 -0
- endoreg_db/views/ai/label.py +155 -0
- endoreg_db/views/anonymization/media_management.py +8 -7
- endoreg_db/views/anonymization/overview.py +97 -68
- endoreg_db/views/anonymization/validate.py +25 -21
- endoreg_db/views/media/__init__.py +5 -20
- endoreg_db/views/media/pdf_media.py +109 -65
- endoreg_db/views/media/sensitive_metadata.py +163 -148
- endoreg_db/views/meta/__init__.py +0 -8
- endoreg_db/views/misc/__init__.py +1 -7
- endoreg_db/views/misc/upload_views.py +94 -93
- endoreg_db/views/report/__init__.py +7 -0
- endoreg_db/views/{pdf → report}/reimport.py +45 -24
- endoreg_db/views/{pdf/pdf_stream.py → report/report_stream.py} +40 -32
- endoreg_db/views/requirement/lookup_store.py +22 -90
- endoreg_db/views/video/__init__.py +23 -22
- endoreg_db/views/video/correction.py +201 -172
- endoreg_db/views/video/reimport.py +1 -1
- endoreg_db/views/{media/video_segments.py → video/segments_crud.py} +75 -37
- endoreg_db/views/video/{video_meta.py → video_meta_stats.py} +2 -2
- endoreg_db/views/video/video_stream.py +7 -8
- {endoreg_db-0.8.8.0.dist-info → endoreg_db-0.8.9.2.dist-info}/METADATA +2 -2
- {endoreg_db-0.8.8.0.dist-info → endoreg_db-0.8.9.2.dist-info}/RECORD +217 -335
- {endoreg_db-0.8.8.0.dist-info → endoreg_db-0.8.9.2.dist-info}/WHEEL +1 -1
- endoreg_db/data/_examples/disease.yaml +0 -55
- endoreg_db/data/_examples/disease_classification.yaml +0 -13
- endoreg_db/data/_examples/disease_classification_choice.yaml +0 -62
- endoreg_db/data/_examples/event.yaml +0 -64
- endoreg_db/data/_examples/examination.yaml +0 -72
- endoreg_db/data/_examples/finding/anatomy_colon.yaml +0 -128
- endoreg_db/data/_examples/finding/colonoscopy.yaml +0 -40
- endoreg_db/data/_examples/finding/colonoscopy_bowel_prep.yaml +0 -56
- endoreg_db/data/_examples/finding/complication.yaml +0 -16
- endoreg_db/data/_examples/finding/data.yaml +0 -105
- endoreg_db/data/_examples/finding/examination_setting.yaml +0 -16
- endoreg_db/data/_examples/finding/medication_related.yaml +0 -18
- endoreg_db/data/_examples/finding/outcome.yaml +0 -12
- endoreg_db/data/_examples/finding_classification/colonoscopy_bowel_preparation.yaml +0 -68
- endoreg_db/data/_examples/finding_classification/colonoscopy_jnet.yaml +0 -22
- endoreg_db/data/_examples/finding_classification/colonoscopy_kudo.yaml +0 -25
- endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_circularity.yaml +0 -20
- endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_planarity.yaml +0 -24
- endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_size.yaml +0 -68
- endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_surface.yaml +0 -20
- endoreg_db/data/_examples/finding_classification/colonoscopy_location.yaml +0 -80
- endoreg_db/data/_examples/finding_classification/colonoscopy_lst.yaml +0 -21
- endoreg_db/data/_examples/finding_classification/colonoscopy_nice.yaml +0 -20
- endoreg_db/data/_examples/finding_classification/colonoscopy_paris.yaml +0 -26
- endoreg_db/data/_examples/finding_classification/colonoscopy_sano.yaml +0 -22
- endoreg_db/data/_examples/finding_classification/colonoscopy_summary.yaml +0 -53
- endoreg_db/data/_examples/finding_classification/complication_generic.yaml +0 -25
- endoreg_db/data/_examples/finding_classification/examination_setting_generic.yaml +0 -40
- endoreg_db/data/_examples/finding_classification/histology_colo.yaml +0 -51
- endoreg_db/data/_examples/finding_classification/intervention_required.yaml +0 -26
- endoreg_db/data/_examples/finding_classification/medication_related.yaml +0 -23
- endoreg_db/data/_examples/finding_classification/visualized.yaml +0 -33
- endoreg_db/data/_examples/finding_classification_choice/bowel_preparation.yaml +0 -78
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_circularity_default.yaml +0 -32
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_jnet.yaml +0 -15
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_kudo.yaml +0 -23
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_lst.yaml +0 -15
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_nice.yaml +0 -17
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_planarity_default.yaml +0 -49
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_sano.yaml +0 -14
- endoreg_db/data/_examples/finding_classification_choice/colon_lesion_surface_intact_default.yaml +0 -36
- endoreg_db/data/_examples/finding_classification_choice/colonoscopy_size.yaml +0 -82
- endoreg_db/data/_examples/finding_classification_choice/colonoscopy_summary_worst_finding.yaml +0 -15
- endoreg_db/data/_examples/finding_classification_choice/complication_generic_types.yaml +0 -15
- endoreg_db/data/_examples/finding_classification_choice/examination_setting_generic_types.yaml +0 -15
- endoreg_db/data/_examples/finding_classification_choice/histology.yaml +0 -24
- endoreg_db/data/_examples/finding_classification_choice/histology_polyp.yaml +0 -20
- endoreg_db/data/_examples/finding_classification_choice/outcome.yaml +0 -19
- endoreg_db/data/_examples/finding_classification_choice/yes_no_na.yaml +0 -11
- endoreg_db/data/_examples/finding_classification_type/colonoscopy_basic.yaml +0 -48
- endoreg_db/data/_examples/finding_intervention/endoscopy.yaml +0 -43
- endoreg_db/data/_examples/finding_intervention/endoscopy_colonoscopy.yaml +0 -168
- endoreg_db/data/_examples/finding_intervention/endoscopy_egd.yaml +0 -128
- endoreg_db/data/_examples/finding_intervention/endoscopy_ercp.yaml +0 -32
- endoreg_db/data/_examples/finding_intervention/endoscopy_eus_lower.yaml +0 -9
- endoreg_db/data/_examples/finding_intervention/endoscopy_eus_upper.yaml +0 -36
- endoreg_db/data/_examples/finding_intervention_type/endoscopy.yaml +0 -15
- endoreg_db/data/_examples/finding_type/data.yaml +0 -43
- endoreg_db/data/_examples/requirement/age.yaml +0 -26
- endoreg_db/data/_examples/requirement/gender.yaml +0 -25
- endoreg_db/data/_examples/requirement_set/01_endoscopy_generic.yaml +0 -48
- endoreg_db/data/_examples/requirement_set/colonoscopy_austria_screening.yaml +0 -57
- endoreg_db/data/_examples/requirement_set/endoscopy_bleeding_risk.yaml +0 -52
- endoreg_db/data/_examples/yaml_examples.xlsx +0 -0
- endoreg_db/data/finding/anatomy_colon.yaml +0 -128
- endoreg_db/data/finding/colonoscopy.yaml +0 -40
- endoreg_db/data/finding/colonoscopy_bowel_prep.yaml +0 -56
- endoreg_db/data/finding/complication.yaml +0 -16
- endoreg_db/data/finding/data.yaml +0 -105
- endoreg_db/data/finding/examination_setting.yaml +0 -16
- endoreg_db/data/finding/medication_related.yaml +0 -18
- endoreg_db/data/finding/outcome.yaml +0 -12
- endoreg_db/data/finding_classification/colonoscopy_jnet.yaml +0 -22
- endoreg_db/data/finding_classification/colonoscopy_kudo.yaml +0 -25
- endoreg_db/data/finding_classification/colonoscopy_lesion_circularity.yaml +0 -20
- endoreg_db/data/finding_classification/colonoscopy_lesion_planarity.yaml +0 -24
- endoreg_db/data/finding_classification/colonoscopy_lesion_size.yaml +0 -38
- endoreg_db/data/finding_classification/colonoscopy_lesion_surface.yaml +0 -20
- endoreg_db/data/finding_classification/colonoscopy_location.yaml +0 -49
- endoreg_db/data/finding_classification/colonoscopy_lst.yaml +0 -21
- endoreg_db/data/finding_classification/colonoscopy_nice.yaml +0 -20
- endoreg_db/data/finding_classification/colonoscopy_paris.yaml +0 -26
- endoreg_db/data/finding_classification/colonoscopy_sano.yaml +0 -22
- endoreg_db/data/finding_classification/colonoscopy_summary.yaml +0 -53
- endoreg_db/data/finding_classification/complication_generic.yaml +0 -25
- endoreg_db/data/finding_classification/examination_setting_generic.yaml +0 -40
- endoreg_db/data/finding_classification/histology_colo.yaml +0 -43
- endoreg_db/data/finding_classification/intervention_required.yaml +0 -26
- endoreg_db/data/finding_classification/medication_related.yaml +0 -23
- endoreg_db/data/finding_classification/visualized.yaml +0 -33
- endoreg_db/data/finding_classification_choice/colon_lesion_circularity_default.yaml +0 -32
- endoreg_db/data/finding_classification_choice/colon_lesion_jnet.yaml +0 -15
- endoreg_db/data/finding_classification_choice/colon_lesion_kudo.yaml +0 -23
- endoreg_db/data/finding_classification_choice/colon_lesion_lst.yaml +0 -15
- endoreg_db/data/finding_classification_choice/colon_lesion_nice.yaml +0 -17
- endoreg_db/data/finding_classification_choice/colon_lesion_paris.yaml +0 -57
- endoreg_db/data/finding_classification_choice/colon_lesion_planarity_default.yaml +0 -49
- endoreg_db/data/finding_classification_choice/colon_lesion_sano.yaml +0 -14
- endoreg_db/data/finding_classification_choice/colon_lesion_surface_intact_default.yaml +0 -36
- endoreg_db/data/finding_classification_choice/colonoscopy_location.yaml +0 -229
- endoreg_db/data/finding_classification_choice/colonoscopy_not_complete_reason.yaml +0 -19
- endoreg_db/data/finding_classification_choice/colonoscopy_size.yaml +0 -82
- endoreg_db/data/finding_classification_choice/colonoscopy_summary_worst_finding.yaml +0 -15
- endoreg_db/data/finding_classification_choice/outcome.yaml +0 -19
- endoreg_db/data/finding_intervention/endoscopy.yaml +0 -43
- endoreg_db/data/finding_intervention/endoscopy_colonoscopy.yaml +0 -168
- endoreg_db/data/finding_intervention/endoscopy_egd.yaml +0 -128
- endoreg_db/data/finding_intervention/endoscopy_ercp.yaml +0 -32
- endoreg_db/data/finding_intervention/endoscopy_eus_lower.yaml +0 -9
- endoreg_db/data/finding_intervention/endoscopy_eus_upper.yaml +0 -36
- endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +0 -79
- endoreg_db/data/requirement/age.yaml +0 -26
- endoreg_db/data/requirement/colonoscopy_baseline_austria.yaml +0 -45
- endoreg_db/data/requirement/disease_cardiovascular.yaml +0 -79
- endoreg_db/data/requirement/disease_classification_choice_cardiovascular.yaml +0 -41
- endoreg_db/data/requirement/disease_hepatology.yaml +0 -12
- endoreg_db/data/requirement/disease_misc.yaml +0 -12
- endoreg_db/data/requirement/disease_renal.yaml +0 -96
- endoreg_db/data/requirement/endoscopy_bleeding_risk.yaml +0 -59
- endoreg_db/data/requirement/event_cardiology.yaml +0 -251
- endoreg_db/data/requirement/event_requirements.yaml +0 -145
- endoreg_db/data/requirement/finding_colon_polyp.yaml +0 -50
- endoreg_db/data/requirement/gender.yaml +0 -25
- endoreg_db/data/requirement/lab_value.yaml +0 -441
- endoreg_db/data/requirement/medication.yaml +0 -93
- endoreg_db/data/requirement_operator/age.yaml +0 -13
- endoreg_db/data/requirement_operator/lab_operators.yaml +0 -129
- endoreg_db/data/requirement_operator/model_operators.yaml +0 -96
- endoreg_db/management/commands/init_default_ai_model.py +0 -112
- endoreg_db/management/commands/reset_celery_schedule.py +0 -9
- endoreg_db/management/commands/validate_video.py +0 -204
- endoreg_db/migrations/0002_requirementset_depends_on.py +0 -18
- endoreg_db/migrations/_old/0001_initial.py +0 -1857
- endoreg_db/migrations/_old/0002_add_video_correction_models.py +0 -52
- endoreg_db/migrations/_old/0003_add_center_display_name.py +0 -30
- endoreg_db/migrations/_old/0004_employee_city_employee_post_code_employee_street_and_more.py +0 -68
- endoreg_db/migrations/_old/0004_remove_casetemplate_rules_and_more.py +0 -77
- endoreg_db/migrations/_old/0005_merge_20251111_1003.py +0 -14
- endoreg_db/migrations/_old/0006_sensitivemeta_anonymized_text_and_more.py +0 -68
- endoreg_db/migrations/_old/0007_remove_rule_attribute_dtype_remove_rule_rule_type_and_more.py +0 -89
- endoreg_db/migrations/_old/0008_remove_event_event_classification_and_more.py +0 -27
- endoreg_db/migrations/_old/0009_alter_modelmeta_options_and_more.py +0 -21
- endoreg_db/renames.yml +0 -8
- endoreg_db/serializers/_old/raw_pdf_meta_validation.py +0 -223
- endoreg_db/serializers/_old/raw_video_meta_validation.py +0 -179
- endoreg_db/serializers/_old/video.py +0 -71
- endoreg_db/serializers/meta/pdf_file_meta_extraction.py +0 -115
- endoreg_db/serializers/meta/report_meta.py +0 -53
- endoreg_db/serializers/report/__init__.py +0 -9
- endoreg_db/serializers/report/mixins.py +0 -45
- endoreg_db/serializers/report/report.py +0 -105
- endoreg_db/serializers/report/report_list.py +0 -22
- endoreg_db/serializers/report/secure_file_url.py +0 -26
- endoreg_db/services/requirements_object.py +0 -147
- endoreg_db/services/storage_aware_video_processor.py +0 -370
- endoreg_db/urls/files.py +0 -6
- endoreg_db/urls/label_video_segment_validate.py +0 -33
- endoreg_db/urls/label_video_segments.py +0 -46
- endoreg_db/views/label/__init__.py +0 -5
- endoreg_db/views/label/label.py +0 -15
- endoreg_db/views/label_video_segment/__init__.py +0 -16
- endoreg_db/views/label_video_segment/create_lvs_from_annotation.py +0 -44
- endoreg_db/views/label_video_segment/get_lvs_by_name_and_video.py +0 -50
- endoreg_db/views/label_video_segment/label_video_segment.py +0 -77
- endoreg_db/views/label_video_segment/label_video_segment_by_label.py +0 -174
- endoreg_db/views/label_video_segment/label_video_segment_detail.py +0 -73
- endoreg_db/views/label_video_segment/update_lvs_from_annotation.py +0 -46
- endoreg_db/views/label_video_segment/validate.py +0 -226
- endoreg_db/views/media/segments.py +0 -71
- endoreg_db/views/meta/available_files_list.py +0 -146
- endoreg_db/views/meta/report_meta.py +0 -53
- endoreg_db/views/meta/sensitive_meta_detail.py +0 -85
- endoreg_db/views/misc/secure_file_serving_view.py +0 -80
- endoreg_db/views/misc/secure_file_url_view.py +0 -84
- endoreg_db/views/misc/secure_url_validate.py +0 -79
- endoreg_db/views/patient_examination/DEPRECATED_video_backup.py +0 -164
- endoreg_db/views/patient_finding_location/__init__.py +0 -5
- endoreg_db/views/patient_finding_location/pfl_create.py +0 -70
- endoreg_db/views/patient_finding_morphology/__init__.py +0 -5
- endoreg_db/views/patient_finding_morphology/pfm_create.py +0 -70
- endoreg_db/views/pdf/__init__.py +0 -8
- endoreg_db/views/video/segmentation.py +0 -274
- endoreg_db/views/video/task_status.py +0 -49
- endoreg_db/views/video/timeline.py +0 -46
- endoreg_db/views/video/video_analyze.py +0 -52
- /endoreg_db/data/requirement/{colon_polyp_intervention.yaml → old/colon_polyp_intervention.yaml} +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/colonoscopy_baseline_austria.yaml +0 -0
- /endoreg_db/data/requirement/{coloreg_colon_polyp.yaml → old/coloreg_colon_polyp.yaml} +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/disease_cardiovascular.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/disease_classification_choice_cardiovascular.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/disease_hepatology.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/disease_misc.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/disease_renal.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/endoscopy_bleeding_risk.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/event_cardiology.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/event_requirements.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/finding_colon_polyp.yaml +0 -0
- /endoreg_db/{urls/sensitive_meta.py → data/requirement/old/gender.yaml} +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/lab_value.yaml +0 -0
- /endoreg_db/data/{_examples/requirement → requirement/old}/medication.yaml +0 -0
- /endoreg_db/data/{_examples/requirement_operator → requirement_operator/_old}/age.yaml +0 -0
- /endoreg_db/data/{_examples/requirement_operator → requirement_operator/_old}/lab_operators.yaml +0 -0
- /endoreg_db/data/{_examples/requirement_operator → requirement_operator/_old}/model_operators.yaml +0 -0
- /endoreg_db/{views/pdf/pdf_stream_views.py → import_files/pseudonymization/__init__.py} +0 -0
- /endoreg_db/utils/requirement_operator_logic/{lab_value_operators.py → _old/lab_value_operators.py} +0 -0
- /endoreg_db/utils/requirement_operator_logic/{model_evaluators.py → _old/model_evaluators.py} +0 -0
- {endoreg_db-0.8.8.0.dist-info → endoreg_db-0.8.9.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
from django.conf import settings
|
|
2
1
|
import os
|
|
3
|
-
from django.core.management.base import BaseCommand
|
|
4
2
|
|
|
5
3
|
import yaml
|
|
6
|
-
from
|
|
4
|
+
from django.conf import settings
|
|
5
|
+
from django.core.management.base import BaseCommand
|
|
7
6
|
|
|
7
|
+
from ...data import REPORT_TYPE_DATA_DIR
|
|
8
8
|
|
|
9
9
|
#### CUSTOMIZE
|
|
10
10
|
from ...models import PdfType, ReportReaderFlag
|
|
11
|
-
from ...
|
|
11
|
+
from ...utils import load_model_data_from_yaml
|
|
12
12
|
|
|
13
|
-
SOURCE_DIR =
|
|
13
|
+
SOURCE_DIR = REPORT_TYPE_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
14
14
|
|
|
15
15
|
MODEL_0 = PdfType
|
|
16
16
|
|
|
17
|
-
IMPORT_MODELS = [
|
|
17
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
18
18
|
MODEL_0.__name__,
|
|
19
19
|
]
|
|
20
20
|
|
|
21
21
|
IMPORT_METADATA = {
|
|
22
22
|
MODEL_0.__name__: {
|
|
23
|
-
"dir": SOURCE_DIR,
|
|
24
|
-
"model": MODEL_0,
|
|
23
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
24
|
+
"model": MODEL_0, # e.g. Intervention
|
|
25
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
26
|
+
"model": MODEL_0,
|
|
25
27
|
"foreign_keys": [
|
|
26
28
|
"patient_info_line",
|
|
27
29
|
"endoscope_info_line",
|
|
@@ -39,23 +41,22 @@ IMPORT_METADATA = {
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
|
|
44
|
+
|
|
42
45
|
class Command(BaseCommand):
|
|
43
46
|
help = f"""Load all .yaml files in the {SOURCE_DIR} directory"""
|
|
44
47
|
|
|
45
48
|
def add_arguments(self, parser):
|
|
46
49
|
parser.add_argument(
|
|
47
|
-
|
|
48
|
-
action=
|
|
49
|
-
help=
|
|
50
|
+
"--verbose",
|
|
51
|
+
action="store_true",
|
|
52
|
+
help="Display verbose output",
|
|
50
53
|
)
|
|
51
54
|
|
|
52
55
|
def handle(self, *args, **options):
|
|
53
|
-
verbose = options[
|
|
56
|
+
verbose = options["verbose"]
|
|
57
|
+
verbose = options["verbose"]
|
|
54
58
|
for model_name in IMPORT_MODELS:
|
|
55
59
|
_metadata = IMPORT_METADATA[model_name]
|
|
56
|
-
load_model_data_from_yaml(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
_metadata,
|
|
60
|
-
verbose
|
|
61
|
-
)
|
|
60
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|
|
61
|
+
|
|
62
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|
|
@@ -1,44 +1,41 @@
|
|
|
1
1
|
from django.conf import settings
|
|
2
2
|
from django.core.management.base import BaseCommand
|
|
3
|
+
|
|
4
|
+
from ...data import PROFESSION_DATA_DIR
|
|
3
5
|
from ...models import Profession
|
|
4
6
|
from ...utils import load_model_data_from_yaml
|
|
5
|
-
from ...data import PROFESSION_DATA_DIR
|
|
6
7
|
|
|
7
|
-
SOURCE_DIR = PROFESSION_DATA_DIR
|
|
8
|
+
SOURCE_DIR = PROFESSION_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
8
9
|
|
|
9
10
|
MODEL_0 = Profession
|
|
10
11
|
|
|
11
|
-
IMPORT_MODELS = [
|
|
12
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
12
13
|
MODEL_0.__name__,
|
|
13
14
|
]
|
|
14
15
|
|
|
15
16
|
IMPORT_METADATA = {
|
|
16
17
|
MODEL_0.__name__: {
|
|
17
|
-
"dir": SOURCE_DIR,
|
|
18
|
-
"model": MODEL_0,
|
|
19
|
-
"foreign_keys": [],
|
|
20
|
-
"foreign_key_models": []
|
|
18
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
19
|
+
"model": MODEL_0,
|
|
20
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
21
|
+
"foreign_key_models": [], # e.g. [InterventionType]
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
|
|
24
26
|
class Command(BaseCommand):
|
|
25
27
|
help = """Load all .yaml files in the data/intervention directory
|
|
26
28
|
into the Intervention and InterventionType model"""
|
|
27
29
|
|
|
28
30
|
def add_arguments(self, parser):
|
|
29
31
|
parser.add_argument(
|
|
30
|
-
|
|
31
|
-
action=
|
|
32
|
-
help=
|
|
32
|
+
"--verbose",
|
|
33
|
+
action="store_true",
|
|
34
|
+
help="Display verbose output",
|
|
33
35
|
)
|
|
34
36
|
|
|
35
37
|
def handle(self, *args, **options):
|
|
36
|
-
verbose = options[
|
|
38
|
+
verbose = options["verbose"]
|
|
37
39
|
for model_name in IMPORT_MODELS:
|
|
38
40
|
_metadata = IMPORT_METADATA[model_name]
|
|
39
|
-
load_model_data_from_yaml(
|
|
40
|
-
self,
|
|
41
|
-
model_name,
|
|
42
|
-
_metadata,
|
|
43
|
-
verbose
|
|
44
|
-
)
|
|
41
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
|
+
|
|
3
|
+
from ...data import QUALIFICATION_DATA_DIR
|
|
2
4
|
from ...models import Qualification, QualificationType
|
|
3
5
|
from ...utils import load_model_data_from_yaml
|
|
4
|
-
from ...data import QUALIFICATION_DATA_DIR
|
|
5
6
|
|
|
6
|
-
SOURCE_DIR = QUALIFICATION_DATA_DIR
|
|
7
|
+
SOURCE_DIR = QUALIFICATION_DATA_DIR # qualification data directory
|
|
7
8
|
|
|
8
9
|
model_0 = QualificationType
|
|
9
10
|
model_1 = Qualification
|
|
10
11
|
|
|
11
|
-
IMPORT_MODELS = [
|
|
12
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
12
13
|
model_0.__name__,
|
|
13
14
|
model_1.__name__,
|
|
14
15
|
]
|
|
15
16
|
|
|
16
17
|
IMPORT_METADATA = {
|
|
17
18
|
model_0.__name__: {
|
|
18
|
-
"dir": SOURCE_DIR,
|
|
19
|
-
"model": model_0,
|
|
20
|
-
"foreign_keys": [],
|
|
21
|
-
"foreign_key_models": []
|
|
19
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
20
|
+
"model": model_0,
|
|
21
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
22
|
+
"foreign_key_models": [], # e.g. [InterventionType]
|
|
22
23
|
},
|
|
23
24
|
model_1.__name__: {
|
|
24
|
-
"dir": SOURCE_DIR,
|
|
25
|
-
"model": model_1,
|
|
26
|
-
"foreign_keys": ["qualification_types"],
|
|
27
|
-
"foreign_key_models": [model_0]
|
|
28
|
-
}
|
|
25
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
26
|
+
"model": model_1,
|
|
27
|
+
"foreign_keys": ["qualification_types"], # e.g. ["intervention_types"]
|
|
28
|
+
"foreign_key_models": [model_0], # e.g. [InterventionType]
|
|
29
|
+
},
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
|
|
31
33
|
class Command(BaseCommand):
|
|
32
34
|
help = """Load all .yaml files in the data/qualification directory
|
|
33
35
|
into the Qualification / Qualification Type model"""
|
|
@@ -37,23 +39,18 @@ class Command(BaseCommand):
|
|
|
37
39
|
Adds the --verbose flag to the command-line parser to enable detailed output.
|
|
38
40
|
"""
|
|
39
41
|
parser.add_argument(
|
|
40
|
-
|
|
41
|
-
action=
|
|
42
|
-
help=
|
|
42
|
+
"--verbose",
|
|
43
|
+
action="store_true",
|
|
44
|
+
help="Display verbose output",
|
|
43
45
|
)
|
|
44
46
|
|
|
45
47
|
def handle(self, *args, **options):
|
|
46
48
|
"""
|
|
47
49
|
Loads data from YAML files into the QualificationType and Qualification models.
|
|
48
|
-
|
|
50
|
+
|
|
49
51
|
Iterates over predefined models and imports their data from YAML files using associated metadata. Supports verbose output if enabled via command-line options.
|
|
50
52
|
"""
|
|
51
|
-
verbose = options[
|
|
53
|
+
verbose = options["verbose"]
|
|
52
54
|
for model_name in IMPORT_MODELS:
|
|
53
55
|
_metadata = IMPORT_METADATA[model_name]
|
|
54
|
-
load_model_data_from_yaml(
|
|
55
|
-
self,
|
|
56
|
-
model_name,
|
|
57
|
-
_metadata,
|
|
58
|
-
verbose
|
|
59
|
-
)
|
|
56
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|
|
@@ -1,46 +1,44 @@
|
|
|
1
|
-
from django.conf import settings
|
|
2
1
|
import os
|
|
2
|
+
|
|
3
|
+
import yaml
|
|
4
|
+
from django.conf import settings
|
|
3
5
|
from django.core.management.base import BaseCommand
|
|
6
|
+
|
|
7
|
+
from ...data import REPORT_READER_FLAG_DATA_DIR
|
|
4
8
|
from ...models import ReportReaderFlag
|
|
5
|
-
import yaml
|
|
6
9
|
from ...utils import load_model_data_from_yaml
|
|
7
|
-
from ...data import REPORT_READER_FLAG_DATA_DIR
|
|
8
10
|
|
|
9
|
-
SOURCE_DIR = REPORT_READER_FLAG_DATA_DIR
|
|
11
|
+
SOURCE_DIR = REPORT_READER_FLAG_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
10
12
|
|
|
11
13
|
MODEL_0 = ReportReaderFlag
|
|
12
14
|
|
|
13
|
-
IMPORT_MODELS = [
|
|
15
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
14
16
|
MODEL_0.__name__,
|
|
15
17
|
]
|
|
16
18
|
|
|
17
19
|
IMPORT_METADATA = {
|
|
18
20
|
MODEL_0.__name__: {
|
|
19
|
-
"dir": SOURCE_DIR,
|
|
20
|
-
"model": MODEL_0,
|
|
21
|
-
"foreign_keys": [],
|
|
22
|
-
"foreign_key_models": []
|
|
21
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
22
|
+
"model": MODEL_0,
|
|
23
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
24
|
+
"foreign_key_models": [], # e.g. [InterventionType]
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
|
|
28
|
+
|
|
26
29
|
class Command(BaseCommand):
|
|
27
30
|
help = """Load all .yaml files in the data/intervention directory
|
|
28
31
|
into the Intervention and InterventionType model"""
|
|
29
32
|
|
|
30
33
|
def add_arguments(self, parser):
|
|
31
34
|
parser.add_argument(
|
|
32
|
-
|
|
33
|
-
action=
|
|
34
|
-
help=
|
|
35
|
+
"--verbose",
|
|
36
|
+
action="store_true",
|
|
37
|
+
help="Display verbose output",
|
|
35
38
|
)
|
|
36
39
|
|
|
37
40
|
def handle(self, *args, **options):
|
|
38
|
-
verbose = options[
|
|
41
|
+
verbose = options["verbose"]
|
|
39
42
|
for model_name in IMPORT_MODELS:
|
|
40
43
|
_metadata = IMPORT_METADATA[model_name]
|
|
41
|
-
load_model_data_from_yaml(
|
|
42
|
-
self,
|
|
43
|
-
model_name,
|
|
44
|
-
_metadata,
|
|
45
|
-
verbose
|
|
46
|
-
)
|
|
44
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|
|
@@ -45,7 +45,7 @@ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
|
45
45
|
RequirementOperator.__name__,
|
|
46
46
|
Requirement.__name__,
|
|
47
47
|
RequirementSetType.__name__,
|
|
48
|
-
ExaminationRequirementSet.__name__,
|
|
48
|
+
# ExaminationRequirementSet.__name__,
|
|
49
49
|
RequirementSet.__name__,
|
|
50
50
|
]
|
|
51
51
|
|
|
@@ -62,46 +62,38 @@ def _validate_requirement_configuration(fields: dict, *, entry: dict, model):
|
|
|
62
62
|
return True
|
|
63
63
|
return any(not item for item in value)
|
|
64
64
|
|
|
65
|
-
missing = [
|
|
66
|
-
key for key in ("requirement_types", "operators") if _values_missing(key)
|
|
67
|
-
]
|
|
65
|
+
missing = [key for key in ("requirement_types", "operators") if _values_missing(key)]
|
|
68
66
|
if missing:
|
|
69
67
|
missing_display = ", ".join(missing)
|
|
70
|
-
raise ValueError(
|
|
71
|
-
f"{model.__name__} '{name}' is missing required configuration for: {missing_display}."
|
|
72
|
-
)
|
|
68
|
+
raise ValueError(f"{model.__name__} '{name}' is missing required configuration for: {missing_display}.")
|
|
73
69
|
|
|
74
70
|
|
|
75
71
|
IMPORT_METADATA = {
|
|
76
72
|
RequirementType.__name__: {
|
|
77
73
|
"dir": REQUIREMENT_TYPE_DATA_DIR, # e.g. "interventions"
|
|
78
|
-
"model": RequirementType,
|
|
74
|
+
"model": RequirementType,
|
|
79
75
|
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
80
76
|
"foreign_key_models": [], # e.g. [InterventionType]
|
|
81
77
|
},
|
|
82
78
|
RequirementOperator.__name__: {
|
|
83
79
|
"dir": REQUIREMENT_OPERATOR_DATA_DIR, # e.g. "interventions"
|
|
84
|
-
"model": RequirementOperator,
|
|
80
|
+
"model": RequirementOperator,
|
|
85
81
|
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
86
82
|
"foreign_key_models": [], # e.g. [InterventionType]
|
|
87
83
|
},
|
|
88
84
|
ExaminationRequirementSet.__name__: {
|
|
89
85
|
"dir": EXAMINATION_REQUIREMENT_SET_DATA_DIR, # e.g. "interventions"
|
|
90
|
-
"model": ExaminationRequirementSet,
|
|
91
|
-
"foreign_keys": [
|
|
92
|
-
|
|
93
|
-
], # Through model uses foreign keys of both models
|
|
94
|
-
"foreign_key_models": [
|
|
95
|
-
Examination,
|
|
96
|
-
],
|
|
86
|
+
"model": ExaminationRequirementSet,
|
|
87
|
+
"foreign_keys": [], # Through model uses foreign keys of both models
|
|
88
|
+
"foreign_key_models": [],
|
|
97
89
|
},
|
|
98
90
|
# ExaminationRequirementSet.__name__,
|
|
99
91
|
Requirement.__name__: {
|
|
100
92
|
"dir": REQUIREMENT_DATA_DIR, # e.g. "interventions"
|
|
101
|
-
"model": Requirement,
|
|
93
|
+
"model": Requirement,
|
|
102
94
|
"foreign_keys": [
|
|
103
95
|
"requirement_types",
|
|
104
|
-
"
|
|
96
|
+
"operator",
|
|
105
97
|
"unit",
|
|
106
98
|
"examinations",
|
|
107
99
|
"examination_indications",
|
|
@@ -149,13 +141,13 @@ IMPORT_METADATA = {
|
|
|
149
141
|
},
|
|
150
142
|
RequirementSetType.__name__: {
|
|
151
143
|
"dir": REQUIREMENT_SET_TYPE_DATA_DIR, # e.g. "interventions"
|
|
152
|
-
"model": RequirementSetType,
|
|
144
|
+
"model": RequirementSetType,
|
|
153
145
|
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
154
146
|
"foreign_key_models": [], # e.g. [InterventionType]
|
|
155
147
|
},
|
|
156
148
|
RequirementSet.__name__: {
|
|
157
149
|
"dir": REQUIREMENT_SET_DATA_DIR, # e.g. "interventions"
|
|
158
|
-
"model": RequirementSet,
|
|
150
|
+
"model": RequirementSet,
|
|
159
151
|
"foreign_keys": [
|
|
160
152
|
"requirement_set_type",
|
|
161
153
|
"requirements", # This is a many-to-many field
|
|
@@ -163,6 +155,7 @@ IMPORT_METADATA = {
|
|
|
163
155
|
"information_sources",
|
|
164
156
|
"tags",
|
|
165
157
|
"reqset_exam_links",
|
|
158
|
+
"depends_on",
|
|
166
159
|
], # e.g. ["intervention_types"]
|
|
167
160
|
"foreign_key_models": [
|
|
168
161
|
RequirementSetType,
|
|
@@ -171,6 +164,7 @@ IMPORT_METADATA = {
|
|
|
171
164
|
InformationSource,
|
|
172
165
|
Tag,
|
|
173
166
|
ExaminationRequirementSet,
|
|
167
|
+
RequirementSet,
|
|
174
168
|
], # e.g. [InterventionType]
|
|
175
169
|
},
|
|
176
170
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
|
+
|
|
2
3
|
from endoreg_db.models import Risk, RiskType
|
|
3
|
-
from ...utils import load_model_data_from_yaml
|
|
4
|
-
from ...data import RISK_DATA_DIR, RISK_TYPE_DATA_DIR
|
|
5
4
|
|
|
5
|
+
from ...data import RISK_DATA_DIR, RISK_TYPE_DATA_DIR
|
|
6
|
+
from ...utils import load_model_data_from_yaml
|
|
6
7
|
|
|
7
8
|
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
8
9
|
RiskType.__name__,
|
|
@@ -12,13 +13,13 @@ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
|
12
13
|
IMPORT_METADATA = {
|
|
13
14
|
RiskType.__name__: {
|
|
14
15
|
"dir": RISK_TYPE_DATA_DIR, # e.g. "interventions"
|
|
15
|
-
"model": RiskType,
|
|
16
|
+
"model": RiskType,
|
|
16
17
|
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
17
18
|
"foreign_key_models": [], # e.g. [InterventionType]
|
|
18
19
|
},
|
|
19
20
|
Risk.__name__: {
|
|
20
21
|
"dir": RISK_DATA_DIR, # e.g. "interventions"
|
|
21
|
-
"model": Risk,
|
|
22
|
+
"model": Risk,
|
|
22
23
|
"foreign_keys": ["risk_type"], # e.g. ["intervention_types"]
|
|
23
24
|
"foreign_key_models": [RiskType], # e.g. [InterventionType]
|
|
24
25
|
},
|
|
@@ -32,7 +33,7 @@ class Command(BaseCommand):
|
|
|
32
33
|
def add_arguments(self, parser):
|
|
33
34
|
"""
|
|
34
35
|
Adds the '--verbose' flag to the argument parser for detailed output.
|
|
35
|
-
|
|
36
|
+
|
|
36
37
|
This method extends the given parser by adding an option that, when specified,
|
|
37
38
|
enables verbose output during command execution.
|
|
38
39
|
"""
|
|
@@ -45,7 +46,7 @@ class Command(BaseCommand):
|
|
|
45
46
|
def handle(self, *args, **options):
|
|
46
47
|
"""
|
|
47
48
|
Execute the command to load YAML data into configured models.
|
|
48
|
-
|
|
49
|
+
|
|
49
50
|
Retrieves the verbosity setting from the options and iterates over each model in IMPORT_MODELS.
|
|
50
51
|
For each model, it obtains the corresponding metadata from IMPORT_METADATA and calls the utility
|
|
51
52
|
function load_model_data_from_yaml to load data from the associated YAML files.
|
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
|
+
|
|
3
|
+
from ...data import REPORT_READER_FLAG_DATA_DIR
|
|
2
4
|
from ...models import Shift, ShiftType
|
|
3
5
|
from ...utils import load_model_data_from_yaml
|
|
4
|
-
from ...data import REPORT_READER_FLAG_DATA_DIR
|
|
5
6
|
|
|
6
|
-
SOURCE_DIR = REPORT_READER_FLAG_DATA_DIR
|
|
7
|
+
SOURCE_DIR = REPORT_READER_FLAG_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
7
8
|
|
|
8
9
|
model_0 = ShiftType
|
|
9
10
|
model_1 = Shift
|
|
10
11
|
|
|
11
|
-
IMPORT_MODELS = [
|
|
12
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
12
13
|
model_0.__name__,
|
|
13
14
|
]
|
|
14
15
|
|
|
15
16
|
IMPORT_METADATA = {
|
|
16
17
|
model_0.__name__: {
|
|
17
|
-
"dir": SOURCE_DIR,
|
|
18
|
-
"model": model_0,
|
|
19
|
-
"foreign_keys": [],
|
|
20
|
-
"foreign_key_models": []
|
|
18
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
19
|
+
"model": model_0,
|
|
20
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
21
|
+
"foreign_key_models": [], # e.g. [InterventionType]
|
|
21
22
|
},
|
|
22
23
|
model_1.__name__: {
|
|
23
|
-
"dir": SOURCE_DIR,
|
|
24
|
-
"model": model_1,
|
|
25
|
-
"foreign_keys": ["shift_types"],
|
|
26
|
-
"foreign_key_models": [model_0]
|
|
27
|
-
}
|
|
24
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
25
|
+
"model": model_1,
|
|
26
|
+
"foreign_keys": ["shift_types"], # e.g. ["intervention_types"]
|
|
27
|
+
"foreign_key_models": [model_0], # e.g. [InterventionType]
|
|
28
|
+
},
|
|
28
29
|
}
|
|
29
30
|
|
|
31
|
+
|
|
30
32
|
class Command(BaseCommand):
|
|
31
33
|
help = """Load all .yaml files in the data/shift directory
|
|
32
34
|
into the Shift and ShiftType model"""
|
|
@@ -36,25 +38,20 @@ class Command(BaseCommand):
|
|
|
36
38
|
Adds the --verbose command-line option to enable detailed output during execution.
|
|
37
39
|
"""
|
|
38
40
|
parser.add_argument(
|
|
39
|
-
|
|
40
|
-
action=
|
|
41
|
-
help=
|
|
41
|
+
"--verbose",
|
|
42
|
+
action="store_true",
|
|
43
|
+
help="Display verbose output",
|
|
42
44
|
)
|
|
43
45
|
|
|
44
46
|
def handle(self, *args, **options):
|
|
45
47
|
"""
|
|
46
48
|
Loads YAML data files into models defined in IMPORT_MODELS using provided metadata.
|
|
47
|
-
|
|
49
|
+
|
|
48
50
|
Iterates over each model specified in IMPORT_MODELS, retrieves its import metadata,
|
|
49
51
|
and calls the data loading utility to populate the database from YAML files. Supports
|
|
50
52
|
optional verbose output if enabled via command-line options.
|
|
51
53
|
"""
|
|
52
|
-
verbose = options[
|
|
54
|
+
verbose = options["verbose"]
|
|
53
55
|
for model_name in IMPORT_MODELS:
|
|
54
56
|
_metadata = IMPORT_METADATA[model_name]
|
|
55
|
-
load_model_data_from_yaml(
|
|
56
|
-
self,
|
|
57
|
-
model_name,
|
|
58
|
-
_metadata,
|
|
59
|
-
verbose
|
|
60
|
-
)
|
|
57
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
|
+
|
|
2
3
|
from endoreg_db.models import (
|
|
3
4
|
Tag,
|
|
4
|
-
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
+
from ...data import TAG_DATA_DIR
|
|
7
8
|
from ...utils import load_model_data_from_yaml
|
|
8
|
-
from ...data import (
|
|
9
|
-
TAG_DATA_DIR
|
|
10
|
-
)
|
|
11
|
-
|
|
12
9
|
|
|
13
10
|
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
14
11
|
Tag.__name__,
|
|
@@ -17,7 +14,7 @@ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
|
17
14
|
IMPORT_METADATA = {
|
|
18
15
|
Tag.__name__: {
|
|
19
16
|
"dir": TAG_DATA_DIR, # e.g. "interventions"
|
|
20
|
-
"model": Tag,
|
|
17
|
+
"model": Tag,
|
|
21
18
|
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
22
19
|
"foreign_key_models": [], # e.g. [InterventionType]
|
|
23
20
|
},
|
|
@@ -32,7 +29,7 @@ class Command(BaseCommand):
|
|
|
32
29
|
def add_arguments(self, parser):
|
|
33
30
|
"""
|
|
34
31
|
Add command-line arguments to enable verbose output.
|
|
35
|
-
|
|
32
|
+
|
|
36
33
|
Adds an optional '--verbose' flag to the command parser. When specified,
|
|
37
34
|
this flag causes the command to display detailed output during execution.
|
|
38
35
|
"""
|
|
@@ -45,10 +42,10 @@ class Command(BaseCommand):
|
|
|
45
42
|
def handle(self, *args, **options):
|
|
46
43
|
"""
|
|
47
44
|
Executes data import for requirement models from YAML files.
|
|
48
|
-
|
|
49
|
-
Retrieves the verbosity setting from the command options and iterates over each model
|
|
50
|
-
listed in IMPORT_MODELS. For each model, it obtains the corresponding metadata from
|
|
51
|
-
IMPORT_METADATA and calls a helper to load the YAML data into the database. Verbose mode
|
|
45
|
+
|
|
46
|
+
Retrieves the verbosity setting from the command options and iterates over each model
|
|
47
|
+
listed in IMPORT_MODELS. For each model, it obtains the corresponding metadata from
|
|
48
|
+
IMPORT_METADATA and calls a helper to load the YAML data into the database. Verbose mode
|
|
52
49
|
enables detailed output during the process.
|
|
53
50
|
"""
|
|
54
51
|
verbose = options["verbose"]
|
|
@@ -1,46 +1,44 @@
|
|
|
1
|
-
from django.conf import settings
|
|
2
1
|
import os
|
|
2
|
+
|
|
3
|
+
import yaml
|
|
4
|
+
from django.conf import settings
|
|
3
5
|
from django.core.management.base import BaseCommand
|
|
6
|
+
|
|
7
|
+
from ...data import UNIT_DATA_DIR
|
|
4
8
|
from ...models import Unit
|
|
5
|
-
import yaml
|
|
6
9
|
from ...utils import load_model_data_from_yaml
|
|
7
|
-
from ...data import UNIT_DATA_DIR
|
|
8
10
|
|
|
9
|
-
SOURCE_DIR = UNIT_DATA_DIR
|
|
11
|
+
SOURCE_DIR = UNIT_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
10
12
|
|
|
11
13
|
MODEL_0 = Unit
|
|
12
14
|
|
|
13
|
-
IMPORT_MODELS = [
|
|
15
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
14
16
|
MODEL_0.__name__,
|
|
15
17
|
]
|
|
16
18
|
|
|
17
19
|
IMPORT_METADATA = {
|
|
18
20
|
MODEL_0.__name__: {
|
|
19
|
-
"dir": SOURCE_DIR,
|
|
20
|
-
"model": MODEL_0,
|
|
21
|
-
"foreign_keys": [],
|
|
22
|
-
"foreign_key_models": []
|
|
21
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
22
|
+
"model": MODEL_0,
|
|
23
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
24
|
+
"foreign_key_models": [], # e.g. [InterventionType]
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
|
|
28
|
+
|
|
26
29
|
class Command(BaseCommand):
|
|
27
30
|
help = """Load all .yaml files in the data/intervention directory
|
|
28
31
|
into the Intervention and InterventionType model"""
|
|
29
32
|
|
|
30
33
|
def add_arguments(self, parser):
|
|
31
34
|
parser.add_argument(
|
|
32
|
-
|
|
33
|
-
action=
|
|
34
|
-
help=
|
|
35
|
+
"--verbose",
|
|
36
|
+
action="store_true",
|
|
37
|
+
help="Display verbose output",
|
|
35
38
|
)
|
|
36
39
|
|
|
37
40
|
def handle(self, *args, **options):
|
|
38
|
-
verbose = options[
|
|
41
|
+
verbose = options["verbose"]
|
|
39
42
|
for model_name in IMPORT_MODELS:
|
|
40
43
|
_metadata = IMPORT_METADATA[model_name]
|
|
41
|
-
load_model_data_from_yaml(
|
|
42
|
-
self,
|
|
43
|
-
model_name,
|
|
44
|
-
_metadata,
|
|
45
|
-
verbose
|
|
46
|
-
)
|
|
44
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|