endoreg-db 0.8.4.4__py3-none-any.whl → 0.8.8.0__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 (372) 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 +8 -31
  10. endoreg_db/data/_examples/disease.yaml +55 -0
  11. endoreg_db/data/_examples/disease_classification.yaml +13 -0
  12. endoreg_db/data/_examples/disease_classification_choice.yaml +62 -0
  13. endoreg_db/data/_examples/event.yaml +64 -0
  14. endoreg_db/data/_examples/examination.yaml +72 -0
  15. endoreg_db/data/_examples/finding/anatomy_colon.yaml +128 -0
  16. endoreg_db/data/_examples/finding/colonoscopy.yaml +40 -0
  17. endoreg_db/data/_examples/finding/colonoscopy_bowel_prep.yaml +56 -0
  18. endoreg_db/data/_examples/finding/complication.yaml +16 -0
  19. endoreg_db/data/_examples/finding/data.yaml +105 -0
  20. endoreg_db/data/_examples/finding/examination_setting.yaml +16 -0
  21. endoreg_db/data/_examples/finding/medication_related.yaml +18 -0
  22. endoreg_db/data/_examples/finding/outcome.yaml +12 -0
  23. endoreg_db/data/_examples/finding_classification/colonoscopy_bowel_preparation.yaml +68 -0
  24. endoreg_db/data/_examples/finding_classification/colonoscopy_jnet.yaml +22 -0
  25. endoreg_db/data/_examples/finding_classification/colonoscopy_kudo.yaml +25 -0
  26. endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_circularity.yaml +20 -0
  27. endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_planarity.yaml +24 -0
  28. endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_size.yaml +68 -0
  29. endoreg_db/data/_examples/finding_classification/colonoscopy_lesion_surface.yaml +20 -0
  30. endoreg_db/data/_examples/finding_classification/colonoscopy_location.yaml +80 -0
  31. endoreg_db/data/_examples/finding_classification/colonoscopy_lst.yaml +21 -0
  32. endoreg_db/data/_examples/finding_classification/colonoscopy_nice.yaml +20 -0
  33. endoreg_db/data/_examples/finding_classification/colonoscopy_paris.yaml +26 -0
  34. endoreg_db/data/_examples/finding_classification/colonoscopy_sano.yaml +22 -0
  35. endoreg_db/data/_examples/finding_classification/colonoscopy_summary.yaml +53 -0
  36. endoreg_db/data/_examples/finding_classification/complication_generic.yaml +25 -0
  37. endoreg_db/data/_examples/finding_classification/examination_setting_generic.yaml +40 -0
  38. endoreg_db/data/_examples/finding_classification/histology_colo.yaml +51 -0
  39. endoreg_db/data/_examples/finding_classification/intervention_required.yaml +26 -0
  40. endoreg_db/data/_examples/finding_classification/medication_related.yaml +23 -0
  41. endoreg_db/data/_examples/finding_classification/visualized.yaml +33 -0
  42. endoreg_db/data/_examples/finding_classification_choice/bowel_preparation.yaml +78 -0
  43. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_circularity_default.yaml +32 -0
  44. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_jnet.yaml +15 -0
  45. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_kudo.yaml +23 -0
  46. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_lst.yaml +15 -0
  47. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_nice.yaml +17 -0
  48. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_paris.yaml +57 -0
  49. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_planarity_default.yaml +49 -0
  50. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_sano.yaml +14 -0
  51. endoreg_db/data/_examples/finding_classification_choice/colon_lesion_surface_intact_default.yaml +36 -0
  52. endoreg_db/data/_examples/finding_classification_choice/colonoscopy_location.yaml +229 -0
  53. endoreg_db/data/_examples/finding_classification_choice/colonoscopy_not_complete_reason.yaml +19 -0
  54. endoreg_db/data/_examples/finding_classification_choice/colonoscopy_size.yaml +82 -0
  55. endoreg_db/data/_examples/finding_classification_choice/colonoscopy_summary_worst_finding.yaml +15 -0
  56. endoreg_db/data/_examples/finding_classification_choice/complication_generic_types.yaml +15 -0
  57. endoreg_db/data/_examples/finding_classification_choice/examination_setting_generic_types.yaml +15 -0
  58. endoreg_db/data/_examples/finding_classification_choice/histology.yaml +24 -0
  59. endoreg_db/data/_examples/finding_classification_choice/histology_polyp.yaml +20 -0
  60. endoreg_db/data/_examples/finding_classification_choice/outcome.yaml +19 -0
  61. endoreg_db/data/_examples/finding_classification_choice/yes_no_na.yaml +11 -0
  62. endoreg_db/data/_examples/finding_classification_type/colonoscopy_basic.yaml +48 -0
  63. endoreg_db/data/_examples/finding_intervention/endoscopy.yaml +43 -0
  64. endoreg_db/data/_examples/finding_intervention/endoscopy_colonoscopy.yaml +168 -0
  65. endoreg_db/data/_examples/finding_intervention/endoscopy_egd.yaml +128 -0
  66. endoreg_db/data/_examples/finding_intervention/endoscopy_ercp.yaml +32 -0
  67. endoreg_db/data/_examples/finding_intervention/endoscopy_eus_lower.yaml +9 -0
  68. endoreg_db/data/_examples/finding_intervention/endoscopy_eus_upper.yaml +36 -0
  69. endoreg_db/data/_examples/finding_intervention_type/endoscopy.yaml +15 -0
  70. endoreg_db/data/_examples/finding_type/data.yaml +43 -0
  71. endoreg_db/data/_examples/requirement/age.yaml +26 -0
  72. endoreg_db/data/_examples/requirement/colonoscopy_baseline_austria.yaml +45 -0
  73. endoreg_db/data/_examples/requirement/disease_cardiovascular.yaml +79 -0
  74. endoreg_db/data/_examples/requirement/disease_classification_choice_cardiovascular.yaml +41 -0
  75. endoreg_db/data/_examples/requirement/disease_hepatology.yaml +12 -0
  76. endoreg_db/data/_examples/requirement/disease_misc.yaml +12 -0
  77. endoreg_db/data/_examples/requirement/disease_renal.yaml +96 -0
  78. endoreg_db/data/_examples/requirement/endoscopy_bleeding_risk.yaml +59 -0
  79. endoreg_db/data/_examples/requirement/event_cardiology.yaml +251 -0
  80. endoreg_db/data/_examples/requirement/event_requirements.yaml +145 -0
  81. endoreg_db/data/_examples/requirement/finding_colon_polyp.yaml +50 -0
  82. endoreg_db/data/_examples/requirement/gender.yaml +25 -0
  83. endoreg_db/data/_examples/requirement/lab_value.yaml +441 -0
  84. endoreg_db/data/_examples/requirement/medication.yaml +93 -0
  85. endoreg_db/data/_examples/requirement_operator/age.yaml +13 -0
  86. endoreg_db/data/_examples/requirement_operator/lab_operators.yaml +129 -0
  87. endoreg_db/data/_examples/requirement_operator/model_operators.yaml +96 -0
  88. endoreg_db/data/_examples/requirement_set/01_endoscopy_generic.yaml +48 -0
  89. endoreg_db/data/_examples/requirement_set/colonoscopy_austria_screening.yaml +57 -0
  90. endoreg_db/data/_examples/yaml_examples.xlsx +0 -0
  91. endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +4 -3
  92. endoreg_db/data/event_classification/data.yaml +4 -0
  93. endoreg_db/data/event_classification_choice/data.yaml +9 -0
  94. endoreg_db/data/finding_classification/colonoscopy_bowel_preparation.yaml +43 -70
  95. endoreg_db/data/finding_classification/colonoscopy_lesion_size.yaml +22 -52
  96. endoreg_db/data/finding_classification/colonoscopy_location.yaml +31 -62
  97. endoreg_db/data/finding_classification/histology_colo.yaml +28 -36
  98. endoreg_db/data/requirement/colon_polyp_intervention.yaml +49 -0
  99. endoreg_db/data/requirement/coloreg_colon_polyp.yaml +49 -0
  100. endoreg_db/data/requirement_set/01_endoscopy_generic.yaml +31 -12
  101. endoreg_db/data/requirement_set/01_laboratory.yaml +13 -0
  102. endoreg_db/data/requirement_set/02_endoscopy_bleeding_risk.yaml +46 -0
  103. endoreg_db/data/requirement_set/90_coloreg.yaml +178 -0
  104. endoreg_db/data/requirement_set/_old_ +109 -0
  105. endoreg_db/data/requirement_set_type/data.yaml +21 -0
  106. endoreg_db/data/setup_config.yaml +4 -4
  107. endoreg_db/data/tag/requirement_set_tags.yaml +21 -0
  108. endoreg_db/exceptions.py +5 -2
  109. endoreg_db/helpers/data_loader.py +1 -1
  110. endoreg_db/management/commands/create_model_meta_from_huggingface.py +21 -10
  111. endoreg_db/management/commands/create_multilabel_model_meta.py +299 -129
  112. endoreg_db/management/commands/import_video.py +9 -10
  113. endoreg_db/management/commands/import_video_with_classification.py +1 -1
  114. endoreg_db/management/commands/init_default_ai_model.py +1 -1
  115. endoreg_db/management/commands/list_routes.py +18 -0
  116. endoreg_db/management/commands/load_ai_model_data.py +2 -1
  117. endoreg_db/management/commands/load_center_data.py +12 -12
  118. endoreg_db/management/commands/load_requirement_data.py +60 -31
  119. endoreg_db/management/commands/load_requirement_set_tags.py +95 -0
  120. endoreg_db/management/commands/setup_endoreg_db.py +14 -10
  121. endoreg_db/management/commands/storage_management.py +271 -203
  122. endoreg_db/migrations/0001_initial.py +1799 -1300
  123. endoreg_db/migrations/0002_requirementset_depends_on.py +18 -0
  124. endoreg_db/migrations/_old/0001_initial.py +1857 -0
  125. endoreg_db/migrations/_old/0004_employee_city_employee_post_code_employee_street_and_more.py +68 -0
  126. endoreg_db/migrations/_old/0004_remove_casetemplate_rules_and_more.py +77 -0
  127. endoreg_db/migrations/_old/0005_merge_20251111_1003.py +14 -0
  128. endoreg_db/migrations/_old/0006_sensitivemeta_anonymized_text_and_more.py +68 -0
  129. endoreg_db/migrations/_old/0007_remove_rule_attribute_dtype_remove_rule_rule_type_and_more.py +89 -0
  130. endoreg_db/migrations/_old/0008_remove_event_event_classification_and_more.py +27 -0
  131. endoreg_db/migrations/_old/0009_alter_modelmeta_options_and_more.py +21 -0
  132. endoreg_db/models/__init__.py +78 -123
  133. endoreg_db/models/administration/__init__.py +21 -42
  134. endoreg_db/models/administration/ai/active_model.py +2 -2
  135. endoreg_db/models/administration/ai/ai_model.py +7 -6
  136. endoreg_db/models/administration/case/__init__.py +1 -15
  137. endoreg_db/models/administration/case/case.py +3 -3
  138. endoreg_db/models/administration/case/case_template/__init__.py +2 -14
  139. endoreg_db/models/administration/case/case_template/case_template.py +2 -124
  140. endoreg_db/models/administration/case/case_template/case_template_rule.py +2 -268
  141. endoreg_db/models/administration/case/case_template/case_template_rule_value.py +2 -85
  142. endoreg_db/models/administration/case/case_template/case_template_type.py +2 -25
  143. endoreg_db/models/administration/center/center.py +33 -19
  144. endoreg_db/models/administration/center/center_product.py +12 -9
  145. endoreg_db/models/administration/center/center_resource.py +25 -19
  146. endoreg_db/models/administration/center/center_shift.py +21 -17
  147. endoreg_db/models/administration/center/center_waste.py +16 -8
  148. endoreg_db/models/administration/person/__init__.py +2 -0
  149. endoreg_db/models/administration/person/employee/employee.py +10 -5
  150. endoreg_db/models/administration/person/employee/employee_qualification.py +9 -4
  151. endoreg_db/models/administration/person/employee/employee_type.py +12 -6
  152. endoreg_db/models/administration/person/examiner/examiner.py +13 -11
  153. endoreg_db/models/administration/person/patient/__init__.py +2 -0
  154. endoreg_db/models/administration/person/patient/patient.py +103 -100
  155. endoreg_db/models/administration/person/patient/patient_external_id.py +37 -0
  156. endoreg_db/models/administration/person/person.py +4 -0
  157. endoreg_db/models/administration/person/profession/__init__.py +8 -4
  158. endoreg_db/models/administration/person/user/portal_user_information.py +11 -7
  159. endoreg_db/models/administration/product/product.py +20 -15
  160. endoreg_db/models/administration/product/product_material.py +17 -18
  161. endoreg_db/models/administration/product/product_weight.py +12 -8
  162. endoreg_db/models/administration/product/reference_product.py +23 -55
  163. endoreg_db/models/administration/qualification/qualification.py +7 -3
  164. endoreg_db/models/administration/qualification/qualification_type.py +7 -3
  165. endoreg_db/models/administration/shift/scheduled_days.py +8 -5
  166. endoreg_db/models/administration/shift/shift.py +16 -12
  167. endoreg_db/models/administration/shift/shift_type.py +23 -31
  168. endoreg_db/models/label/__init__.py +7 -8
  169. endoreg_db/models/label/annotation/image_classification.py +10 -9
  170. endoreg_db/models/label/annotation/video_segmentation_annotation.py +8 -5
  171. endoreg_db/models/label/label.py +15 -15
  172. endoreg_db/models/label/label_set.py +19 -6
  173. endoreg_db/models/label/label_type.py +1 -1
  174. endoreg_db/models/label/label_video_segment/_create_from_video.py +5 -8
  175. endoreg_db/models/label/label_video_segment/label_video_segment.py +76 -102
  176. endoreg_db/models/label/video_segmentation_label.py +4 -0
  177. endoreg_db/models/label/video_segmentation_labelset.py +4 -3
  178. endoreg_db/models/media/frame/frame.py +22 -22
  179. endoreg_db/models/media/pdf/raw_pdf.py +249 -177
  180. endoreg_db/models/media/pdf/report_file.py +25 -29
  181. endoreg_db/models/media/pdf/report_reader/report_reader_config.py +30 -46
  182. endoreg_db/models/media/pdf/report_reader/report_reader_flag.py +23 -7
  183. endoreg_db/models/media/video/__init__.py +1 -0
  184. endoreg_db/models/media/video/create_from_file.py +48 -56
  185. endoreg_db/models/media/video/pipe_1.py +30 -33
  186. endoreg_db/models/media/video/pipe_2.py +8 -9
  187. endoreg_db/models/media/video/video_file.py +359 -204
  188. endoreg_db/models/media/video/video_file_ai.py +288 -74
  189. endoreg_db/models/media/video/video_file_anonymize.py +38 -38
  190. endoreg_db/models/media/video/video_file_frames/__init__.py +3 -1
  191. endoreg_db/models/media/video/video_file_frames/_bulk_create_frames.py +6 -8
  192. endoreg_db/models/media/video/video_file_frames/_create_frame_object.py +7 -9
  193. endoreg_db/models/media/video/video_file_frames/_delete_frames.py +9 -8
  194. endoreg_db/models/media/video/video_file_frames/_extract_frames.py +38 -45
  195. endoreg_db/models/media/video/video_file_frames/_get_frame.py +6 -8
  196. endoreg_db/models/media/video/video_file_frames/_get_frame_number.py +4 -18
  197. endoreg_db/models/media/video/video_file_frames/_get_frame_path.py +4 -3
  198. endoreg_db/models/media/video/video_file_frames/_get_frame_paths.py +7 -6
  199. endoreg_db/models/media/video/video_file_frames/_get_frame_range.py +6 -8
  200. endoreg_db/models/media/video/video_file_frames/_get_frames.py +6 -8
  201. endoreg_db/models/media/video/video_file_frames/_initialize_frames.py +15 -25
  202. endoreg_db/models/media/video/video_file_frames/_manage_frame_range.py +26 -23
  203. endoreg_db/models/media/video/video_file_frames/_mark_frames_extracted_status.py +23 -14
  204. endoreg_db/models/media/video/video_file_io.py +109 -62
  205. endoreg_db/models/media/video/video_file_meta/get_crop_template.py +3 -3
  206. endoreg_db/models/media/video/video_file_meta/get_endo_roi.py +5 -3
  207. endoreg_db/models/media/video/video_file_meta/get_fps.py +37 -34
  208. endoreg_db/models/media/video/video_file_meta/initialize_video_specs.py +19 -25
  209. endoreg_db/models/media/video/video_file_meta/text_meta.py +41 -38
  210. endoreg_db/models/media/video/video_file_meta/video_meta.py +14 -7
  211. endoreg_db/models/media/video/video_file_segments.py +24 -17
  212. endoreg_db/models/media/video/video_metadata.py +19 -35
  213. endoreg_db/models/media/video/video_processing.py +96 -95
  214. endoreg_db/models/medical/contraindication/__init__.py +13 -3
  215. endoreg_db/models/medical/disease.py +22 -16
  216. endoreg_db/models/medical/event.py +31 -18
  217. endoreg_db/models/medical/examination/__init__.py +13 -6
  218. endoreg_db/models/medical/examination/examination.py +17 -18
  219. endoreg_db/models/medical/examination/examination_indication.py +26 -25
  220. endoreg_db/models/medical/examination/examination_time.py +16 -6
  221. endoreg_db/models/medical/examination/examination_time_type.py +9 -6
  222. endoreg_db/models/medical/examination/examination_type.py +3 -4
  223. endoreg_db/models/medical/finding/finding.py +38 -39
  224. endoreg_db/models/medical/finding/finding_classification.py +37 -48
  225. endoreg_db/models/medical/finding/finding_intervention.py +27 -22
  226. endoreg_db/models/medical/finding/finding_type.py +13 -12
  227. endoreg_db/models/medical/hardware/endoscope.py +20 -26
  228. endoreg_db/models/medical/hardware/endoscopy_processor.py +2 -2
  229. endoreg_db/models/medical/laboratory/lab_value.py +62 -91
  230. endoreg_db/models/medical/medication/medication.py +22 -10
  231. endoreg_db/models/medical/medication/medication_indication.py +29 -3
  232. endoreg_db/models/medical/medication/medication_indication_type.py +25 -14
  233. endoreg_db/models/medical/medication/medication_intake_time.py +31 -19
  234. endoreg_db/models/medical/medication/medication_schedule.py +27 -16
  235. endoreg_db/models/medical/organ/__init__.py +15 -12
  236. endoreg_db/models/medical/patient/medication_examples.py +1 -5
  237. endoreg_db/models/medical/patient/patient_disease.py +20 -23
  238. endoreg_db/models/medical/patient/patient_event.py +19 -22
  239. endoreg_db/models/medical/patient/patient_examination.py +48 -54
  240. endoreg_db/models/medical/patient/patient_examination_indication.py +16 -14
  241. endoreg_db/models/medical/patient/patient_finding.py +122 -139
  242. endoreg_db/models/medical/patient/patient_finding_classification.py +44 -49
  243. endoreg_db/models/medical/patient/patient_finding_intervention.py +8 -19
  244. endoreg_db/models/medical/patient/patient_lab_sample.py +28 -23
  245. endoreg_db/models/medical/patient/patient_lab_value.py +82 -89
  246. endoreg_db/models/medical/patient/patient_medication.py +27 -38
  247. endoreg_db/models/medical/patient/patient_medication_schedule.py +28 -36
  248. endoreg_db/models/medical/risk/risk.py +7 -6
  249. endoreg_db/models/medical/risk/risk_type.py +8 -5
  250. endoreg_db/models/metadata/model_meta.py +60 -29
  251. endoreg_db/models/metadata/model_meta_logic.py +139 -18
  252. endoreg_db/models/metadata/pdf_meta.py +19 -24
  253. endoreg_db/models/metadata/sensitive_meta.py +102 -85
  254. endoreg_db/models/metadata/sensitive_meta_logic.py +383 -43
  255. endoreg_db/models/metadata/video_meta.py +51 -31
  256. endoreg_db/models/metadata/video_prediction_logic.py +16 -23
  257. endoreg_db/models/metadata/video_prediction_meta.py +29 -33
  258. endoreg_db/models/other/distribution/date_value_distribution.py +89 -29
  259. endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +21 -5
  260. endoreg_db/models/other/distribution/numeric_value_distribution.py +114 -53
  261. endoreg_db/models/other/distribution/single_categorical_value_distribution.py +4 -3
  262. endoreg_db/models/other/emission/emission_factor.py +18 -8
  263. endoreg_db/models/other/gender.py +10 -5
  264. endoreg_db/models/other/information_source.py +25 -25
  265. endoreg_db/models/other/material.py +9 -5
  266. endoreg_db/models/other/resource.py +6 -4
  267. endoreg_db/models/other/tag.py +10 -5
  268. endoreg_db/models/other/transport_route.py +13 -8
  269. endoreg_db/models/other/unit.py +10 -6
  270. endoreg_db/models/other/waste.py +6 -5
  271. endoreg_db/models/requirement/requirement.py +580 -272
  272. endoreg_db/models/requirement/requirement_error.py +85 -0
  273. endoreg_db/models/requirement/requirement_evaluation/evaluate_with_dependencies.py +268 -0
  274. endoreg_db/models/requirement/requirement_evaluation/operator_evaluation_models.py +3 -6
  275. endoreg_db/models/requirement/requirement_evaluation/requirement_type_parser.py +90 -64
  276. endoreg_db/models/requirement/requirement_operator.py +36 -33
  277. endoreg_db/models/requirement/requirement_set.py +74 -57
  278. endoreg_db/models/state/__init__.py +4 -4
  279. endoreg_db/models/state/abstract.py +2 -2
  280. endoreg_db/models/state/anonymization.py +12 -0
  281. endoreg_db/models/state/audit_ledger.py +46 -47
  282. endoreg_db/models/state/label_video_segment.py +9 -0
  283. endoreg_db/models/state/raw_pdf.py +40 -46
  284. endoreg_db/models/state/sensitive_meta.py +6 -2
  285. endoreg_db/models/state/video.py +58 -53
  286. endoreg_db/models/upload_job.py +32 -55
  287. endoreg_db/models/utils.py +1 -2
  288. endoreg_db/root_urls.py +21 -2
  289. endoreg_db/serializers/__init__.py +26 -57
  290. endoreg_db/serializers/anonymization.py +18 -10
  291. endoreg_db/serializers/meta/report_meta.py +1 -1
  292. endoreg_db/serializers/meta/sensitive_meta_detail.py +63 -118
  293. endoreg_db/serializers/misc/__init__.py +1 -1
  294. endoreg_db/serializers/misc/file_overview.py +33 -91
  295. endoreg_db/serializers/misc/{vop_patient_data.py → sensitive_patient_data.py} +1 -1
  296. endoreg_db/serializers/requirements/requirement_sets.py +92 -22
  297. endoreg_db/serializers/video/segmentation.py +2 -1
  298. endoreg_db/serializers/video/video_processing_history.py +20 -5
  299. endoreg_db/serializers/video_examination.py +198 -0
  300. endoreg_db/services/anonymization.py +75 -73
  301. endoreg_db/services/lookup_service.py +256 -73
  302. endoreg_db/services/lookup_store.py +174 -30
  303. endoreg_db/services/pdf_import.py +711 -310
  304. endoreg_db/services/storage_aware_video_processor.py +140 -114
  305. endoreg_db/services/video_import.py +266 -117
  306. endoreg_db/urls/__init__.py +27 -27
  307. endoreg_db/urls/label_video_segments.py +2 -0
  308. endoreg_db/urls/media.py +108 -66
  309. endoreg_db/urls/root_urls.py +29 -0
  310. endoreg_db/utils/__init__.py +15 -5
  311. endoreg_db/utils/ai/multilabel_classification_net.py +116 -20
  312. endoreg_db/utils/case_generator/__init__.py +3 -0
  313. endoreg_db/utils/dataloader.py +88 -16
  314. endoreg_db/utils/defaults/set_default_center.py +32 -0
  315. endoreg_db/utils/names.py +22 -16
  316. endoreg_db/utils/permissions.py +2 -1
  317. endoreg_db/utils/pipelines/process_video_dir.py +1 -1
  318. endoreg_db/utils/requirement_operator_logic/model_evaluators.py +414 -127
  319. endoreg_db/utils/setup_config.py +8 -5
  320. endoreg_db/utils/storage.py +115 -0
  321. endoreg_db/utils/validate_endo_roi.py +8 -2
  322. endoreg_db/utils/video/ffmpeg_wrapper.py +184 -188
  323. endoreg_db/views/__init__.py +5 -12
  324. endoreg_db/views/anonymization/media_management.py +198 -163
  325. endoreg_db/views/anonymization/overview.py +4 -1
  326. endoreg_db/views/anonymization/validate.py +174 -40
  327. endoreg_db/views/media/__init__.py +2 -0
  328. endoreg_db/views/media/pdf_media.py +131 -150
  329. endoreg_db/views/media/sensitive_metadata.py +46 -6
  330. endoreg_db/views/media/video_media.py +89 -82
  331. endoreg_db/views/media/video_segments.py +187 -260
  332. endoreg_db/views/meta/sensitive_meta_detail.py +0 -63
  333. endoreg_db/views/patient/patient.py +5 -4
  334. endoreg_db/views/pdf/__init__.py +5 -8
  335. endoreg_db/views/pdf/pdf_stream.py +186 -0
  336. endoreg_db/views/pdf/pdf_stream_views.py +0 -127
  337. endoreg_db/views/pdf/reimport.py +86 -91
  338. endoreg_db/views/requirement/evaluate.py +188 -187
  339. endoreg_db/views/requirement/lookup.py +186 -288
  340. endoreg_db/views/requirement/requirement_utils.py +89 -0
  341. endoreg_db/views/video/__init__.py +0 -4
  342. endoreg_db/views/video/correction.py +2 -2
  343. endoreg_db/views/video/video_examination_viewset.py +202 -289
  344. {endoreg_db-0.8.4.4.dist-info → endoreg_db-0.8.8.0.dist-info}/METADATA +7 -3
  345. {endoreg_db-0.8.4.4.dist-info → endoreg_db-0.8.8.0.dist-info}/RECORD +350 -255
  346. endoreg_db/models/administration/permissions/__init__.py +0 -44
  347. endoreg_db/models/media/video/refactor_plan.md +0 -0
  348. endoreg_db/models/media/video/video_file_frames.py +0 -0
  349. endoreg_db/models/metadata/frame_ocr_result.py +0 -0
  350. endoreg_db/models/rule/__init__.py +0 -13
  351. endoreg_db/models/rule/rule.py +0 -27
  352. endoreg_db/models/rule/rule_applicator.py +0 -224
  353. endoreg_db/models/rule/rule_attribute_dtype.py +0 -17
  354. endoreg_db/models/rule/rule_type.py +0 -20
  355. endoreg_db/models/rule/ruleset.py +0 -17
  356. endoreg_db/serializers/video/video_metadata.py +0 -105
  357. endoreg_db/urls/report.py +0 -48
  358. endoreg_db/urls/video.py +0 -61
  359. endoreg_db/utils/case_generator/case_generator.py +0 -159
  360. endoreg_db/utils/case_generator/utils.py +0 -30
  361. endoreg_db/views/pdf/pdf_media.py +0 -239
  362. endoreg_db/views/report/__init__.py +0 -9
  363. endoreg_db/views/report/report_list.py +0 -112
  364. endoreg_db/views/report/report_with_secure_url.py +0 -28
  365. endoreg_db/views/report/start_examination.py +0 -7
  366. endoreg_db/views/video/video_media.py +0 -158
  367. endoreg_db/views.py +0 -0
  368. /endoreg_db/data/{requirement_set → _examples/requirement_set}/endoscopy_bleeding_risk.yaml +0 -0
  369. /endoreg_db/migrations/{0002_add_video_correction_models.py → _old/0002_add_video_correction_models.py} +0 -0
  370. /endoreg_db/migrations/{0003_add_center_display_name.py → _old/0003_add_center_display_name.py} +0 -0
  371. {endoreg_db-0.8.4.4.dist-info → endoreg_db-0.8.8.0.dist-info}/WHEEL +0 -0
  372. {endoreg_db-0.8.4.4.dist-info → endoreg_db-0.8.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,96 @@
1
+ - model: endoreg_db.requirement_operator
2
+ fields:
3
+ name: "models_match_all"
4
+ name_de: "Modelle existieren"
5
+ name_en: "Models exist"
6
+ description: "Make sure that all the provided Foreign Key models exist."
7
+
8
+ - model: endoreg_db.requirement_operator
9
+ fields:
10
+ name: "models_match_any"
11
+ name_de: "Mindestens ein Modell existiert"
12
+ name_en: "At least one model exists"
13
+ description: "Make sure that at least one of the provided Foreign Key models exist."
14
+
15
+ - model: endoreg_db.requirement_operator
16
+ fields:
17
+ name: "models_match_none"
18
+ name_de: "Kein Modell existiert"
19
+ name_en: "No model exists"
20
+ description: "Make sure that none of the provided Foreign Key models exist."
21
+
22
+ - model: endoreg_db.requirement_operator
23
+ fields:
24
+ name: "models_match_n"
25
+ name_de: " Exakt n Modelle existieren"
26
+ name_en: "Exactly n models exist"
27
+ description: "Make sure that exactly n of the provided Foreign Key models exist. The number n is defined using the numeric_value_min field."
28
+
29
+ - model: endoreg_db.requirement_operator
30
+ fields:
31
+ name: "models_match_n_or_more"
32
+ name_de: "Mindestens n Modelle existieren"
33
+ name_en: "At least n models exist"
34
+ description: "Make sure that at least n of the provided Foreign Key models exist. The number n is defined using the numeric_value_min field."
35
+
36
+ - model: endoreg_db.requirement_operator
37
+ fields:
38
+ name: "models_match_n_or_less"
39
+ name_de: "Höchstens n Modelle existieren"
40
+ name_en: "At most n models exist"
41
+ description: "Make sure that at most n of the provided Foreign Key models exist. The number n is defined using the numeric_value_min field."
42
+
43
+ - model: endoreg_db.requirement_operator
44
+ fields:
45
+ name: "models_match_count_in_range"
46
+ name_de: "Anzahl der Modelle liegt im angegebenen Bereich"
47
+ name_en: "Number of models is in the given range"
48
+ description: "Make sure that the number of provided Foreign Key models is in the given range. The range is defined using numeric_value_min and numeric_value_max."
49
+
50
+ - model: endoreg_db.requirement_operator
51
+ fields:
52
+ name: "models_match_any_in_timeframe"
53
+ name_de: "Mindestens ein Modell existiert im angegebenen Zeitraum"
54
+ name_en: "At least one model exists in the given timeframe"
55
+ description: "Make sure that at least one of the provided Foreign Key models exist and its associated date falls within the specified timeframe. Timeframe is defined by numeric_value_min, numeric_value_max, and unit on the Requirement."
56
+
57
+ - model: endoreg_db.requirement_operator
58
+ fields:
59
+ name: "models_match_all_in_timeframe"
60
+ name_de: "Modelle existieren im angegebenen Zeitraum"
61
+ name_en: "Models exist in the given timeframe"
62
+ description: "Make sure that all the provided Foreign Key models have a date within the given timeframe. The timeframe is defined using numeric_value_min and numeric_value_max and setting the unit to a fitting one (e.g. week)."
63
+
64
+ - model: endoreg_db.requirement_operator
65
+ fields:
66
+ name: "models_match_none_in_timeframe"
67
+ name_de: "Kein Modell existiert im angegebenen Zeitraum"
68
+ name_en: "No model exists in the given timeframe"
69
+ description: "Make sure that none of the provided Foreign Key models have a date within the given timeframe. The timeframe is defined using numeric_value_min and numeric_value_max and setting the unit to a fitting one (e.g. week)."
70
+
71
+ - model: endoreg_db.requirement_operator
72
+ fields:
73
+ name: "models_match_n_in_timeframe"
74
+ name_de: "Exakt n Modelle existieren im angegebenen Zeitraum"
75
+ name_en: "Exactly n models exist in the given timeframe"
76
+ description: "Make sure that exactly n of the provided Foreign Key models have a date within the given timeframe. The timeframe is defined using numeric_value_min and numeric_value_max and setting the unit to a fitting one (e.g. week). The number n is defined using the numeric_value_min field."
77
+
78
+ - model: endoreg_db.requirement_operator
79
+ fields:
80
+ name: "models_match_n_or_more_in_timeframe"
81
+ name_de: "Mindestens n Modelle existieren im angegebenen Zeitraum"
82
+ name_en: "At least n models exist in the given timeframe"
83
+ description: "Make sure that at least n of the provided Foreign Key models have a date within the given timeframe. The timeframe is defined using numeric_value_min and numeric_value_max and setting the unit to a fitting one (e.g. week). The number n is defined using the numeric_value_min field."
84
+
85
+ - model: endoreg_db.requirement_operator
86
+ fields:
87
+ name: "models_match_n_or_less_in_timeframe"
88
+ name_de: "Höchstens n Modelle existieren im angegebenen Zeitraum"
89
+ name_en: "At most n models exist in the given timeframe"
90
+ description: "Make sure that at most n of the provided Foreign Key models have a date within the given timeframe. The timeframe is defined using numeric_value_min and numeric_value_max and setting the unit to a fitting one (e.g. week). The number n is defined using the numeric_value_min field."
91
+
92
+ - model: endoreg_db.requirement_operator
93
+ fields:
94
+ name: "patient_medication_schedule_matches_template"
95
+ description: "Checks if any PatientMedication in the input PatientMedicationSchedule matches the profile (medication, dose, unit, intake times) of any MedicationSchedule template linked to the requirement."
96
+ evaluation_function_name: "_evaluate_patient_medication_schedule_matches_template"
@@ -0,0 +1,48 @@
1
+ - models: endoreg_db.requirement_set
2
+ fields:
3
+ name: "patient_gender_generic"
4
+ name_de: "Patientengeschlecht (männlich/weiblich)"
5
+ name_en: "Patient gender generic"
6
+ description: "Patient gender (generic)"
7
+ requirement_set_type: "any"
8
+ requirements:
9
+ - patient_gender_is_male
10
+ - patient_gender_is_female
11
+
12
+ - models: endoreg_db.requirement_set
13
+ fields:
14
+ name: "basic_lab_values_normal"
15
+ name_de: "Basis-Labortests (Unauffällig)"
16
+ name_en: "Basic Lab Tests (Normal)"
17
+ description: "Basic lab tests (normal)"
18
+ requirement_set_type: "all"
19
+ requirements:
20
+ - "lab_value_hb_normal"
21
+ - "lab_value_leukocytes_normal"
22
+ - "lab_value_platelets_normal"
23
+ - "lab_value_creatinine_normal"
24
+ - "lab_value_inr_normal"
25
+
26
+ - models: endoreg_db.requirement_set
27
+ fields:
28
+ name: "patient_age_generic"
29
+ name_de: "Patientenalter (18-100 Jahre)"
30
+ name_en: "Patient Age (18-100 years)"
31
+ description: "Patient age between 18 and 100 years"
32
+ requirement_set_type: "all"
33
+ requirements:
34
+ - "patient_age_gte_18"
35
+ - "patient_age_lte_100"
36
+
37
+ # - models: endoreg_db.requirement_set
38
+ - models: endoreg_db.requirement_set
39
+ fields:
40
+ name: "generic_patient"
41
+ requirement_set_type: "all"
42
+ description: "Generic patient requirement set"
43
+ name_de: "Generische Patientenanforderung"
44
+ name_en: "Generic Patient Requirement"
45
+ links_to_sets:
46
+ - "patient_age_generic"
47
+ - "patient_gender_generic"
48
+ - "basic_lab_values_normal"
@@ -0,0 +1,57 @@
1
+
2
+
3
+ - models: endoreg_db.requirement_set
4
+ fields:
5
+ name: "colonoscopy_austria_screening_finding_polyp_required_classifications"
6
+ name_de: "Vorsorge Koloskopie Österreich: Polyp"
7
+ requirement_set_type: "all"
8
+ links_to_sets: []
9
+ requirements:
10
+ - "colon_austria_screening_polyp_size"
11
+ - "colonoscopy_austria_screening_polyp_location"
12
+ - "colonoscopy_austria_screening_polyp_histology"
13
+
14
+ - models: endoreg_db.requirement_set
15
+ fields:
16
+ name: "colonoscopy_austria_screening_examination_complete"
17
+ requirement_set_type: "any"
18
+ requirements:
19
+ - "colonoscopy_austria_screening_examination_cecum_visualized"
20
+ - "colonoscopy_austria_screening_examination_reason_incomplete"
21
+
22
+ - models: endoreg_db.requirement_set
23
+ fields:
24
+ name: "colonoscopy_austria_screening_examination_required_findings"
25
+ links_to_sets:
26
+ - "colonoscopy_austria_screening_examination_complete"
27
+ requirement_set_type: "all"
28
+ requirements:
29
+ - "colonoscopy_austria_screening_bowel_prep"
30
+ - "colonoscopy_austria_screening_sedation"
31
+
32
+ - models: endoreg_db.requirement_set
33
+ fields:
34
+ name: "colonoscopy_austria_screening_required_patient_information"
35
+ name_de: "Vorsorge Koloskopie Österreich: Patienteninformation"
36
+ requirement_set_type: "all"
37
+ links_to_sets:
38
+ - "patient_gender_generic"
39
+ - "patient_age_generic"
40
+
41
+ - models: endoreg_db.requirement_set
42
+ fields:
43
+ name: "colonoscopy_austria_screening_qa"
44
+ name_de: "Vorsorge Koloskopie Österreich QA"
45
+ name_en: "Colonoscopy Austria Screening QA"
46
+ description: "Colonoscopy Austria Screening QA"
47
+ requirement_set_type: "all"
48
+ links_to_sets:
49
+ - "colonoscopy_austria_screening_finding_polyp_required_classifications"
50
+ - "colonoscopy_austria_screening_required_patient_information"
51
+ - "colonoscopy_austria_screening_examination_required_findings"
52
+ tags:
53
+ - "report_mask_requirement_set"
54
+ - "colonoscopy_austria_screening"
55
+ reqset_exam_links:
56
+ - "colonoscopy_austria_req_sets"
57
+ - "colonoscopy_req_sets"
@@ -5,6 +5,7 @@
5
5
  version: "1"
6
6
  model: "image_multilabel_classification_colonoscopy_default"
7
7
  labelset: "multilabel_classification_colonoscopy_default"
8
+ labelset_version: 1
8
9
  activation: "sigmoid"
9
10
  mean: "0.485,0.456,0.406" # ImageNet defaults
10
11
  std: "0.229,0.224,0.225" # ImageNet defaults
@@ -20,8 +21,8 @@
20
21
  setup_config:
21
22
  is_primary_model: true # Mark this as the primary model for setup
22
23
  weight_filenames: # Specific weight file patterns for this model
23
- - "colo_segmentation_RegNetX800MF_6.ckpt"
24
- - "image_multilabel_classification_colonoscopy_default_v1_*.ckpt"
24
+ - "colo_segmentation_RegNetX800MF_6.safetensors"
25
+ - "image_multilabel_classification_colonoscopy_default_v1_*.safetensors"
25
26
  huggingface_fallback: # HF configuration for this model
26
27
  repo_id: "wg-lux/colo_segmentation_RegNetX800MF_base"
27
- filename: "colo_segmentation_RegNetX800MF_base.ckpt"
28
+ filename: "colo_segmentation_RegNetX800MF_base.safetensors"
@@ -0,0 +1,4 @@
1
+ - model: endoreg_db.event_classification
2
+ fields:
3
+ name: "stroke_origin_classification"
4
+ event: "stroke"
@@ -0,0 +1,9 @@
1
+ - model: endoreg_db.event_classification
2
+ fields:
3
+ name: "stroke_origin_ischemic"
4
+ event_classification: "stroke_origin_classification"
5
+
6
+ - model: endoreg_db.event_classification
7
+ fields:
8
+ name: "stroke_origin_hemorrhagic"
9
+ event_classification: "stroke_origin_classification"
@@ -1,95 +1,68 @@
1
1
  - model: endoreg_db.finding_classification
2
2
  fields:
3
3
  name: "bowel_prep_boston"
4
- classification_types: [
5
- "bowel_prep"
6
- ]
4
+ classification_types: ["bowel_prep"]
7
5
  name_de: "Boston Bowel Preparation Scale"
8
6
  name_en: "Boston Bowel Preparation Scale"
9
- examinations: [
10
- "colonoscopy"
11
- ]
12
- findings: [
13
- "bowel_preparation_lc",
14
- "bowel_preparation_tc",
15
- "bowel_preparation_rc",
16
-
17
- ]
18
- choices: [
19
- "bowel_prep_boston_0",
20
- "bowel_prep_boston_1",
21
- "bowel_prep_boston_2",
22
- "bowel_prep_boston_3"
23
- ]
7
+ examinations: ["colonoscopy"]
8
+ findings:
9
+ ["bowel_preparation_lc", "bowel_preparation_tc", "bowel_preparation_rc"]
10
+ choices:
11
+ [
12
+ "bowel_prep_boston_0",
13
+ "bowel_prep_boston_1",
14
+ "bowel_prep_boston_2",
15
+ "bowel_prep_boston_3",
16
+ ]
24
17
 
25
18
  - model: endoreg_db.finding_classification
26
19
  fields:
27
20
  name: "bowel_prep_boston_simplified"
28
- classification_types: [
29
- "bowel_prep"
30
- ]
21
+ classification_types: ["bowel_prep"]
31
22
  name_de: "Boston Bowel Preparation Scale"
32
23
  name_en: "Boston Bowel Preparation Scale"
33
- examinations: [
34
- "colonoscopy"
35
- ]
36
- findings: [
37
- "bowel_preparation_simplified"
38
- ]
39
- choices: [
40
- "bowel_prep_boston_0",
41
- "bowel_prep_boston_1",
42
- "bowel_prep_boston_2",
43
- "bowel_prep_boston_3"
44
- ]
45
-
24
+ examinations: ["colonoscopy"]
25
+ findings: ["bowel_preparation_simplified"]
26
+ choices:
27
+ [
28
+ "bowel_prep_boston_0",
29
+ "bowel_prep_boston_1",
30
+ "bowel_prep_boston_2",
31
+ "bowel_prep_boston_3",
32
+ ]
46
33
 
47
34
  #Aronchick
48
35
  - model: endoreg_db.finding_classification
49
36
  fields:
50
37
  name: "bowel_prep_aronchick"
51
- classification_types: [
52
- "bowel_prep"
53
- ]
38
+ classification_types: ["bowel_prep"]
54
39
  name_de: "Aronchick Bowel Preparation Scale"
55
40
  name_en: "Aronchick Bowel Preparation Scale"
56
- examinations: [
57
- "colonoscopy"
58
- ]
59
- findings: [
60
- "bowel_preparation_lc",
61
- "bowel_preparation_tc",
62
- "bowel_preparation_rc",
63
- ]
64
- choices: [
65
- "bowel_prep_aronchick_0",
66
- "bowel_prep_aronchick_1",
67
- "bowel_prep_aronchick_2",
68
- "bowel_prep_aronchick_3"
69
- ]
41
+ examinations: ["colonoscopy"]
42
+ findings:
43
+ ["bowel_preparation_lc", "bowel_preparation_tc", "bowel_preparation_rc"]
44
+ choices:
45
+ [
46
+ "bowel_prep_aronchick_0",
47
+ "bowel_prep_aronchick_1",
48
+ "bowel_prep_aronchick_2",
49
+ "bowel_prep_aronchick_3",
50
+ ]
70
51
 
71
52
  # Screening Austria
72
- # Choices are "bowel_prep_perfect", "bowel_prep_good",
73
- # "bowel_prep_fair", "bowel_prep_poor", "bowel_prep_poor_in_rc_only"
74
-
75
53
  - model: endoreg_db.finding_classification
76
54
  fields:
77
55
  name: "bowel_prep_screening_austria"
78
- classification_types: [
79
- "bowel_prep"
80
- ]
56
+ classification_types: ["bowel_prep"]
81
57
  name_de: "Darmvorbereitung Screening Österreich"
82
58
  name_en: "Bowel Preparation Screening Austria"
83
- examinations: [
84
- "colonoscopy_austria_screening"
85
- ]
86
- findings: [
87
- "bowel_prep_screening_austria"
88
- ]
89
- choices: [
90
- "bowel_prep_perfect",
91
- "bowel_prep_good",
92
- "bowel_prep_fair",
93
- "bowel_prep_poor",
94
- "bowel_prep_poor_in_rc_only"
95
- ]
59
+ examinations: ["colonoscopy_austria_screening"]
60
+ findings: ["bowel_prep_screening_austria"]
61
+ choices:
62
+ [
63
+ "bowel_prep_perfect",
64
+ "bowel_prep_good",
65
+ "bowel_prep_fair",
66
+ "bowel_prep_poor",
67
+ "bowel_prep_poor_in_rc_only",
68
+ ]
@@ -1,68 +1,38 @@
1
1
  - model: endoreg_db.finding_classification
2
2
  fields:
3
3
  name: "colon_lesion_size_categorical"
4
- classification_types: [
5
- "colon_lesion_size",
6
- "morphology"
7
- ]
4
+ classification_types: ["colon_lesion_size", "morphology"]
8
5
  name_de: "Größenklassifikation Kolonläsion (kategorisch)"
9
6
  name_en: "Colon Lesion Size Classification (categorical)"
10
- examinations: [
11
- "colonoscopy"
12
- ]
13
- findings: [
14
- "colon_polyp",
15
- "tumor",
16
- "erosion",
17
- "ulcer",
18
- "scar"
19
- ]
7
+ examinations: ["colonoscopy"]
8
+ findings: ["colon_polyp", "tumor", "erosion", "ulcer", "scar"]
20
9
  choices: [
21
- "colon_lesion_size_categorical_diminutive",
22
- "colon_lesion_size_categorical_small",
23
- "colon_lesion_size_categorical_medium",
24
- "colon_lesion_size_categorical_large"
25
- ]
10
+ "colon_lesion_size_categorical_diminutive", # 0 - 5 mm
11
+ "colon_lesion_size_categorical_small", # 6 - 9 mm
12
+ "colon_lesion_size_categorical_medium", # 10 - 20 mm
13
+ "colon_lesion_size_categorical_large", # 21+ mm
14
+ ]
26
15
 
27
16
  - model: endoreg_db.finding_classification
28
17
  fields:
29
18
  name: "colon_lesion_size_mm"
30
- classification_types: [
31
- "colon_lesion_size",
32
- "morphology"
33
- ]
19
+ classification_types: ["colon_lesion_size", "morphology"]
34
20
  name_de: "Größenklassifikation Kolonläsion (numerisch)"
35
21
  name_en: "Colon Lesion Size Classification (numerical)"
36
- examinations: [
37
- "colonoscopy"
38
- ]
39
- findings: [
40
- "colon_polyp",
41
- "tumor",
42
- "erosion",
43
- "ulcer",
44
- "scar"
45
- ]
46
- choices: [
47
- "colon_lesion_size_oval_mm"
48
- ]
22
+ examinations: ["colonoscopy"]
23
+ findings: ["colon_polyp", "tumor", "erosion", "ulcer", "scar"]
24
+ choices: ["colon_lesion_size_oval_mm"]
49
25
 
50
26
  - model: endoreg_db.finding_classification
51
27
  fields:
52
28
  name: "colon_lesion_size_austria_categorical"
53
- classification_types: [
54
- "colon_lesion_size",
55
- "morphology"
56
- ]
57
- examinations: [
58
- "colonoscopy_austria_screening"
59
- ]
60
- findings: [
61
- "colon_polyp",
62
- ]
63
- choices: [
64
- "colon_lesion_size_austria_categorical_0_5",
65
- "colon_lesion_size_austria_categorical_6_9",
66
- "colon_lesion_size_austria_categorical_10_20",
67
- "colon_lesion_size_austria_categorical_21_x"
68
- ]
29
+ classification_types: ["colon_lesion_size", "morphology"]
30
+ examinations: ["colonoscopy_austria_screening"]
31
+ findings: ["colon_polyp"]
32
+ choices:
33
+ [
34
+ "colon_lesion_size_austria_categorical_0_5",
35
+ "colon_lesion_size_austria_categorical_6_9",
36
+ "colon_lesion_size_austria_categorical_10_20",
37
+ "colon_lesion_size_austria_categorical_21_x",
38
+ ]
@@ -3,78 +3,47 @@
3
3
  name: "colonoscopy_location_default"
4
4
  name_de: "Koloskopie Standard"
5
5
  name_en: "Colonoscopy Default"
6
- classification_types: [
7
- "location",
8
- ]
9
- examinations: [
10
- "colonoscopy"
11
- ]
12
- finding_types: [
13
- "macroscopic"
14
- ]
15
- findings: [
16
- "colon_polyp",
17
- "tumor",
18
- "erosion",
19
- "ulcer",
20
- "scar"
21
- ]
22
- choices: [
23
- "terminal_ileum",
24
- "cecum",
25
- "ascending_colon",
26
- "right_flexure",
27
- "transverse_colon",
28
- "descending_colon",
29
- "sigmoid_colon",
30
- "rectum",
31
- "anal_canal"
32
- ]
6
+ classification_types: ["location"]
7
+ examinations: ["colonoscopy"]
8
+ finding_types: ["macroscopic"]
9
+ findings: ["colon_polyp", "tumor", "erosion", "ulcer", "scar"]
10
+ choices:
11
+ [
12
+ "terminal_ileum",
13
+ "cecum",
14
+ "ascending_colon",
15
+ "right_flexure",
16
+ "transverse_colon",
17
+ "left_flexure",
18
+ "descending_colon",
19
+ "sigmoid_colon",
20
+ "rectum",
21
+ "anal_canal",
22
+ ]
33
23
 
34
24
  - model: endoreg_db.finding_classification
35
25
  fields:
36
26
  name: "colonoscopy_location_coarse"
37
27
  name_de: "Koloskopie Grob"
38
28
  name_en: "Colonoscopy Coarse"
39
- classification_types: [
40
- "location",
41
- ]
42
- examinations: [
43
- "colonoscopy"
44
- ]
45
- finding_types: [
46
- "macroscopic"
47
- ]
29
+ classification_types: ["location"]
30
+ examinations: ["colonoscopy"]
31
+ finding_types: ["macroscopic"]
48
32
  findings: [
49
- "colon_polyp",
50
- # "tumor",
51
- # "erosion",
52
- # "ulcer",
53
- # "scar"
54
- ]
55
- choices: [
56
- "left_colon",
57
- "right_colon",
58
- "rectum"
59
- ]
33
+ "colon_polyp",
34
+ # "tumor",
35
+ # "erosion",
36
+ # "ulcer",
37
+ # "scar"
38
+ ]
39
+ choices: ["left_colon", "right_colon", "rectum"]
60
40
 
61
41
  - model: endoreg_db.finding_classification
62
42
  fields:
63
43
  name: "colonoscopy_austria_screening_location"
64
44
  name_de: "Koloskopie Österreich Screening Lokalisation"
65
45
  name_en: "Colonoscopy Austria Screening Location"
66
- classification_types: [
67
- "location",
68
- ]
69
- examinations: [
70
- "colonoscopy_austria_screening"
71
- ]
72
- findings: [
73
- "colon_polyp",
74
- ]
75
- choices: [
76
- "left_colon",
77
- "right_colon",
78
- "sigmoid_colon",
79
- "rectum",
80
- ]
46
+ classification_types: ["location"]
47
+ examinations: ["colonoscopy_austria_screening"]
48
+ findings: ["colon_polyp"]
49
+ choices: ["left_colon", "right_colon", "sigmoid_colon", "rectum"]
@@ -2,50 +2,42 @@
2
2
  fields:
3
3
  name: "colonoscopy_polyp_histology"
4
4
  classification_types: []
5
- examinations: [
6
- "colonoscopy",
7
- "colonoscopy_austria_screening",
8
- ]
9
- findings: [
10
- "colon_polyp",
11
- ]
5
+ examinations: ["colonoscopy", "colonoscopy_austria_screening"]
6
+ findings: ["colon_polyp"]
12
7
  choices: [
13
- "histology_polyp_hyperplastic",
14
- "histology_polyp_adenoma_tubular",
15
- "histology_polyp_adenoma_tubulovillous",
16
- "histology_polyp_adenoma_villous",
17
- "histology_polyp_sessile_serrated_lesion"
18
- ]
8
+ "histology_polyp_hyperplastic",
9
+ "histology_polyp_adenoma_tubular",
10
+ "histology_polyp_adenoma_tubulovillous",
11
+ "histology_polyp_adenoma_villous",
12
+ "histology_polyp_sessile_serrated_lesion",
13
+ # unknown?
14
+ ]
19
15
 
20
16
  - model: endoreg_db.finding_classification_choice
21
17
  fields:
22
18
  name: "colonoscopy_polyp_histology_dysplasia"
23
19
  classification_types: []
24
- examinations: [
25
- "colonoscopy",
26
- "colonoscopy_austria_screening",
27
- ]
28
- findings: [
29
- "colon_polyp",
30
- ]
31
- choices: [
32
- "histology_dysplasia_none",
33
- "histology_dysplasia_low_grade",
34
- "histology_dysplasia_high_grade",
35
- ]
20
+ examinations: ["colonoscopy", "colonoscopy_austria_screening"]
21
+ findings: ["colon_polyp"]
22
+ choices:
23
+ [
24
+ "histology_dysplasia_none",
25
+ "histology_dysplasia_low_grade",
26
+ "histology_dysplasia_high_grade",
27
+ ]
36
28
 
37
29
  - model: endoreg_db.finding_classification
38
30
  fields:
39
31
  name: "colonoscopy_histology_dignity"
40
32
  classification_types: []
41
- examinations: [
42
- "colonoscopy",
43
- "colonoscopy_austria_screening",
44
- ]
45
- findings: [
46
- "colon_polyp",
47
- ]
48
- choices: [
49
- "histology_dignity_benign",
50
- "histology_dignity_malign",
51
- ]
33
+ examinations: ["colonoscopy", "colonoscopy_austria_screening"]
34
+ findings: ["colon_polyp"]
35
+ choices: ["histology_dignity_benign", "histology_dignity_malign"]
36
+
37
+ - model: endoreg_db.finding_classification_choice
38
+ fields:
39
+ name: "colonoscopy_default_histology_in_sano"
40
+ classification_types: []
41
+ examinations: ["colonoscopy"]
42
+ findings: ["colon_polyp"]
43
+ choices: ["yes", "no", "na"]