endoreg-db 0.6.2__tar.gz → 0.6.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of endoreg-db might be problematic. Click here for more details.
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/PKG-INFO +1 -1
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/distribution/numeric/data.yaml +1 -1
- endoreg_db-0.6.3/endoreg_db/mermaid/Overall_flow_patient_finding_intervention.md +10 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/anonymized_image_annotation.md +20 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/binary_classification_annotation.md +50 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/classification.md +8 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/examination.md +8 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/findings.md +7 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/image_classification.md +28 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/interventions.md +8 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/morphology.md +8 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/patient_creation.md +14 -0
- endoreg_db-0.6.3/endoreg_db/mermaid/video_segmentation_annotation.md +17 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/ai_model.py +1 -1
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/model_meta.py +1 -1
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/utils.py +1 -1
- endoreg_db-0.6.3/endoreg_db/serializers/raw_pdf_anony_text_validation.py +137 -0
- endoreg_db-0.6.3/endoreg_db/serializers/raw_pdf_meta_validation.py +223 -0
- endoreg_db-0.6.3/endoreg_db/serializers/raw_video_meta_validation.py +175 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/video_segmentation.py +207 -112
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/urls.py +110 -11
- endoreg_db-0.6.3/endoreg_db/views/raw_pdf_anony_text_validation_views.py +95 -0
- endoreg_db-0.6.3/endoreg_db/views/raw_pdf_meta_validation_views.py +111 -0
- endoreg_db-0.6.3/endoreg_db/views/raw_video_meta_validation_views.py +148 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views/video_segmentation_views.py +28 -11
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/pyproject.toml +1 -1
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/uv.lock +2 -2
- endoreg_db-0.6.2/endoreg_db/serializers/raw_video_meta_validation.py +0 -13
- endoreg_db-0.6.2/endoreg_db/views/raw_video_meta_validation_views.py +0 -38
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/.envrc +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/.gitignore +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/.pylintrc +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/.python-version +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/LICENSE +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/README.md +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/dev/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/dev/cg.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/dev/explore_legacy_frames.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/dev/test_model.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/dev/video_utils.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/devenv.lock +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/devenv.nix +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/devenv.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/admin.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/apps.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/case_generator/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/case_generator/case_generator.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/case_generator/lab_sample_factory.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/case_generator/utils.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/agl_service/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_label/label/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_label/label-set/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_label/label-type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_video_segmentation_label/base_segmentation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/ai_model_video_segmentation_labelset/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/01_patient-set-age.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule/19_create_patient.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule_type/base_types.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule_value/.init +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/rule_value_type/base_types.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/template/base.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/tmp/_rule_value +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/center/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/contraindication/bleeding.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease/cardiovascular.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease/hepatology.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease/misc.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease/renal.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/distribution/date/patient.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/distribution/multiple_categorical/.init +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/distribution/single_categorical/patient.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/endoscope/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/endoscope_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/endoscopy_processor/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/event/cardiology.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/event/neurology.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/event/surgery.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/event/thrombembolism.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination/examinations/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination/time/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination/time-type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination/type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination_indication/endoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination_indication_classification/endoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_intervention/endoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_intervention_type/endoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_location_classification/colonoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_location_classification_choice/colonoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification/colonoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_circularity_default.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_nice.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_paris.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_planarity_default.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_surface_intact_default.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_choice/colonoscopy_size.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/finding_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/gender/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/information_source/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/information_source/medication.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/cardiac_enzymes.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/coagulation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/electrolytes.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/gastrointestinal_function.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/hematology.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/hormones.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/lipids.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/misc.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lab_value/renal_function.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/log_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lx_client_tag/base.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lx_client_type/base.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lx_permission/base.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/lx_permission/endoreg.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/material/material.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication/anticoagulation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication/tah.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_indication/anticoagulation.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_indication_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_indication_type/thrombembolism.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_intake_time/base.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_schedule/apixaban.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_schedule/ass.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/medication_schedule/enoxaparin.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/names_first/first_names.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/names_last/last_names.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/network_device/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/network_device_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/organ/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/patient_lab_sample_type/generic.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/pdf_type/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/profession/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/concentration.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/length.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/misc.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/rate.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/time.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/volume.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/unit/weight.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/data/waste/data.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/examination_form.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/patient_finding_intervention_form.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/patient_form.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/questionnaires/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/questionnaires/tto_questionnaire.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/settings/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/forms/unit.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/_load_model_template.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/delete_all.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/fetch_legacy_image_dataset.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/fix_auth_permission.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_active_model_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_ai_model_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_ai_model_label_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_base_db_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_center_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_contraindication_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_disease_classification_choices_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_disease_classification_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_disease_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_distribution_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_endoscope_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_event_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_examination_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_examination_indication_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_finding_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_g_play_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_gender_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_information_source.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_lab_value_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_logging_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_lx_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_medication_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_medication_indication_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_medication_indication_type_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_medication_intake_time_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_medication_schedule_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_name_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_network_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_organ_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_pdf_type_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_profession_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_report_reader_flag_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_unit_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/load_user_groups.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/register_ai_model.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/management/commands/reset_celery_schedule.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0001_initial.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0002_alter_frame_image_alter_rawframe_image.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0003_alter_frame_image_alter_rawframe_image.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0004_alter_rawvideofile_file_alter_video_file.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0005_rawvideofile_frame_count_and_more.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0006_frame_extracted_rawframe_extracted.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0007_rename_pseudo_patient_video_patient_and_more.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/0008_remove_reportfile_patient_examination_and_more.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/migrations/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/active_model.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/inference_dataset.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/multilabel_classification_net.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/postprocess.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/predict.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/prediction_visualizer.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/preprocess.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/lightning/run_visualizer.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/model_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/ai_model/utils.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/annotation/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/annotation/anonymized_image_annotation.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/annotation/binary_classification_annotation_task.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/annotation/image_classification.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/annotation/video_segmentation_annotation.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/annotation/video_segmentation_labelset.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case/case.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case_template/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case_template/case_template.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case_template/case_template_rule.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case_template/case_template_rule_value.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/case_template/case_template_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/center/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/center/center.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/center/center_product.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/center/center_resource.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/center/center_waste.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/contraindication/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/abstract_frame.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/abstract_pdf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/abstract_video.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/frame_helpers.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/base_classes/prepare_bulk_frames.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/frame.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/import_classes/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/import_classes/processing_functions/video.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/import_classes/raw_pdf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/import_classes/raw_video.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/metadata/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/metadata/pdf_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/metadata/sensitive_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/metadata/video_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/report_file.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/video/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/video/import_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/video/video.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/data_file/video_segment.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/disease.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/emission/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/emission/emission_factor.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/event.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/examination/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/examination/examination.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/examination/examination_indication.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/examination/examination_time.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/examination/examination_time_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/examination/examination_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/finding/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/finding/finding.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/finding/finding_intervention.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/finding/finding_location_classification.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/finding/finding_morphology_classification.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/finding/finding_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/hardware/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/hardware/endoscope.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/hardware/endoscopy_processor.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/information_source.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/label/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/label/label.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/laboratory/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/laboratory/lab_value.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/logging/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/logging/agl_service.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/logging/base.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/logging/log_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/logging/network_device.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/lx/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/lx/client.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/lx/identity.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/lx/permission.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/lx/user.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/medication/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/medication/medication.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/medication/medication_indication.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/medication/medication_indication_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/medication/medication_intake_time.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/medication/medication_schedule.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/network/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/network/agl_service.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/network/network_device.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/network/network_device_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/organ/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution/base_value_distribution.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution/date_value_distribution.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution/numeric_value_distribution.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution/single_categorical_value_distribution.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/distribution.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/material.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/resource.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/transport_route.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/other/waste.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/patient/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/patient/patient_examination.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/patient/patient_finding.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/patient/patient_finding_intervention.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/patient/patient_finding_location.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/patient/patient_finding_morphology.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/permissions/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/examiner/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/examiner/examiner.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/examiner/examiner_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/first_name.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/gender.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/last_name.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_disease.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_event.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_examination_indication.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_lab_sample.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_lab_value.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_medication.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/patient/patient_medication_schedule.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/person.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/persons/portal_user_information.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/prediction/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/prediction/image_classification.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/prediction/video_prediction_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/product/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/product/product.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/product/product_group.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/product/product_material.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/product/product_weight.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/product/reference_product.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/questionnaires/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/quiz/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/quiz/quiz_answer.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/quiz/quiz_question.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/report_reader/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/report_reader/report_reader_config.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/report_reader/report_reader_flag.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/rules/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/rules/rule.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/rules/rule_applicator.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/rules/rule_attribute_dtype.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/rules/rule_type.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/rules/ruleset.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/models/unit.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/annotations/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/annotations/legacy.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/annotation.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/center.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/model.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/patient.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/patient_examination.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/prediction.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/report_file.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/video.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/video_import_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/get/video_prediction_meta.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/queries/sanity/__init_.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/ai_model.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/annotation.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/center.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/examination.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/frame.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/hardware.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/label.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/patient.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/prediction.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/report_file.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/serializers/video.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/templates/admin/patient_finding_intervention.html +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/templates/admin/start_examination.html +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/templates/timeline.html +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/tests.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/cropping.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/dataloader.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/dates.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/file_operations.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/hashs.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/legacy_ocr.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/names.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/ocr.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/parse_and_generate_yaml.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/pydantic_models/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/pydantic_models/db_config.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/uuid.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/validate_endo_roi.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/validate_subcategory_dict.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/video/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/video/extract_frames.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/utils/video/transcode_videofile.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views/csrf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views/patient_views.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views/report_views.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views/views_for_timeline.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/endoreg_db/views.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/hello.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/install_dependencies.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/logs/2024-12-01_15-37-07.txt +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/logs/2024-12-01_15-37-45.txt +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/requirements-cpu.txt +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/requirements-gpu.txt +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/runtests.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/secrets/poetry.yaml +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/teeeests_for_later/case_template/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/teeeests_for_later/case_template/_test_main_template.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/teeeests_for_later/center/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/teeeests_for_later/center/test_center.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/teeeests_for_later/center/test_green_endoscopy.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/center/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/center/conf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/center/test_center.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/center/test_hardware.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/datafiles/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/datafiles/conf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/datafiles/test_ai_model.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/datafiles/test_pdf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/datafiles/test_video_import.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/luxnix/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/luxnix/conf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/luxnix/test_client_permission.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/luxnix/test_client_tags.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/luxnix/test_client_types.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/management/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/management/test_load_data.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/models.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/conf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_disease.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_event.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_examination.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_finding_intervention.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_findings.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_lab_sample.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/test_patient_medication.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/patient/utils.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/test_settings.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/unit/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/unit/conf.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/unit/test_unit.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/utils/__init__.py +0 -0
- {endoreg_db-0.6.2 → endoreg_db-0.6.3}/tests/utils/test_dates.py +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
%% Main Patient Workflow
|
|
5
|
+
A[Patient: John] --> B[Examination: Colonoscopy]
|
|
6
|
+
B --> C[Finding: Colon Polyp]
|
|
7
|
+
C --> D[Finding Location: Colonoscopy Default - Right Flexure]
|
|
8
|
+
D --> E[Finding Morphology: Colon Lesion Planarity Default - Colon Lesion Planarity Excavated]
|
|
9
|
+
E --> F[Intervention: Colon Lesion Polypectomy - Hot Snare]
|
|
10
|
+
F --> G[Report Generation]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
%% File Handling Process
|
|
5
|
+
A[**Uploaded File**] -->|Original File Uploaded| B[**Anonymized File**]
|
|
6
|
+
B -->|File Anonymized & Stored| C[**Anonymous Image Annotation**]
|
|
7
|
+
|
|
8
|
+
%% Image Annotation & Processing
|
|
9
|
+
C -->|Label Assigned| D[**Anonymized Image Label**]
|
|
10
|
+
C -->|Detected Personal Info Removed| E[**Dropped Name**]
|
|
11
|
+
|
|
12
|
+
%% Relationships & Processing
|
|
13
|
+
E -->|Stored for Record-Keeping| C;
|
|
14
|
+
D -->|Predefined Labels Used| C;
|
|
15
|
+
|
|
16
|
+
%% Example Data (Corrected & Meaningful)
|
|
17
|
+
X1(["**Example: Uploaded colonoscopy.jpg**"]) -.-> A;
|
|
18
|
+
X2(["**Example: anonymized_colonoscopy.jpg**"]) -.-> B;
|
|
19
|
+
X3(["**Example: Label - 'Polyp Detected'**"]) -.-> D;
|
|
20
|
+
X4(["**Example: Name 'John Doe' removed**"]) -.-> E;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
%% Step 1: Image Classification (Start)
|
|
7
|
+
|
|
8
|
+
A[**Image Classification**] -->|Uses| B[**Label**];
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
%% Step 2: Video Segmentation
|
|
13
|
+
|
|
14
|
+
A -->|Segments Stored In| C[**Video Segmentation**];
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
%% Step 3: Automatic Segmentation Detection
|
|
19
|
+
|
|
20
|
+
D["**find_segments_in_prediction_array()**"] -->|Detects & Segments| C;
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
%% Step 4: Fetching Unclassified Frames for Annotation
|
|
25
|
+
|
|
26
|
+
E["get_legacy_binary_classification_annotation_tasks_by_label()"] -->|Finds Frames Needing Annotation| F;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
%% Step 5: Binary Classification Task Management
|
|
31
|
+
|
|
32
|
+
F[**Binary Classification Task**] -->|Assigned To| G[**Frame**];
|
|
33
|
+
|
|
34
|
+
F -->|Assigned To| H[**Legacy Frame**];
|
|
35
|
+
|
|
36
|
+
F -->|Uses| B;
|
|
37
|
+
|
|
38
|
+
%% Step 6: Task Completion & Cleanup (End)
|
|
39
|
+
|
|
40
|
+
I["clear_finished_legacy_tasks()"] -->|Removes Completed Tasks| F;
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
%% Example Data
|
|
45
|
+
|
|
46
|
+
X1(["Example: Frame classified as 'Polyp Present'"]) -.-> A;
|
|
47
|
+
|
|
48
|
+
X2(["Example: Video segment marked from 100s to 200s"]) -.-> C;
|
|
49
|
+
|
|
50
|
+
X3(["Example: 10 unclassified frames found"]) -.-> F;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
A["Start: Select Finding Location Classification"] --> B["Store in endoreg_db_findinglocationclassification"]
|
|
5
|
+
B --> C["Retrieve Available Choices"]
|
|
6
|
+
C --> D["Save Selected Location in endoreg_db_patientfinding_locations"]
|
|
7
|
+
D --> E["Link Location to Patient Finding via Foreign Key"]
|
|
8
|
+
E --> F["Finding Location Process Completed"]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
A["Start: Record Examination"] --> B["Store in endoreg_db_examination"]
|
|
5
|
+
B --> C["Retrieve Patient ID"]
|
|
6
|
+
C --> D["Save in endoreg_db_patientexamination with Patient ID"]
|
|
7
|
+
D --> E["Link Patient to Examination via Foreign Key"]
|
|
8
|
+
E --> F["Examination Process Completed"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
A["Start: Identify Medical Finding"] --> B["Store in endoreg_db_finding"]
|
|
5
|
+
B --> C["Retrieve Patient Examination ID"]
|
|
6
|
+
C --> D["Save in endoreg_db_patientfinding with Examination ID (Link Finding to Examination via Foreign Key)"]
|
|
7
|
+
D --> E["Finding Process Completed"]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
%% Image Classification Process
|
|
5
|
+
A[**Image Classification Annotation**] -->|Attached to| B[**Frame**];
|
|
6
|
+
A -->|Attached to| C[**Legacy Frame**];
|
|
7
|
+
A -->|Attached to| D[**Legacy Image**];
|
|
8
|
+
A -->|Uses Predefined| E[**Label**];
|
|
9
|
+
|
|
10
|
+
%% Video Segmentation Process
|
|
11
|
+
F[**Abstract Label Video Segment**] -->|Base Class for| G[**Legacy Label Video Segment**];
|
|
12
|
+
F -->|Base Class for| H[**Label Video Segment**];
|
|
13
|
+
|
|
14
|
+
%% Video References
|
|
15
|
+
G -->|Segmentation of| I[**Legacy Video**];
|
|
16
|
+
H -->|Segmentation of| J[**Modern Video**];
|
|
17
|
+
|
|
18
|
+
%% Metadata & Prediction Handling
|
|
19
|
+
G -->|Uses Prediction Data| K[**Legacy Video Prediction Meta**];
|
|
20
|
+
H -->|Uses Prediction Data| L[**Video Prediction Meta**];
|
|
21
|
+
|
|
22
|
+
%% Automatic Segmentation Process
|
|
23
|
+
M["**find_segments_in_prediction_array()**"] -->|Detects & Segments Frames| F;
|
|
24
|
+
|
|
25
|
+
%% Example Data
|
|
26
|
+
X1(["**Example: Frame classified as 'Polyp Present'**"]) -.-> A;
|
|
27
|
+
X2(["**Example: Segment starts at frame 100, ends at frame 200**"]) -.-> F;
|
|
28
|
+
X3(["**Example: Legacy Video used for segmentation**"]) -.-> G;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
A["Start: Select Intervention"] --> B["Store in endoreg_db_findingintervention"]
|
|
5
|
+
B --> C["Retrieve Patient Finding ID"]
|
|
6
|
+
C --> D["Save in endoreg_db_patientfindingintervention"]
|
|
7
|
+
D --> E["Link Intervention to Patient Finding via Foreign Key"]
|
|
8
|
+
E --> F["Intervention Process Completed"]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
A["Start: Select Morphology Classification"] --> B["Store in endoreg_db_findingmorphologyclassification"]
|
|
5
|
+
B --> C["Retrieve Associated Classification Type"]
|
|
6
|
+
C --> D["Save in endoreg_db_patientfinding_morphology"]
|
|
7
|
+
D --> E["Link Morphology to Patient Finding via Foreign Key"]
|
|
8
|
+
E --> F["Morphology Process Completed"]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
A["Start: Create New Patient (John)"] --> B{"Does the Center Exist?"}
|
|
5
|
+
|
|
6
|
+
B -- Yes --> C["Retrieve Existing Center ID"]
|
|
7
|
+
B -- No --> D["Create New Medical Center"]
|
|
8
|
+
|
|
9
|
+
D --> E["Retrieve Newly Created Center ID"]
|
|
10
|
+
C --> F["Save Patient in endoreg_db_patient with Center ID"]
|
|
11
|
+
E --> F
|
|
12
|
+
|
|
13
|
+
F --> G["Patient Registration Completed"]
|
|
14
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
graph TD;
|
|
3
|
+
|
|
4
|
+
%% Label Management
|
|
5
|
+
A[**Video Segmentation Label**] -->|Used in| B[**Video Segmentation Annotation**];
|
|
6
|
+
|
|
7
|
+
%% Annotation Process
|
|
8
|
+
B -->|Assigned to| C[**Raw Video File**];
|
|
9
|
+
|
|
10
|
+
%% Attributes Breakdown
|
|
11
|
+
A -->|Has Fields| A1[**Name, Description, Color, Priority**];
|
|
12
|
+
B -->|Has Fields| B1[**Start Time, Stop Time, Validity**];
|
|
13
|
+
|
|
14
|
+
%% Example Data (Placed Outside for Clarity)
|
|
15
|
+
X1(["Example: Label - 'Polyp Detected'"]) -.-> A;
|
|
16
|
+
X2(["Example: Video1.mp4, Start: 10s, Stop: 15s"]) -.-> B;
|
|
17
|
+
|
|
@@ -7,7 +7,7 @@ import os
|
|
|
7
7
|
from django.db import models
|
|
8
8
|
from icecream import ic
|
|
9
9
|
|
|
10
|
-
PSEUDO_DIR = Path(os.environ.get("DJANGO_PSEUDO_DIR", Path("./erc_data")))
|
|
10
|
+
PSEUDO_DIR = Path(os.environ.get("DJANGO_PSEUDO_DIR", Path("./erc_data"))).expanduser()
|
|
11
11
|
|
|
12
12
|
STORAGE_LOCATION = PSEUDO_DIR
|
|
13
13
|
WEIGHTS_DIR_NAME = "db_model_weights"
|
|
@@ -14,7 +14,7 @@ from icecream import ic
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
15
|
from endoreg_db.models import LabelSet, AiModel # pylint: disable=import-outside-toplevel
|
|
16
16
|
|
|
17
|
-
PSEUDO_DIR = Path(os.environ.get("DJANGO_PSEUDO_DIR", Path("./erc_data")))
|
|
17
|
+
PSEUDO_DIR = Path(os.environ.get("DJANGO_PSEUDO_DIR", Path("./erc_data"))).expanduser()
|
|
18
18
|
|
|
19
19
|
STORAGE_LOCATION = PSEUDO_DIR
|
|
20
20
|
WEIGHTS_DIR_NAME = "db_model_weights"
|
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
DJANGO_NAME_SALT = os.environ.get("DJANGO_NAME_SALT", "default_salt")
|
|
11
11
|
|
|
12
12
|
# Directory stuff
|
|
13
|
-
PSEUDO_DIR = Path(os.environ.get("DJANGO_PSEUDO_DIR", Path("./erc_data")))
|
|
13
|
+
PSEUDO_DIR = Path(os.environ.get("DJANGO_PSEUDO_DIR", Path("./erc_data"))).expanduser()
|
|
14
14
|
STORAGE_LOCATION = PSEUDO_DIR
|
|
15
15
|
FRAME_DIR_NAME = os.environ.get("DJANGO_FRAME_DIR_NAME", "db_frames")
|
|
16
16
|
RAW_FRAME_DIR_NAME = os.environ.get("DJANGO_RAW_FRAME_DIR_NAME", "db_raw_frames")
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from rest_framework import serializers
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
from ..models import RawPdfFile
|
|
5
|
+
|
|
6
|
+
class RawPdfAnonyTextSerializer(serializers.ModelSerializer):
|
|
7
|
+
"""
|
|
8
|
+
Serializer to fetch PDF metadata along with `anonymized_text` from `RawPdfFile`.
|
|
9
|
+
Ensures Vue.js can process JSON efficiently.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
pdf_url = serializers.SerializerMethodField()
|
|
13
|
+
full_pdf_path = serializers.SerializerMethodField()
|
|
14
|
+
file = serializers.SerializerMethodField()
|
|
15
|
+
|
|
16
|
+
class Meta:
|
|
17
|
+
model = RawPdfFile
|
|
18
|
+
fields = ['id', 'file', 'pdf_url', 'full_pdf_path',
|
|
19
|
+
'sensitive_meta_id', 'anonymized_text']
|
|
20
|
+
|
|
21
|
+
@staticmethod
|
|
22
|
+
def get_next_pdf(last_id=None):
|
|
23
|
+
"""
|
|
24
|
+
Retrieves the first available PDF if `last_id` is NOT provided.
|
|
25
|
+
Otherwise, fetches the next available PDF where `id > last_id`.
|
|
26
|
+
"""
|
|
27
|
+
query_filter = {} if last_id is None else {"id__gt": int(last_id)}
|
|
28
|
+
pdf_entry = RawPdfFile.objects.filter(**query_filter).order_by('id').first()
|
|
29
|
+
return pdf_entry
|
|
30
|
+
|
|
31
|
+
def get_pdf_url(self, obj):
|
|
32
|
+
"""
|
|
33
|
+
Generates the full URL where Vue.js can fetch and display the PDF.
|
|
34
|
+
"""
|
|
35
|
+
request = self.context.get('request')
|
|
36
|
+
return request.build_absolute_uri(f"/api/pdf/anony_text/?id={obj.id}") if request and obj.file else None
|
|
37
|
+
|
|
38
|
+
def get_file(self, obj):
|
|
39
|
+
"""
|
|
40
|
+
Returns the relative file path stored in the database.
|
|
41
|
+
"""
|
|
42
|
+
return str(obj.file.name).strip() if obj.file else None
|
|
43
|
+
|
|
44
|
+
def get_full_pdf_path(self, obj):
|
|
45
|
+
"""
|
|
46
|
+
Constructs the full absolute file path using `settings.MEDIA_ROOT`.
|
|
47
|
+
"""
|
|
48
|
+
if not obj.file:
|
|
49
|
+
return None
|
|
50
|
+
pdf_relative_path = str(obj.file.name)
|
|
51
|
+
full_path = Path(settings.MEDIA_ROOT) / pdf_relative_path
|
|
52
|
+
return str(full_path) if full_path.exists() else None
|
|
53
|
+
|
|
54
|
+
def validate_anonymized_text(self, value):
|
|
55
|
+
"""
|
|
56
|
+
Ensures the anonymized_text is not empty or too long.
|
|
57
|
+
"""
|
|
58
|
+
if not value.strip():
|
|
59
|
+
raise serializers.ValidationError("Anonymized text cannot be empty.")
|
|
60
|
+
if len(value) > 5000: # Arbitrary limit to prevent excessively long text
|
|
61
|
+
raise serializers.ValidationError("Anonymized text exceeds the maximum length of 5000 characters.")
|
|
62
|
+
return value
|
|
63
|
+
|
|
64
|
+
def update(self, instance, validated_data):
|
|
65
|
+
"""
|
|
66
|
+
Updates only `anonymized_text` without modifying other fields.
|
|
67
|
+
"""
|
|
68
|
+
instance.anonymized_text = validated_data.get('anonymized_text', instance.anonymized_text)
|
|
69
|
+
instance.save()
|
|
70
|
+
return instance
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
"""
|
|
75
|
+
await import('https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js');
|
|
76
|
+
|
|
77
|
+
const fetchPdfWithAnonymizedText = async (lastId = null) => {
|
|
78
|
+
const url = lastId
|
|
79
|
+
? `http://localhost:8000/api/pdf/anony_text/?last_id=${lastId}`
|
|
80
|
+
: "http://localhost:8000/api/pdf/anony_text/";
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
const response = await axios.get(url, { headers: { "Accept": "application/json" } });
|
|
84
|
+
console.log("PDF Data:", response.data);
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.error("Error fetching PDF:", error.response?.data || error);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
fetchPdfWithAnonymizedText();
|
|
91
|
+
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
"""
|
|
95
|
+
await import('https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js');
|
|
96
|
+
|
|
97
|
+
const updateAnonymizedText = async (pdfId, newText) => {
|
|
98
|
+
try {
|
|
99
|
+
const response = await axios.patch("http://localhost:8000/api/pdf/update_anony_text/", {
|
|
100
|
+
id: pdfId,
|
|
101
|
+
anonymized_text: newText
|
|
102
|
+
}, { headers: { "Content-Type": "application/json" } });
|
|
103
|
+
|
|
104
|
+
console.log("Update Success:", response.data);
|
|
105
|
+
} catch (error) {
|
|
106
|
+
console.error("Update Error:", error.response?.data || error);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
updateAnonymizedText(1, "Updated anonymized text.");
|
|
111
|
+
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
"""
|
|
115
|
+
await import('https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js');
|
|
116
|
+
|
|
117
|
+
const updateAnonymizedText = async () => {
|
|
118
|
+
const updatedData = {
|
|
119
|
+
id: 1,
|
|
120
|
+
anonymized_text: "This is the updated anonymized text."
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
try {
|
|
124
|
+
const response = await axios.patch("http://localhost:8000/api/pdf/update_anony_text/", updatedData, {
|
|
125
|
+
headers: { "Content-Type": "application/json" }
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
console.log("Update Success:", response.data);
|
|
129
|
+
alert("Anonymized text updated successfully!");
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.error("Update Error:", error.response?.data || error);
|
|
132
|
+
alert("Failed to update anonymized text.");
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
updateAnonymizedText();
|
|
137
|
+
"""
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from rest_framework import serializers
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
from ..models import RawPdfFile, SensitiveMeta
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class PDFFileForMetaSerializer(serializers.ModelSerializer):
|
|
8
|
+
"""
|
|
9
|
+
Serializer to fetch PDF metadata along with linked `SensitiveMeta` details.
|
|
10
|
+
Implements validation and ensures Vue.js can process errors easily.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
# Fetch patient details from `SensitiveMeta`
|
|
14
|
+
patient_first_name = serializers.CharField(source="sensitive_meta.patient_first_name", read_only=True)
|
|
15
|
+
patient_last_name = serializers.CharField(source="sensitive_meta.patient_last_name", read_only=True)
|
|
16
|
+
patient_dob = serializers.CharField(source="sensitive_meta.patient_dob", read_only=True)
|
|
17
|
+
examination_date = serializers.CharField(source="sensitive_meta.examination_date", read_only=True)
|
|
18
|
+
|
|
19
|
+
# PDF file URL where Vue.js can fetch the document
|
|
20
|
+
pdf_url = serializers.SerializerMethodField()
|
|
21
|
+
|
|
22
|
+
# Full absolute path of the PDF file
|
|
23
|
+
full_pdf_path = serializers.SerializerMethodField()
|
|
24
|
+
|
|
25
|
+
# Direct file path from the database
|
|
26
|
+
file = serializers.SerializerMethodField()
|
|
27
|
+
|
|
28
|
+
class Meta:
|
|
29
|
+
model = RawPdfFile
|
|
30
|
+
fields = ['id', 'file', 'pdf_url', 'full_pdf_path',
|
|
31
|
+
'sensitive_meta_id', 'patient_first_name',
|
|
32
|
+
'patient_last_name', 'patient_dob', 'examination_date']
|
|
33
|
+
|
|
34
|
+
@staticmethod
|
|
35
|
+
def get_next_pdf(last_id=None):
|
|
36
|
+
"""
|
|
37
|
+
Retrieves the first available PDF if `last_id` is NOT provided.
|
|
38
|
+
Otherwise, fetches the next available PDF where `id > last_id`.
|
|
39
|
+
"""
|
|
40
|
+
query_filter = {} if last_id is None else {"id__gt": int(last_id)}
|
|
41
|
+
|
|
42
|
+
# Get the next available PDF
|
|
43
|
+
pdf_entry = RawPdfFile.objects.select_related("sensitive_meta").filter(**query_filter).order_by('id').first()
|
|
44
|
+
|
|
45
|
+
return pdf_entry # Returns a model instance or None
|
|
46
|
+
|
|
47
|
+
def get_pdf_url(self, obj):
|
|
48
|
+
"""
|
|
49
|
+
Generates the full URL for Vue.js to fetch and display the PDF.
|
|
50
|
+
"""
|
|
51
|
+
request = self.context.get('request')
|
|
52
|
+
print("---------------------here :",obj.file)
|
|
53
|
+
if request and obj.file:
|
|
54
|
+
return request.build_absolute_uri(f"/api/pdf/sensitivemeta/?id={obj.id}") # Constructs full API endpoint
|
|
55
|
+
return None # Return None if file is missing
|
|
56
|
+
|
|
57
|
+
def get_file(self, obj):
|
|
58
|
+
"""
|
|
59
|
+
Returns the relative file path stored in the database.
|
|
60
|
+
"""
|
|
61
|
+
if not obj.file:
|
|
62
|
+
return None # No file linked
|
|
63
|
+
return str(obj.file.name).strip() # Ensures clean output
|
|
64
|
+
|
|
65
|
+
def get_full_pdf_path(self, obj):
|
|
66
|
+
"""
|
|
67
|
+
Constructs the full absolute file path using `settings.MEDIA_ROOT`.
|
|
68
|
+
"""
|
|
69
|
+
if not obj.file:
|
|
70
|
+
return None # No file linked
|
|
71
|
+
|
|
72
|
+
pdf_relative_path = str(obj.file.name)
|
|
73
|
+
|
|
74
|
+
full_path = Path(settings.MEDIA_ROOT) / pdf_relative_path
|
|
75
|
+
|
|
76
|
+
return str(full_path) if full_path.exists() else None # Returns path or None if file is missing
|
|
77
|
+
|
|
78
|
+
def validate(self, data):
|
|
79
|
+
"""
|
|
80
|
+
Ensures that the PDF file is valid and has required fields.
|
|
81
|
+
"""
|
|
82
|
+
errors = {}
|
|
83
|
+
|
|
84
|
+
if 'file' in data and not data['file']:
|
|
85
|
+
errors['file'] = "A valid PDF file is required."
|
|
86
|
+
|
|
87
|
+
if 'sensitive_meta_id' in data and not SensitiveMeta.objects.filter(id=data['sensitive_meta_id']).exists():
|
|
88
|
+
errors['sensitive_meta_id'] = "The provided sensitive_meta_id does not exist."
|
|
89
|
+
|
|
90
|
+
if errors:
|
|
91
|
+
raise serializers.ValidationError(errors) # Returns structured error response
|
|
92
|
+
|
|
93
|
+
return data # Returns validated data
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
from rest_framework import serializers
|
|
97
|
+
from ..models import SensitiveMeta
|
|
98
|
+
|
|
99
|
+
class SensitiveMetaUpdateSerializer(serializers.ModelSerializer):
|
|
100
|
+
"""
|
|
101
|
+
Serializer for updating patient details in the `SensitiveMeta` table.
|
|
102
|
+
Allows partial updates.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
sensitive_meta_id = serializers.IntegerField(write_only=True) # Needed for lookup, not included in response
|
|
106
|
+
|
|
107
|
+
class Meta:
|
|
108
|
+
model = SensitiveMeta
|
|
109
|
+
fields = ['sensitive_meta_id', 'patient_first_name', 'patient_last_name', 'patient_dob', 'examination_date']
|
|
110
|
+
|
|
111
|
+
def validate(self, data):
|
|
112
|
+
"""
|
|
113
|
+
Ensures valid input before updating.
|
|
114
|
+
"""
|
|
115
|
+
errors = {}
|
|
116
|
+
|
|
117
|
+
if 'patient_first_name' in data and (not data['patient_first_name'].strip()):
|
|
118
|
+
errors['patient_first_name'] = "First name cannot be empty."
|
|
119
|
+
|
|
120
|
+
if 'patient_last_name' in data and (not data['patient_last_name'].strip()):
|
|
121
|
+
errors['patient_last_name'] = "Last name cannot be empty."
|
|
122
|
+
|
|
123
|
+
if 'patient_dob' in data and not data['patient_dob']:
|
|
124
|
+
errors['patient_dob'] = "Date of birth is required."
|
|
125
|
+
|
|
126
|
+
if 'examination_date' in data and not data['examination_date']:
|
|
127
|
+
errors['examination_date'] = "Examination date is required."
|
|
128
|
+
|
|
129
|
+
if errors:
|
|
130
|
+
raise serializers.ValidationError(errors)
|
|
131
|
+
|
|
132
|
+
return data
|
|
133
|
+
|
|
134
|
+
def update(self, instance, validated_data):
|
|
135
|
+
"""
|
|
136
|
+
Updates only the provided fields dynamically.
|
|
137
|
+
"""
|
|
138
|
+
validated_data.pop("sensitive_meta_id", None) # Remove ID before updating
|
|
139
|
+
|
|
140
|
+
for attr, value in validated_data.items():
|
|
141
|
+
setattr(instance, attr, value) # Dynamically update fields
|
|
142
|
+
|
|
143
|
+
instance.save()
|
|
144
|
+
return instance
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
"""
|
|
149
|
+
await import('https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js');
|
|
150
|
+
const fetchPdfMeta = async (lastId = 1) => {
|
|
151
|
+
const url = lastId
|
|
152
|
+
? `http://localhost:8000/api/pdf/sensitivemeta/?last_id=${lastId}`
|
|
153
|
+
: "http://localhost:8000/api/pdf/sensitivemeta/";
|
|
154
|
+
|
|
155
|
+
try {
|
|
156
|
+
const response = await axios.get(url);
|
|
157
|
+
console.log("PDF Metadata:", response.data);
|
|
158
|
+
} catch (error) {
|
|
159
|
+
console.error("Error fetching PDFs:", error.response?.data || error);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
fetchPdfMeta(); // Fetch the first available PDF
|
|
164
|
+
|
|
165
|
+
"""
|
|
166
|
+
|
|
167
|
+
"""with header response"""
|
|
168
|
+
"""
|
|
169
|
+
await import('https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js');
|
|
170
|
+
|
|
171
|
+
const fetchPdfMeta = async (lastId = 1) => {
|
|
172
|
+
const url = lastId
|
|
173
|
+
? `http://localhost:8000/api/pdf/sensitivemeta/?last_id=${lastId}`
|
|
174
|
+
: "http://localhost:8000/api/pdf/sensitivemeta/";
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
const response = await axios.get(url, {
|
|
178
|
+
headers: {
|
|
179
|
+
"Accept": "application/json"
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
console.log("PDF Metadata (JSON Expected):", response.data);
|
|
184
|
+
} catch (error) {
|
|
185
|
+
console.error("Error fetching PDFs:", error.response?.data || error);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
fetchPdfMeta();
|
|
190
|
+
"""
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
"""
|
|
194
|
+
await import('https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js');
|
|
195
|
+
|
|
196
|
+
const updatePatientInfo = async () => {
|
|
197
|
+
const updatedData = {
|
|
198
|
+
sensitive_meta_id: 1,
|
|
199
|
+
patient_first_name: "dummy value",
|
|
200
|
+
patient_last_name: "dummy value",
|
|
201
|
+
patient_dob: "1994-06-15",
|
|
202
|
+
examination_date: "2024-06-15"
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
try {
|
|
206
|
+
const response = await axios.patch("http://localhost:8000/api/pdf/update_sensitivemeta/", updatedData, {
|
|
207
|
+
headers: { "Content-Type": "application/json" }
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
console.log("Update Success:", response.data);
|
|
211
|
+
alert("Patient information updated successfully!");
|
|
212
|
+
|
|
213
|
+
return response.data;
|
|
214
|
+
} catch (error) {
|
|
215
|
+
console.error("Update Error:", error.response?.data || error);
|
|
216
|
+
alert("Failed to update patient information.");
|
|
217
|
+
return error.response?.data || { error: "Unknown error" };
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
updatePatientInfo().then(response => console.log("Final Response:", response));
|
|
222
|
+
|
|
223
|
+
"""
|