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
|
File without changes
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
from endoreg_db.models import CaseTemplate, CaseTemplateRule, CaseTemplateRuleType
|
|
2
|
+
from endoreg_db.case_generator.lab_sample_factory import LabSampleFactory
|
|
3
|
+
|
|
4
|
+
DEFAULT_CASE_TEMPLATE_NAME = "pre_default_screening_colonoscopy"
|
|
5
|
+
|
|
6
|
+
class CaseGenerator:
|
|
7
|
+
"""
|
|
8
|
+
Provides methods to generate cases based on a template.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
def __init__(self, template: CaseTemplate = None):
|
|
12
|
+
"""
|
|
13
|
+
Initializes the CaseGenerator with a template.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
template (CaseTemplate, optional): The template to use for case generation. Defaults to the predefined template.
|
|
17
|
+
"""
|
|
18
|
+
self.template = template or CaseTemplate.objects.get(name=DEFAULT_CASE_TEMPLATE_NAME)
|
|
19
|
+
self.lab_sample_factory = LabSampleFactory()
|
|
20
|
+
|
|
21
|
+
# Define available rule types
|
|
22
|
+
rule_type_names = [
|
|
23
|
+
"create-object",
|
|
24
|
+
"set-field-default",
|
|
25
|
+
"set-field-by-distribution",
|
|
26
|
+
"set-field-by-value",
|
|
27
|
+
"set-field-single-choice",
|
|
28
|
+
"set-field-multiple-choice",
|
|
29
|
+
]
|
|
30
|
+
self.available_rule_types = CaseTemplateRuleType.objects.filter(name__in=rule_type_names)
|
|
31
|
+
|
|
32
|
+
def _validate_rule_type(self, rule_type: CaseTemplateRuleType):
|
|
33
|
+
"""
|
|
34
|
+
Validates if the rule type is supported.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
rule_type (CaseTemplateRuleType): The rule type to validate.
|
|
38
|
+
|
|
39
|
+
Raises:
|
|
40
|
+
ValueError: If the rule type is not supported.
|
|
41
|
+
"""
|
|
42
|
+
if rule_type not in self.available_rule_types:
|
|
43
|
+
raise ValueError(f"Rule type {rule_type} is not supported.")
|
|
44
|
+
|
|
45
|
+
def _apply_create_object(self, rule: CaseTemplateRule, parent=None):
|
|
46
|
+
"""
|
|
47
|
+
Applies a create-object rule to generate a model instance.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
rule (CaseTemplateRule): The rule to apply.
|
|
51
|
+
parent (Optional[Model]): The parent object for the rule.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
Model: The created model instance.
|
|
55
|
+
"""
|
|
56
|
+
target_model = rule.get_target_model()
|
|
57
|
+
extra_params = rule.extra_parameters or {}
|
|
58
|
+
create_method_info = extra_params.get("create_method", {})
|
|
59
|
+
|
|
60
|
+
assert create_method_info, "Create method must be set for a create-object rule."
|
|
61
|
+
|
|
62
|
+
create_method = getattr(target_model, create_method_info["name"])
|
|
63
|
+
kwargs = create_method_info.get("kwargs", {})
|
|
64
|
+
|
|
65
|
+
if parent:
|
|
66
|
+
kwargs[rule.parent_field] = parent
|
|
67
|
+
|
|
68
|
+
target_instance = create_method(**kwargs)
|
|
69
|
+
target_instance.save()
|
|
70
|
+
|
|
71
|
+
for action in extra_params.get("actions", []):
|
|
72
|
+
action_method = getattr(target_instance, action["name"])
|
|
73
|
+
action_kwargs = action.get("kwargs", {})
|
|
74
|
+
action_method(**action_kwargs)
|
|
75
|
+
|
|
76
|
+
for chained_rule in rule.chained_rules.all():
|
|
77
|
+
self.apply_rule(chained_rule, parent=target_instance)
|
|
78
|
+
|
|
79
|
+
return target_instance
|
|
80
|
+
|
|
81
|
+
def _apply_set_field_by_distribution(self, rule: CaseTemplateRule, parent):
|
|
82
|
+
"""
|
|
83
|
+
Applies a set-field-by-distribution rule.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
rule (CaseTemplateRule): The rule to apply.
|
|
87
|
+
parent (Model): The parent object for the rule.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
Model: The updated parent object.
|
|
91
|
+
"""
|
|
92
|
+
assert parent, "Parent must be provided for set-field-by-distribution rules."
|
|
93
|
+
assert rule.target_field, "Target field must be specified for the rule."
|
|
94
|
+
|
|
95
|
+
distribution = rule.get_distribution()
|
|
96
|
+
value = distribution.generate_value()
|
|
97
|
+
|
|
98
|
+
setattr(parent, rule.target_field, value)
|
|
99
|
+
parent.save()
|
|
100
|
+
return parent
|
|
101
|
+
|
|
102
|
+
def apply_rule(self, rule: CaseTemplateRule, parent=None):
|
|
103
|
+
"""
|
|
104
|
+
Applies a rule based on its type to generate a case.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
rule (CaseTemplateRule): The rule to apply.
|
|
108
|
+
parent (Optional[Model]): The parent object for the rule.
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
Model: The case by applying the rule.
|
|
112
|
+
"""
|
|
113
|
+
self._validate_rule_type(rule.rule_type)
|
|
114
|
+
|
|
115
|
+
if rule.rule_type.name == "create-object":
|
|
116
|
+
return self._apply_create_object(rule, parent)
|
|
117
|
+
|
|
118
|
+
if rule.rule_type.name == "set-field-by-distribution":
|
|
119
|
+
return self._apply_set_field_by_distribution(rule, parent)
|
|
120
|
+
|
|
121
|
+
raise ValueError(f"Unsupported rule type: {rule.rule_type.name}")
|
|
122
|
+
|
|
123
|
+
def generate_case(self, case_template: CaseTemplate = None):
|
|
124
|
+
"""
|
|
125
|
+
Generates a case based on the provided or default template.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
case_template (CaseTemplate, optional): The template to use for case generation. Defaults to None.
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
Tuple[Model, Model]: The generated patient and medication schedule.
|
|
132
|
+
"""
|
|
133
|
+
case_template = case_template or CaseTemplate.objects.get(name=DEFAULT_CASE_TEMPLATE_NAME)
|
|
134
|
+
|
|
135
|
+
create_patient_rule = case_template.get_create_patient_rule()
|
|
136
|
+
patient = self.apply_rule(create_patient_rule)
|
|
137
|
+
|
|
138
|
+
medication_schedule_rule = case_template.get_create_patient_medication_schedule_rule()
|
|
139
|
+
medication_schedule = self.apply_rule(medication_schedule_rule, parent=patient)
|
|
140
|
+
|
|
141
|
+
return patient, medication_schedule
|
|
142
|
+
|
|
143
|
+
# if not create_new_patient:
|
|
144
|
+
# raise NotImplementedError("Only new patients are supported at the moment.")
|
|
145
|
+
# else:
|
|
146
|
+
# # TODO Implement patient rules
|
|
147
|
+
# patient_rules = None # all rules of type "create_patient"
|
|
148
|
+
# patient = self.generate_patient(patient_rules)
|
|
149
|
+
|
|
150
|
+
# # Generate case based on template
|
|
151
|
+
# rules = self.template.get_rules()
|
|
152
|
+
# chained_rules = set()
|
|
153
|
+
|
|
154
|
+
# for rule in rules:
|
|
155
|
+
# rule_chain = rule.get_all_downward_chained_rules()
|
|
156
|
+
# chained_rules.add(rule)
|
|
157
|
+
# chained_rules.update(rule_chain)
|
|
158
|
+
|
|
159
|
+
# return chained_rules
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
|
+
from endoreg_db.models import Patient, PatientLabSample, PatientLabSampleType
|
|
3
|
+
|
|
4
|
+
class LabSampleFactory:
|
|
5
|
+
"""
|
|
6
|
+
Provides methods to generate lab samples.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
def __init__(self):
|
|
10
|
+
"""
|
|
11
|
+
Initializes the LabSampleFactory.
|
|
12
|
+
"""
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
def create_generic_lab_sample(self, patient: Patient):
|
|
16
|
+
"""
|
|
17
|
+
Generates a generic lab sample for a given patient.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
patient (Patient): The patient for whom the lab sample is generated.
|
|
21
|
+
|
|
22
|
+
Returns:
|
|
23
|
+
PatientLabSample: The created lab sample instance.
|
|
24
|
+
"""
|
|
25
|
+
sample_type = PatientLabSampleType.objects.get(name="generic")
|
|
26
|
+
|
|
27
|
+
lab_sample = PatientLabSample.objects.create(
|
|
28
|
+
patient=patient,
|
|
29
|
+
sample_type=sample_type,
|
|
30
|
+
date=datetime.now(tz=timezone.utc)
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
return lab_sample
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from endoreg_db.models import CaseTemplate
|
|
2
|
+
from endoreg_db.case_generator.case_generator import CaseGenerator
|
|
3
|
+
|
|
4
|
+
# TEMPLATE_NAME = "pre_endo-anticoagulation-af-low_risk"
|
|
5
|
+
TEMPLATE_NAME = "pre_default_screening_colonoscopy"
|
|
6
|
+
|
|
7
|
+
def fetch_template(template_name: str = DEFAULT_TEMPLATE_NAME) -> CaseTemplate:
|
|
8
|
+
"""
|
|
9
|
+
Fetches a CaseTemplate by name.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
template_name (str): The name of the template to fetch. Defaults to DEFAULT_TEMPLATE_NAME.
|
|
13
|
+
|
|
14
|
+
Returns:
|
|
15
|
+
CaseTemplate: The fetched CaseTemplate instance.
|
|
16
|
+
"""
|
|
17
|
+
return CaseTemplate.objects.get(name=template_name)
|
|
18
|
+
|
|
19
|
+
def initialize_case_generator(template_name: str = DEFAULT_TEMPLATE_NAME) -> CaseGenerator:
|
|
20
|
+
"""
|
|
21
|
+
Initializes a CaseGenerator with the specified template.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
template_name (str): The name of the template to use. Defaults to DEFAULT_TEMPLATE_NAME.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
CaseGenerator: An instance of CaseGenerator initialized with the template.
|
|
28
|
+
"""
|
|
29
|
+
template = fetch_template(template_name)
|
|
30
|
+
return CaseGenerator(template)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
DATA_DIR = Path(__file__).parent
|
|
4
|
+
|
|
5
|
+
INFORMATION_DATA_DIR = DATA_DIR / "information_source"
|
|
6
|
+
UNIT_DATA_DIR = DATA_DIR / "unit"
|
|
7
|
+
CENTER_DATA_DIR = DATA_DIR / "center"
|
|
8
|
+
EXAMINATION_DATA_DIR = DATA_DIR / "examination"
|
|
9
|
+
MODEL_TYPE_DATA_DIR = DATA_DIR / "ai_model_type"
|
|
10
|
+
ENDOSCOPY_PROCESSOR_DATA_DIR = DATA_DIR / "endoscopy_processor"
|
|
11
|
+
ENDOSCOPE_TYPE_DATA_DIR = DATA_DIR / "endoscope_type"
|
|
12
|
+
ENDOSCOPE_DATA_DIR = DATA_DIR / "endoscope"
|
|
13
|
+
ACTIVE_MODEL_DATA_DIR = DATA_DIR / "active_model"
|
|
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"
|
|
17
|
+
EVENT_DATA_DIR = DATA_DIR / "event"
|
|
18
|
+
GENDER_DATA_DIR = DATA_DIR / "gender"
|
|
19
|
+
ORGAN_DATA_DIR = DATA_DIR / "organ"
|
|
20
|
+
|
|
21
|
+
# Contraindication
|
|
22
|
+
CONTRAINDICATION_DATA_DIR = DATA_DIR / "contraindication"
|
|
23
|
+
|
|
24
|
+
# Examination
|
|
25
|
+
EXAMINATION_INDICATION_DATA_DIR = DATA_DIR / "examination_indication"
|
|
26
|
+
EXAMINATION_INDICATION_CLASSIFICATION_DATA_DIR = (
|
|
27
|
+
DATA_DIR / "examination_indication_classification"
|
|
28
|
+
)
|
|
29
|
+
EXAMINATION_INDICATION_CLASSIFICATION_CHOICE_DATA_DIR = (
|
|
30
|
+
DATA_DIR / "examination_indication_classification_choice"
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Finding
|
|
34
|
+
FINDING_TYPE_DATA_DIR = DATA_DIR / "finding_type"
|
|
35
|
+
FINDING_DATA_DIR = DATA_DIR / "finding"
|
|
36
|
+
FINDING_LOCATION_CLASSIFICATION_DATA_DIR = DATA_DIR / "finding_location_classification"
|
|
37
|
+
FINDING_LOCATION_CLASSIFICATION_CHOICE_DATA_DIR = (
|
|
38
|
+
DATA_DIR / "finding_location_classification_choice"
|
|
39
|
+
)
|
|
40
|
+
FINDING_MORPHOLOGY_CLASSIFICATION_DATA_DIR = (
|
|
41
|
+
DATA_DIR / "finding_morphology_classification"
|
|
42
|
+
)
|
|
43
|
+
FINDING_MORPHOLOGY_CLASSIFICATION_CHOICE_DATA_DIR = (
|
|
44
|
+
DATA_DIR / "finding_morphology_classification_choice"
|
|
45
|
+
)
|
|
46
|
+
FINDING_MORPGOLOGY_CLASSIFICATION_TYPE_DATA_DIR = (
|
|
47
|
+
DATA_DIR / "finding_morphology_classification_type"
|
|
48
|
+
)
|
|
49
|
+
FINDING_INTERVETION_DATA_DIR = DATA_DIR / "finding_intervention"
|
|
50
|
+
FINIDNG_INTERVENTION_TYPE_DATA_DIR = DATA_DIR / "finding_intervention_type"
|
|
51
|
+
|
|
52
|
+
# Green Endoscopy Dashboard Stuffs
|
|
53
|
+
CENTER_RESOURCE_DATA_DIR = DATA_DIR / "center_resource"
|
|
54
|
+
CENTER_WASTE_DATA_DIR = DATA_DIR / "center_waste"
|
|
55
|
+
EMISSION_FACTOR_DATA_DIR = DATA_DIR / "emission_factor"
|
|
56
|
+
MATERIAL_DATA_DIR = DATA_DIR / "material"
|
|
57
|
+
PRODUCT_DATA_DIR = DATA_DIR / "product"
|
|
58
|
+
PRODUCT_GROUP_DATA_DIR = DATA_DIR / "product_group"
|
|
59
|
+
PRODUCT_MATERIAL_DATA_DIR = DATA_DIR / "product_material"
|
|
60
|
+
PRODUCT_WEIGHT_DATA_DIR = DATA_DIR / "product_weight"
|
|
61
|
+
REFERENCE_PRODUCT_DATA_DIR = DATA_DIR / "reference_product"
|
|
62
|
+
RESOURCE_DATA_DIR = DATA_DIR / "resource"
|
|
63
|
+
WASTE_DATA_DIR = DATA_DIR / "waste"
|
|
64
|
+
TRANSPORT_ROUTE_DATA_DIR = DATA_DIR / "transport_route"
|
|
65
|
+
DISEASE_CLASSIFICATION_DATA_DIR = DATA_DIR / "disease_classification"
|
|
66
|
+
DISEASE_CLASSIFICATION_CHOICE_DATA_DIR = DATA_DIR / "disease_classification_choice"
|
|
67
|
+
DISEASE_DATA_DIR = DATA_DIR / "disease"
|
|
68
|
+
MEDICATION_DATA_DIR = DATA_DIR / "medication"
|
|
69
|
+
MEDICATION_INDICATION_DATA_DIR = DATA_DIR / "medication_indication"
|
|
70
|
+
MEDICATION_INDICATION_TYPE_DATA_DIR = DATA_DIR / "medication_indication_type"
|
|
71
|
+
|
|
72
|
+
DISTRIBUTION_BASE_DIR = DATA_DIR / "distribution"
|
|
73
|
+
DISTRIBUTION_SINGLE_CATEGORICAL_DATA_DIR = DISTRIBUTION_BASE_DIR / "single_categorical"
|
|
74
|
+
DISTRIBUTION_NUMERIC_DATA_DIR = DISTRIBUTION_BASE_DIR / "numeric"
|
|
75
|
+
DISTRIBUTION_MULTIPLE_CATEGORICAL_DATA_DIR = (
|
|
76
|
+
DISTRIBUTION_BASE_DIR / "multiple_categorical"
|
|
77
|
+
)
|
|
78
|
+
DISTRIBUTION_DATE_DATA_DIR = DISTRIBUTION_BASE_DIR / "date"
|
|
79
|
+
|
|
80
|
+
# G-Play Stuffs
|
|
81
|
+
CASE_TEMPLATE_BASE_DIR = DATA_DIR / "case_template"
|
|
82
|
+
CASE_TEMPLATE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "template"
|
|
83
|
+
CASE_TEMPLATE_TYPE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "template_type"
|
|
84
|
+
CASE_TEMPLATE_RULE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "rule"
|
|
85
|
+
CASE_TEMPLATE_RULE_TYPE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "rule_type"
|
|
86
|
+
CASE_TEMPLATE_RULE_VALUE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "rule_value"
|
|
87
|
+
CASE_TEMPLATE_RULE_VALUE_TYPE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "rule_value_type"
|
|
88
|
+
|
|
89
|
+
# NETWORK
|
|
90
|
+
NETWORK_DEVICE_DATA_DIR = DATA_DIR / "network_device"
|
|
91
|
+
NETWORK_DEVICE_TYPE_DATA_DIR = DATA_DIR / "network_device_type"
|
|
92
|
+
AGL_SERVICE_DATA_DIR = DATA_DIR / "agl_service"
|
|
93
|
+
|
|
94
|
+
# LOGS
|
|
95
|
+
LOG_TYPE_DATA_DIR = DATA_DIR / "log_type"
|
|
96
|
+
|
|
97
|
+
# AI STUFFS
|
|
98
|
+
AI_MODEL_DATA_DIR = DATA_DIR / "ai_model"
|
|
99
|
+
AI_MODEL_TYPE_DATA_DIR = DATA_DIR / "ai_model_type"
|
|
100
|
+
AI_MODEL_META_DATA_DIR = DATA_DIR / "ai_model_meta"
|
|
101
|
+
LABEL_DATA_DIR = DATA_DIR / "ai_model_label"
|
|
102
|
+
VIDEO_SEGMENTATION_LABEL_DATA_DIR = DATA_DIR / "ai_model_video_segmentation_label"
|
|
103
|
+
VIDEO_SEGMENTATION_LABELSET_DATA_DIR = DATA_DIR / "ai_model_video_segmentation_labelset"
|
|
104
|
+
|
|
105
|
+
# To Do
|
|
106
|
+
LAB_VALUE_DATA_DIR = DATA_DIR / "lab_value"
|
|
107
|
+
PATIENT_LAB_SAMPLE_TYPE_DATA_DIR = DATA_DIR / "patient_lab_sample_type"
|
|
108
|
+
MEDICATION_SCHEDULE_DATA_DIR = DATA_DIR / "medication_schedule"
|
|
109
|
+
MEDICATION_INTAKE_TIME_DATA_DIR = DATA_DIR / "medication_intake_time"
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
RULE_TYPE_DATA_DIR = DATA_DIR / "rule_type"
|
|
113
|
+
RULE_ATTRIBUTE_DTYPE_DATA_DIR = DATA_DIR / "rule_attribute_dtype"
|
|
114
|
+
RULESET_DATA_DIR = DATA_DIR / "ruleset"
|
|
115
|
+
|
|
116
|
+
LX_PERMISSION_DATA_DIR = DATA_DIR / "lx_permission"
|
|
117
|
+
LX_CLIENT_TAG_DATA_DIR = DATA_DIR / "lx_client_tag"
|
|
118
|
+
LX_CLIENT_TYPE_DATA_DIR = DATA_DIR / "lx_client_type"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
- model: endoreg_db.agl_service
|
|
2
|
+
fields:
|
|
3
|
+
name: "agl-home-django"
|
|
4
|
+
description: "AGL Home Django service"
|
|
5
|
+
devices: [
|
|
6
|
+
"agl-server-04",
|
|
7
|
+
]
|
|
8
|
+
port: 9100
|
|
9
|
+
url: "https://home.endo-reg.net/"
|
|
10
|
+
|
|
11
|
+
- model: endoreg_db.agl_service
|
|
12
|
+
fields:
|
|
13
|
+
name: "endoreg-client-manager"
|
|
14
|
+
description: "AGL Home Django service"
|
|
15
|
+
devices: [
|
|
16
|
+
"agl-gpu-client-dev",
|
|
17
|
+
]
|
|
18
|
+
port: 9000
|
|
19
|
+
url: "https://home.endo-reg.net/"
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
- model: endoreg_db.ai_model
|
|
2
|
+
fields:
|
|
3
|
+
name: "image_multilabel_classification_colonoscopy_default"
|
|
4
|
+
description: "Image multilabel classification model"
|
|
5
|
+
model_type: "image"
|
|
6
|
+
model_subtype: "multilabel"
|
|
7
|
+
video_segmentation_labelset: "colonoscopy_video_segmentation_raw"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# labels are: "appendix", "ileocecal_valve", "polyp", "water_jet", "digital_chromo_endoscopy", "instrument", "wound", "blood", "ileum", "low_quality", "clip", "outside"
|
|
2
|
+
|
|
3
|
+
- model: endoreg_db.Label
|
|
4
|
+
fields:
|
|
5
|
+
name: "appendix"
|
|
6
|
+
label_type: "classification"
|
|
7
|
+
|
|
8
|
+
- model: endoreg_db.Label
|
|
9
|
+
fields:
|
|
10
|
+
name: "ileocaecalvalve"
|
|
11
|
+
label_type: "classification"
|
|
12
|
+
|
|
13
|
+
- model: endoreg_db.Label
|
|
14
|
+
fields:
|
|
15
|
+
name: "polyp"
|
|
16
|
+
label_type: "classification"
|
|
17
|
+
|
|
18
|
+
- model: endoreg_db.Label
|
|
19
|
+
fields:
|
|
20
|
+
name: "water_jet"
|
|
21
|
+
label_type: "classification"
|
|
22
|
+
|
|
23
|
+
- model: endoreg_db.Label
|
|
24
|
+
fields:
|
|
25
|
+
name: "digital_chromo_endoscopy"
|
|
26
|
+
label_type: "classification"
|
|
27
|
+
|
|
28
|
+
- model: endoreg_db.Label
|
|
29
|
+
fields:
|
|
30
|
+
name: "instrument"
|
|
31
|
+
label_type: "classification"
|
|
32
|
+
|
|
33
|
+
- model: endoreg_db.Label
|
|
34
|
+
fields:
|
|
35
|
+
name: "wound"
|
|
36
|
+
label_type: "classification"
|
|
37
|
+
|
|
38
|
+
- model: endoreg_db.Label
|
|
39
|
+
fields:
|
|
40
|
+
name: "blood"
|
|
41
|
+
label_type: "classification"
|
|
42
|
+
|
|
43
|
+
- model: endoreg_db.Label
|
|
44
|
+
fields:
|
|
45
|
+
name: "ileum"
|
|
46
|
+
label_type: "classification"
|
|
47
|
+
|
|
48
|
+
- model: endoreg_db.Label
|
|
49
|
+
fields:
|
|
50
|
+
name: "low_quality"
|
|
51
|
+
label_type: "classification"
|
|
52
|
+
|
|
53
|
+
- model: endoreg_db.Label
|
|
54
|
+
fields:
|
|
55
|
+
name: "clip"
|
|
56
|
+
label_type: "classification"
|
|
57
|
+
|
|
58
|
+
- model: endoreg_db.Label
|
|
59
|
+
fields:
|
|
60
|
+
name: "outside"
|
|
61
|
+
label_type: "classification"
|
|
62
|
+
|
|
63
|
+
- model: endoreg_db.Label
|
|
64
|
+
fields:
|
|
65
|
+
name: "diverticule"
|
|
66
|
+
label_type: "classification"
|
|
67
|
+
|
|
68
|
+
- model: endoreg_db.Label
|
|
69
|
+
fields:
|
|
70
|
+
name: "grasper"
|
|
71
|
+
label_type: "classification"
|
|
72
|
+
|
|
73
|
+
- model: endoreg_db.Label
|
|
74
|
+
fields:
|
|
75
|
+
name: "nbi"
|
|
76
|
+
label_type: "classification"
|
|
77
|
+
|
|
78
|
+
# needle
|
|
79
|
+
- model: endoreg_db.Label
|
|
80
|
+
fields:
|
|
81
|
+
name: "needle"
|
|
82
|
+
label_type: "classification"
|
|
83
|
+
|
|
84
|
+
# snare
|
|
85
|
+
- model: endoreg_db.Label
|
|
86
|
+
fields:
|
|
87
|
+
name: "snare"
|
|
88
|
+
label_type: "classification"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
- model: endoreg_db.LabelSet
|
|
2
|
+
fields:
|
|
3
|
+
name: "multilabel_classification_colonoscopy_default"
|
|
4
|
+
version: 1
|
|
5
|
+
labels:
|
|
6
|
+
[
|
|
7
|
+
"appendix",
|
|
8
|
+
"blood",
|
|
9
|
+
"diverticule",
|
|
10
|
+
"grasper",
|
|
11
|
+
"ileocaecalvalve",
|
|
12
|
+
"ileum",
|
|
13
|
+
"low_quality",
|
|
14
|
+
"nbi",
|
|
15
|
+
"needle",
|
|
16
|
+
"outside",
|
|
17
|
+
"polyp",
|
|
18
|
+
"snare",
|
|
19
|
+
"water_jet",
|
|
20
|
+
"wound",
|
|
21
|
+
]
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
- model: endoreg_db.video_segmentation_label
|
|
2
|
+
fields:
|
|
3
|
+
name: "upper_gi"
|
|
4
|
+
name_de: "Oberer GI-Trakt"
|
|
5
|
+
name_en: "Upper GI"
|
|
6
|
+
description: "Upper GI"
|
|
7
|
+
color: "#FF0000"
|
|
8
|
+
|
|
9
|
+
- model: endoreg_db.video_segmentation_label
|
|
10
|
+
fields:
|
|
11
|
+
name: "lower_gi"
|
|
12
|
+
name_de: "Unterer GI-Trakt"
|
|
13
|
+
name_en: "Lower GI"
|
|
14
|
+
description: "Lower GI"
|
|
15
|
+
color: "#00FF00"
|
|
16
|
+
|
|
17
|
+
- model: endoreg_db.video_segmentation_label
|
|
18
|
+
fields:
|
|
19
|
+
name: "esophagus"
|
|
20
|
+
name_de: "Ösophagus"
|
|
21
|
+
name_en: "Esophagus"
|
|
22
|
+
description: "Esophagus"
|
|
23
|
+
color: "#0000FF"
|
|
24
|
+
|
|
25
|
+
- model: endoreg_db.video_segmentation_label
|
|
26
|
+
fields:
|
|
27
|
+
name: "stomach"
|
|
28
|
+
name_de: "Magen"
|
|
29
|
+
name_en: "Stomach"
|
|
30
|
+
description: "Stomach"
|
|
31
|
+
color: "#FFFF00"
|
|
32
|
+
|
|
33
|
+
- model: endoreg_db.video_segmentation_label
|
|
34
|
+
fields:
|
|
35
|
+
name: "duodenum"
|
|
36
|
+
name_de: "Duodenum"
|
|
37
|
+
name_en: "Duodenum"
|
|
38
|
+
description: "Duodenum"
|
|
39
|
+
color: "#FF00FF"
|
|
40
|
+
|
|
41
|
+
- model: endoreg_db.video_segmentation_label
|
|
42
|
+
fields:
|
|
43
|
+
name: "colon"
|
|
44
|
+
name_de: "Kolon"
|
|
45
|
+
name_en: "Colon"
|
|
46
|
+
description: "Colon"
|
|
47
|
+
color: "#00FFFF"
|
|
48
|
+
|
|
49
|
+
- model: endoreg_db.video_segmentation_label
|
|
50
|
+
fields:
|
|
51
|
+
name: "ileum"
|
|
52
|
+
name_de: "Ileum"
|
|
53
|
+
name_en: "Ileum"
|
|
54
|
+
description: "Ileum"
|
|
55
|
+
color: "#800000"
|
|
56
|
+
|
|
57
|
+
- model: endoreg_db.video_segmentation_label
|
|
58
|
+
fields:
|
|
59
|
+
name: "outside"
|
|
60
|
+
name_de: "Außerhalb des Körpers"
|
|
61
|
+
name_en: "Out of Body"
|
|
62
|
+
description: "Out of Body"
|
|
63
|
+
color: "#008000"
|
|
64
|
+
|
|
65
|
+
- model: endoreg_db.video_segmentation_label
|
|
66
|
+
fields:
|
|
67
|
+
name: "bli"
|
|
68
|
+
name_de: "Blau-Licht-Imaging"
|
|
69
|
+
name_en: "Blue Light Imaging"
|
|
70
|
+
description: "Blue Light Imaging (high level for nbi and similar modes)"
|
|
71
|
+
color: "#000080"
|
|
72
|
+
|
|
73
|
+
- model: endoreg_db.video_segmentation_label
|
|
74
|
+
fields:
|
|
75
|
+
name: "low_quality"
|
|
76
|
+
name_de: "Niedrige Qualität"
|
|
77
|
+
name_en: "Low Quality"
|
|
78
|
+
description: "Low Quality"
|
|
79
|
+
color: "#800080"
|
|
80
|
+
|
|
81
|
+
- model: endoreg_db.video_segmentation_label
|
|
82
|
+
fields:
|
|
83
|
+
name: "instrument"
|
|
84
|
+
name_de: "Instrument"
|
|
85
|
+
name_en: "Instrument"
|
|
86
|
+
description: "Instrument"
|
|
87
|
+
color: "#808000"
|
|
88
|
+
|
|
89
|
+
# Appendix
|
|
90
|
+
- model: endoreg_db.video_segmentation_label
|
|
91
|
+
fields:
|
|
92
|
+
name: "appendix"
|
|
93
|
+
name_de: "Appendix"
|
|
94
|
+
name_en: "Appendix"
|
|
95
|
+
description: "Appendix"
|
|
96
|
+
color: "#FF0000"
|
|
97
|
+
# blood, diverticule, grasper, ileocaecalvalve, ileum, low_quality, nbi, needle, polyp, snare, water_jet, wound
|
|
98
|
+
- model: endoreg_db.video_segmentation_label
|
|
99
|
+
fields:
|
|
100
|
+
name: "blood"
|
|
101
|
+
name_de: "Blut"
|
|
102
|
+
name_en: "Blood"
|
|
103
|
+
description: "Blood"
|
|
104
|
+
color: "#00FF00"
|
|
105
|
+
|
|
106
|
+
- model: endoreg_db.video_segmentation_label
|
|
107
|
+
fields:
|
|
108
|
+
name: "diverticule"
|
|
109
|
+
name_de: "Divertikel"
|
|
110
|
+
name_en: "Diverticule"
|
|
111
|
+
description: "Diverticule"
|
|
112
|
+
color: "#0000FF"
|
|
113
|
+
|
|
114
|
+
- model: endoreg_db.video_segmentation_label
|
|
115
|
+
fields:
|
|
116
|
+
name: "grasper"
|
|
117
|
+
name_de: "Grasper"
|
|
118
|
+
name_en: "Grasper"
|
|
119
|
+
description: "Grasper"
|
|
120
|
+
color: "#FFFF00"
|
|
121
|
+
|
|
122
|
+
- model: endoreg_db.video_segmentation_label
|
|
123
|
+
fields:
|
|
124
|
+
name: "ileocaecalvalve"
|
|
125
|
+
name_de: "Ileocaecalvalve"
|
|
126
|
+
name_en: "Ileocaecalvalve"
|
|
127
|
+
description: "Ileocaecalvalve"
|
|
128
|
+
color: "#FF00FF"
|
|
129
|
+
|
|
130
|
+
- model: endoreg_db.video_segmentation_label
|
|
131
|
+
fields:
|
|
132
|
+
name: "nbi"
|
|
133
|
+
name_de: "Narrow Band Imaging"
|
|
134
|
+
name_en: "Narrow Band Imaging"
|
|
135
|
+
description: "Narrow Band Imaging"
|
|
136
|
+
color: "#00FFFF"
|
|
137
|
+
|
|
138
|
+
- model: endoreg_db.video_segmentation_label
|
|
139
|
+
fields:
|
|
140
|
+
name: "needle"
|
|
141
|
+
name_de: "Needle"
|
|
142
|
+
name_en: "Needle"
|
|
143
|
+
description: "Needle"
|
|
144
|
+
color: "#800000"
|
|
145
|
+
|
|
146
|
+
- model: endoreg_db.video_segmentation_label
|
|
147
|
+
fields:
|
|
148
|
+
name: "polyp"
|
|
149
|
+
name_de: "Polyp"
|
|
150
|
+
name_en: "Polyp"
|
|
151
|
+
description: "Polyp"
|
|
152
|
+
color: "#008000"
|
|
153
|
+
|
|
154
|
+
- model: endoreg_db.video_segmentation_label
|
|
155
|
+
fields:
|
|
156
|
+
name: "snare"
|
|
157
|
+
name_de: "Snare"
|
|
158
|
+
name_en: "Snare"
|
|
159
|
+
description: "Snare"
|
|
160
|
+
color: "#000080"
|
|
161
|
+
|
|
162
|
+
- model: endoreg_db.video_segmentation_label
|
|
163
|
+
fields:
|
|
164
|
+
name: "water_jet"
|
|
165
|
+
name_de: "Water Jet"
|
|
166
|
+
name_en: "Water Jet"
|
|
167
|
+
description: "Water Jet"
|
|
168
|
+
color: "#800080"
|
|
169
|
+
|
|
170
|
+
- model: endoreg_db.video_segmentation_label
|
|
171
|
+
fields:
|
|
172
|
+
name: "wound"
|
|
173
|
+
name_de: "Wound"
|
|
174
|
+
name_en: "Wound"
|
|
175
|
+
description: "Wound"
|
|
176
|
+
color: "#808000"
|