endoreg-db 0.3.1__tar.gz → 0.3.3__tar.gz
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-0.3.1 → endoreg_db-0.3.3}/PKG-INFO +2 -1
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/__init__.py +3 -1
- endoreg_db-0.3.3/endoreg_db/data/center/data.yaml +52 -0
- endoreg_db-0.3.3/endoreg_db/data/pdf_type/data.yaml +28 -0
- endoreg_db-0.3.3/endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +26 -0
- endoreg_db-0.3.3/endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +19 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_base_db_data.py +12 -3
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_center_data.py +3 -3
- endoreg_db-0.3.3/endoreg_db/management/commands/load_pdf_type_data.py +61 -0
- endoreg_db-0.3.3/endoreg_db/management/commands/load_report_reader_flag.py +46 -0
- endoreg_db-0.3.3/endoreg_db/management/commands/reset_celery_schedule.py +9 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0013_rawpdffile.py +31 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0014_pdftype_alter_rawpdffile_file_pdfmeta.py +38 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0015_rename_report_processed_rawpdffile_state_report_processed_and_more.py +31 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0016_rawpdffile_state_report_processing_required.py +18 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0017_firstname_lastname_center_first_names_and_more.py +37 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0018_reportreaderflag_reportreaderconfig.py +37 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0019_pdftype_cut_off_above_lines_and_more.py +42 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0020_rename_endoscopy_info_line_pdftype_endoscope_info_line.py +18 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0021_alter_pdftype_endoscope_info_line.py +19 -0
- endoreg_db-0.3.3/endoreg_db/migrations/0022_alter_pdftype_endoscope_info_line.py +19 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/__init__.py +2 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/center.py +6 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/__init__.py +2 -3
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/import_classes/__init__.py +1 -0
- endoreg_db-0.3.3/endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +35 -0
- endoreg_db-0.3.3/endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +28 -0
- endoreg_db-0.3.1/endoreg_db/models/data_file/import_classes/processing_functions.py → endoreg_db-0.3.3/endoreg_db/models/data_file/import_classes/processing_functions/video.py +6 -7
- endoreg_db-0.3.3/endoreg_db/models/data_file/import_classes/raw_pdf.py +185 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/import_classes/raw_video.py +7 -5
- endoreg_db-0.3.3/endoreg_db/models/data_file/metadata/__init__.py +3 -0
- endoreg_db-0.3.3/endoreg_db/models/data_file/metadata/pdf_meta.py +70 -0
- endoreg_db-0.3.3/endoreg_db/models/data_file/metadata/sensitive_meta.py +31 -0
- endoreg_db-0.3.1/endoreg_db/models/data_file/metadata/__init__.py → endoreg_db-0.3.3/endoreg_db/models/data_file/metadata/video_meta.py +1 -2
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/report_file.py +1 -0
- endoreg_db-0.3.3/endoreg_db/models/persons/__init__.py +6 -0
- endoreg_db-0.3.3/endoreg_db/models/persons/first_name.py +18 -0
- endoreg_db-0.3.3/endoreg_db/models/persons/last_name.py +20 -0
- endoreg_db-0.3.3/endoreg_db/models/report_reader/__init__.py +2 -0
- endoreg_db-0.3.3/endoreg_db/models/report_reader/report_reader_config.py +53 -0
- endoreg_db-0.3.3/endoreg_db/models/report_reader/report_reader_flag.py +20 -0
- endoreg_db-0.3.3/endoreg_db/utils/dataloader.py +185 -0
- endoreg_db-0.3.3/endoreg_db/utils/hashs.py +34 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/pyproject.toml +2 -1
- endoreg_db-0.3.1/endoreg_db/data/center/data.yaml +0 -7
- endoreg_db-0.3.1/endoreg_db/models/data_file/metadata/sensitive_meta.py +0 -13
- endoreg_db-0.3.1/endoreg_db/models/persons/__init__.py +0 -4
- endoreg_db-0.3.1/endoreg_db/utils/dataloader.py +0 -69
- endoreg_db-0.3.1/endoreg_db/utils/hashs.py +0 -16
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/LICENSE +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/README.md +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/admin.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/apps.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/active_model/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/endoscope_type/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/endoscopy_processor/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/examination/examinations/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/examination/time/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/examination/time-type/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/examination/type/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/information_source/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/label/label/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/label/label-set/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/label/label-type/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/model_type/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/profession/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/unit/data.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/unit/length.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/unit/volume.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/data/unit/weight.yaml +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/forms/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/forms/settings/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/forms/unit.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/_load_model_template.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/delete_all.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/delete_legacy_images.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/delete_legacy_videos.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/extract_legacy_video_frames.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/fetch_legacy_image_dataset.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/fix_auth_permission.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/import_legacy_images.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/import_legacy_videos.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_active_model_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_ai_model_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_endoscope_type_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_endoscopy_processor_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_examination_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_information_source.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_label_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_profession_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_unit_data.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/load_user_groups.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/management/commands/register_ai_model.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0001_initial.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0002_rawvideofile.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0003_rawvideofile_frames_required.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0004_rename_hash_rawvideofile_video_hash.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0005_ffmpegmeta_remove_videoimportmeta_center_and_more.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0006_rawvideofile_center_alter_videometa_processor.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0007_rawvideofile_processor.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0008_rename_frames_required_rawvideofile_state_frames_required.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0009_sensitivemeta_rawvideofile_sensitive_meta.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0010_rename_endoscope_serial_number_sensitivemeta_endoscope_sn.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0011_rawvideofile_state_sensitive_data_retrieved.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/0012_rawvideofile_prediction_dir_and_more.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/migrations/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/ai_model/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/ai_model/active_model.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/ai_model/model_meta.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/ai_model/model_type.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/ai_model/utils.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/annotation/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/annotation/binary_classification_annotation_task.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/annotation/image_classification.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/base_classes/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/base_classes/abstract_frame.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/base_classes/abstract_video.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/frame.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/video/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/video/import_meta.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/video/video.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/data_file/video_segment.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/examination/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/examination/examination.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/examination/examination_time.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/examination/examination_time_type.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/examination/examination_type.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/hardware/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/hardware/endoscope.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/hardware/endoscopy_processor.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/information_source.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/label/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/label/label.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/legacy_data/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/legacy_data/image.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/patient_examination/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/permissions/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/persons/examiner/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/persons/examiner/examiner.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/persons/examiner/examiner_type.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/persons/patient.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/persons/person.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/persons/portal_user_information.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/prediction/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/prediction/image_classification.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/prediction/video_prediction_meta.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models/unit.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/models.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/annotations/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/annotations/legacy.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/annotation.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/center.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/model.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/patient.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/patient_examination.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/prediction.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/report_file.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/video.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/video_import_meta.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/get/video_prediction_meta.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/queries/sanity/__init_.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/ai_model.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/annotation.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/center.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/examination.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/frame.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/hardware.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/label.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/patient.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/prediction.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/report_file.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/serializers/video.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/tests.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/__init__.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/cropping.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/file_operations.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/legacy_ocr.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/ocr.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/uuid.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/utils/video_metadata.py +0 -0
- {endoreg_db-0.3.1 → endoreg_db-0.3.3}/endoreg_db/views.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: endoreg-db
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: EndoReg Db Django App
|
|
5
5
|
License: GNU3
|
|
6
6
|
Author: Thomas J. Lux
|
|
@@ -9,6 +9,7 @@ Classifier: License :: Other/Proprietary License
|
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Requires-Dist: agl-report-reader (>=0.3.0,<0.4.0)
|
|
12
13
|
Requires-Dist: django (>=4.2,<4.3)
|
|
13
14
|
Requires-Dist: django-bootstrap5 (>=23.4,<24.0)
|
|
14
15
|
Requires-Dist: djangorestframework (>=3.14.0,<4.0.0)
|
|
@@ -11,4 +11,6 @@ MODEL_TYPE_DATA_DIR = DATA_DIR / "model_type"
|
|
|
11
11
|
ENDOSCOPY_PROCESSOR_DATA_DIR = DATA_DIR / "endoscopy_processor"
|
|
12
12
|
ENDOSCOPE_TYPE_DATA_DIR = DATA_DIR / "endoscope_type"
|
|
13
13
|
ACTIVE_MODEL_DATA_DIR = DATA_DIR / "active_model"
|
|
14
|
-
PROFESSION_DATA_DIR = DATA_DIR / "profession"
|
|
14
|
+
PROFESSION_DATA_DIR = DATA_DIR / "profession"
|
|
15
|
+
PDF_TYPE_DATA_DIR = DATA_DIR / "pdf_type"
|
|
16
|
+
REPORT_READER_FLAG_DATA_DIR = DATA_DIR / "report_reader_flag"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# center/data.yaml
|
|
2
|
+
|
|
3
|
+
- model: endoreg_db.center
|
|
4
|
+
fields:
|
|
5
|
+
name: "university_hospital_wuerzburg"
|
|
6
|
+
name_de: "Universitätsklinikum Würzburg"
|
|
7
|
+
name_en: "University Hospital Würzburg"
|
|
8
|
+
|
|
9
|
+
first_names: [
|
|
10
|
+
"Markus",
|
|
11
|
+
"Linhel",
|
|
12
|
+
"Rainer",
|
|
13
|
+
"Hans",
|
|
14
|
+
"Anja",
|
|
15
|
+
"Dorothea",
|
|
16
|
+
"Doro",
|
|
17
|
+
"Angelika",
|
|
18
|
+
"Sven",
|
|
19
|
+
"Theodor",
|
|
20
|
+
"Alexander",
|
|
21
|
+
"Mandy",
|
|
22
|
+
"Kathrin",
|
|
23
|
+
"Florian",
|
|
24
|
+
"Philip",
|
|
25
|
+
"Laura"
|
|
26
|
+
]
|
|
27
|
+
last_names: [
|
|
28
|
+
"Kozielski",
|
|
29
|
+
"Reiter",
|
|
30
|
+
"Purrer",
|
|
31
|
+
"Kudlich",
|
|
32
|
+
"Brand",
|
|
33
|
+
"Weich",
|
|
34
|
+
"Lux",
|
|
35
|
+
"Meining",
|
|
36
|
+
"Hann",
|
|
37
|
+
"Retzbach",
|
|
38
|
+
"Hose",
|
|
39
|
+
"Henniger",
|
|
40
|
+
"Weich",
|
|
41
|
+
"Dela Cruz",
|
|
42
|
+
"Wiesemann",
|
|
43
|
+
"Weise",
|
|
44
|
+
"Sodmann"
|
|
45
|
+
]
|
|
46
|
+
- model: endoreg_db.center
|
|
47
|
+
fields:
|
|
48
|
+
name: "rbk_stuttgart"
|
|
49
|
+
name_de: "Robert-Bosch-Krankenhaus Stuttgart"
|
|
50
|
+
name_en: "Robert Bosch Hospital Stuttgart"
|
|
51
|
+
first_names: [] # many to many; if foreign key, we would just have a string; strings represent "name" attribute
|
|
52
|
+
last_names: []
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
- model: endoreg_db.pdf_type
|
|
3
|
+
fields:
|
|
4
|
+
name: "ukw-endoscopy-examination-report-generic"
|
|
5
|
+
patient_info_line: "ukw-examination-generic-patient-info-line"
|
|
6
|
+
endoscope_info_line: "ukw-examination-generic-endoscope-info-line"
|
|
7
|
+
examiner_info_line: "ukw-examination-generic-examiner-info-line"
|
|
8
|
+
cut_off_above_lines: [
|
|
9
|
+
"ukw-examination-generic-endoscope-info-line",
|
|
10
|
+
"ukw-examination-generic-examiner-info-line"
|
|
11
|
+
]
|
|
12
|
+
cut_off_below_lines: [
|
|
13
|
+
"ukw-examination-generic-cut-off-below-line-01"
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
- model: endoreg_db.pdf_type
|
|
18
|
+
fields:
|
|
19
|
+
name: "ukw-endoscopy-histology-report-generic"
|
|
20
|
+
patient_info_line: "ukw-histology-generic-patient-info-line"
|
|
21
|
+
endoscope_info_line: "ukw-histology-generic-endoscope-info-line"
|
|
22
|
+
examiner_info_line: "ukw-histology-generic-examiner-info-line"
|
|
23
|
+
cut_off_above_lines: [
|
|
24
|
+
"ukw-histology-generic-patient-info-line"
|
|
25
|
+
]
|
|
26
|
+
cut_off_below_lines: [
|
|
27
|
+
"ukw-endoscopy-histology-cut-off-below-line-flag-01"
|
|
28
|
+
]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# yaml definitions for report reader flag objects
|
|
2
|
+
# PATIENT_INFO_LINE_FLAG = "Patient: "
|
|
3
|
+
# ENDOSCOPE_INFO_LINE_FLAG = "Gerät: "
|
|
4
|
+
# EXAMINER_INFO_LINE_FLAG = "1. Unters.:"
|
|
5
|
+
# CUT_OFF_BELOW_LINE_FLAG = "________________"
|
|
6
|
+
|
|
7
|
+
- model: endoreg_db.report_reader_flag
|
|
8
|
+
fields:
|
|
9
|
+
name: "ukw-examination-generic-patient-info-line"
|
|
10
|
+
value: "Patient: "
|
|
11
|
+
|
|
12
|
+
- model: endoreg_db.report_reader_flag
|
|
13
|
+
fields:
|
|
14
|
+
name: "ukw-examination-generic-endoscope-info-line"
|
|
15
|
+
value: "Gerät: "
|
|
16
|
+
|
|
17
|
+
- model: endoreg_db.report_reader_flag
|
|
18
|
+
fields:
|
|
19
|
+
name: "ukw-examination-generic-examiner-info-line"
|
|
20
|
+
value: "1. Unters.:"
|
|
21
|
+
|
|
22
|
+
- model: endoreg_db.report_reader_flag
|
|
23
|
+
fields:
|
|
24
|
+
name: "ukw-examination-generic-cut-off-below-line-01"
|
|
25
|
+
value: "________________"
|
|
26
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
- model: endoreg_db.report_reader_flag
|
|
2
|
+
fields:
|
|
3
|
+
name: "ukw-histology-generic-patient-info-line"
|
|
4
|
+
value: "Patient:"
|
|
5
|
+
|
|
6
|
+
- model: endoreg_db.report_reader_flag
|
|
7
|
+
fields:
|
|
8
|
+
name: "ukw-histology-generic-examiner-info-line"
|
|
9
|
+
value: "Eingang am:"
|
|
10
|
+
|
|
11
|
+
- model: endoreg_db.report_reader_flag
|
|
12
|
+
fields:
|
|
13
|
+
name: "ukw-histology-generic-cut-off-below-line-01"
|
|
14
|
+
value: "$$-3"
|
|
15
|
+
|
|
16
|
+
- model: endoreg_db.report_reader_flag
|
|
17
|
+
fields:
|
|
18
|
+
name: "ukw-histology-generic-endoscope-info-line"
|
|
19
|
+
value: ""
|
|
@@ -23,6 +23,14 @@ class Command(BaseCommand):
|
|
|
23
23
|
self.stdout.write(self.style.SUCCESS("Running load_user_groups..."))
|
|
24
24
|
call_command('load_user_groups', verbose=verbose)
|
|
25
25
|
|
|
26
|
+
# run the load_report_reader_flag command
|
|
27
|
+
self.stdout.write(self.style.SUCCESS("Running load_report_reader_flag..."))
|
|
28
|
+
call_command('load_report_reader_flag', verbose=verbose)
|
|
29
|
+
|
|
30
|
+
# Run the load_pdf_type_data command
|
|
31
|
+
self.stdout.write(self.style.SUCCESS("Running load_pdf_type_data..."))
|
|
32
|
+
call_command('load_pdf_type_data', verbose=verbose)
|
|
33
|
+
|
|
26
34
|
# Run the load_endoscopy_processor_data command
|
|
27
35
|
self.stdout.write(self.style.SUCCESS("Running load_endoscopy_processor_data..."))
|
|
28
36
|
call_command('load_endoscopy_processor_data', verbose=verbose)
|
|
@@ -55,8 +63,9 @@ class Command(BaseCommand):
|
|
|
55
63
|
self.stdout.write(self.style.SUCCESS("Running load_ai_model_data..."))
|
|
56
64
|
call_command('load_ai_model_data', verbose=verbose)
|
|
57
65
|
|
|
58
|
-
#
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
# Necessary? Migrate? FIXME
|
|
67
|
+
# # Run the load_active_model_data command
|
|
68
|
+
# self.stdout.write(self.style.SUCCESS("Running load_active_model_data..."))
|
|
69
|
+
# call_command('load_active_model_data', verbose=verbose)
|
|
61
70
|
|
|
62
71
|
self.stdout.write(self.style.SUCCESS("All data loading commands executed successfully."))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
2
|
from ...utils import load_model_data_from_yaml
|
|
3
|
-
from ...models import Center
|
|
3
|
+
from ...models import Center, FirstName, LastName
|
|
4
4
|
from ...data import CENTER_DATA_DIR
|
|
5
5
|
|
|
6
6
|
SOURCE_DIR = CENTER_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
@@ -15,8 +15,8 @@ IMPORT_METADATA = {
|
|
|
15
15
|
MODEL_0.__name__: {
|
|
16
16
|
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
17
17
|
"model": MODEL_0, # e.g. Intervention
|
|
18
|
-
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
19
|
-
"foreign_key_models": [] # e.g. [InterventionType]
|
|
18
|
+
"foreign_keys": ["first_names", "last_names"], # e.g. ["intervention_types"]
|
|
19
|
+
"foreign_key_models": [FirstName, LastName] # e.g. [InterventionType]
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
import os
|
|
3
|
+
from django.core.management.base import BaseCommand
|
|
4
|
+
|
|
5
|
+
import yaml
|
|
6
|
+
from ...utils import load_model_data_from_yaml
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
#### CUSTOMIZE
|
|
10
|
+
from ...models import PdfType, ReportReaderFlag
|
|
11
|
+
from ...data import PDF_TYPE_DATA_DIR
|
|
12
|
+
|
|
13
|
+
SOURCE_DIR = PDF_TYPE_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
14
|
+
|
|
15
|
+
MODEL_0 = PdfType
|
|
16
|
+
|
|
17
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
18
|
+
MODEL_0.__name__,
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
IMPORT_METADATA = {
|
|
22
|
+
MODEL_0.__name__: {
|
|
23
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
24
|
+
"model": MODEL_0, # e.g. Intervention
|
|
25
|
+
"foreign_keys": [
|
|
26
|
+
"patient_info_line",
|
|
27
|
+
"endoscope_info_line",
|
|
28
|
+
"examiner_info_line",
|
|
29
|
+
"cut_off_below_lines",
|
|
30
|
+
"cut_off_above_lines"
|
|
31
|
+
], # e.g. ["intervention_types"]
|
|
32
|
+
"foreign_key_models": [
|
|
33
|
+
ReportReaderFlag,
|
|
34
|
+
ReportReaderFlag,
|
|
35
|
+
ReportReaderFlag,
|
|
36
|
+
ReportReaderFlag,
|
|
37
|
+
ReportReaderFlag
|
|
38
|
+
] # e.g. [InterventionType]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
class Command(BaseCommand):
|
|
43
|
+
help = f"""Load all .yaml files in the {SOURCE_DIR} directory"""
|
|
44
|
+
|
|
45
|
+
def add_arguments(self, parser):
|
|
46
|
+
parser.add_argument(
|
|
47
|
+
'--verbose',
|
|
48
|
+
action='store_true',
|
|
49
|
+
help='Display verbose output',
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
def handle(self, *args, **options):
|
|
53
|
+
verbose = options['verbose']
|
|
54
|
+
for model_name in IMPORT_MODELS:
|
|
55
|
+
_metadata = IMPORT_METADATA[model_name]
|
|
56
|
+
load_model_data_from_yaml(
|
|
57
|
+
self,
|
|
58
|
+
model_name,
|
|
59
|
+
_metadata,
|
|
60
|
+
verbose
|
|
61
|
+
)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
import os
|
|
3
|
+
from django.core.management.base import BaseCommand
|
|
4
|
+
from ...models import ReportReaderFlag
|
|
5
|
+
import yaml
|
|
6
|
+
from ...utils import load_model_data_from_yaml
|
|
7
|
+
from ...data import REPORT_READER_FLAG_DATA_DIR
|
|
8
|
+
|
|
9
|
+
SOURCE_DIR = REPORT_READER_FLAG_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
10
|
+
|
|
11
|
+
MODEL_0 = ReportReaderFlag
|
|
12
|
+
|
|
13
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
14
|
+
MODEL_0.__name__,
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
IMPORT_METADATA = {
|
|
18
|
+
MODEL_0.__name__: {
|
|
19
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
20
|
+
"model": MODEL_0, # e.g. Intervention
|
|
21
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
22
|
+
"foreign_key_models": [] # e.g. [InterventionType]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
class Command(BaseCommand):
|
|
27
|
+
help = """Load all .yaml files in the data/intervention directory
|
|
28
|
+
into the Intervention and InterventionType model"""
|
|
29
|
+
|
|
30
|
+
def add_arguments(self, parser):
|
|
31
|
+
parser.add_argument(
|
|
32
|
+
'--verbose',
|
|
33
|
+
action='store_true',
|
|
34
|
+
help='Display verbose output',
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
def handle(self, *args, **options):
|
|
38
|
+
verbose = options['verbose']
|
|
39
|
+
for model_name in IMPORT_MODELS:
|
|
40
|
+
_metadata = IMPORT_METADATA[model_name]
|
|
41
|
+
load_model_data_from_yaml(
|
|
42
|
+
self,
|
|
43
|
+
model_name,
|
|
44
|
+
_metadata,
|
|
45
|
+
verbose
|
|
46
|
+
)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from django.core.management.base import BaseCommand
|
|
2
|
+
from django_celery_beat.models import PeriodicTask
|
|
3
|
+
|
|
4
|
+
class Command(BaseCommand):
|
|
5
|
+
help = 'Deletes all periodic tasks from the database to reset the schedule'
|
|
6
|
+
|
|
7
|
+
def handle(self, *args, **kwargs):
|
|
8
|
+
PeriodicTask.objects.all().delete()
|
|
9
|
+
self.stdout.write(self.style.SUCCESS('Successfully deleted all periodic tasks.'))
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-23 15:39
|
|
2
|
+
|
|
3
|
+
import django.core.files.storage
|
|
4
|
+
import django.core.validators
|
|
5
|
+
from django.db import migrations, models
|
|
6
|
+
import django.db.models.deletion
|
|
7
|
+
import pathlib
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Migration(migrations.Migration):
|
|
11
|
+
|
|
12
|
+
dependencies = [
|
|
13
|
+
('endoreg_db', '0012_rawvideofile_prediction_dir_and_more'),
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
operations = [
|
|
17
|
+
migrations.CreateModel(
|
|
18
|
+
name='RawPdfFile',
|
|
19
|
+
fields=[
|
|
20
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
21
|
+
('file', models.FileField(storage=django.core.files.storage.FileSystemStorage(location=pathlib.PurePosixPath('/mnt/hdd-sensitive/Pseudo/import/report')), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])])),
|
|
22
|
+
('pdf_hash', models.CharField(max_length=255, unique=True)),
|
|
23
|
+
('report_processed', models.BooleanField(default=False)),
|
|
24
|
+
('text', models.TextField(blank=True, null=True)),
|
|
25
|
+
('anonymized_text', models.TextField(blank=True, null=True)),
|
|
26
|
+
('raw_meta', models.JSONField(blank=True, null=True)),
|
|
27
|
+
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
28
|
+
('sensitive_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='raw_pdf_file', to='endoreg_db.sensitivemeta')),
|
|
29
|
+
],
|
|
30
|
+
),
|
|
31
|
+
]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-23 16:45
|
|
2
|
+
|
|
3
|
+
import django.core.files.storage
|
|
4
|
+
import django.core.validators
|
|
5
|
+
from django.db import migrations, models
|
|
6
|
+
import django.db.models.deletion
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Migration(migrations.Migration):
|
|
10
|
+
|
|
11
|
+
dependencies = [
|
|
12
|
+
('endoreg_db', '0013_rawpdffile'),
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
operations = [
|
|
16
|
+
migrations.CreateModel(
|
|
17
|
+
name='PdfType',
|
|
18
|
+
fields=[
|
|
19
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
20
|
+
('name', models.CharField(max_length=255)),
|
|
21
|
+
],
|
|
22
|
+
),
|
|
23
|
+
migrations.AlterField(
|
|
24
|
+
model_name='rawpdffile',
|
|
25
|
+
name='file',
|
|
26
|
+
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location='/mnt/hdd-sensitive/Pseudo/import/pdf'), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])]),
|
|
27
|
+
),
|
|
28
|
+
migrations.CreateModel(
|
|
29
|
+
name='PdfMeta',
|
|
30
|
+
fields=[
|
|
31
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
32
|
+
('date', models.DateField()),
|
|
33
|
+
('time', models.TimeField()),
|
|
34
|
+
('pdf_hash', models.CharField(max_length=255, unique=True)),
|
|
35
|
+
('pdf_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.pdftype')),
|
|
36
|
+
],
|
|
37
|
+
),
|
|
38
|
+
]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 09:20
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('endoreg_db', '0014_pdftype_alter_rawpdffile_file_pdfmeta'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.RenameField(
|
|
15
|
+
model_name='rawpdffile',
|
|
16
|
+
old_name='report_processed',
|
|
17
|
+
new_name='state_report_processed',
|
|
18
|
+
),
|
|
19
|
+
migrations.AddField(
|
|
20
|
+
model_name='rawpdffile',
|
|
21
|
+
name='center',
|
|
22
|
+
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center'),
|
|
23
|
+
preserve_default=False,
|
|
24
|
+
),
|
|
25
|
+
migrations.AddField(
|
|
26
|
+
model_name='rawpdffile',
|
|
27
|
+
name='pdf_type',
|
|
28
|
+
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.pdftype'),
|
|
29
|
+
preserve_default=False,
|
|
30
|
+
),
|
|
31
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 10:09
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('endoreg_db', '0015_rename_report_processed_rawpdffile_state_report_processed_and_more'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name='rawpdffile',
|
|
15
|
+
name='state_report_processing_required',
|
|
16
|
+
field=models.BooleanField(default=True),
|
|
17
|
+
),
|
|
18
|
+
]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 12:26
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('endoreg_db', '0016_rawpdffile_state_report_processing_required'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.CreateModel(
|
|
14
|
+
name='FirstName',
|
|
15
|
+
fields=[
|
|
16
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
17
|
+
('name', models.CharField(max_length=255, unique=True)),
|
|
18
|
+
],
|
|
19
|
+
),
|
|
20
|
+
migrations.CreateModel(
|
|
21
|
+
name='LastName',
|
|
22
|
+
fields=[
|
|
23
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
24
|
+
('name', models.CharField(max_length=255, unique=True)),
|
|
25
|
+
],
|
|
26
|
+
),
|
|
27
|
+
migrations.AddField(
|
|
28
|
+
model_name='center',
|
|
29
|
+
name='first_names',
|
|
30
|
+
field=models.ManyToManyField(related_name='centers', to='endoreg_db.firstname'),
|
|
31
|
+
),
|
|
32
|
+
migrations.AddField(
|
|
33
|
+
model_name='center',
|
|
34
|
+
name='last_names',
|
|
35
|
+
field=models.ManyToManyField(related_name='centers', to='endoreg_db.lastname'),
|
|
36
|
+
),
|
|
37
|
+
]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 14:13
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('endoreg_db', '0017_firstname_lastname_center_first_names_and_more'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.CreateModel(
|
|
15
|
+
name='ReportReaderFlag',
|
|
16
|
+
fields=[
|
|
17
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
18
|
+
('name', models.CharField(max_length=255, unique=True)),
|
|
19
|
+
('value', models.CharField(max_length=255)),
|
|
20
|
+
],
|
|
21
|
+
),
|
|
22
|
+
migrations.CreateModel(
|
|
23
|
+
name='ReportReaderConfig',
|
|
24
|
+
fields=[
|
|
25
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
26
|
+
('locale', models.CharField(default='de_DE', max_length=10)),
|
|
27
|
+
('text_date_format', models.CharField(default='%d.%m.%Y', max_length=10)),
|
|
28
|
+
('cut_off_above', models.ManyToManyField(related_name='report_reader_configs_cut_off_above', to='endoreg_db.reportreaderflag')),
|
|
29
|
+
('cut_off_below', models.ManyToManyField(related_name='report_reader_configs_cut_off_below', to='endoreg_db.reportreaderflag')),
|
|
30
|
+
('endoscope_info_line_flag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_reader_configs_endoscope_info_line', to='endoreg_db.reportreaderflag')),
|
|
31
|
+
('examiner_info_line_flag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_reader_configs_examiner_info_line', to='endoreg_db.reportreaderflag')),
|
|
32
|
+
('first_names', models.ManyToManyField(related_name='report_reader_configs', to='endoreg_db.firstname')),
|
|
33
|
+
('last_names', models.ManyToManyField(related_name='report_reader_configs', to='endoreg_db.lastname')),
|
|
34
|
+
('patient_info_line_flag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_reader_configs_patient_info_line', to='endoreg_db.reportreaderflag')),
|
|
35
|
+
],
|
|
36
|
+
),
|
|
37
|
+
]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 14:57
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('endoreg_db', '0018_reportreaderflag_reportreaderconfig'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.AddField(
|
|
15
|
+
model_name='pdftype',
|
|
16
|
+
name='cut_off_above_lines',
|
|
17
|
+
field=models.ManyToManyField(related_name='pdf_type_cut_off_above_lines', to='endoreg_db.reportreaderflag'),
|
|
18
|
+
),
|
|
19
|
+
migrations.AddField(
|
|
20
|
+
model_name='pdftype',
|
|
21
|
+
name='cut_off_below_lines',
|
|
22
|
+
field=models.ManyToManyField(related_name='pdf_type_cut_off_below_lines', to='endoreg_db.reportreaderflag'),
|
|
23
|
+
),
|
|
24
|
+
migrations.AddField(
|
|
25
|
+
model_name='pdftype',
|
|
26
|
+
name='endoscopy_info_line',
|
|
27
|
+
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_endoscopy_info_line', to='endoreg_db.reportreaderflag'),
|
|
28
|
+
preserve_default=False,
|
|
29
|
+
),
|
|
30
|
+
migrations.AddField(
|
|
31
|
+
model_name='pdftype',
|
|
32
|
+
name='examiner_info_line',
|
|
33
|
+
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_examiner_info_line', to='endoreg_db.reportreaderflag'),
|
|
34
|
+
preserve_default=False,
|
|
35
|
+
),
|
|
36
|
+
migrations.AddField(
|
|
37
|
+
model_name='pdftype',
|
|
38
|
+
name='patient_info_line',
|
|
39
|
+
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_patient_info_line', to='endoreg_db.reportreaderflag'),
|
|
40
|
+
preserve_default=False,
|
|
41
|
+
),
|
|
42
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 15:32
|
|
2
|
+
|
|
3
|
+
from django.db import migrations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('endoreg_db', '0019_pdftype_cut_off_above_lines_and_more'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.RenameField(
|
|
14
|
+
model_name='pdftype',
|
|
15
|
+
old_name='endoscopy_info_line',
|
|
16
|
+
new_name='endoscope_info_line',
|
|
17
|
+
),
|
|
18
|
+
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 19:02
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('endoreg_db', '0020_rename_endoscopy_info_line_pdftype_endoscope_info_line'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.AlterField(
|
|
15
|
+
model_name='pdftype',
|
|
16
|
+
name='endoscope_info_line',
|
|
17
|
+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_endoscopy_info_line', to='endoreg_db.reportreaderflag'),
|
|
18
|
+
),
|
|
19
|
+
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-03-24 20:27
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('endoreg_db', '0021_alter_pdftype_endoscope_info_line'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.AlterField(
|
|
15
|
+
model_name='pdftype',
|
|
16
|
+
name='endoscope_info_line',
|
|
17
|
+
field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_endoscopy_info_line', to='endoreg_db.reportreaderflag'),
|
|
18
|
+
),
|
|
19
|
+
]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from .unit import Unit
|
|
2
2
|
from .information_source import InformationSource
|
|
3
3
|
from .center import Center
|
|
4
|
+
from .report_reader import ReportReaderConfig, ReportReaderFlag
|
|
4
5
|
from .persons import (
|
|
5
6
|
Person,
|
|
6
7
|
Patient,
|
|
@@ -9,6 +10,7 @@ from .persons import (
|
|
|
9
10
|
ExaminerSerializer,
|
|
10
11
|
PortalUserInfo,
|
|
11
12
|
Profession,
|
|
13
|
+
FirstName, LastName
|
|
12
14
|
)
|
|
13
15
|
|
|
14
16
|
from .examination import (
|
|
@@ -12,6 +12,12 @@ class Center(models.Model):
|
|
|
12
12
|
name_de = models.CharField(max_length=255, blank=True, null=True)
|
|
13
13
|
name_en = models.CharField(max_length=255, blank=True, null=True)
|
|
14
14
|
|
|
15
|
+
first_names = models.ManyToManyField(
|
|
16
|
+
'FirstName',
|
|
17
|
+
related_name='centers',
|
|
18
|
+
)
|
|
19
|
+
last_names = models.ManyToManyField('LastName', related_name='centers')
|
|
20
|
+
|
|
15
21
|
def natural_key(self):
|
|
16
22
|
return (self.name,)
|
|
17
23
|
|
|
@@ -2,6 +2,5 @@ from .frame import Frame, LegacyFrame
|
|
|
2
2
|
from .report_file import ReportFile
|
|
3
3
|
from .video import Video, LegacyVideo, VideoImportMeta
|
|
4
4
|
from .video_segment import LegacyLabelVideoSegment, LabelVideoSegment
|
|
5
|
-
from .metadata import
|
|
6
|
-
|
|
7
|
-
from .import_classes import RawVideoFile
|
|
5
|
+
from .metadata import *
|
|
6
|
+
from .import_classes import *
|