endoreg-db 0.6.0__py3-none-any.whl → 0.6.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/case_generator/__init__.py +0 -0
- endoreg_db/case_generator/case_generator.py +159 -0
- endoreg_db/case_generator/lab_sample_factory.py +33 -0
- endoreg_db/case_generator/utils.py +30 -0
- endoreg_db/data/__init__.py +118 -0
- endoreg_db/data/agl_service/data.yaml +19 -0
- endoreg_db/data/ai_model/data.yaml +7 -0
- endoreg_db/data/ai_model_label/label/data.yaml +88 -0
- endoreg_db/data/ai_model_label/label-set/data.yaml +21 -0
- endoreg_db/data/ai_model_label/label-type/data.yaml +7 -0
- endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +5 -0
- endoreg_db/data/ai_model_type/data.yaml +7 -0
- endoreg_db/data/ai_model_video_segmentation_label/base_segmentation.yaml +176 -0
- endoreg_db/data/ai_model_video_segmentation_labelset/data.yaml +20 -0
- endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +167 -0
- endoreg_db/data/case_template/rule/01_patient-set-age.yaml +8 -0
- endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +9 -0
- endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +23 -0
- endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +19 -0
- endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +19 -0
- endoreg_db/data/case_template/rule/19_create_patient.yaml +17 -0
- endoreg_db/data/case_template/rule_type/base_types.yaml +35 -0
- endoreg_db/data/case_template/rule_value/.init +0 -0
- endoreg_db/data/case_template/rule_value_type/base_types.yaml +59 -0
- endoreg_db/data/case_template/template/base.yaml +8 -0
- endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +3 -0
- endoreg_db/data/case_template/tmp/_rule_value +13 -0
- endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +21 -0
- endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +10 -0
- endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +7 -0
- endoreg_db/data/center/data.yaml +90 -0
- endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +144 -0
- endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +48 -0
- endoreg_db/data/contraindication/bleeding.yaml +11 -0
- endoreg_db/data/disease/cardiovascular.yaml +37 -0
- endoreg_db/data/disease/hepatology.yaml +5 -0
- endoreg_db/data/disease/misc.yaml +6 -0
- endoreg_db/data/disease/renal.yaml +5 -0
- endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +6 -0
- endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +6 -0
- endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +41 -0
- endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +20 -0
- endoreg_db/data/distribution/date/patient.yaml +7 -0
- endoreg_db/data/distribution/multiple_categorical/.init +0 -0
- endoreg_db/data/distribution/numeric/data.yaml +14 -0
- endoreg_db/data/distribution/single_categorical/patient.yaml +7 -0
- endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +132 -0
- endoreg_db/data/endoscope/data.yaml +93 -0
- endoreg_db/data/endoscope_type/data.yaml +11 -0
- endoreg_db/data/endoscopy_processor/data.yaml +47 -0
- endoreg_db/data/event/cardiology.yaml +28 -0
- endoreg_db/data/event/neurology.yaml +14 -0
- endoreg_db/data/event/surgery.yaml +13 -0
- endoreg_db/data/event/thrombembolism.yaml +20 -0
- endoreg_db/data/examination/examinations/data.yaml +66 -0
- endoreg_db/data/examination/time/data.yaml +48 -0
- endoreg_db/data/examination/time-type/data.yaml +8 -0
- endoreg_db/data/examination/type/data.yaml +5 -0
- endoreg_db/data/examination_indication/endoscopy.yaml +8 -0
- endoreg_db/data/examination_indication_classification/endoscopy.yaml +8 -0
- endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +101 -0
- endoreg_db/data/finding/data.yaml +141 -0
- endoreg_db/data/finding_intervention/endoscopy.yaml +138 -0
- endoreg_db/data/finding_intervention_type/endoscopy.yaml +15 -0
- endoreg_db/data/finding_location_classification/colonoscopy.yaml +46 -0
- endoreg_db/data/finding_location_classification_choice/colonoscopy.yaml +240 -0
- endoreg_db/data/finding_morphology_classification/colonoscopy.yaml +48 -0
- endoreg_db/data/finding_morphology_classification_choice/colon_lesion_circularity_default.yaml +34 -0
- endoreg_db/data/finding_morphology_classification_choice/colon_lesion_nice.yaml +20 -0
- endoreg_db/data/finding_morphology_classification_choice/colon_lesion_paris.yaml +65 -0
- endoreg_db/data/finding_morphology_classification_choice/colon_lesion_planarity_default.yaml +56 -0
- endoreg_db/data/finding_morphology_classification_choice/colon_lesion_surface_intact_default.yaml +39 -0
- endoreg_db/data/finding_morphology_classification_choice/colonoscopy_size.yaml +57 -0
- endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +79 -0
- endoreg_db/data/finding_type/data.yaml +30 -0
- endoreg_db/data/gender/data.yaml +35 -0
- endoreg_db/data/information_source/data.yaml +30 -0
- endoreg_db/data/information_source/medication.yaml +6 -0
- endoreg_db/data/lab_value/cardiac_enzymes.yaml +37 -0
- endoreg_db/data/lab_value/coagulation.yaml +54 -0
- endoreg_db/data/lab_value/electrolytes.yaml +228 -0
- endoreg_db/data/lab_value/gastrointestinal_function.yaml +133 -0
- endoreg_db/data/lab_value/hematology.yaml +184 -0
- endoreg_db/data/lab_value/hormones.yaml +59 -0
- endoreg_db/data/lab_value/lipids.yaml +53 -0
- endoreg_db/data/lab_value/misc.yaml +33 -0
- endoreg_db/data/lab_value/renal_function.yaml +12 -0
- endoreg_db/data/log_type/data.yaml +57 -0
- endoreg_db/data/lx_client_tag/base.yaml +54 -0
- endoreg_db/data/lx_client_type/base.yaml +30 -0
- endoreg_db/data/lx_permission/base.yaml +24 -0
- endoreg_db/data/lx_permission/endoreg.yaml +52 -0
- endoreg_db/data/material/material.yaml +91 -0
- endoreg_db/data/medication/anticoagulation.yaml +65 -0
- endoreg_db/data/medication/tah.yaml +70 -0
- endoreg_db/data/medication_indication/anticoagulation.yaml +115 -0
- endoreg_db/data/medication_indication_type/data.yaml +11 -0
- endoreg_db/data/medication_indication_type/thrombembolism.yaml +41 -0
- endoreg_db/data/medication_intake_time/base.yaml +31 -0
- endoreg_db/data/medication_schedule/apixaban.yaml +95 -0
- endoreg_db/data/medication_schedule/ass.yaml +12 -0
- endoreg_db/data/medication_schedule/enoxaparin.yaml +26 -0
- endoreg_db/data/names_first/first_names.yaml +51 -0
- endoreg_db/data/names_last/last_names.yaml +51 -0
- endoreg_db/data/network_device/data.yaml +59 -0
- endoreg_db/data/network_device_type/data.yaml +12 -0
- endoreg_db/data/organ/data.yaml +29 -0
- endoreg_db/data/patient_lab_sample_type/generic.yaml +6 -0
- endoreg_db/data/pdf_type/data.yaml +29 -0
- endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +66 -0
- endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +33 -0
- endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +308 -0
- endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +88 -0
- endoreg_db/data/profession/data.yaml +70 -0
- endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +55 -0
- endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +30 -0
- endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +19 -0
- endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +15 -0
- endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
- endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
- endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +12 -0
- endoreg_db/data/unit/concentration.yaml +92 -0
- endoreg_db/data/unit/data.yaml +17 -0
- endoreg_db/data/unit/length.yaml +31 -0
- endoreg_db/data/unit/misc.yaml +20 -0
- endoreg_db/data/unit/rate.yaml +6 -0
- endoreg_db/data/unit/time.yaml +13 -0
- endoreg_db/data/unit/volume.yaml +35 -0
- endoreg_db/data/unit/weight.yaml +38 -0
- endoreg_db/data/waste/data.yaml +12 -0
- endoreg_db/forms/__init__.py +5 -0
- endoreg_db/forms/examination_form.py +11 -0
- endoreg_db/forms/patient_finding_intervention_form.py +19 -0
- endoreg_db/forms/patient_form.py +26 -0
- endoreg_db/forms/questionnaires/__init__.py +1 -0
- endoreg_db/forms/questionnaires/tto_questionnaire.py +23 -0
- endoreg_db/forms/settings/__init__.py +8 -0
- endoreg_db/forms/unit.py +6 -0
- endoreg_db/management/__init__.py +0 -0
- endoreg_db/management/commands/__init__.py +0 -0
- endoreg_db/management/commands/_load_model_template.py +41 -0
- endoreg_db/management/commands/delete_all.py +18 -0
- endoreg_db/management/commands/fetch_legacy_image_dataset.py +32 -0
- endoreg_db/management/commands/fix_auth_permission.py +20 -0
- endoreg_db/management/commands/load_active_model_data.py +45 -0
- endoreg_db/management/commands/load_ai_model_data.py +79 -0
- endoreg_db/management/commands/load_ai_model_label_data.py +59 -0
- endoreg_db/management/commands/load_base_db_data.py +178 -0
- endoreg_db/management/commands/load_center_data.py +43 -0
- endoreg_db/management/commands/load_contraindication_data.py +41 -0
- endoreg_db/management/commands/load_disease_classification_choices_data.py +41 -0
- endoreg_db/management/commands/load_disease_classification_data.py +41 -0
- endoreg_db/management/commands/load_disease_data.py +62 -0
- endoreg_db/management/commands/load_distribution_data.py +66 -0
- endoreg_db/management/commands/load_endoscope_data.py +68 -0
- endoreg_db/management/commands/load_event_data.py +41 -0
- endoreg_db/management/commands/load_examination_data.py +75 -0
- endoreg_db/management/commands/load_examination_indication_data.py +65 -0
- endoreg_db/management/commands/load_finding_data.py +171 -0
- endoreg_db/management/commands/load_g_play_data.py +113 -0
- endoreg_db/management/commands/load_gender_data.py +44 -0
- endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +133 -0
- endoreg_db/management/commands/load_information_source.py +45 -0
- endoreg_db/management/commands/load_lab_value_data.py +50 -0
- endoreg_db/management/commands/load_logging_data.py +39 -0
- endoreg_db/management/commands/load_lx_data.py +64 -0
- endoreg_db/management/commands/load_medication_data.py +103 -0
- endoreg_db/management/commands/load_medication_indication_data.py +63 -0
- endoreg_db/management/commands/load_medication_indication_type_data.py +41 -0
- endoreg_db/management/commands/load_medication_intake_time_data.py +41 -0
- endoreg_db/management/commands/load_medication_schedule_data.py +55 -0
- endoreg_db/management/commands/load_name_data.py +37 -0
- endoreg_db/management/commands/load_network_data.py +57 -0
- endoreg_db/management/commands/load_organ_data.py +43 -0
- endoreg_db/management/commands/load_pdf_type_data.py +61 -0
- endoreg_db/management/commands/load_profession_data.py +44 -0
- endoreg_db/management/commands/load_report_reader_flag_data.py +46 -0
- endoreg_db/management/commands/load_unit_data.py +46 -0
- endoreg_db/management/commands/load_user_groups.py +28 -0
- endoreg_db/management/commands/register_ai_model.py +64 -0
- endoreg_db/management/commands/reset_celery_schedule.py +9 -0
- endoreg_db/migrations/0001_initial.py +2045 -0
- endoreg_db/migrations/0002_alter_frame_image_alter_rawframe_image.py +23 -0
- endoreg_db/migrations/0003_alter_frame_image_alter_rawframe_image.py +23 -0
- endoreg_db/migrations/0004_alter_rawvideofile_file_alter_video_file.py +25 -0
- endoreg_db/migrations/0005_rawvideofile_frame_count_and_more.py +33 -0
- endoreg_db/migrations/0006_frame_extracted_rawframe_extracted.py +23 -0
- endoreg_db/migrations/0007_rename_pseudo_patient_video_patient_and_more.py +24 -0
- endoreg_db/migrations/0008_remove_reportfile_patient_examination_and_more.py +48 -0
- endoreg_db/migrations/__init__.py +0 -0
- endoreg_db/models/__init__.py +376 -0
- endoreg_db/models/ai_model/__init__.py +4 -0
- endoreg_db/models/ai_model/active_model.py +9 -0
- endoreg_db/models/ai_model/ai_model.py +103 -0
- endoreg_db/models/ai_model/lightning/__init__.py +3 -0
- endoreg_db/models/ai_model/lightning/inference_dataset.py +53 -0
- endoreg_db/models/ai_model/lightning/multilabel_classification_net.py +155 -0
- endoreg_db/models/ai_model/lightning/postprocess.py +53 -0
- endoreg_db/models/ai_model/lightning/predict.py +172 -0
- endoreg_db/models/ai_model/lightning/prediction_visualizer.py +55 -0
- endoreg_db/models/ai_model/lightning/preprocess.py +68 -0
- endoreg_db/models/ai_model/lightning/run_visualizer.py +21 -0
- endoreg_db/models/ai_model/model_meta.py +250 -0
- endoreg_db/models/ai_model/model_type.py +36 -0
- endoreg_db/models/ai_model/utils.py +8 -0
- endoreg_db/models/annotation/__init__.py +32 -0
- endoreg_db/models/annotation/anonymized_image_annotation.py +115 -0
- endoreg_db/models/annotation/binary_classification_annotation_task.py +117 -0
- endoreg_db/models/annotation/image_classification.py +86 -0
- endoreg_db/models/annotation/video_segmentation_annotation.py +52 -0
- endoreg_db/models/annotation/video_segmentation_labelset.py +20 -0
- endoreg_db/models/case/__init__.py +1 -0
- endoreg_db/models/case/case.py +34 -0
- endoreg_db/models/case_template/__init__.py +15 -0
- endoreg_db/models/case_template/case_template.py +125 -0
- endoreg_db/models/case_template/case_template_rule.py +276 -0
- endoreg_db/models/case_template/case_template_rule_value.py +88 -0
- endoreg_db/models/case_template/case_template_type.py +28 -0
- endoreg_db/models/center/__init__.py +11 -0
- endoreg_db/models/center/center.py +51 -0
- endoreg_db/models/center/center_product.py +33 -0
- endoreg_db/models/center/center_resource.py +33 -0
- endoreg_db/models/center/center_waste.py +16 -0
- endoreg_db/models/contraindication/__init__.py +21 -0
- endoreg_db/models/data_file/__init__.py +39 -0
- endoreg_db/models/data_file/base_classes/__init__.py +7 -0
- endoreg_db/models/data_file/base_classes/abstract_frame.py +100 -0
- endoreg_db/models/data_file/base_classes/abstract_pdf.py +136 -0
- endoreg_db/models/data_file/base_classes/abstract_video.py +807 -0
- endoreg_db/models/data_file/base_classes/frame_helpers.py +17 -0
- endoreg_db/models/data_file/base_classes/prepare_bulk_frames.py +19 -0
- endoreg_db/models/data_file/base_classes/utils.py +80 -0
- endoreg_db/models/data_file/frame.py +29 -0
- endoreg_db/models/data_file/import_classes/__init__.py +18 -0
- endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +35 -0
- endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +28 -0
- endoreg_db/models/data_file/import_classes/processing_functions/video.py +260 -0
- endoreg_db/models/data_file/import_classes/raw_pdf.py +260 -0
- endoreg_db/models/data_file/import_classes/raw_video.py +288 -0
- endoreg_db/models/data_file/metadata/__init__.py +13 -0
- endoreg_db/models/data_file/metadata/pdf_meta.py +74 -0
- endoreg_db/models/data_file/metadata/sensitive_meta.py +290 -0
- endoreg_db/models/data_file/metadata/video_meta.py +199 -0
- endoreg_db/models/data_file/report_file.py +56 -0
- endoreg_db/models/data_file/video/__init__.py +11 -0
- endoreg_db/models/data_file/video/import_meta.py +25 -0
- endoreg_db/models/data_file/video/video.py +196 -0
- endoreg_db/models/data_file/video_segment.py +214 -0
- endoreg_db/models/disease.py +79 -0
- endoreg_db/models/emission/__init__.py +5 -0
- endoreg_db/models/emission/emission_factor.py +85 -0
- endoreg_db/models/event.py +73 -0
- endoreg_db/models/examination/__init__.py +9 -0
- endoreg_db/models/examination/examination.py +67 -0
- endoreg_db/models/examination/examination_indication.py +170 -0
- endoreg_db/models/examination/examination_time.py +53 -0
- endoreg_db/models/examination/examination_time_type.py +48 -0
- endoreg_db/models/examination/examination_type.py +40 -0
- endoreg_db/models/finding/__init__.py +11 -0
- endoreg_db/models/finding/finding.py +75 -0
- endoreg_db/models/finding/finding_intervention.py +60 -0
- endoreg_db/models/finding/finding_location_classification.py +94 -0
- endoreg_db/models/finding/finding_morphology_classification.py +89 -0
- endoreg_db/models/finding/finding_type.py +22 -0
- endoreg_db/models/hardware/__init__.py +2 -0
- endoreg_db/models/hardware/endoscope.py +60 -0
- endoreg_db/models/hardware/endoscopy_processor.py +155 -0
- endoreg_db/models/information_source.py +29 -0
- endoreg_db/models/label/__init__.py +1 -0
- endoreg_db/models/label/label.py +112 -0
- endoreg_db/models/laboratory/__init__.py +1 -0
- endoreg_db/models/laboratory/lab_value.py +111 -0
- endoreg_db/models/logging/__init__.py +11 -0
- endoreg_db/models/logging/agl_service.py +19 -0
- endoreg_db/models/logging/base.py +22 -0
- endoreg_db/models/logging/log_type.py +23 -0
- endoreg_db/models/logging/network_device.py +27 -0
- endoreg_db/models/lx/__init__.py +4 -0
- endoreg_db/models/lx/client.py +57 -0
- endoreg_db/models/lx/identity.py +34 -0
- endoreg_db/models/lx/permission.py +18 -0
- endoreg_db/models/lx/user.py +16 -0
- endoreg_db/models/medication/__init__.py +19 -0
- endoreg_db/models/medication/medication.py +33 -0
- endoreg_db/models/medication/medication_indication.py +50 -0
- endoreg_db/models/medication/medication_indication_type.py +34 -0
- endoreg_db/models/medication/medication_intake_time.py +26 -0
- endoreg_db/models/medication/medication_schedule.py +37 -0
- endoreg_db/models/network/__init__.py +9 -0
- endoreg_db/models/network/agl_service.py +38 -0
- endoreg_db/models/network/network_device.py +58 -0
- endoreg_db/models/network/network_device_type.py +23 -0
- endoreg_db/models/organ/__init__.py +38 -0
- endoreg_db/models/other/__init__.py +23 -0
- endoreg_db/models/other/distribution/__init__.py +44 -0
- endoreg_db/models/other/distribution/base_value_distribution.py +20 -0
- endoreg_db/models/other/distribution/date_value_distribution.py +91 -0
- endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +32 -0
- endoreg_db/models/other/distribution/numeric_value_distribution.py +97 -0
- endoreg_db/models/other/distribution/single_categorical_value_distribution.py +22 -0
- endoreg_db/models/other/distribution.py +5 -0
- endoreg_db/models/other/material.py +20 -0
- endoreg_db/models/other/resource.py +18 -0
- endoreg_db/models/other/transport_route.py +22 -0
- endoreg_db/models/other/waste.py +20 -0
- endoreg_db/models/patient/__init__.py +24 -0
- endoreg_db/models/patient/patient_examination.py +182 -0
- endoreg_db/models/patient/patient_finding.py +143 -0
- endoreg_db/models/patient/patient_finding_intervention.py +26 -0
- endoreg_db/models/patient/patient_finding_location.py +120 -0
- endoreg_db/models/patient/patient_finding_morphology.py +166 -0
- endoreg_db/models/permissions/__init__.py +44 -0
- endoreg_db/models/persons/__init__.py +34 -0
- endoreg_db/models/persons/examiner/__init__.py +2 -0
- endoreg_db/models/persons/examiner/examiner.py +60 -0
- endoreg_db/models/persons/examiner/examiner_type.py +2 -0
- endoreg_db/models/persons/first_name.py +18 -0
- endoreg_db/models/persons/gender.py +22 -0
- endoreg_db/models/persons/last_name.py +20 -0
- endoreg_db/models/persons/patient/__init__.py +8 -0
- endoreg_db/models/persons/patient/patient.py +389 -0
- endoreg_db/models/persons/patient/patient_disease.py +22 -0
- endoreg_db/models/persons/patient/patient_event.py +52 -0
- endoreg_db/models/persons/patient/patient_examination_indication.py +32 -0
- endoreg_db/models/persons/patient/patient_lab_sample.py +108 -0
- endoreg_db/models/persons/patient/patient_lab_value.py +197 -0
- endoreg_db/models/persons/patient/patient_medication.py +59 -0
- endoreg_db/models/persons/patient/patient_medication_schedule.py +88 -0
- endoreg_db/models/persons/person.py +31 -0
- endoreg_db/models/persons/portal_user_information.py +27 -0
- endoreg_db/models/prediction/__init__.py +8 -0
- endoreg_db/models/prediction/image_classification.py +51 -0
- endoreg_db/models/prediction/video_prediction_meta.py +306 -0
- endoreg_db/models/product/__init__.py +14 -0
- endoreg_db/models/product/product.py +110 -0
- endoreg_db/models/product/product_group.py +27 -0
- endoreg_db/models/product/product_material.py +28 -0
- endoreg_db/models/product/product_weight.py +38 -0
- endoreg_db/models/product/reference_product.py +115 -0
- endoreg_db/models/questionnaires/__init__.py +114 -0
- endoreg_db/models/quiz/__init__.py +9 -0
- endoreg_db/models/quiz/quiz_answer.py +41 -0
- endoreg_db/models/quiz/quiz_question.py +54 -0
- endoreg_db/models/report_reader/__init__.py +7 -0
- endoreg_db/models/report_reader/report_reader_config.py +53 -0
- endoreg_db/models/report_reader/report_reader_flag.py +20 -0
- endoreg_db/models/rules/__init__.py +5 -0
- endoreg_db/models/rules/rule.py +24 -0
- endoreg_db/models/rules/rule_applicator.py +224 -0
- endoreg_db/models/rules/rule_attribute_dtype.py +19 -0
- endoreg_db/models/rules/rule_type.py +22 -0
- endoreg_db/models/rules/ruleset.py +19 -0
- endoreg_db/models/unit.py +22 -0
- endoreg_db/queries/__init__.py +5 -0
- endoreg_db/queries/annotations/__init__.py +3 -0
- endoreg_db/queries/annotations/legacy.py +158 -0
- endoreg_db/queries/get/__init__.py +6 -0
- endoreg_db/queries/get/annotation.py +0 -0
- endoreg_db/queries/get/center.py +42 -0
- endoreg_db/queries/get/model.py +13 -0
- endoreg_db/queries/get/patient.py +14 -0
- endoreg_db/queries/get/patient_examination.py +20 -0
- endoreg_db/queries/get/prediction.py +0 -0
- endoreg_db/queries/get/report_file.py +33 -0
- endoreg_db/queries/get/video.py +31 -0
- endoreg_db/queries/get/video_import_meta.py +0 -0
- endoreg_db/queries/get/video_prediction_meta.py +0 -0
- endoreg_db/queries/sanity/__init_.py +0 -0
- endoreg_db/serializers/__init__.py +10 -0
- endoreg_db/serializers/ai_model.py +19 -0
- endoreg_db/serializers/annotation.py +14 -0
- endoreg_db/serializers/center.py +11 -0
- endoreg_db/serializers/examination.py +33 -0
- endoreg_db/serializers/frame.py +9 -0
- endoreg_db/serializers/hardware.py +21 -0
- endoreg_db/serializers/label.py +22 -0
- endoreg_db/serializers/patient.py +33 -0
- endoreg_db/serializers/prediction.py +10 -0
- endoreg_db/serializers/raw_video_meta_validation.py +13 -0
- endoreg_db/serializers/report_file.py +7 -0
- endoreg_db/serializers/video.py +20 -0
- endoreg_db/serializers/video_segmentation.py +492 -0
- endoreg_db/templates/admin/patient_finding_intervention.html +253 -0
- endoreg_db/templates/admin/start_examination.html +12 -0
- endoreg_db/templates/timeline.html +176 -0
- endoreg_db/utils/__init__.py +36 -0
- endoreg_db/utils/cropping.py +29 -0
- endoreg_db/utils/dataloader.py +118 -0
- endoreg_db/utils/dates.py +39 -0
- endoreg_db/utils/file_operations.py +30 -0
- endoreg_db/utils/hashs.py +152 -0
- endoreg_db/utils/legacy_ocr.py +201 -0
- endoreg_db/utils/names.py +74 -0
- endoreg_db/utils/ocr.py +190 -0
- endoreg_db/utils/parse_and_generate_yaml.py +46 -0
- endoreg_db/utils/pydantic_models/__init__.py +6 -0
- endoreg_db/utils/pydantic_models/db_config.py +57 -0
- endoreg_db/utils/uuid.py +4 -0
- endoreg_db/utils/validate_endo_roi.py +19 -0
- endoreg_db/utils/validate_subcategory_dict.py +91 -0
- endoreg_db/utils/video/__init__.py +13 -0
- endoreg_db/utils/video/extract_frames.py +121 -0
- endoreg_db/utils/video/transcode_videofile.py +111 -0
- endoreg_db/views/__init__.py +2 -0
- endoreg_db/views/csrf.py +7 -0
- endoreg_db/views/patient_views.py +90 -0
- endoreg_db/views/raw_video_meta_validation_views.py +38 -0
- endoreg_db/views/report_views.py +96 -0
- endoreg_db/views/video_segmentation_views.py +149 -0
- endoreg_db/views/views_for_timeline.py +46 -0
- {endoreg_db-0.6.0.dist-info → endoreg_db-0.6.2.dist-info}/METADATA +14 -4
- endoreg_db-0.6.2.dist-info/RECORD +420 -0
- {endoreg_db-0.6.0.dist-info → endoreg_db-0.6.2.dist-info}/WHEEL +1 -2
- endoreg_db-0.6.0.dist-info/RECORD +0 -11
- endoreg_db-0.6.0.dist-info/top_level.txt +0 -1
- {endoreg_db-0.6.0.dist-info → endoreg_db-0.6.2.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
- fields:
|
|
2
|
+
name: gas
|
|
3
|
+
name_de: Erdgas
|
|
4
|
+
name_en: Gas
|
|
5
|
+
model: endoreg_db.Resource
|
|
6
|
+
- fields:
|
|
7
|
+
name: oil
|
|
8
|
+
name_de: "Heizöl"
|
|
9
|
+
name_en: Oil
|
|
10
|
+
model: endoreg_db.Resource
|
|
11
|
+
- fields:
|
|
12
|
+
name: electricity
|
|
13
|
+
name_de: Strom
|
|
14
|
+
name_en: Electricity
|
|
15
|
+
model: endoreg_db.Resource
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
- fields:
|
|
2
|
+
distance: 1000
|
|
3
|
+
emission_factor: transport_product_emission_generic_europe
|
|
4
|
+
name: generic_europe
|
|
5
|
+
unit: kilometer
|
|
6
|
+
model: endoreg_db.TransportRoute
|
|
7
|
+
- fields:
|
|
8
|
+
distance: 10000
|
|
9
|
+
emission_factor: transport_product_emission_generic_overseas
|
|
10
|
+
name: generic_overseas
|
|
11
|
+
unit: kilometer
|
|
12
|
+
model: endoreg_db.TransportRoute
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# g / l and equivalents; ascending by gram, then ascending by liter
|
|
2
|
+
- model: endoreg_db.unit
|
|
3
|
+
fields:
|
|
4
|
+
name: "picogram per mililiter"
|
|
5
|
+
name_de: "Pikogramm pro Mililiter"
|
|
6
|
+
name_en: "picogram per mililiter"
|
|
7
|
+
abbreviation: "pg/ml"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
- model: endoreg_db.unit
|
|
11
|
+
fields:
|
|
12
|
+
name: "nanogram per mililiter"
|
|
13
|
+
name_de: "Nanogramm pro Mililiter"
|
|
14
|
+
name_en: "nanogram per mililiter"
|
|
15
|
+
abbreviation: "ng/ml"
|
|
16
|
+
|
|
17
|
+
- model: endoreg_db.unit
|
|
18
|
+
fields:
|
|
19
|
+
name: "nanogram per deciliter"
|
|
20
|
+
name_de: "Nanogramm pro Deziliter"
|
|
21
|
+
name_en: "nanogram per deciliter"
|
|
22
|
+
|
|
23
|
+
- model: endoreg_db.unit
|
|
24
|
+
fields:
|
|
25
|
+
name: "microgram per mililiter"
|
|
26
|
+
name_de: "Microgramm pro Mililiter"
|
|
27
|
+
name_en: "microgram per mililiter"
|
|
28
|
+
abbreviation: "µg/ml"
|
|
29
|
+
|
|
30
|
+
- model: endoreg_db.Unit
|
|
31
|
+
fields:
|
|
32
|
+
name: "microgram per deciliter"
|
|
33
|
+
abbreviation: "µg/dL"
|
|
34
|
+
name_de: "Mikrogramm pro Deziliter"
|
|
35
|
+
name_en: "microgram per deciliter"
|
|
36
|
+
description: "Micrograms per deciliter, a unit of measurement for concentration."
|
|
37
|
+
|
|
38
|
+
- model: endoreg_db.unit
|
|
39
|
+
fields:
|
|
40
|
+
name: "gram per deciliter"
|
|
41
|
+
name_de: "Gramm pro Deziliter"
|
|
42
|
+
name_en: "gram per deciliter"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# mol / l
|
|
46
|
+
- model: endoreg_db.Unit
|
|
47
|
+
fields:
|
|
48
|
+
name: "milimole per liter"
|
|
49
|
+
abbreviation: "mmol/L"
|
|
50
|
+
name_de: "milimol pro Liter"
|
|
51
|
+
name_en: "milimole per liter"
|
|
52
|
+
description: "milimoles per liter, a unit of measurement for concentration in blood."
|
|
53
|
+
|
|
54
|
+
- model: endoreg_db.Unit
|
|
55
|
+
fields:
|
|
56
|
+
name: "miliequivalent per liter"
|
|
57
|
+
abbreviation: "mEq/L"
|
|
58
|
+
name_de: "miliäquivalent pro Liter"
|
|
59
|
+
name_en: "miliequivalent per liter"
|
|
60
|
+
description: "miliequivalents per liter, used for electrolytes concentration."
|
|
61
|
+
|
|
62
|
+
- model: endoreg_db.Unit
|
|
63
|
+
fields:
|
|
64
|
+
name: "miligram per deciliter"
|
|
65
|
+
abbreviation: "mg/dL"
|
|
66
|
+
name_de: "miligramm pro Deziliter"
|
|
67
|
+
name_en: "miligram per deciliter"
|
|
68
|
+
description: "miligrams per deciliter, commonly used for various blood measurements."
|
|
69
|
+
|
|
70
|
+
# x 10^9 per liter
|
|
71
|
+
- model: endoreg_db.Unit
|
|
72
|
+
fields:
|
|
73
|
+
name: "x 10^9 per liter"
|
|
74
|
+
abbreviation: "x 10^9/L"
|
|
75
|
+
name_de: "x 10^9 pro Liter"
|
|
76
|
+
name_en: "x 10^9 per liter"
|
|
77
|
+
description: "Number of cells per liter, often used for blood cell counts."
|
|
78
|
+
|
|
79
|
+
# U / l
|
|
80
|
+
- model: endoreg_db.unit
|
|
81
|
+
fields:
|
|
82
|
+
name: "units per liter"
|
|
83
|
+
name_de: "Units pro Liter"
|
|
84
|
+
name_en: "units per liter"
|
|
85
|
+
abbreviation: "U/l"
|
|
86
|
+
|
|
87
|
+
- model: endoreg_db.unit
|
|
88
|
+
fields:
|
|
89
|
+
name: "microinternational units per mililiter"
|
|
90
|
+
name_de: "Mikro-Internationale Einheiten pro Mililiter"
|
|
91
|
+
name_en: "micro-international units per mililiter"
|
|
92
|
+
abbreviation: "µU/ml"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
- model: endoreg_db.Unit
|
|
2
|
+
fields:
|
|
3
|
+
name: "liters-per-minute"
|
|
4
|
+
abbreviation: "l/min"
|
|
5
|
+
name_de: "Liter pro Minute"
|
|
6
|
+
name_en: "Liters per Minute"
|
|
7
|
+
description: "liters per minute"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# kilowatt-hours
|
|
11
|
+
- model: endoreg_db.Unit
|
|
12
|
+
fields:
|
|
13
|
+
name: "kilowatt-hours"
|
|
14
|
+
abbreviation: "kWh"
|
|
15
|
+
name_de: "Kilowattstunden"
|
|
16
|
+
name_en: "Kilowatt-hours"
|
|
17
|
+
description: "kilowatt-hours"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
- model: endoreg_db.Unit
|
|
2
|
+
fields:
|
|
3
|
+
name: "milimeter"
|
|
4
|
+
abbreviation: "mm"
|
|
5
|
+
name_de: "milimeter"
|
|
6
|
+
name_en: "milimeter"
|
|
7
|
+
description: "milimeters"
|
|
8
|
+
|
|
9
|
+
- model: endoreg_db.Unit
|
|
10
|
+
fields:
|
|
11
|
+
name: "centimeter"
|
|
12
|
+
abbreviation: "cm"
|
|
13
|
+
name_de: "Zentimeter"
|
|
14
|
+
name_en: "Centimeter"
|
|
15
|
+
description: "centimeters"
|
|
16
|
+
|
|
17
|
+
- model: endoreg_db.Unit
|
|
18
|
+
fields:
|
|
19
|
+
name: "meter"
|
|
20
|
+
abbreviation: "m"
|
|
21
|
+
name_de: "Meter"
|
|
22
|
+
name_en: "Meter"
|
|
23
|
+
description: "meters"
|
|
24
|
+
|
|
25
|
+
- model: endoreg_db.Unit
|
|
26
|
+
fields:
|
|
27
|
+
name: "kilometer"
|
|
28
|
+
abbreviation: "km"
|
|
29
|
+
name_de: "Kilometer"
|
|
30
|
+
name_en: "Kilometer"
|
|
31
|
+
description: "kilometers"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
- model: endoreg_db.unit
|
|
2
|
+
fields:
|
|
3
|
+
name: "percent"
|
|
4
|
+
abbreviation: "%"
|
|
5
|
+
name_de: "Prozent"
|
|
6
|
+
name_en: "percent"
|
|
7
|
+
|
|
8
|
+
- model: endoreg_db.unit
|
|
9
|
+
fields:
|
|
10
|
+
name: "ratio"
|
|
11
|
+
abbreviation: ""
|
|
12
|
+
name_de: "Ratio"
|
|
13
|
+
name_en: "ratio"
|
|
14
|
+
|
|
15
|
+
- model: endoreg_db.unit
|
|
16
|
+
fields:
|
|
17
|
+
name: "dose"
|
|
18
|
+
name_de: "Dosierung(en)"
|
|
19
|
+
name_en: "dose(s)"
|
|
20
|
+
abbreviation: ""
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Units/data.yaml
|
|
2
|
+
|
|
3
|
+
# femptolitre
|
|
4
|
+
- model: endoreg_db.Unit
|
|
5
|
+
fields:
|
|
6
|
+
name: "femtoliter"
|
|
7
|
+
abbreviation: "fl"
|
|
8
|
+
name_de: "Femtoliter"
|
|
9
|
+
name_en: "Femtolitre"
|
|
10
|
+
description: "femtoliters"
|
|
11
|
+
|
|
12
|
+
- model: endoreg_db.Unit
|
|
13
|
+
fields:
|
|
14
|
+
name: "mililiter"
|
|
15
|
+
abbreviation: "ml"
|
|
16
|
+
name_de: "mililiter"
|
|
17
|
+
name_en: "mililiter"
|
|
18
|
+
description: "mililiters"
|
|
19
|
+
|
|
20
|
+
- model: endoreg_db.Unit
|
|
21
|
+
fields:
|
|
22
|
+
name: "liter"
|
|
23
|
+
abbreviation: "l"
|
|
24
|
+
name_de: "Liter"
|
|
25
|
+
name_en: "Liter"
|
|
26
|
+
description: "liters"
|
|
27
|
+
|
|
28
|
+
# cubic_meter
|
|
29
|
+
- model: endoreg_db.Unit
|
|
30
|
+
fields:
|
|
31
|
+
name: "cubic_meter"
|
|
32
|
+
abbreviation: "m³"
|
|
33
|
+
name_de: "Kubikmeter"
|
|
34
|
+
name_en: "Cubic Meter"
|
|
35
|
+
description: "cubic meters"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
- model: endoreg_db.unit
|
|
2
|
+
fields:
|
|
3
|
+
name: "picogram"
|
|
4
|
+
abbreviation: "pg"
|
|
5
|
+
name_de: "Picogramm"
|
|
6
|
+
name_en: "Picogram"
|
|
7
|
+
|
|
8
|
+
- model: endoreg_db.Unit
|
|
9
|
+
fields:
|
|
10
|
+
name: "microgram"
|
|
11
|
+
abbreviation: "µg"
|
|
12
|
+
name_de: "Mikrogramm"
|
|
13
|
+
name_en: "Microgram"
|
|
14
|
+
description: "micrograms"
|
|
15
|
+
|
|
16
|
+
- model: endoreg_db.Unit
|
|
17
|
+
fields:
|
|
18
|
+
name: "miligram"
|
|
19
|
+
abbreviation: "mg"
|
|
20
|
+
name_de: "miligramm"
|
|
21
|
+
name_en: "miligram"
|
|
22
|
+
description: "miligrams"
|
|
23
|
+
|
|
24
|
+
- model: endoreg_db.Unit
|
|
25
|
+
fields:
|
|
26
|
+
name: "gram"
|
|
27
|
+
abbreviation: "g"
|
|
28
|
+
name_de: "Gramm"
|
|
29
|
+
name_en: "Gram"
|
|
30
|
+
description: "grams"
|
|
31
|
+
|
|
32
|
+
- model: endoreg_db.Unit
|
|
33
|
+
fields:
|
|
34
|
+
name: "kilogram"
|
|
35
|
+
abbreviation: "kg"
|
|
36
|
+
name_de: "Kilogramm"
|
|
37
|
+
name_en: "Kilogram"
|
|
38
|
+
description: "kilograms"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from django import forms
|
|
2
|
+
from endoreg_db.models.examination.examination import Examination
|
|
3
|
+
|
|
4
|
+
class ExaminationForm(forms.ModelForm):
|
|
5
|
+
class Meta:
|
|
6
|
+
model = Examination
|
|
7
|
+
fields = '__all__'
|
|
8
|
+
widgets = {
|
|
9
|
+
'date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
|
10
|
+
'time': forms.TimeInput(attrs={'type': 'time', 'class': 'form-control'}),
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from django import forms
|
|
2
|
+
from endoreg_db.models import (
|
|
3
|
+
Patient, PatientExamination, Finding,
|
|
4
|
+
FindingLocationClassification, FindingMorphologyClassification,
|
|
5
|
+
FindingIntervention, PatientFindingIntervention
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
class PatientFindingInterventionForm(forms.ModelForm):
|
|
9
|
+
patient = forms.ModelChoiceField(queryset=Patient.objects.all(), required=True)
|
|
10
|
+
examination = forms.ModelChoiceField(queryset=PatientExamination.objects.none(), required=True)
|
|
11
|
+
finding = forms.ModelChoiceField(queryset=Finding.objects.none(), required=True)
|
|
12
|
+
location = forms.ModelChoiceField(queryset=FindingLocationClassification.objects.none(), required=True)
|
|
13
|
+
location_choice = forms.ModelChoiceField(queryset=FindingLocationClassification.objects.none(), required=True)
|
|
14
|
+
morphology = forms.ModelChoiceField(queryset=FindingMorphologyClassification.objects.none(), required=True)
|
|
15
|
+
interventions = forms.ModelMultipleChoiceField(queryset=FindingIntervention.objects.none(), widget=forms.CheckboxSelectMultiple, required=True)
|
|
16
|
+
|
|
17
|
+
class Meta:
|
|
18
|
+
model = PatientFindingIntervention
|
|
19
|
+
fields = ["patient", "examination", "finding", "location", "location_choice", "morphology", "interventions"]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from django import forms
|
|
2
|
+
from django.forms import ModelForm, Select
|
|
3
|
+
from endoreg_db.models.persons.patient.patient import Patient
|
|
4
|
+
from django import forms
|
|
5
|
+
from django.forms import ModelForm, Select
|
|
6
|
+
from endoreg_db.models.persons.patient.patient import Patient
|
|
7
|
+
from endoreg_db.models.persons.gender import Gender
|
|
8
|
+
from endoreg_db.models.center import Center
|
|
9
|
+
class PatientForm(ModelForm):
|
|
10
|
+
gender = forms.ModelChoiceField(
|
|
11
|
+
queryset=Gender.objects.all(),
|
|
12
|
+
empty_label="Select Gender",
|
|
13
|
+
widget=Select(attrs={'class': 'form-control'})
|
|
14
|
+
)
|
|
15
|
+
center = forms.ModelChoiceField(
|
|
16
|
+
queryset=Center.objects.all(),
|
|
17
|
+
empty_label="Select Center",
|
|
18
|
+
widget=Select(attrs={'class': 'form-control'})
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
class Meta:
|
|
22
|
+
model = Patient
|
|
23
|
+
fields = '__all__'
|
|
24
|
+
widgets = {
|
|
25
|
+
'dob': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .tto_questionnaire import TtoQuestionnaireForm, TtoQuestionnaireCreate
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Path: endoreg_db/forms/questionnaires/tto_questionnaire.py
|
|
2
|
+
from endoreg_db.models import TtoQuestionnaire
|
|
3
|
+
from django import forms
|
|
4
|
+
|
|
5
|
+
class TtoQuestionnaireForm(forms.ModelForm):
|
|
6
|
+
class Meta:
|
|
7
|
+
model = TtoQuestionnaire
|
|
8
|
+
fields = '__all__'
|
|
9
|
+
widgets = {
|
|
10
|
+
# Specify Bootstrap classes for other fields as needed
|
|
11
|
+
'patient_name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
12
|
+
'birth_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
|
|
13
|
+
# You can continue to specify widgets for other fields
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
from django.views.generic.edit import CreateView
|
|
18
|
+
from django.urls import reverse_lazy
|
|
19
|
+
|
|
20
|
+
class TtoQuestionnaireCreate(CreateView):
|
|
21
|
+
model = TtoQuestionnaire
|
|
22
|
+
form_class = TtoQuestionnaireForm
|
|
23
|
+
success_url = reverse_lazy('questionnaire_success') # Redirect to a success page after submission
|
endoreg_db/forms/unit.py
ADDED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
from django.core.management.base import BaseCommand
|
|
3
|
+
from reports.models import Intervention, InterventionType # Replace 'your_app_name' with the actual app name
|
|
4
|
+
import os
|
|
5
|
+
from reports.dataloader_utils import load_model_data
|
|
6
|
+
|
|
7
|
+
SOURCE_DIR = None # e.g. settings.DATA_DIR_INTERVENTION
|
|
8
|
+
|
|
9
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
IMPORT_METADATA = {
|
|
13
|
+
# "": { # same as model name in "import models", e.g. "Intervention"
|
|
14
|
+
# "dir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
|
|
15
|
+
# "model": None, # e.g. Intervention
|
|
16
|
+
# "foreign_keys": [], # e.g. ["intervention_types"]
|
|
17
|
+
# "foreign_key_models": [] # e.g. [InterventionType]
|
|
18
|
+
# },
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
class Command(BaseCommand):
|
|
22
|
+
help = """Load all .yaml files in the data/intervention directory
|
|
23
|
+
into the Intervention and InterventionType model"""
|
|
24
|
+
|
|
25
|
+
def add_arguments(self, parser):
|
|
26
|
+
parser.add_argument(
|
|
27
|
+
'--verbose',
|
|
28
|
+
action='store_true',
|
|
29
|
+
help='Display verbose output',
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
def handle(self, *args, **options):
|
|
33
|
+
verbose = options['verbose']
|
|
34
|
+
for model_name in IMPORT_MODELS:
|
|
35
|
+
_metadata = IMPORT_METADATA[model_name]
|
|
36
|
+
load_model_data(
|
|
37
|
+
self,
|
|
38
|
+
model_name,
|
|
39
|
+
_metadata,
|
|
40
|
+
verbose
|
|
41
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from django.core.management.base import BaseCommand
|
|
2
|
+
from django.apps import apps
|
|
3
|
+
from django.db import transaction
|
|
4
|
+
|
|
5
|
+
class Command(BaseCommand):
|
|
6
|
+
help = 'Deletes all objects from all models in the "endoreg_db" app.'
|
|
7
|
+
|
|
8
|
+
def handle(self, *args, **options):
|
|
9
|
+
app_models = apps.get_models()
|
|
10
|
+
app_models = [model for model in app_models if "endoreg_db" in model._meta.app_label] # Filter models by the "endoreg_db" app
|
|
11
|
+
for model in app_models:
|
|
12
|
+
with transaction.atomic(): # Use a separate transaction for each model
|
|
13
|
+
try:
|
|
14
|
+
model.objects.all().delete()
|
|
15
|
+
self.stdout.write(self.style.SUCCESS(f'Successfully deleted all objects in {model._meta.db_table}'))
|
|
16
|
+
except Exception as e:
|
|
17
|
+
# This catches exceptions and continues with the next model
|
|
18
|
+
self.stdout.write(self.style.ERROR(f'Error deleting objects in {model._meta.db_table}: {e}'))
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# command to fetch the legacy dataset and save it to a json file.
|
|
2
|
+
from django.core.management.base import BaseCommand, CommandError
|
|
3
|
+
from endoreg_db.queries import generate_legacy_dataset_output
|
|
4
|
+
import json
|
|
5
|
+
|
|
6
|
+
LABELSET_NAME = "multilabel_classification"
|
|
7
|
+
LABELSET_VERSION = 0
|
|
8
|
+
|
|
9
|
+
class Command(BaseCommand):
|
|
10
|
+
help = 'Fetches the legacy dataset and saves it to a jsonl file'
|
|
11
|
+
|
|
12
|
+
def handle(self, *args, **options):
|
|
13
|
+
output, labelset = generate_legacy_dataset_output(LABELSET_NAME, LABELSET_VERSION)
|
|
14
|
+
# output is a list of dicts, each dict is an image
|
|
15
|
+
labels_in_order = labelset.get_labels_in_order()
|
|
16
|
+
|
|
17
|
+
# write to file
|
|
18
|
+
with open('legacy_dataset.jsonl', 'w') as f:
|
|
19
|
+
for img_dict in output:
|
|
20
|
+
f.write(json.dumps(img_dict) + '\n')
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
_dict = {
|
|
24
|
+
"labels": [label.name for label in labels_in_order],
|
|
25
|
+
"name": LABELSET_NAME,
|
|
26
|
+
"version": LABELSET_VERSION
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
with open('legacy_dataset_info.json', 'w') as f:
|
|
30
|
+
f.write(json.dumps(_dict))
|
|
31
|
+
|
|
32
|
+
self.stdout.write(self.style.SUCCESS('Successfully fetched and saved the legacy dataset'))
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from django.core.management.base import BaseCommand
|
|
2
|
+
from django.contrib.auth.models import Permission
|
|
3
|
+
from django.contrib.contenttypes.models import ContentType
|
|
4
|
+
from django.apps import apps
|
|
5
|
+
|
|
6
|
+
class Command(BaseCommand):
|
|
7
|
+
help = 'Sets up default permissions for each model in the app.'
|
|
8
|
+
|
|
9
|
+
def handle(self, *args, **options):
|
|
10
|
+
for model in apps.get_models():
|
|
11
|
+
content_type = ContentType.objects.get_for_model(model)
|
|
12
|
+
permissions = ['view', 'add', 'change', 'delete']
|
|
13
|
+
for perm in permissions:
|
|
14
|
+
codename = f'{perm}_{model._meta.model_name}'
|
|
15
|
+
name = f'Can {perm} {model._meta.verbose_name}'
|
|
16
|
+
Permission.objects.get_or_create(
|
|
17
|
+
codename=codename,
|
|
18
|
+
defaults={'name': name, 'content_type': content_type},
|
|
19
|
+
)
|
|
20
|
+
self.stdout.write(self.style.SUCCESS(f'Set up permissions for {model._meta.verbose_name}'))
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
import os
|
|
3
|
+
from django.core.management.base import BaseCommand
|
|
4
|
+
from ...models import ActiveModel
|
|
5
|
+
from ...utils import load_model_data_from_yaml
|
|
6
|
+
from ...data import ACTIVE_MODEL_DATA_DIR
|
|
7
|
+
|
|
8
|
+
SOURCE_DIR = ACTIVE_MODEL_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
|
|
9
|
+
|
|
10
|
+
MODEL_0 = ActiveModel
|
|
11
|
+
|
|
12
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
13
|
+
MODEL_0.__name__,
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
IMPORT_METADATA = {
|
|
17
|
+
MODEL_0.__name__: {
|
|
18
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
19
|
+
"model": MODEL_0, # e.g. Intervention
|
|
20
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
21
|
+
"foreign_key_models": [] # e.g. [InterventionType]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
class Command(BaseCommand):
|
|
26
|
+
help = """Load all .yaml files in the data/intervention directory
|
|
27
|
+
into the Intervention and InterventionType model"""
|
|
28
|
+
|
|
29
|
+
def add_arguments(self, parser):
|
|
30
|
+
parser.add_argument(
|
|
31
|
+
'--verbose',
|
|
32
|
+
action='store_true',
|
|
33
|
+
help='Display verbose output',
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
def handle(self, *args, **options):
|
|
37
|
+
verbose = options['verbose']
|
|
38
|
+
for model_name in IMPORT_MODELS:
|
|
39
|
+
_metadata = IMPORT_METADATA[model_name]
|
|
40
|
+
load_model_data_from_yaml(
|
|
41
|
+
self,
|
|
42
|
+
model_name,
|
|
43
|
+
_metadata,
|
|
44
|
+
verbose
|
|
45
|
+
)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
import os
|
|
3
|
+
from django.core.management.base import BaseCommand
|
|
4
|
+
from ...models import (
|
|
5
|
+
ModelMeta,
|
|
6
|
+
ModelType,
|
|
7
|
+
LabelSet,
|
|
8
|
+
VideoSegmentationLabel,
|
|
9
|
+
VideoSegmentationLabelSet,
|
|
10
|
+
AiModel,
|
|
11
|
+
)
|
|
12
|
+
from ...utils import load_model_data_from_yaml
|
|
13
|
+
from ...data import (
|
|
14
|
+
MODEL_TYPE_DATA_DIR,
|
|
15
|
+
VIDEO_SEGMENTATION_LABEL_DATA_DIR,
|
|
16
|
+
VIDEO_SEGMENTATION_LABELSET_DATA_DIR,
|
|
17
|
+
AI_MODEL_DATA_DIR,
|
|
18
|
+
AI_MODEL_META_DATA_DIR,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
23
|
+
ModelType.__name__,
|
|
24
|
+
# ModelMeta.__name__,
|
|
25
|
+
VideoSegmentationLabel.__name__,
|
|
26
|
+
VideoSegmentationLabelSet.__name__,
|
|
27
|
+
AiModel.__name__,
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
IMPORT_METADATA = {
|
|
31
|
+
ModelType.__name__: {
|
|
32
|
+
"dir": MODEL_TYPE_DATA_DIR, # e.g. "intervention_types"
|
|
33
|
+
"model": ModelType, # e.g. InterventionType
|
|
34
|
+
"foreign_keys": [], # e.g. ["interventions"]
|
|
35
|
+
"foreign_key_models": [], # e.g. [Intervention]
|
|
36
|
+
},
|
|
37
|
+
# ModelMeta.__name__: {
|
|
38
|
+
# "dir": AI_MODEL_META_DATA_DIR, # e.g. "intervention_types"
|
|
39
|
+
# "model": ModelMeta, # e.g. InterventionType
|
|
40
|
+
# "foreign_keys": ["labelset", "type"], # e.g. ["interventions"]
|
|
41
|
+
# "foreign_key_models": [LabelSet, ModelType], # e.g. [Intervention]
|
|
42
|
+
# },
|
|
43
|
+
VideoSegmentationLabel.__name__: {
|
|
44
|
+
"dir": VIDEO_SEGMENTATION_LABEL_DATA_DIR, # e.g. "interventions"
|
|
45
|
+
"model": VideoSegmentationLabel, # e.g. Intervention
|
|
46
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
47
|
+
"foreign_key_models": [], # e.g. [InterventionType]
|
|
48
|
+
},
|
|
49
|
+
VideoSegmentationLabelSet.__name__: {
|
|
50
|
+
"dir": VIDEO_SEGMENTATION_LABELSET_DATA_DIR, # e.g. "interventions"
|
|
51
|
+
"model": VideoSegmentationLabelSet, # e.g. Intervention
|
|
52
|
+
"foreign_keys": ["labels"], # e.g. ["intervention_types"]
|
|
53
|
+
"foreign_key_models": [VideoSegmentationLabel], # e.g. [Intervention]
|
|
54
|
+
},
|
|
55
|
+
AiModel.__name__: {
|
|
56
|
+
"dir": AI_MODEL_DATA_DIR, # e.g. "intervention_types"
|
|
57
|
+
"model": AiModel, # e.g. InterventionType
|
|
58
|
+
"foreign_keys": ["video_segmentation_labelset"], # e.g. ["interventions"]
|
|
59
|
+
"foreign_key_models": [VideoSegmentationLabelSet], # e.g. [Intervention]
|
|
60
|
+
},
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class Command(BaseCommand):
|
|
65
|
+
help = """Load all .yaml files in the data/intervention directory
|
|
66
|
+
into the Intervention and InterventionType model"""
|
|
67
|
+
|
|
68
|
+
def add_arguments(self, parser):
|
|
69
|
+
parser.add_argument(
|
|
70
|
+
"--verbose",
|
|
71
|
+
action="store_true",
|
|
72
|
+
help="Display verbose output",
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
def handle(self, *args, **options):
|
|
76
|
+
verbose = options["verbose"]
|
|
77
|
+
for model_name in IMPORT_MODELS:
|
|
78
|
+
_metadata = IMPORT_METADATA[model_name]
|
|
79
|
+
load_model_data_from_yaml(self, model_name, _metadata, verbose)
|