endoreg-db 0.8.6.1__py3-none-any.whl → 0.8.8.9__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.

Files changed (503) hide show
  1. endoreg_db/authz/auth.py +74 -0
  2. endoreg_db/authz/backends.py +168 -0
  3. endoreg_db/authz/management/commands/list_routes.py +18 -0
  4. endoreg_db/authz/middleware.py +83 -0
  5. endoreg_db/authz/permissions.py +127 -0
  6. endoreg_db/authz/policy.py +218 -0
  7. endoreg_db/authz/views_auth.py +66 -0
  8. endoreg_db/config/env.py +13 -8
  9. endoreg_db/data/__init__.py +2 -11
  10. endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +3 -3
  11. endoreg_db/data/event_classification/data.yaml +4 -0
  12. endoreg_db/data/event_classification_choice/data.yaml +9 -0
  13. endoreg_db/data/examination/examinations/data.yaml +114 -14
  14. endoreg_db/data/examination/time-type/data.yaml +0 -3
  15. endoreg_db/data/examination_indication/endoscopy.yaml +108 -173
  16. endoreg_db/data/examination_indication_classification/endoscopy.yaml +0 -70
  17. endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +33 -37
  18. endoreg_db/data/finding/00_generic.yaml +35 -0
  19. endoreg_db/data/finding/00_generic_complication.yaml +9 -0
  20. endoreg_db/data/finding/01_gastroscopy_baseline.yaml +88 -0
  21. endoreg_db/data/finding/01_gastroscopy_observation.yaml +113 -0
  22. endoreg_db/data/finding/02_colonoscopy_baseline.yaml +53 -0
  23. endoreg_db/data/finding/02_colonoscopy_hidden.yaml +119 -0
  24. endoreg_db/data/finding/02_colonoscopy_observation.yaml +152 -0
  25. endoreg_db/data/finding_classification/00_generic.yaml +44 -0
  26. endoreg_db/data/finding_classification/00_generic_histology.yaml +28 -0
  27. endoreg_db/data/finding_classification/00_generic_lesion.yaml +52 -0
  28. endoreg_db/data/finding_classification/02_colonoscopy_baseline.yaml +83 -0
  29. endoreg_db/data/finding_classification/02_colonoscopy_histology.yaml +13 -0
  30. endoreg_db/data/finding_classification/02_colonoscopy_other.yaml +12 -0
  31. endoreg_db/data/finding_classification/02_colonoscopy_polyp.yaml +101 -0
  32. endoreg_db/data/finding_classification_choice/{yes_no_na.yaml → 00_generic.yaml} +5 -1
  33. endoreg_db/data/finding_classification_choice/{examination_setting_generic_types.yaml → 00_generic_baseline.yaml} +10 -2
  34. endoreg_db/data/finding_classification_choice/{complication_generic_types.yaml → 00_generic_complication.yaml} +1 -1
  35. endoreg_db/data/finding_classification_choice/{histology.yaml → 00_generic_histology.yaml} +1 -4
  36. endoreg_db/data/finding_classification_choice/00_generic_lesion.yaml +158 -0
  37. endoreg_db/data/finding_classification_choice/{bowel_preparation.yaml → 02_colonoscopy_bowel_preparation.yaml} +1 -30
  38. endoreg_db/data/finding_classification_choice/{colonoscopy_not_complete_reason.yaml → 02_colonoscopy_generic.yaml} +1 -1
  39. endoreg_db/data/finding_classification_choice/{histology_polyp.yaml → 02_colonoscopy_histology.yaml} +1 -1
  40. endoreg_db/data/finding_classification_choice/{colonoscopy_location.yaml → 02_colonoscopy_location.yaml} +23 -4
  41. endoreg_db/data/finding_classification_choice/02_colonoscopy_other.yaml +34 -0
  42. endoreg_db/data/finding_classification_choice/02_colonoscopy_polyp_advanced_imaging.yaml +76 -0
  43. endoreg_db/data/finding_classification_choice/{colon_lesion_paris.yaml → 02_colonoscopy_polyp_morphology.yaml} +26 -8
  44. endoreg_db/data/finding_classification_choice/02_colonoscopy_size.yaml +27 -0
  45. endoreg_db/data/finding_classification_type/{colonoscopy_basic.yaml → 00_generic.yaml} +18 -13
  46. endoreg_db/data/finding_classification_type/02_colonoscopy.yaml +9 -0
  47. endoreg_db/data/finding_intervention/00_generic_endoscopy.yaml +59 -0
  48. endoreg_db/data/finding_intervention/00_generic_endoscopy_ablation.yaml +44 -0
  49. endoreg_db/data/finding_intervention/00_generic_endoscopy_bleeding.yaml +55 -0
  50. endoreg_db/data/finding_intervention/00_generic_endoscopy_resection.yaml +85 -0
  51. endoreg_db/data/finding_intervention/00_generic_endoscopy_stenosis.yaml +17 -0
  52. endoreg_db/data/finding_intervention/00_generic_endoscopy_stent.yaml +9 -0
  53. endoreg_db/data/finding_intervention/01_gastroscopy.yaml +19 -0
  54. endoreg_db/data/finding_intervention/04_eus.yaml +39 -0
  55. endoreg_db/data/finding_intervention/05_ercp.yaml +3 -0
  56. endoreg_db/data/finding_type/data.yaml +8 -12
  57. endoreg_db/data/requirement/01_patient_data.yaml +93 -0
  58. endoreg_db/data/requirement/old/colon_polyp_intervention.yaml +49 -0
  59. endoreg_db/data/requirement/old/coloreg_colon_polyp.yaml +49 -0
  60. endoreg_db/data/requirement_operator/new_operators.yaml +36 -0
  61. endoreg_db/data/requirement_set/01_endoscopy_generic.yaml +29 -12
  62. endoreg_db/data/requirement_set/01_laboratory.yaml +13 -0
  63. endoreg_db/data/requirement_set/{endoscopy_bleeding_risk.yaml → 02_endoscopy_bleeding_risk.yaml} +0 -6
  64. endoreg_db/data/requirement_set/90_coloreg.yaml +190 -0
  65. endoreg_db/data/requirement_set/_old_ +109 -0
  66. endoreg_db/data/requirement_set_type/data.yaml +21 -0
  67. endoreg_db/data/setup_config.yaml +4 -4
  68. endoreg_db/data/tag/requirement_set_tags.yaml +21 -0
  69. endoreg_db/exceptions.py +4 -2
  70. endoreg_db/forms/examination_form.py +1 -1
  71. endoreg_db/helpers/data_loader.py +125 -53
  72. endoreg_db/helpers/default_objects.py +116 -81
  73. endoreg_db/import_files/__init__.py +27 -0
  74. endoreg_db/import_files/context/__init__.py +7 -0
  75. endoreg_db/import_files/context/default_sensitive_meta.py +81 -0
  76. endoreg_db/import_files/context/ensure_center.py +17 -0
  77. endoreg_db/import_files/context/file_lock.py +66 -0
  78. endoreg_db/import_files/context/import_context.py +43 -0
  79. endoreg_db/import_files/context/validate_directories.py +56 -0
  80. endoreg_db/import_files/file_storage/__init__.py +15 -0
  81. endoreg_db/import_files/file_storage/create_report_file.py +76 -0
  82. endoreg_db/import_files/file_storage/create_video_file.py +75 -0
  83. endoreg_db/import_files/file_storage/sensitive_meta_storage.py +39 -0
  84. endoreg_db/import_files/file_storage/state_management.py +400 -0
  85. endoreg_db/import_files/file_storage/storage.py +36 -0
  86. endoreg_db/import_files/import_service.md +26 -0
  87. endoreg_db/import_files/processing/__init__.py +11 -0
  88. endoreg_db/import_files/processing/report_processing/report_anonymization.py +94 -0
  89. endoreg_db/import_files/processing/sensitive_meta_adapter.py +51 -0
  90. endoreg_db/import_files/processing/video_processing/video_anonymization.py +107 -0
  91. endoreg_db/import_files/processing/video_processing/video_cleanup_on_error.py +119 -0
  92. endoreg_db/import_files/pseudonymization/fake.py +52 -0
  93. endoreg_db/import_files/pseudonymization/k_anonymity.py +182 -0
  94. endoreg_db/import_files/pseudonymization/k_pseudonymity.py +128 -0
  95. endoreg_db/import_files/report_import_service.py +141 -0
  96. endoreg_db/import_files/video_import_service.py +150 -0
  97. endoreg_db/management/commands/create_model_meta_from_huggingface.py +21 -10
  98. endoreg_db/management/commands/create_multilabel_model_meta.py +299 -129
  99. endoreg_db/management/commands/import_report.py +130 -65
  100. endoreg_db/management/commands/import_video.py +9 -10
  101. endoreg_db/management/commands/import_video_with_classification.py +2 -2
  102. endoreg_db/management/commands/list_routes.py +18 -0
  103. endoreg_db/management/commands/load_ai_model_data.py +5 -5
  104. endoreg_db/management/commands/load_ai_model_label_data.py +9 -7
  105. endoreg_db/management/commands/load_base_db_data.py +5 -134
  106. endoreg_db/management/commands/load_center_data.py +12 -12
  107. endoreg_db/management/commands/load_contraindication_data.py +14 -16
  108. endoreg_db/management/commands/load_disease_classification_choices_data.py +15 -18
  109. endoreg_db/management/commands/load_disease_classification_data.py +15 -18
  110. endoreg_db/management/commands/load_disease_data.py +25 -28
  111. endoreg_db/management/commands/load_endoscope_data.py +20 -27
  112. endoreg_db/management/commands/load_event_data.py +14 -16
  113. endoreg_db/management/commands/load_examination_data.py +31 -44
  114. endoreg_db/management/commands/load_examination_indication_data.py +20 -21
  115. endoreg_db/management/commands/load_finding_data.py +52 -80
  116. endoreg_db/management/commands/load_information_source.py +21 -23
  117. endoreg_db/management/commands/load_lab_value_data.py +17 -26
  118. endoreg_db/management/commands/load_medication_data.py +13 -12
  119. endoreg_db/management/commands/load_organ_data.py +15 -19
  120. endoreg_db/management/commands/load_pdf_type_data.py +19 -18
  121. endoreg_db/management/commands/load_profession_data.py +14 -17
  122. endoreg_db/management/commands/load_qualification_data.py +20 -23
  123. endoreg_db/management/commands/load_report_reader_flag_data.py +17 -19
  124. endoreg_db/management/commands/load_requirement_data.py +62 -39
  125. endoreg_db/management/commands/load_requirement_set_tags.py +95 -0
  126. endoreg_db/management/commands/load_risk_data.py +7 -6
  127. endoreg_db/management/commands/load_shift_data.py +20 -23
  128. endoreg_db/management/commands/load_tag_data.py +8 -11
  129. endoreg_db/management/commands/load_unit_data.py +17 -19
  130. endoreg_db/management/commands/setup_endoreg_db.py +3 -3
  131. endoreg_db/management/commands/start_filewatcher.py +46 -37
  132. endoreg_db/management/commands/storage_management.py +271 -203
  133. endoreg_db/management/commands/validate_video_files.py +1 -5
  134. endoreg_db/migrations/0001_initial.py +297 -250
  135. endoreg_db/models/__init__.py +78 -123
  136. endoreg_db/models/administration/__init__.py +21 -42
  137. endoreg_db/models/administration/ai/active_model.py +2 -2
  138. endoreg_db/models/administration/ai/ai_model.py +7 -6
  139. endoreg_db/models/administration/case/__init__.py +1 -15
  140. endoreg_db/models/administration/case/case.py +3 -3
  141. endoreg_db/models/administration/case/case_template/__init__.py +2 -14
  142. endoreg_db/models/administration/case/case_template/case_template.py +2 -124
  143. endoreg_db/models/administration/case/case_template/case_template_rule.py +2 -268
  144. endoreg_db/models/administration/case/case_template/case_template_rule_value.py +2 -85
  145. endoreg_db/models/administration/case/case_template/case_template_type.py +2 -25
  146. endoreg_db/models/administration/center/center.py +33 -19
  147. endoreg_db/models/administration/center/center_product.py +12 -9
  148. endoreg_db/models/administration/center/center_resource.py +25 -19
  149. endoreg_db/models/administration/center/center_shift.py +21 -17
  150. endoreg_db/models/administration/center/center_waste.py +16 -8
  151. endoreg_db/models/administration/person/__init__.py +2 -0
  152. endoreg_db/models/administration/person/employee/employee.py +10 -5
  153. endoreg_db/models/administration/person/employee/employee_qualification.py +9 -4
  154. endoreg_db/models/administration/person/employee/employee_type.py +12 -6
  155. endoreg_db/models/administration/person/examiner/examiner.py +13 -11
  156. endoreg_db/models/administration/person/patient/__init__.py +2 -0
  157. endoreg_db/models/administration/person/patient/patient.py +129 -100
  158. endoreg_db/models/administration/person/patient/patient_external_id.py +37 -0
  159. endoreg_db/models/administration/person/person.py +4 -0
  160. endoreg_db/models/administration/person/profession/__init__.py +8 -4
  161. endoreg_db/models/administration/person/user/portal_user_information.py +11 -7
  162. endoreg_db/models/administration/product/product.py +20 -15
  163. endoreg_db/models/administration/product/product_material.py +17 -18
  164. endoreg_db/models/administration/product/product_weight.py +12 -8
  165. endoreg_db/models/administration/product/reference_product.py +23 -55
  166. endoreg_db/models/administration/qualification/qualification.py +7 -3
  167. endoreg_db/models/administration/qualification/qualification_type.py +7 -3
  168. endoreg_db/models/administration/shift/scheduled_days.py +8 -5
  169. endoreg_db/models/administration/shift/shift.py +16 -12
  170. endoreg_db/models/administration/shift/shift_type.py +23 -31
  171. endoreg_db/models/label/__init__.py +8 -9
  172. endoreg_db/models/label/annotation/image_classification.py +10 -9
  173. endoreg_db/models/label/annotation/video_segmentation_annotation.py +23 -28
  174. endoreg_db/models/label/label.py +15 -15
  175. endoreg_db/models/label/label_set.py +19 -6
  176. endoreg_db/models/label/label_type.py +1 -1
  177. endoreg_db/models/label/label_video_segment/_create_from_video.py +5 -8
  178. endoreg_db/models/label/label_video_segment/label_video_segment.py +98 -102
  179. endoreg_db/models/label/video_segmentation_label.py +4 -0
  180. endoreg_db/models/label/video_segmentation_labelset.py +4 -3
  181. endoreg_db/models/media/frame/frame.py +22 -22
  182. endoreg_db/models/media/pdf/raw_pdf.py +194 -194
  183. endoreg_db/models/media/pdf/report_file.py +25 -29
  184. endoreg_db/models/media/pdf/report_reader/report_reader_config.py +55 -47
  185. endoreg_db/models/media/pdf/report_reader/report_reader_flag.py +23 -7
  186. endoreg_db/models/media/processing_history/__init__.py +5 -0
  187. endoreg_db/models/media/processing_history/processing_history.py +96 -0
  188. endoreg_db/models/media/video/__init__.py +1 -0
  189. endoreg_db/models/media/video/create_from_file.py +139 -77
  190. endoreg_db/models/media/video/pipe_2.py +8 -9
  191. endoreg_db/models/media/video/video_file.py +174 -112
  192. endoreg_db/models/media/video/video_file_ai.py +288 -74
  193. endoreg_db/models/media/video/video_file_anonymize.py +38 -38
  194. endoreg_db/models/media/video/video_file_frames/__init__.py +3 -1
  195. endoreg_db/models/media/video/video_file_frames/_bulk_create_frames.py +6 -8
  196. endoreg_db/models/media/video/video_file_frames/_create_frame_object.py +7 -9
  197. endoreg_db/models/media/video/video_file_frames/_delete_frames.py +9 -8
  198. endoreg_db/models/media/video/video_file_frames/_extract_frames.py +38 -45
  199. endoreg_db/models/media/video/video_file_frames/_get_frame.py +6 -8
  200. endoreg_db/models/media/video/video_file_frames/_get_frame_number.py +4 -18
  201. endoreg_db/models/media/video/video_file_frames/_get_frame_path.py +4 -3
  202. endoreg_db/models/media/video/video_file_frames/_get_frame_paths.py +7 -6
  203. endoreg_db/models/media/video/video_file_frames/_get_frame_range.py +6 -8
  204. endoreg_db/models/media/video/video_file_frames/_get_frames.py +6 -8
  205. endoreg_db/models/media/video/video_file_frames/_initialize_frames.py +15 -25
  206. endoreg_db/models/media/video/video_file_frames/_manage_frame_range.py +26 -23
  207. endoreg_db/models/media/video/video_file_frames/_mark_frames_extracted_status.py +23 -14
  208. endoreg_db/models/media/video/video_file_io.py +113 -61
  209. endoreg_db/models/media/video/video_file_meta/get_crop_template.py +3 -3
  210. endoreg_db/models/media/video/video_file_meta/get_endo_roi.py +5 -3
  211. endoreg_db/models/media/video/video_file_meta/get_fps.py +37 -34
  212. endoreg_db/models/media/video/video_file_meta/initialize_video_specs.py +19 -25
  213. endoreg_db/models/media/video/video_file_meta/text_meta.py +41 -38
  214. endoreg_db/models/media/video/video_file_meta/video_meta.py +14 -7
  215. endoreg_db/models/media/video/video_file_segments.py +24 -17
  216. endoreg_db/models/media/video/video_metadata.py +19 -35
  217. endoreg_db/models/media/video/video_processing.py +96 -95
  218. endoreg_db/models/medical/contraindication/README.md +1 -0
  219. endoreg_db/models/medical/contraindication/__init__.py +13 -3
  220. endoreg_db/models/medical/disease.py +22 -16
  221. endoreg_db/models/medical/event.py +31 -18
  222. endoreg_db/models/medical/examination/__init__.py +13 -6
  223. endoreg_db/models/medical/examination/examination.py +39 -20
  224. endoreg_db/models/medical/examination/examination_indication.py +30 -95
  225. endoreg_db/models/medical/examination/examination_time.py +23 -8
  226. endoreg_db/models/medical/examination/examination_time_type.py +9 -6
  227. endoreg_db/models/medical/examination/examination_type.py +3 -4
  228. endoreg_db/models/medical/finding/finding.py +32 -40
  229. endoreg_db/models/medical/finding/finding_classification.py +42 -72
  230. endoreg_db/models/medical/finding/finding_intervention.py +25 -22
  231. endoreg_db/models/medical/finding/finding_type.py +13 -12
  232. endoreg_db/models/medical/hardware/endoscope.py +26 -26
  233. endoreg_db/models/medical/hardware/endoscopy_processor.py +2 -2
  234. endoreg_db/models/medical/laboratory/lab_value.py +62 -91
  235. endoreg_db/models/medical/medication/medication.py +22 -10
  236. endoreg_db/models/medical/medication/medication_indication.py +29 -3
  237. endoreg_db/models/medical/medication/medication_indication_type.py +25 -14
  238. endoreg_db/models/medical/medication/medication_intake_time.py +31 -19
  239. endoreg_db/models/medical/medication/medication_schedule.py +27 -16
  240. endoreg_db/models/medical/organ/__init__.py +15 -12
  241. endoreg_db/models/medical/patient/medication_examples.py +6 -6
  242. endoreg_db/models/medical/patient/patient_disease.py +20 -23
  243. endoreg_db/models/medical/patient/patient_event.py +19 -22
  244. endoreg_db/models/medical/patient/patient_examination.py +48 -54
  245. endoreg_db/models/medical/patient/patient_examination_indication.py +16 -14
  246. endoreg_db/models/medical/patient/patient_finding.py +122 -139
  247. endoreg_db/models/medical/patient/patient_finding_classification.py +44 -49
  248. endoreg_db/models/medical/patient/patient_finding_intervention.py +8 -19
  249. endoreg_db/models/medical/patient/patient_lab_sample.py +28 -23
  250. endoreg_db/models/medical/patient/patient_lab_value.py +82 -89
  251. endoreg_db/models/medical/patient/patient_medication.py +27 -38
  252. endoreg_db/models/medical/patient/patient_medication_schedule.py +28 -36
  253. endoreg_db/models/medical/risk/risk.py +7 -6
  254. endoreg_db/models/medical/risk/risk_type.py +8 -5
  255. endoreg_db/models/metadata/model_meta.py +60 -29
  256. endoreg_db/models/metadata/model_meta_logic.py +125 -18
  257. endoreg_db/models/metadata/pdf_meta.py +31 -24
  258. endoreg_db/models/metadata/sensitive_meta.py +105 -85
  259. endoreg_db/models/metadata/sensitive_meta_logic.py +198 -103
  260. endoreg_db/models/metadata/video_meta.py +51 -31
  261. endoreg_db/models/metadata/video_prediction_logic.py +16 -23
  262. endoreg_db/models/metadata/video_prediction_meta.py +29 -33
  263. endoreg_db/models/other/distribution/date_value_distribution.py +89 -29
  264. endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +21 -5
  265. endoreg_db/models/other/distribution/numeric_value_distribution.py +114 -53
  266. endoreg_db/models/other/distribution/single_categorical_value_distribution.py +4 -3
  267. endoreg_db/models/other/emission/emission_factor.py +18 -8
  268. endoreg_db/models/other/gender.py +10 -5
  269. endoreg_db/models/other/information_source.py +50 -29
  270. endoreg_db/models/other/material.py +9 -5
  271. endoreg_db/models/other/resource.py +6 -4
  272. endoreg_db/models/other/tag.py +10 -5
  273. endoreg_db/models/other/transport_route.py +13 -8
  274. endoreg_db/models/other/unit.py +10 -6
  275. endoreg_db/models/other/waste.py +6 -5
  276. endoreg_db/models/report/report.py +6 -0
  277. endoreg_db/models/requirement/requirement.py +329 -361
  278. endoreg_db/models/requirement/requirement_error.py +85 -0
  279. endoreg_db/models/requirement/requirement_evaluation/evaluate_with_dependencies.py +268 -0
  280. endoreg_db/models/requirement/requirement_evaluation/operator_evaluation_models.py +3 -6
  281. endoreg_db/models/requirement/requirement_evaluation/requirement_type_parser.py +90 -64
  282. endoreg_db/models/requirement/requirement_operator.py +103 -112
  283. endoreg_db/models/requirement/requirement_set.py +74 -57
  284. endoreg_db/models/state/__init__.py +4 -4
  285. endoreg_db/models/state/abstract.py +2 -2
  286. endoreg_db/models/state/anonymization.py +12 -0
  287. endoreg_db/models/state/audit_ledger.py +49 -51
  288. endoreg_db/models/state/label_video_segment.py +9 -0
  289. endoreg_db/models/state/raw_pdf.py +101 -68
  290. endoreg_db/models/state/sensitive_meta.py +6 -2
  291. endoreg_db/models/state/video.py +110 -90
  292. endoreg_db/models/upload_job.py +35 -34
  293. endoreg_db/models/utils.py +28 -25
  294. endoreg_db/queries/__init__.py +3 -1
  295. endoreg_db/root_urls.py +21 -2
  296. endoreg_db/schemas/examination_evaluation.py +1 -1
  297. endoreg_db/serializers/__init__.py +2 -10
  298. endoreg_db/serializers/anonymization.py +18 -10
  299. endoreg_db/serializers/label_video_segment/label_video_segment.py +2 -29
  300. endoreg_db/serializers/meta/__init__.py +1 -6
  301. endoreg_db/serializers/meta/sensitive_meta_detail.py +63 -118
  302. endoreg_db/serializers/misc/file_overview.py +11 -99
  303. endoreg_db/serializers/misc/sensitive_patient_data.py +50 -26
  304. endoreg_db/serializers/patient_examination/patient_examination.py +3 -3
  305. endoreg_db/serializers/pdf/anony_text_validation.py +39 -23
  306. endoreg_db/serializers/requirements/requirement_sets.py +92 -22
  307. endoreg_db/serializers/video/segmentation.py +2 -1
  308. endoreg_db/serializers/video/video_file_list.py +65 -34
  309. endoreg_db/serializers/video/video_processing_history.py +20 -5
  310. endoreg_db/services/__old/pdf_import.py +1487 -0
  311. endoreg_db/services/__old/video_import.py +1306 -0
  312. endoreg_db/services/anonymization.py +128 -89
  313. endoreg_db/services/lookup_service.py +65 -52
  314. endoreg_db/services/lookup_store.py +2 -2
  315. endoreg_db/services/pdf_import.py +0 -1382
  316. endoreg_db/services/report_import.py +10 -0
  317. endoreg_db/services/video_import.py +6 -1255
  318. endoreg_db/tasks/upload_tasks.py +79 -70
  319. endoreg_db/tasks/video_ingest.py +8 -4
  320. endoreg_db/urls/__init__.py +5 -32
  321. endoreg_db/urls/ai.py +32 -0
  322. endoreg_db/urls/media.py +121 -83
  323. endoreg_db/urls/root_urls.py +29 -0
  324. endoreg_db/utils/__init__.py +15 -5
  325. endoreg_db/utils/ai/multilabel_classification_net.py +116 -20
  326. endoreg_db/utils/case_generator/__init__.py +3 -0
  327. endoreg_db/utils/dataloader.py +142 -40
  328. endoreg_db/utils/defaults/set_default_center.py +32 -0
  329. endoreg_db/utils/names.py +22 -16
  330. endoreg_db/utils/paths.py +110 -46
  331. endoreg_db/utils/permissions.py +2 -1
  332. endoreg_db/utils/pipelines/Readme.md +1 -1
  333. endoreg_db/utils/pipelines/process_video_dir.py +1 -1
  334. endoreg_db/utils/requirement_operator_logic/_old/model_evaluators.py +655 -0
  335. endoreg_db/utils/requirement_operator_logic/new_operator_logic.py +97 -0
  336. endoreg_db/utils/setup_config.py +8 -5
  337. endoreg_db/utils/storage.py +115 -0
  338. endoreg_db/utils/validate_endo_roi.py +8 -2
  339. endoreg_db/utils/video/ffmpeg_wrapper.py +184 -188
  340. endoreg_db/views/__init__.py +85 -183
  341. endoreg_db/views/ai/__init__.py +8 -0
  342. endoreg_db/views/ai/label.py +155 -0
  343. endoreg_db/views/anonymization/media_management.py +202 -166
  344. endoreg_db/views/anonymization/overview.py +99 -67
  345. endoreg_db/views/anonymization/validate.py +182 -44
  346. endoreg_db/views/media/__init__.py +7 -20
  347. endoreg_db/views/media/pdf_media.py +197 -174
  348. endoreg_db/views/media/sensitive_metadata.py +193 -138
  349. endoreg_db/views/media/video_media.py +89 -82
  350. endoreg_db/views/meta/__init__.py +0 -8
  351. endoreg_db/views/misc/__init__.py +1 -7
  352. endoreg_db/views/misc/upload_views.py +94 -93
  353. endoreg_db/views/patient/patient.py +5 -4
  354. endoreg_db/views/report/__init__.py +5 -7
  355. endoreg_db/views/{pdf → report}/reimport.py +22 -22
  356. endoreg_db/views/{pdf/pdf_stream.py → report/report_stream.py} +46 -39
  357. endoreg_db/views/requirement/evaluate.py +188 -187
  358. endoreg_db/views/requirement/lookup.py +17 -3
  359. endoreg_db/views/requirement/lookup_store.py +22 -90
  360. endoreg_db/views/requirement/requirement_utils.py +89 -0
  361. endoreg_db/views/video/__init__.py +23 -24
  362. endoreg_db/views/video/correction.py +201 -172
  363. endoreg_db/views/video/reimport.py +1 -1
  364. endoreg_db/views/{media/video_segments.py → video/segments_crud.py} +77 -40
  365. endoreg_db/views/video/{video_meta.py → video_meta_stats.py} +2 -2
  366. endoreg_db/views/video/video_stream.py +7 -8
  367. {endoreg_db-0.8.6.1.dist-info → endoreg_db-0.8.8.9.dist-info}/METADATA +7 -3
  368. {endoreg_db-0.8.6.1.dist-info → endoreg_db-0.8.8.9.dist-info}/RECORD +391 -413
  369. {endoreg_db-0.8.6.1.dist-info → endoreg_db-0.8.8.9.dist-info}/WHEEL +1 -1
  370. endoreg_db/data/finding/anatomy_colon.yaml +0 -128
  371. endoreg_db/data/finding/colonoscopy.yaml +0 -40
  372. endoreg_db/data/finding/colonoscopy_bowel_prep.yaml +0 -56
  373. endoreg_db/data/finding/complication.yaml +0 -16
  374. endoreg_db/data/finding/data.yaml +0 -105
  375. endoreg_db/data/finding/examination_setting.yaml +0 -16
  376. endoreg_db/data/finding/medication_related.yaml +0 -18
  377. endoreg_db/data/finding/outcome.yaml +0 -12
  378. endoreg_db/data/finding_classification/colonoscopy_bowel_preparation.yaml +0 -95
  379. endoreg_db/data/finding_classification/colonoscopy_jnet.yaml +0 -22
  380. endoreg_db/data/finding_classification/colonoscopy_kudo.yaml +0 -25
  381. endoreg_db/data/finding_classification/colonoscopy_lesion_circularity.yaml +0 -20
  382. endoreg_db/data/finding_classification/colonoscopy_lesion_planarity.yaml +0 -24
  383. endoreg_db/data/finding_classification/colonoscopy_lesion_size.yaml +0 -68
  384. endoreg_db/data/finding_classification/colonoscopy_lesion_surface.yaml +0 -20
  385. endoreg_db/data/finding_classification/colonoscopy_location.yaml +0 -80
  386. endoreg_db/data/finding_classification/colonoscopy_lst.yaml +0 -21
  387. endoreg_db/data/finding_classification/colonoscopy_nice.yaml +0 -20
  388. endoreg_db/data/finding_classification/colonoscopy_paris.yaml +0 -26
  389. endoreg_db/data/finding_classification/colonoscopy_sano.yaml +0 -22
  390. endoreg_db/data/finding_classification/colonoscopy_summary.yaml +0 -53
  391. endoreg_db/data/finding_classification/complication_generic.yaml +0 -25
  392. endoreg_db/data/finding_classification/examination_setting_generic.yaml +0 -40
  393. endoreg_db/data/finding_classification/histology_colo.yaml +0 -51
  394. endoreg_db/data/finding_classification/intervention_required.yaml +0 -26
  395. endoreg_db/data/finding_classification/medication_related.yaml +0 -23
  396. endoreg_db/data/finding_classification/visualized.yaml +0 -33
  397. endoreg_db/data/finding_classification_choice/colon_lesion_circularity_default.yaml +0 -32
  398. endoreg_db/data/finding_classification_choice/colon_lesion_jnet.yaml +0 -15
  399. endoreg_db/data/finding_classification_choice/colon_lesion_kudo.yaml +0 -23
  400. endoreg_db/data/finding_classification_choice/colon_lesion_lst.yaml +0 -15
  401. endoreg_db/data/finding_classification_choice/colon_lesion_nice.yaml +0 -17
  402. endoreg_db/data/finding_classification_choice/colon_lesion_planarity_default.yaml +0 -49
  403. endoreg_db/data/finding_classification_choice/colon_lesion_sano.yaml +0 -14
  404. endoreg_db/data/finding_classification_choice/colon_lesion_surface_intact_default.yaml +0 -36
  405. endoreg_db/data/finding_classification_choice/colonoscopy_size.yaml +0 -82
  406. endoreg_db/data/finding_classification_choice/colonoscopy_summary_worst_finding.yaml +0 -15
  407. endoreg_db/data/finding_classification_choice/outcome.yaml +0 -19
  408. endoreg_db/data/finding_intervention/endoscopy.yaml +0 -43
  409. endoreg_db/data/finding_intervention/endoscopy_colonoscopy.yaml +0 -168
  410. endoreg_db/data/finding_intervention/endoscopy_egd.yaml +0 -128
  411. endoreg_db/data/finding_intervention/endoscopy_ercp.yaml +0 -32
  412. endoreg_db/data/finding_intervention/endoscopy_eus_lower.yaml +0 -9
  413. endoreg_db/data/finding_intervention/endoscopy_eus_upper.yaml +0 -36
  414. endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +0 -79
  415. endoreg_db/data/requirement/age.yaml +0 -26
  416. endoreg_db/data/requirement/gender.yaml +0 -25
  417. endoreg_db/management/commands/init_default_ai_model.py +0 -112
  418. endoreg_db/management/commands/reset_celery_schedule.py +0 -9
  419. endoreg_db/management/commands/validate_video.py +0 -204
  420. endoreg_db/migrations/0002_add_video_correction_models.py +0 -52
  421. endoreg_db/migrations/0003_add_center_display_name.py +0 -30
  422. endoreg_db/models/administration/permissions/__init__.py +0 -44
  423. endoreg_db/models/rule/__init__.py +0 -13
  424. endoreg_db/models/rule/rule.py +0 -27
  425. endoreg_db/models/rule/rule_applicator.py +0 -224
  426. endoreg_db/models/rule/rule_attribute_dtype.py +0 -17
  427. endoreg_db/models/rule/rule_type.py +0 -20
  428. endoreg_db/models/rule/ruleset.py +0 -17
  429. endoreg_db/renames.yml +0 -8
  430. endoreg_db/serializers/_old/raw_pdf_meta_validation.py +0 -223
  431. endoreg_db/serializers/_old/raw_video_meta_validation.py +0 -179
  432. endoreg_db/serializers/_old/video.py +0 -71
  433. endoreg_db/serializers/meta/pdf_file_meta_extraction.py +0 -115
  434. endoreg_db/serializers/meta/report_meta.py +0 -53
  435. endoreg_db/serializers/report/__init__.py +0 -9
  436. endoreg_db/serializers/report/mixins.py +0 -45
  437. endoreg_db/serializers/report/report.py +0 -105
  438. endoreg_db/serializers/report/report_list.py +0 -22
  439. endoreg_db/serializers/report/secure_file_url.py +0 -26
  440. endoreg_db/serializers/video/video_metadata.py +0 -105
  441. endoreg_db/services/requirements_object.py +0 -147
  442. endoreg_db/services/storage_aware_video_processor.py +0 -344
  443. endoreg_db/urls/files.py +0 -6
  444. endoreg_db/urls/label_video_segment_validate.py +0 -33
  445. endoreg_db/urls/label_video_segments.py +0 -46
  446. endoreg_db/urls/report.py +0 -48
  447. endoreg_db/urls/video.py +0 -61
  448. endoreg_db/utils/case_generator/case_generator.py +0 -159
  449. endoreg_db/utils/case_generator/utils.py +0 -30
  450. endoreg_db/utils/requirement_operator_logic/model_evaluators.py +0 -368
  451. endoreg_db/views/label/__init__.py +0 -5
  452. endoreg_db/views/label/label.py +0 -15
  453. endoreg_db/views/label_video_segment/__init__.py +0 -16
  454. endoreg_db/views/label_video_segment/create_lvs_from_annotation.py +0 -44
  455. endoreg_db/views/label_video_segment/get_lvs_by_name_and_video.py +0 -50
  456. endoreg_db/views/label_video_segment/label_video_segment.py +0 -77
  457. endoreg_db/views/label_video_segment/label_video_segment_by_label.py +0 -174
  458. endoreg_db/views/label_video_segment/label_video_segment_detail.py +0 -73
  459. endoreg_db/views/label_video_segment/update_lvs_from_annotation.py +0 -46
  460. endoreg_db/views/label_video_segment/validate.py +0 -226
  461. endoreg_db/views/media/segments.py +0 -71
  462. endoreg_db/views/meta/available_files_list.py +0 -146
  463. endoreg_db/views/meta/report_meta.py +0 -53
  464. endoreg_db/views/meta/sensitive_meta_detail.py +0 -148
  465. endoreg_db/views/misc/secure_file_serving_view.py +0 -80
  466. endoreg_db/views/misc/secure_file_url_view.py +0 -84
  467. endoreg_db/views/misc/secure_url_validate.py +0 -79
  468. endoreg_db/views/patient_examination/DEPRECATED_video_backup.py +0 -164
  469. endoreg_db/views/patient_finding_location/__init__.py +0 -5
  470. endoreg_db/views/patient_finding_location/pfl_create.py +0 -70
  471. endoreg_db/views/patient_finding_morphology/__init__.py +0 -5
  472. endoreg_db/views/patient_finding_morphology/pfm_create.py +0 -70
  473. endoreg_db/views/pdf/__init__.py +0 -8
  474. endoreg_db/views/report/report_list.py +0 -112
  475. endoreg_db/views/report/report_with_secure_url.py +0 -28
  476. endoreg_db/views/report/start_examination.py +0 -7
  477. endoreg_db/views/video/segmentation.py +0 -274
  478. endoreg_db/views/video/task_status.py +0 -49
  479. endoreg_db/views/video/timeline.py +0 -46
  480. endoreg_db/views/video/video_analyze.py +0 -52
  481. endoreg_db/views.py +0 -0
  482. /endoreg_db/data/requirement/{colonoscopy_baseline_austria.yaml → old/colonoscopy_baseline_austria.yaml} +0 -0
  483. /endoreg_db/data/requirement/{disease_cardiovascular.yaml → old/disease_cardiovascular.yaml} +0 -0
  484. /endoreg_db/data/requirement/{disease_classification_choice_cardiovascular.yaml → old/disease_classification_choice_cardiovascular.yaml} +0 -0
  485. /endoreg_db/data/requirement/{disease_hepatology.yaml → old/disease_hepatology.yaml} +0 -0
  486. /endoreg_db/data/requirement/{disease_misc.yaml → old/disease_misc.yaml} +0 -0
  487. /endoreg_db/data/requirement/{disease_renal.yaml → old/disease_renal.yaml} +0 -0
  488. /endoreg_db/data/requirement/{endoscopy_bleeding_risk.yaml → old/endoscopy_bleeding_risk.yaml} +0 -0
  489. /endoreg_db/data/requirement/{event_cardiology.yaml → old/event_cardiology.yaml} +0 -0
  490. /endoreg_db/data/requirement/{event_requirements.yaml → old/event_requirements.yaml} +0 -0
  491. /endoreg_db/data/requirement/{finding_colon_polyp.yaml → old/finding_colon_polyp.yaml} +0 -0
  492. /endoreg_db/{migrations/__init__.py → data/requirement/old/gender.yaml} +0 -0
  493. /endoreg_db/data/requirement/{lab_value.yaml → old/lab_value.yaml} +0 -0
  494. /endoreg_db/data/requirement/{medication.yaml → old/medication.yaml} +0 -0
  495. /endoreg_db/data/requirement_operator/{age.yaml → _old/age.yaml} +0 -0
  496. /endoreg_db/data/requirement_operator/{lab_operators.yaml → _old/lab_operators.yaml} +0 -0
  497. /endoreg_db/data/requirement_operator/{model_operators.yaml → _old/model_operators.yaml} +0 -0
  498. /endoreg_db/{models/media/video/refactor_plan.md → import_files/pseudonymization/__init__.py} +0 -0
  499. /endoreg_db/{models/media/video/video_file_frames.py → import_files/pseudonymization/pseudonymize.py} +0 -0
  500. /endoreg_db/models/{metadata/frame_ocr_result.py → report/__init__.py} +0 -0
  501. /endoreg_db/{urls/sensitive_meta.py → models/report/images.py} +0 -0
  502. /endoreg_db/utils/requirement_operator_logic/{lab_value_operators.py → _old/lab_value_operators.py} +0 -0
  503. {endoreg_db-0.8.6.1.dist-info → endoreg_db-0.8.8.9.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,44 @@
1
+ - model: endoreg_db.finding_classification
2
+ fields:
3
+ name: "visualized"
4
+ classification_types:
5
+ - inferrable
6
+ choices:
7
+ - "yes"
8
+ - "no"
9
+
10
+ - model: endoreg_db.finding_classification
11
+ fields:
12
+ name: "examination_setting_generic_location"
13
+ classification_types: []
14
+ choices:
15
+ - examination_setting_generic_location_inpatient
16
+ - examination_setting_generic_location_outpatient
17
+
18
+ - model: endoreg_db.finding_classification
19
+ fields:
20
+ name: "sedation_performed"
21
+ classification_types: []
22
+ choices:
23
+ - "yes"
24
+ - "no"
25
+
26
+ - model: endoreg_db.finding_classification
27
+ fields:
28
+ name: "examination_setting_generic_sedation"
29
+ classification_types: []
30
+ choices:
31
+ - "sedation_propofol"
32
+ - "sedation_midazolam"
33
+ - "sedation_propofol_midazolam"
34
+ - "sedation_other"
35
+
36
+ - model: endoreg_db.finding_classification
37
+ fields:
38
+ name: "complication_generic_type"
39
+ classification_types: []
40
+ choices:
41
+ - complication_generic_type_cardiorespiratory
42
+ - complication_generic_type_bleeding
43
+ - complication_generic_type_perforation
44
+ - complication_generic_type_other
@@ -0,0 +1,28 @@
1
+ - model: endoreg_db.finding_classification_choice
2
+ fields:
3
+ name: "histology_dysplasia_default"
4
+ classification_types:
5
+ - histology
6
+ choices:
7
+ - histology_dysplasia_none
8
+ - histology_dysplasia_low_grade
9
+ - histology_dysplasia_high_grade
10
+
11
+ - model: endoreg_db.finding_classification
12
+ fields:
13
+ name: "histology_dignity_default"
14
+ classification_types:
15
+ - histology
16
+ choices:
17
+ - histology_dignity_benign
18
+ - histology_dignity_malign
19
+
20
+ - model: endoreg_db.finding_classification_choice
21
+ fields:
22
+ name: "histology_in_sano_default"
23
+ classification_types:
24
+ - histology
25
+ choices:
26
+ - "yes"
27
+ - "no"
28
+ - "na"
@@ -0,0 +1,52 @@
1
+ - model: endoreg_db.finding_classification
2
+ fields:
3
+ name: "lesion_size_mm"
4
+ classification_types: ["size"]
5
+ name_de: "Größe (mm)"
6
+ name_en: "Size (mm)"
7
+ choices: ["lesion_size_oval_mm"]
8
+
9
+ - model: endoreg_db.finding_classification
10
+ fields:
11
+ name: "lesion_length_mm"
12
+ classification_types: ["size"]
13
+ name_de: "Länge (mm)"
14
+ name_en: "Length (mm)"
15
+ choices:
16
+ - lesion_length_mm #TODO
17
+
18
+ - model: endoreg_db.finding_classification
19
+ fields:
20
+ name: "lesion_planarity_default"
21
+ classification_types: ["planarity", "morphology"]
22
+ name_de: "Planaritätsklassifikation Kolonläsion"
23
+ name_en: "Colon Lesion Planarity Classification"
24
+ choices:
25
+ - lesion_planarity_flat
26
+ - lesion_planarity_flat_elevated
27
+ - lesion_planarity_sessile
28
+ - lesion_planarity_pedunculated
29
+ - lesion_planarity_excavated
30
+ - lesion_planarity_unknown
31
+
32
+ - model: endoreg_db.finding_classification
33
+ fields:
34
+ name: "lesion_surface_intact_default"
35
+ classification_types:
36
+ - morphology
37
+ name_de: "Oberflächenklassifikation Kolonläsion"
38
+ name_en: "Colon Lesion Surface Classification"
39
+ choices:
40
+ - lesion_surface_intact
41
+ - lesion_surface_eroded
42
+ - lesion_surface_ulcerated
43
+
44
+ - model: endoreg_db.finding_classification
45
+ fields:
46
+ name: "lesion_circularity_default"
47
+ name_de: "Zirkularität"
48
+ name_en: "Circularity"
49
+ classification_types: ["morphology"]
50
+ choices:
51
+ - lesion_circularity_false
52
+ - lesion_circularity_true
@@ -0,0 +1,83 @@
1
+ - model: endoreg_db.finding_classification
2
+ fields:
3
+ name: "colonoscopy_location_default"
4
+ name_de: "Koloskopie Standard"
5
+ name_en: "Colonoscopy Default"
6
+ classification_types: ["location"]
7
+ choices:
8
+ [
9
+ "terminal_ileum",
10
+ "cecum",
11
+ "ascending_colon",
12
+ "right_flexure",
13
+ "transverse_colon",
14
+ "left_flexure",
15
+ "descending_colon",
16
+ "sigmoid_colon",
17
+ "rectum",
18
+ "anal_canal",
19
+ ]
20
+
21
+ - model: endoreg_db.finding_classification
22
+ fields:
23
+ name: "colonoscopy_location_coarse"
24
+ name_de: "Koloskopie Grob"
25
+ name_en: "Colonoscopy Coarse"
26
+ classification_types: ["location"]
27
+ choices: ["left_colon", "right_colon", "rectum"]
28
+
29
+ - model: endoreg_db.finding_classification
30
+ fields:
31
+ name: "bowel_prep_boston"
32
+ classification_types: ["bowel_prep"]
33
+ name_de: "Boston Bowel Preparation Scale"
34
+ name_en: "Boston Bowel Preparation Scale"
35
+ choices:
36
+ [
37
+ "bowel_prep_boston_0",
38
+ "bowel_prep_boston_1",
39
+ "bowel_prep_boston_2",
40
+ "bowel_prep_boston_3",
41
+ ]
42
+
43
+ - model: endoreg_db.finding_classification
44
+ fields:
45
+ name: "bowel_prep_boston_simplified"
46
+ classification_types: ["bowel_prep"]
47
+ name_de: "Boston Bowel Preparation Scale"
48
+ name_en: "Boston Bowel Preparation Scale"
49
+ choices:
50
+ [
51
+ "bowel_prep_boston_0",
52
+ "bowel_prep_boston_1",
53
+ "bowel_prep_boston_2",
54
+ "bowel_prep_boston_3",
55
+ ]
56
+
57
+ #Aronchick
58
+ - model: endoreg_db.finding_classification
59
+ fields:
60
+ name: "bowel_prep_aronchick"
61
+ classification_types: ["bowel_prep"]
62
+ name_de: "Aronchick Bowel Preparation Scale"
63
+ name_en: "Aronchick Bowel Preparation Scale"
64
+ choices:
65
+ [
66
+ "bowel_prep_aronchick_0",
67
+ "bowel_prep_aronchick_1",
68
+ "bowel_prep_aronchick_2",
69
+ "bowel_prep_aronchick_3",
70
+ ]
71
+
72
+ - model: endoreg_db.finding_classification
73
+ fields:
74
+ name: "colonoscopy_not_complete_reason"
75
+ classification_types: []
76
+ choices:
77
+ [
78
+ "colonoscopy_incomplete_insufficient_preparation",
79
+ "colonoscopy_incomplete_complication",
80
+ "colonoscopy_incomplete_pain",
81
+ "colonoscopy_incomplete_stenosis",
82
+ "colonoscopy_incomplete_other",
83
+ ]
@@ -0,0 +1,13 @@
1
+ - model: endoreg_db.finding_classification
2
+ fields:
3
+ name: "colonoscopy_polyp_histology"
4
+ classification_types:
5
+ - histology
6
+ choices: [
7
+ "histology_polyp_hyperplastic",
8
+ "histology_polyp_adenoma_tubular",
9
+ "histology_polyp_adenoma_tubulovillous",
10
+ "histology_polyp_adenoma_villous",
11
+ "histology_polyp_sessile_serrated_lesion",
12
+ # unknown?
13
+ ]
@@ -0,0 +1,12 @@
1
+ - model: endoreg_db.finding_classification
2
+ fields:
3
+ name: "hemorrhoids_grade"
4
+ classification_types: []
5
+ choices:
6
+ [
7
+ "hemorrhoids_grade_0_no_hemorrhoids",
8
+ "hemorrhoids_grade_1",
9
+ "hemorrhoids_grade_2",
10
+ "hemorrhoids_grade_3",
11
+ "hemorrhoids_grade_4",
12
+ ]
@@ -0,0 +1,101 @@
1
+ - model: endoreg_db.finding_classification
2
+ fields:
3
+ name: "colon_lesion_paris"
4
+ classification_types: ["shape", "morphology"]
5
+ name_de: "Formklassifikation Kolonläsion"
6
+ name_en: "Colon Lesion Shape Classification"
7
+ choices: [
8
+ "colon_lesion_paris_Is", # maps to colon_lesion_planarity_sessile
9
+ "colon_lesion_paris_Ip", # colon_lesion_planarity_pedunculated
10
+ "colon_lesion_paris_IIa",
11
+ "colon_lesion_paris_IIb",
12
+ "colon_lesion_paris_IIc",
13
+ "colon_lesion_paris_III",
14
+ "colon_lesion_paris_IIa_IIc",
15
+ "colon_lesion_paris_IIb_IIc",
16
+ ]
17
+
18
+ - model: endoreg_db.finding_classification
19
+ fields:
20
+ name: "colon_lesion_sano"
21
+ classification_types: ["capillary_pattern", "morphology"]
22
+ name_de: "Oberflächenklassifikation Kolonläsion"
23
+ name_en: "Colon Lesion Surface Classification"
24
+ choices:
25
+ [
26
+ "colon_lesion_sano_1",
27
+ "colon_lesion_sano_2",
28
+ "colon_lesion_sano_3a",
29
+ "colon_lesion_sano_3b",
30
+ ]
31
+
32
+ - model: endoreg_db.finding_classification
33
+ fields:
34
+ name: "colon_lesion_size_categorical"
35
+ classification_types: ["size", "morphology"]
36
+ name_de: "Größenklassifikation Kolonläsion (kategorisch)"
37
+ name_en: "Colon Lesion Size Classification (categorical)"
38
+ choices: [
39
+ "colon_lesion_size_categorical_diminutive", # 0 - 5 mm
40
+ "colon_lesion_size_categorical_small", # 6 - 9 mm
41
+ "colon_lesion_size_categorical_medium", # 10 - 20 mm
42
+ "colon_lesion_size_categorical_large", # 21+ mm
43
+ ]
44
+
45
+ - model: endoreg_db.finding_classification
46
+ fields:
47
+ name: "colon_lesion_lst"
48
+ classification_types: ["shape", "morphology"]
49
+ name_de: "Oberflächenklassifikation Kolonläsion"
50
+ name_en: "Colon Lesion Surface Classification"
51
+ choices:
52
+ [
53
+ "colon_lesion_lst_granular_homogeneous",
54
+ "colon_lesion_lst_granular_nodular_mixed",
55
+ "colon_lesion_lst_non_granular_flat_elevated",
56
+ "colon_lesion_lst_non_granular_pseudodepressed",
57
+ ]
58
+
59
+ - model: endoreg_db.finding_classification
60
+ fields:
61
+ name: "colon_lesion_kudo"
62
+ classification_types: ["colon_lesion_advanced_imaging", "morphology"]
63
+ name_de: "Oberflächenklassifikation Kolonläsion"
64
+ name_en: "Colon Lesion Surface Classification"
65
+ choices:
66
+ [
67
+ "colon_lesion_kudo_1",
68
+ "colon_lesion_kudo_2",
69
+ "colon_lesion_kudo_3s",
70
+ "colon_lesion_kudo_3l",
71
+ "colon_lesion_kudo_4",
72
+ "colon_lesion_kudo_5i",
73
+ "colon_lesion_kudo_5n",
74
+ ]
75
+
76
+ - model: endoreg_db.finding_classification
77
+ fields:
78
+ name: "colon_lesion_jnet"
79
+ name_de: "Kolonläsion - JNET"
80
+ name_en: "Colon lesion - JNET"
81
+ classification_types: ["morphology", "colon_lesion_advanced_imaging"]
82
+ choices:
83
+ [
84
+ "colon_lesion_jnet_1",
85
+ "colon_lesion_jnet_2a",
86
+ "colon_lesion_jnet_2b",
87
+ "colon_lesion_jnet_3",
88
+ ]
89
+
90
+ - model: endoreg_db.finding_classification
91
+ fields:
92
+ name: "colon_lesion_nice"
93
+ classification_types: ["colon_lesion_advanced_imaging", "morphology"]
94
+ name_de: "Kolonläsion - NICE"
95
+ name_en: "Colon lesion - NICE"
96
+ choices:
97
+ [
98
+ "colon_lesion_NICE_type_1",
99
+ "colon_lesion_NICE_type_2",
100
+ "colon_lesion_NICE_type_3",
101
+ ]
@@ -8,4 +8,8 @@
8
8
 
9
9
  - model: endoreg_db.finding_classification_choice
10
10
  fields:
11
- name: "na"
11
+ name: "na"
12
+
13
+ - model: endoreg_db.finding_classification_choice
14
+ fields:
15
+ name: "unknown"
@@ -8,8 +8,16 @@
8
8
 
9
9
  - model: endoreg_db.finding_classification_choice
10
10
  fields:
11
- name: "examination_setting_operative"
11
+ name: "sedation_propofol"
12
12
 
13
13
  - model: endoreg_db.finding_classification_choice
14
14
  fields:
15
- name: "examination_setting_conservative"
15
+ name: "sedation_midazolam"
16
+
17
+ - model: endoreg_db.finding_classification_choice
18
+ fields:
19
+ name: "sedation_propofol_midazolam"
20
+
21
+ - model: endoreg_db.finding_classification_choice
22
+ fields:
23
+ name: "sedation_other"
@@ -12,4 +12,4 @@
12
12
 
13
13
  - model: endoreg_db.finding_classification_choice
14
14
  fields:
15
- name: "complication_generic_type_other"
15
+ name: "complication_generic_type_other"
@@ -1,6 +1,3 @@
1
- # "histology_dysplasia_none",
2
- # "histology_dysplasia_low_grade",
3
- # "histology_dysplasia_high_grade",
4
1
  - model: endoreg_db.finding_classification_choice
5
2
  fields:
6
3
  name: "histology_dysplasia_none"
@@ -21,4 +18,4 @@
21
18
  - model: endoreg_db.finding_classification_choice
22
19
  fields:
23
20
  name: "histology_dignity_malign"
24
- description: "Histology: Malign"
21
+ description: "Histology: Malign"
@@ -0,0 +1,158 @@
1
+ # Planarity of lesions
2
+ - model: endoreg_db.finding_classification_choice
3
+ fields:
4
+ name: "lesion_planarity_flat"
5
+ name_de: "Planarität flach"
6
+ name_en: "planarity flat"
7
+ description: "Category for flat lesions"
8
+
9
+ - model: endoreg_db.finding_classification_choice
10
+ fields:
11
+ name: "lesion_planarity_flat_elevated"
12
+ name_de: "Planarität flach-erhaben"
13
+ name_en: "planarity flat-elevated"
14
+ description: "Category for flat-elevated lesions (surface +/- 2 mm)"
15
+
16
+ - model: endoreg_db.finding_classification_choice
17
+ fields:
18
+ name: "lesion_planarity_sessile"
19
+ name_de: "Planarität sessil"
20
+ name_en: "planarity sessile"
21
+ description: "Category for sessile lesions (surface > 2 mm)"
22
+
23
+ - model: endoreg_db.finding_classification_choice
24
+ fields:
25
+ name: "lesion_planarity_pedunculated"
26
+ name_de: "Planarität gestielt"
27
+ name_en: "planarity pedunculated"
28
+ description: "Category for pedunculated lesions (surface on a stalk)"
29
+
30
+ - model: endoreg_db.finding_classification_choice
31
+ fields:
32
+ name: "lesion_planarity_excavated"
33
+ name_de: "Planarität exkaviert"
34
+ name_en: "planarity excavated"
35
+ description: "Category for excavated lesions (surface below surrounding mucosa)"
36
+ subcategories:
37
+ description:
38
+ choices: ["unspecified", "focal", "diffuse", "total"]
39
+ probability: [0.5, 0.2, 0.2, 0.1]
40
+ default: "unspecified"
41
+ required: true
42
+
43
+ - model: endoreg_db.finding_classification_choice
44
+ fields:
45
+ name: "lesion_planarity_unknown"
46
+ name_de: "Planarität unbekannt"
47
+ name_en: "planarity unknown"
48
+
49
+ # Circularity of lesions
50
+ - model: endoreg_db.finding_classification_choice
51
+ fields:
52
+ name: "lesion_circularity_false"
53
+ name_de: "Zirkularität"
54
+ name_en: "Circularity"
55
+ description: "Category for non-circular lesions"
56
+
57
+ - model: endoreg_db.finding_classification_choice
58
+ fields:
59
+ name: "lesion_circularity_true"
60
+ name_de: "Zirkularität"
61
+ name_en: "Circularity"
62
+ description: "Category for circular lesions"
63
+ numerical_descriptors:
64
+ length:
65
+ unit: "milimeter"
66
+ min: 0
67
+ max: 100
68
+ default: null
69
+ distribution: "uniform"
70
+ description: "Length of the lesion in mm"
71
+ required: true
72
+ circumference:
73
+ unit: "percent"
74
+ min: 33
75
+ max: 100
76
+ mean: 50
77
+ std: 10
78
+ default: null
79
+ distribution: "normal"
80
+ description: "Circumference of the lesion in %"
81
+ required: true
82
+
83
+ # Size of oval lesions
84
+ - model: endoreg_db.finding_classification_choice
85
+ fields:
86
+ name: "lesion_size_oval_mm"
87
+ name_de: "Größe Ovaler Läsionen (mm)"
88
+ name_en: "Size of Oval Lesions (mm)"
89
+ description: "oval lesions"
90
+ numerical_descriptors:
91
+ largest_diameter_mm:
92
+ unit: "mm"
93
+ min: 0
94
+ max: 35
95
+ distribution: "normal"
96
+ mean: 5
97
+ std: 3
98
+ description: "Largest diameter of the lesion in mm"
99
+ required: true
100
+ perpendicular_diameter_mm:
101
+ unit: "mm"
102
+ min: 0
103
+ max: 35
104
+ description: "Perpendicular diameter of the lesion in mm"
105
+ required: false
106
+
107
+ - model: endoreg_db.finding_classification_choice
108
+ fields:
109
+ name: "lesion_length_mm"
110
+ name_de: "Länge Läsion (mm)"
111
+ name_en: "Length of lesions (mm)"
112
+ description: "Length of lesions"
113
+ numerical_descriptors:
114
+ value:
115
+ unit: "mm"
116
+ min: 0
117
+ max: 100
118
+ distribution: "normal"
119
+ mean: 5
120
+ std: 3
121
+ description: "Largest diameter of the lesion in mm"
122
+ required: true
123
+
124
+ # Surface of lesions
125
+ - model: endoreg_db.finding_classification_choice
126
+ fields:
127
+ name: "lesion_surface_intact"
128
+ name_de: "Oberfläche intakt"
129
+ name_en: "surface intact"
130
+ description: "Category for intact lesion surfaces"
131
+
132
+ # eroded
133
+ - model: endoreg_db.finding_classification_choice
134
+ fields:
135
+ name: "lesion_surface_eroded"
136
+ name_de: "Oberfläche erodiert"
137
+ name_en: "surface eroded"
138
+ description: "Category for eroded lesion surfaces"
139
+ subcategories:
140
+ description:
141
+ choices: ["unspecified", "focal", "diffuse"]
142
+ default: "unspecified"
143
+ probability: [0.5, 0.2, 0.3]
144
+ required: true
145
+
146
+ # ulcerated
147
+ - model: endoreg_db.finding_classification_choice
148
+ fields:
149
+ name: "lesion_surface_ulcerated"
150
+ name_de: "Oberfläche ulzeriert"
151
+ name_en: "surface ulcerated"
152
+ description: "Category for ulcerated lesion surfaces"
153
+ subcategories:
154
+ description:
155
+ choices: ["unspecified", "focal", "diffuse"]
156
+ default: "unspecified"
157
+ probability: [0.5, 0.2, 0.3]
158
+ required: true
@@ -41,38 +41,9 @@
41
41
  name: "bowel_prep_aronchick_2"
42
42
  name_en: "Good"
43
43
  name_de: "Gut"
44
-
44
+
45
45
  - model: endoreg_db.finding_classification_choice
46
46
  fields:
47
47
  name: "bowel_prep_aronchick_3"
48
48
  name_en: "Excellent"
49
49
  name_de: "Exzellent"
50
-
51
- # Screening Austria
52
- # Choices are "bowel_prep_perfect", "bowel_prep_good",
53
- # "bowel_prep_fair", "bowel_prep_poor", "bowel_prep_poor_in_rc_only"
54
- - model: endoreg_db.finding_classification_choice
55
- fields:
56
- name: "bowel_prep_perfect"
57
- name_de: "Perfekt"
58
- name_en: "Perfect"
59
- - model: endoreg_db.finding_classification_choice
60
- fields:
61
- name: "bowel_prep_good"
62
- name_de: "Gut"
63
- name_en: "Good"
64
- - model: endoreg_db.finding_classification_choice
65
- fields:
66
- name: "bowel_prep_fair"
67
- name_de: "Befriedigend"
68
- name_en: "Fair"
69
- - model: endoreg_db.finding_classification_choice
70
- fields:
71
- name: "bowel_prep_poor"
72
- name_de: "Schlecht"
73
- name_en: "Poor"
74
- - model: endoreg_db.finding_classification_choice
75
- fields:
76
- name: "bowel_prep_poor_in_rc_only"
77
- name_de: "Schlecht (nur rechtes Kolon)"
78
- name_en: "Poor (Right Colon Only)"
@@ -16,4 +16,4 @@
16
16
 
17
17
  - model: endoreg_db.finding_classification_choice
18
18
  fields:
19
- name: "colonoscopy_incomplete_other"
19
+ name: "colonoscopy_incomplete_other"
@@ -17,4 +17,4 @@
17
17
  - model: endoreg_db.finding_classification_choice
18
18
  fields:
19
19
  name: "histology_polyp_sessile_serrated_lesion"
20
- description: "Histology: Sessile serrated lesion"
20
+ description: "Histology: Sessile serrated lesion"
@@ -4,10 +4,7 @@
4
4
  name_de: "terminales Ileum"
5
5
  name_en: "Terminal Ileum"
6
6
  subcategories:
7
- description: {
8
- choices: ["unspecified"],
9
- required: false
10
- }
7
+ description: { choices: ["unspecified"], required: false }
11
8
  numerical_descriptors:
12
9
  cm_rectified:
13
10
  unit: "centimeter"
@@ -80,6 +77,28 @@
80
77
  description: "Insertion depth of the colonoscope in cm (rectified)"
81
78
  required: false
82
79
 
80
+ - model: endoreg_db.finding_classification_choice
81
+ fields:
82
+ name: "left_flexure"
83
+ name_de: "Linke Flexur"
84
+ name_en: "Left Flexure"
85
+ subcategories:
86
+ description:
87
+ choices: ["unspecified", "proximal", "distal"]
88
+ probability: [0.5, 0.3, 0.2]
89
+ default: "unspecified"
90
+ required: true
91
+ numerical_descriptors:
92
+ cm_rectified:
93
+ unit: "centimeter"
94
+ min: 80
95
+ max: 180
96
+ mean: null
97
+ std: null
98
+ distribution: "uniform"
99
+ description: "Insertion depth of the colonoscope in cm (rectified)"
100
+ required: false
101
+
83
102
  - model: endoreg_db.finding_classification_choice
84
103
  fields:
85
104
  name: "transverse_colon"
@@ -0,0 +1,34 @@
1
+ # Hemorrhoids classification
2
+ - model: endoreg_db.finding_classification_choice
3
+ fields:
4
+ name: "hemorrhoids_grade_0_no_hemorrhoids"
5
+ name_de: "Keine Hämorrhoiden"
6
+ name_en: "No hemorrhoids"
7
+
8
+ - model: endoreg_db.finding_classification_choice
9
+ fields:
10
+ name: "hemorrhoids_grade_1"
11
+ name_de: "Grad 1"
12
+ name_en: "Grade 1"
13
+ description: "Mucosal hemorrhoids that do not prolapse"
14
+
15
+ - model: endoreg_db.finding_classification_choice
16
+ fields:
17
+ name: "hemorrhoids_grade_2"
18
+ name_de: "Grad 2"
19
+ name_en: "Grade 2"
20
+ description: "Hemorrhoids that prolapse during straining but reduce spontaneously"
21
+
22
+ - model: endoreg_db.finding_classification_choice
23
+ fields:
24
+ name: "hemorrhoids_grade_3"
25
+ name_de: "Grad 3"
26
+ name_en: "Grade 3"
27
+ description: "Hemorrhoids that prolapse during straining and require manual reduction"
28
+
29
+ - model: endoreg_db.finding_classification_choice
30
+ fields:
31
+ name: "hemorrhoids_grade_4"
32
+ name_de: "Grad 4"
33
+ name_en: "Grade 4"
34
+ description: "Irreducible prolapsed hemorrhoids"