endoreg-db 0.8.9.32__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 (787) hide show
  1. endoreg_db/__init__.py +0 -0
  2. endoreg_db/_version.py +34 -0
  3. endoreg_db/admin.py +97 -0
  4. endoreg_db/api/serializers/finding_descriptions.py +0 -0
  5. endoreg_db/api/views/finding_descriptions.py +0 -0
  6. endoreg_db/api_urls.py +4 -0
  7. endoreg_db/apps.py +17 -0
  8. endoreg_db/assets/dummy_model.ckpt +1 -0
  9. endoreg_db/authz/auth.py +78 -0
  10. endoreg_db/authz/backends.py +168 -0
  11. endoreg_db/authz/management/commands/list_routes.py +20 -0
  12. endoreg_db/authz/middleware.py +84 -0
  13. endoreg_db/authz/permissions.py +138 -0
  14. endoreg_db/authz/policy.py +224 -0
  15. endoreg_db/authz/settings.py +64 -0
  16. endoreg_db/authz/views_auth.py +70 -0
  17. endoreg_db/codemods/readme.md +88 -0
  18. endoreg_db/codemods/rename_datetime_fields.py +99 -0
  19. endoreg_db/config/__init__.py +0 -0
  20. endoreg_db/config/env.py +106 -0
  21. endoreg_db/config/settings/__init__.py +6 -0
  22. endoreg_db/config/settings/base.py +148 -0
  23. endoreg_db/config/settings/case_gen.py +32 -0
  24. endoreg_db/config/settings/dev.py +108 -0
  25. endoreg_db/config/settings/keycloak.py +177 -0
  26. endoreg_db/config/settings/prod.py +66 -0
  27. endoreg_db/config/settings/test.py +72 -0
  28. endoreg_db/data/__init__.py +135 -0
  29. endoreg_db/data/ai_model/data.yaml +7 -0
  30. endoreg_db/data/ai_model_label/label/data.yaml +88 -0
  31. endoreg_db/data/ai_model_label/label/polyp_classification.yaml +52 -0
  32. endoreg_db/data/ai_model_label/label-set/data.yaml +40 -0
  33. endoreg_db/data/ai_model_label/label-set/polyp_classifications.yaml +25 -0
  34. endoreg_db/data/ai_model_label/label-type/data.yaml +7 -0
  35. endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +27 -0
  36. endoreg_db/data/ai_model_type/data.yaml +7 -0
  37. endoreg_db/data/ai_model_video_segmentation_label/base_segmentation.yaml +176 -0
  38. endoreg_db/data/ai_model_video_segmentation_labelset/data.yaml +20 -0
  39. endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +167 -0
  40. endoreg_db/data/case_template/rule/01_patient-set-age.yaml +8 -0
  41. endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +9 -0
  42. endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +23 -0
  43. endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +19 -0
  44. endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +19 -0
  45. endoreg_db/data/case_template/rule/19_create_patient.yaml +17 -0
  46. endoreg_db/data/case_template/rule_type/base_types.yaml +35 -0
  47. endoreg_db/data/case_template/rule_value/.init +0 -0
  48. endoreg_db/data/case_template/rule_value_type/base_types.yaml +59 -0
  49. endoreg_db/data/case_template/template/base.yaml +8 -0
  50. endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +3 -0
  51. endoreg_db/data/case_template/tmp/_rule_value +13 -0
  52. endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +21 -0
  53. endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +10 -0
  54. endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +7 -0
  55. endoreg_db/data/center/data.yaml +99 -0
  56. endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +144 -0
  57. endoreg_db/data/center_shift/ukw.yaml +9 -0
  58. endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +48 -0
  59. endoreg_db/data/contraindication/bleeding.yaml +11 -0
  60. endoreg_db/data/db_summary.csv +58 -0
  61. endoreg_db/data/db_summary.xlsx +0 -0
  62. endoreg_db/data/disease/cardiovascular.yaml +37 -0
  63. endoreg_db/data/disease/hepatology.yaml +5 -0
  64. endoreg_db/data/disease/misc.yaml +5 -0
  65. endoreg_db/data/disease/renal.yaml +5 -0
  66. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +6 -0
  67. endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +6 -0
  68. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +41 -0
  69. endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +20 -0
  70. endoreg_db/data/distribution/date/patient.yaml +7 -0
  71. endoreg_db/data/distribution/multiple_categorical/.init +0 -0
  72. endoreg_db/data/distribution/numeric/data.yaml +14 -0
  73. endoreg_db/data/distribution/single_categorical/patient.yaml +7 -0
  74. endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +132 -0
  75. endoreg_db/data/endoscope/data.yaml +93 -0
  76. endoreg_db/data/endoscope_type/data.yaml +11 -0
  77. endoreg_db/data/endoscopy_processor/data.yaml +50 -0
  78. endoreg_db/data/event/cardiology.yaml +15 -0
  79. endoreg_db/data/event/neurology.yaml +14 -0
  80. endoreg_db/data/event/surgery.yaml +13 -0
  81. endoreg_db/data/event/thrombembolism.yaml +20 -0
  82. endoreg_db/data/event_classification/data.yaml +4 -0
  83. endoreg_db/data/event_classification_choice/data.yaml +9 -0
  84. endoreg_db/data/examination/examinations/data.yaml +172 -0
  85. endoreg_db/data/examination/time/data.yaml +48 -0
  86. endoreg_db/data/examination/time-type/data.yaml +5 -0
  87. endoreg_db/data/examination/type/data.yaml +17 -0
  88. endoreg_db/data/examination_indication/endoscopy.yaml +359 -0
  89. endoreg_db/data/examination_indication_classification/endoscopy.yaml +90 -0
  90. endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +97 -0
  91. endoreg_db/data/examination_requirement_set/colonoscopy.yaml +15 -0
  92. endoreg_db/data/finding/00_generic.yaml +35 -0
  93. endoreg_db/data/finding/00_generic_complication.yaml +9 -0
  94. endoreg_db/data/finding/01_gastroscopy_baseline.yaml +88 -0
  95. endoreg_db/data/finding/01_gastroscopy_observation.yaml +113 -0
  96. endoreg_db/data/finding/02_colonoscopy_baseline.yaml +53 -0
  97. endoreg_db/data/finding/02_colonoscopy_hidden.yaml +119 -0
  98. endoreg_db/data/finding/02_colonoscopy_observation.yaml +152 -0
  99. endoreg_db/data/finding_classification/00_generic.yaml +44 -0
  100. endoreg_db/data/finding_classification/00_generic_histology.yaml +28 -0
  101. endoreg_db/data/finding_classification/00_generic_lesion.yaml +52 -0
  102. endoreg_db/data/finding_classification/02_colonoscopy_baseline.yaml +83 -0
  103. endoreg_db/data/finding_classification/02_colonoscopy_histology.yaml +13 -0
  104. endoreg_db/data/finding_classification/02_colonoscopy_other.yaml +12 -0
  105. endoreg_db/data/finding_classification/02_colonoscopy_polyp.yaml +101 -0
  106. endoreg_db/data/finding_classification_choice/00_generic.yaml +15 -0
  107. endoreg_db/data/finding_classification_choice/00_generic_baseline.yaml +23 -0
  108. endoreg_db/data/finding_classification_choice/00_generic_complication.yaml +15 -0
  109. endoreg_db/data/finding_classification_choice/00_generic_histology.yaml +21 -0
  110. endoreg_db/data/finding_classification_choice/00_generic_lesion.yaml +158 -0
  111. endoreg_db/data/finding_classification_choice/02_colonoscopy_bowel_preparation.yaml +49 -0
  112. endoreg_db/data/finding_classification_choice/02_colonoscopy_generic.yaml +19 -0
  113. endoreg_db/data/finding_classification_choice/02_colonoscopy_histology.yaml +20 -0
  114. endoreg_db/data/finding_classification_choice/02_colonoscopy_location.yaml +248 -0
  115. endoreg_db/data/finding_classification_choice/02_colonoscopy_other.yaml +34 -0
  116. endoreg_db/data/finding_classification_choice/02_colonoscopy_polyp_advanced_imaging.yaml +76 -0
  117. endoreg_db/data/finding_classification_choice/02_colonoscopy_polyp_morphology.yaml +75 -0
  118. endoreg_db/data/finding_classification_choice/02_colonoscopy_size.yaml +27 -0
  119. endoreg_db/data/finding_classification_type/00_generic.yaml +53 -0
  120. endoreg_db/data/finding_classification_type/02_colonoscopy.yaml +9 -0
  121. endoreg_db/data/finding_intervention/00_generic_endoscopy.yaml +59 -0
  122. endoreg_db/data/finding_intervention/00_generic_endoscopy_ablation.yaml +44 -0
  123. endoreg_db/data/finding_intervention/00_generic_endoscopy_bleeding.yaml +55 -0
  124. endoreg_db/data/finding_intervention/00_generic_endoscopy_resection.yaml +85 -0
  125. endoreg_db/data/finding_intervention/00_generic_endoscopy_stenosis.yaml +17 -0
  126. endoreg_db/data/finding_intervention/00_generic_endoscopy_stent.yaml +9 -0
  127. endoreg_db/data/finding_intervention/01_gastroscopy.yaml +19 -0
  128. endoreg_db/data/finding_intervention/04_eus.yaml +39 -0
  129. endoreg_db/data/finding_intervention/05_ercp.yaml +3 -0
  130. endoreg_db/data/finding_intervention_type/endoscopy.yaml +15 -0
  131. endoreg_db/data/finding_type/data.yaml +39 -0
  132. endoreg_db/data/gender/data.yaml +42 -0
  133. endoreg_db/data/information_source/annotation.yaml +6 -0
  134. endoreg_db/data/information_source/data.yaml +30 -0
  135. endoreg_db/data/information_source/endoscopy_guidelines.yaml +7 -0
  136. endoreg_db/data/information_source/medication.yaml +6 -0
  137. endoreg_db/data/information_source/prediction.yaml +7 -0
  138. endoreg_db/data/information_source_type/data.yaml +8 -0
  139. endoreg_db/data/lab_value/cardiac_enzymes.yaml +37 -0
  140. endoreg_db/data/lab_value/coagulation.yaml +54 -0
  141. endoreg_db/data/lab_value/electrolytes.yaml +228 -0
  142. endoreg_db/data/lab_value/gastrointestinal_function.yaml +133 -0
  143. endoreg_db/data/lab_value/hematology.yaml +184 -0
  144. endoreg_db/data/lab_value/hormones.yaml +59 -0
  145. endoreg_db/data/lab_value/lipids.yaml +53 -0
  146. endoreg_db/data/lab_value/misc.yaml +76 -0
  147. endoreg_db/data/lab_value/renal_function.yaml +12 -0
  148. endoreg_db/data/log_type/data.yaml +57 -0
  149. endoreg_db/data/lx_client_tag/base.yaml +54 -0
  150. endoreg_db/data/lx_client_type/base.yaml +30 -0
  151. endoreg_db/data/lx_permission/base.yaml +24 -0
  152. endoreg_db/data/lx_permission/endoreg.yaml +52 -0
  153. endoreg_db/data/material/material.yaml +91 -0
  154. endoreg_db/data/medication/anticoagulation.yaml +65 -0
  155. endoreg_db/data/medication/tah.yaml +70 -0
  156. endoreg_db/data/medication_indication/anticoagulation.yaml +115 -0
  157. endoreg_db/data/medication_indication_type/data.yaml +11 -0
  158. endoreg_db/data/medication_indication_type/thrombembolism.yaml +41 -0
  159. endoreg_db/data/medication_intake_time/base.yaml +31 -0
  160. endoreg_db/data/medication_schedule/apixaban.yaml +95 -0
  161. endoreg_db/data/medication_schedule/ass.yaml +12 -0
  162. endoreg_db/data/medication_schedule/enoxaparin.yaml +26 -0
  163. endoreg_db/data/names_first/first_names.yaml +54 -0
  164. endoreg_db/data/names_last/last_names.yaml +51 -0
  165. endoreg_db/data/network_device/data.yaml +59 -0
  166. endoreg_db/data/network_device_type/data.yaml +12 -0
  167. endoreg_db/data/organ/data.yaml +29 -0
  168. endoreg_db/data/patient_lab_sample_type/generic.yaml +6 -0
  169. endoreg_db/data/pdf_type/data.yaml +46 -0
  170. endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +66 -0
  171. endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +33 -0
  172. endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +308 -0
  173. endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +88 -0
  174. endoreg_db/data/profession/data.yaml +70 -0
  175. endoreg_db/data/qualification/endoscopy.yaml +36 -0
  176. endoreg_db/data/qualification/m2.yaml +39 -0
  177. endoreg_db/data/qualification/outpatient_clinic.yaml +35 -0
  178. endoreg_db/data/qualification/sonography.yaml +36 -0
  179. endoreg_db/data/qualification_type/base.yaml +29 -0
  180. endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +55 -0
  181. endoreg_db/data/report_reader_flag/rkh-histology-generic.yaml +10 -0
  182. endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +30 -0
  183. endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +24 -0
  184. endoreg_db/data/requirement/01_patient_data.yaml +93 -0
  185. endoreg_db/data/requirement/old/colon_polyp_intervention.yaml +49 -0
  186. endoreg_db/data/requirement/old/colonoscopy_baseline_austria.yaml +45 -0
  187. endoreg_db/data/requirement/old/coloreg_colon_polyp.yaml +49 -0
  188. endoreg_db/data/requirement/old/disease_cardiovascular.yaml +79 -0
  189. endoreg_db/data/requirement/old/disease_classification_choice_cardiovascular.yaml +41 -0
  190. endoreg_db/data/requirement/old/disease_hepatology.yaml +12 -0
  191. endoreg_db/data/requirement/old/disease_misc.yaml +12 -0
  192. endoreg_db/data/requirement/old/disease_renal.yaml +96 -0
  193. endoreg_db/data/requirement/old/endoscopy_bleeding_risk.yaml +59 -0
  194. endoreg_db/data/requirement/old/event_cardiology.yaml +251 -0
  195. endoreg_db/data/requirement/old/event_requirements.yaml +145 -0
  196. endoreg_db/data/requirement/old/finding_colon_polyp.yaml +50 -0
  197. endoreg_db/data/requirement/old/gender.yaml +0 -0
  198. endoreg_db/data/requirement/old/lab_value.yaml +441 -0
  199. endoreg_db/data/requirement/old/medication.yaml +93 -0
  200. endoreg_db/data/requirement_operator/_old/age.yaml +13 -0
  201. endoreg_db/data/requirement_operator/_old/lab_operators.yaml +129 -0
  202. endoreg_db/data/requirement_operator/_old/model_operators.yaml +96 -0
  203. endoreg_db/data/requirement_operator/new_operators.yaml +36 -0
  204. endoreg_db/data/requirement_set/01_endoscopy_generic.yaml +65 -0
  205. endoreg_db/data/requirement_set/01_laboratory.yaml +13 -0
  206. endoreg_db/data/requirement_set/02_endoscopy_bleeding_risk.yaml +46 -0
  207. endoreg_db/data/requirement_set/90_coloreg.yaml +190 -0
  208. endoreg_db/data/requirement_set/_old_ +109 -0
  209. endoreg_db/data/requirement_set/colonoscopy_austria_screening.yaml +57 -0
  210. endoreg_db/data/requirement_set_type/data.yaml +41 -0
  211. endoreg_db/data/requirement_type/requirement_types.yaml +165 -0
  212. endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +15 -0
  213. endoreg_db/data/risk/bleeding.yaml +26 -0
  214. endoreg_db/data/risk/thrombosis.yaml +37 -0
  215. endoreg_db/data/risk_type/data.yaml +27 -0
  216. endoreg_db/data/setup_config.yaml +38 -0
  217. endoreg_db/data/shift/endoscopy.yaml +21 -0
  218. endoreg_db/data/shift/m2.yaml +0 -0
  219. endoreg_db/data/shift_type/base.yaml +35 -0
  220. endoreg_db/data/tag/requirement_set_tags.yaml +32 -0
  221. endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
  222. endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
  223. endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +12 -0
  224. endoreg_db/data/unit/concentration.yaml +115 -0
  225. endoreg_db/data/unit/data.yaml +17 -0
  226. endoreg_db/data/unit/length.yaml +31 -0
  227. endoreg_db/data/unit/misc.yaml +20 -0
  228. endoreg_db/data/unit/rate.yaml +6 -0
  229. endoreg_db/data/unit/time.yaml +48 -0
  230. endoreg_db/data/unit/volume.yaml +35 -0
  231. endoreg_db/data/unit/weight.yaml +38 -0
  232. endoreg_db/data/waste/data.yaml +12 -0
  233. endoreg_db/exceptions.py +24 -0
  234. endoreg_db/export/frames/export.py +6 -0
  235. endoreg_db/export/frames/export_frames_with_labels.py +616 -0
  236. endoreg_db/factories/__init__.py +0 -0
  237. endoreg_db/forms/__init__.py +4 -0
  238. endoreg_db/forms/examination_form.py +12 -0
  239. endoreg_db/forms/patient_finding_intervention_form.py +40 -0
  240. endoreg_db/forms/patient_form.py +23 -0
  241. endoreg_db/forms/questionnaires/__init__.py +1 -0
  242. endoreg_db/forms/questionnaires/tto_questionnaire.py +23 -0
  243. endoreg_db/forms/settings/__init__.py +11 -0
  244. endoreg_db/forms/unit.py +7 -0
  245. endoreg_db/helpers/__init__.py +0 -0
  246. endoreg_db/helpers/count_db.py +48 -0
  247. endoreg_db/helpers/data_loader.py +280 -0
  248. endoreg_db/helpers/default_objects.py +414 -0
  249. endoreg_db/helpers/download_segmentation_model.py +32 -0
  250. endoreg_db/helpers/interact.py +1 -0
  251. endoreg_db/helpers/test_video_helper.py +127 -0
  252. endoreg_db/import_files/__init__.py +27 -0
  253. endoreg_db/import_files/context/__init__.py +7 -0
  254. endoreg_db/import_files/context/default_sensitive_meta.py +83 -0
  255. endoreg_db/import_files/context/ensure_center.py +17 -0
  256. endoreg_db/import_files/context/file_lock.py +66 -0
  257. endoreg_db/import_files/context/import_context.py +42 -0
  258. endoreg_db/import_files/context/validate_directories.py +57 -0
  259. endoreg_db/import_files/file_storage/__init__.py +15 -0
  260. endoreg_db/import_files/file_storage/create_report_file.py +99 -0
  261. endoreg_db/import_files/file_storage/create_video_file.py +104 -0
  262. endoreg_db/import_files/file_storage/sensitive_meta_storage.py +42 -0
  263. endoreg_db/import_files/file_storage/state_management.py +463 -0
  264. endoreg_db/import_files/file_storage/storage.py +42 -0
  265. endoreg_db/import_files/import_service.md +26 -0
  266. endoreg_db/import_files/processing/__init__.py +11 -0
  267. endoreg_db/import_files/processing/report_processing/report_anonymization.py +99 -0
  268. endoreg_db/import_files/processing/sensitive_meta_adapter.py +51 -0
  269. endoreg_db/import_files/processing/video_processing/video_anonymization.py +107 -0
  270. endoreg_db/import_files/pseudonymization/__init__.py +0 -0
  271. endoreg_db/import_files/pseudonymization/fake.py +52 -0
  272. endoreg_db/import_files/pseudonymization/k_anonymity.py +181 -0
  273. endoreg_db/import_files/pseudonymization/k_pseudonymity.py +139 -0
  274. endoreg_db/import_files/pseudonymization/pseudonymize.py +0 -0
  275. endoreg_db/import_files/report_import_service.py +147 -0
  276. endoreg_db/import_files/video_import_service.py +154 -0
  277. endoreg_db/logger_conf.py +156 -0
  278. endoreg_db/management/__init__.py +1 -0
  279. endoreg_db/management/commands/__init__.py +1 -0
  280. endoreg_db/management/commands/anonymize_video.py +0 -0
  281. endoreg_db/management/commands/check_auth.py +132 -0
  282. endoreg_db/management/commands/create_model_meta_from_huggingface.py +177 -0
  283. endoreg_db/management/commands/create_multilabel_model_meta.py +419 -0
  284. endoreg_db/management/commands/export_frame_annot.py +196 -0
  285. endoreg_db/management/commands/fix_missing_patient_data.py +206 -0
  286. endoreg_db/management/commands/fix_video_paths.py +186 -0
  287. endoreg_db/management/commands/import_report.py +361 -0
  288. endoreg_db/management/commands/list_routes.py +20 -0
  289. endoreg_db/management/commands/load_ai_model_data.py +83 -0
  290. endoreg_db/management/commands/load_ai_model_label_data.py +60 -0
  291. endoreg_db/management/commands/load_base_db_data.py +63 -0
  292. endoreg_db/management/commands/load_center_data.py +68 -0
  293. endoreg_db/management/commands/load_contraindication_data.py +39 -0
  294. endoreg_db/management/commands/load_disease_classification_choices_data.py +38 -0
  295. endoreg_db/management/commands/load_disease_classification_data.py +38 -0
  296. endoreg_db/management/commands/load_disease_data.py +59 -0
  297. endoreg_db/management/commands/load_distribution_data.py +63 -0
  298. endoreg_db/management/commands/load_endoscope_data.py +58 -0
  299. endoreg_db/management/commands/load_event_data.py +39 -0
  300. endoreg_db/management/commands/load_examination_data.py +78 -0
  301. endoreg_db/management/commands/load_examination_indication_data.py +85 -0
  302. endoreg_db/management/commands/load_finding_data.py +115 -0
  303. endoreg_db/management/commands/load_gender_data.py +37 -0
  304. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +142 -0
  305. endoreg_db/management/commands/load_information_source.py +46 -0
  306. endoreg_db/management/commands/load_lab_value_data.py +52 -0
  307. endoreg_db/management/commands/load_legacy_data.py +303 -0
  308. endoreg_db/management/commands/load_medication_data.py +104 -0
  309. endoreg_db/management/commands/load_name_data.py +36 -0
  310. endoreg_db/management/commands/load_organ_data.py +39 -0
  311. endoreg_db/management/commands/load_pdf_type_data.py +58 -0
  312. endoreg_db/management/commands/load_profession_data.py +40 -0
  313. endoreg_db/management/commands/load_qualification_data.py +56 -0
  314. endoreg_db/management/commands/load_report_reader_flag_data.py +40 -0
  315. endoreg_db/management/commands/load_requirement_data.py +207 -0
  316. endoreg_db/management/commands/load_requirement_set_tags.py +95 -0
  317. endoreg_db/management/commands/load_risk_data.py +57 -0
  318. endoreg_db/management/commands/load_shift_data.py +57 -0
  319. endoreg_db/management/commands/load_tag_data.py +54 -0
  320. endoreg_db/management/commands/load_unit_data.py +40 -0
  321. endoreg_db/management/commands/load_user_groups.py +26 -0
  322. endoreg_db/management/commands/model_input.py +169 -0
  323. endoreg_db/management/commands/register_ai_model.py +70 -0
  324. endoreg_db/management/commands/setup_endoreg_db.py +459 -0
  325. endoreg_db/management/commands/start_filewatcher.py +115 -0
  326. endoreg_db/management/commands/storage_management.py +622 -0
  327. endoreg_db/management/commands/summarize_db_content.py +280 -0
  328. endoreg_db/management/commands/train_image_multilabel_model.py +144 -0
  329. endoreg_db/management/commands/validate_video_files.py +189 -0
  330. endoreg_db/management/commands/video_validation.py +20 -0
  331. endoreg_db/mermaid/Overall_flow_patient_finding_intervention.md +10 -0
  332. endoreg_db/mermaid/anonymized_image_annotation.md +20 -0
  333. endoreg_db/mermaid/binary_classification_annotation.md +50 -0
  334. endoreg_db/mermaid/classification.md +8 -0
  335. endoreg_db/mermaid/examination.md +8 -0
  336. endoreg_db/mermaid/findings.md +7 -0
  337. endoreg_db/mermaid/image_classification.md +28 -0
  338. endoreg_db/mermaid/interventions.md +8 -0
  339. endoreg_db/mermaid/morphology.md +8 -0
  340. endoreg_db/mermaid/patient_creation.md +14 -0
  341. endoreg_db/mermaid/video_segmentation_annotation.md +17 -0
  342. endoreg_db/migrations/0001_initial.py +1953 -0
  343. endoreg_db/migrations/__init__.py +0 -0
  344. endoreg_db/models/__init__.py +322 -0
  345. endoreg_db/models/administration/__init__.py +95 -0
  346. endoreg_db/models/administration/ai/__init__.py +9 -0
  347. endoreg_db/models/administration/ai/active_model.py +35 -0
  348. endoreg_db/models/administration/ai/ai_model.py +180 -0
  349. endoreg_db/models/administration/ai/model_type.py +42 -0
  350. endoreg_db/models/administration/case/__init__.py +5 -0
  351. endoreg_db/models/administration/case/case.py +114 -0
  352. endoreg_db/models/administration/case/case_template/__init__.py +3 -0
  353. endoreg_db/models/administration/case/case_template/case_template.py +3 -0
  354. endoreg_db/models/administration/case/case_template/case_template_rule.py +3 -0
  355. endoreg_db/models/administration/case/case_template/case_template_rule_value.py +3 -0
  356. endoreg_db/models/administration/case/case_template/case_template_type.py +3 -0
  357. endoreg_db/models/administration/center/__init__.py +13 -0
  358. endoreg_db/models/administration/center/center.py +85 -0
  359. endoreg_db/models/administration/center/center_product.py +67 -0
  360. endoreg_db/models/administration/center/center_resource.py +69 -0
  361. endoreg_db/models/administration/center/center_shift.py +94 -0
  362. endoreg_db/models/administration/center/center_waste.py +42 -0
  363. endoreg_db/models/administration/person/__init__.py +26 -0
  364. endoreg_db/models/administration/person/employee/__init__.py +3 -0
  365. endoreg_db/models/administration/person/employee/employee.py +40 -0
  366. endoreg_db/models/administration/person/employee/employee_qualification.py +44 -0
  367. endoreg_db/models/administration/person/employee/employee_type.py +50 -0
  368. endoreg_db/models/administration/person/examiner/__init__.py +4 -0
  369. endoreg_db/models/administration/person/examiner/examiner.py +64 -0
  370. endoreg_db/models/administration/person/names/__init__.py +0 -0
  371. endoreg_db/models/administration/person/names/first_name.py +20 -0
  372. endoreg_db/models/administration/person/names/last_name.py +20 -0
  373. endoreg_db/models/administration/person/patient/__init__.py +7 -0
  374. endoreg_db/models/administration/person/patient/patient.py +488 -0
  375. endoreg_db/models/administration/person/patient/patient_external_id.py +36 -0
  376. endoreg_db/models/administration/person/person.py +35 -0
  377. endoreg_db/models/administration/person/profession/__init__.py +28 -0
  378. endoreg_db/models/administration/person/user/__init__.py +5 -0
  379. endoreg_db/models/administration/person/user/portal_user_information.py +41 -0
  380. endoreg_db/models/administration/product/__init__.py +15 -0
  381. endoreg_db/models/administration/product/product.py +106 -0
  382. endoreg_db/models/administration/product/product_group.py +41 -0
  383. endoreg_db/models/administration/product/product_material.py +60 -0
  384. endoreg_db/models/administration/product/product_weight.py +51 -0
  385. endoreg_db/models/administration/product/reference_product.py +147 -0
  386. endoreg_db/models/administration/qualification/__init__.py +7 -0
  387. endoreg_db/models/administration/qualification/qualification.py +43 -0
  388. endoreg_db/models/administration/qualification/qualification_type.py +39 -0
  389. endoreg_db/models/administration/shift/__init__.py +9 -0
  390. endoreg_db/models/administration/shift/scheduled_days.py +72 -0
  391. endoreg_db/models/administration/shift/shift.py +57 -0
  392. endoreg_db/models/administration/shift/shift_type.py +108 -0
  393. endoreg_db/models/aidataset/__init__.py +5 -0
  394. endoreg_db/models/aidataset/aidataset.py +193 -0
  395. endoreg_db/models/label/__init__.py +23 -0
  396. endoreg_db/models/label/annotation/__init__.py +12 -0
  397. endoreg_db/models/label/annotation/image_classification.py +85 -0
  398. endoreg_db/models/label/annotation/video_segmentation_annotation.py +61 -0
  399. endoreg_db/models/label/label.py +91 -0
  400. endoreg_db/models/label/label_set.py +68 -0
  401. endoreg_db/models/label/label_type.py +29 -0
  402. endoreg_db/models/label/label_video_segment/__init__.py +3 -0
  403. endoreg_db/models/label/label_video_segment/_create_from_video.py +42 -0
  404. endoreg_db/models/label/label_video_segment/label_video_segment.py +611 -0
  405. endoreg_db/models/label/video_segmentation_label.py +35 -0
  406. endoreg_db/models/label/video_segmentation_labelset.py +28 -0
  407. endoreg_db/models/media/__init__.py +23 -0
  408. endoreg_db/models/media/frame/__init__.py +3 -0
  409. endoreg_db/models/media/frame/frame.py +137 -0
  410. endoreg_db/models/media/pdf/__init__.py +12 -0
  411. endoreg_db/models/media/pdf/raw_pdf.py +764 -0
  412. endoreg_db/models/media/pdf/report_file.py +162 -0
  413. endoreg_db/models/media/pdf/report_reader/__init__.py +7 -0
  414. endoreg_db/models/media/pdf/report_reader/report_reader_config.py +85 -0
  415. endoreg_db/models/media/pdf/report_reader/report_reader_flag.py +46 -0
  416. endoreg_db/models/media/video/__init__.py +9 -0
  417. endoreg_db/models/media/video/create_from_file.py +402 -0
  418. endoreg_db/models/media/video/pipe_1.py +258 -0
  419. endoreg_db/models/media/video/pipe_2.py +129 -0
  420. endoreg_db/models/media/video/video_file.py +907 -0
  421. endoreg_db/models/media/video/video_file_ai.py +828 -0
  422. endoreg_db/models/media/video/video_file_anonymize.py +524 -0
  423. endoreg_db/models/media/video/video_file_frames/__init__.py +49 -0
  424. endoreg_db/models/media/video/video_file_frames/_bulk_create_frames.py +25 -0
  425. endoreg_db/models/media/video/video_file_frames/_create_frame_object.py +23 -0
  426. endoreg_db/models/media/video/video_file_frames/_delete_frames.py +126 -0
  427. endoreg_db/models/media/video/video_file_frames/_extract_frames.py +233 -0
  428. endoreg_db/models/media/video/video_file_frames/_get_frame.py +36 -0
  429. endoreg_db/models/media/video/video_file_frames/_get_frame_number.py +13 -0
  430. endoreg_db/models/media/video/video_file_frames/_get_frame_path.py +24 -0
  431. endoreg_db/models/media/video/video_file_frames/_get_frame_paths.py +40 -0
  432. endoreg_db/models/media/video/video_file_frames/_get_frame_range.py +44 -0
  433. endoreg_db/models/media/video/video_file_frames/_get_frames.py +30 -0
  434. endoreg_db/models/media/video/video_file_frames/_initialize_frames.py +205 -0
  435. endoreg_db/models/media/video/video_file_frames/_manage_frame_range.py +228 -0
  436. endoreg_db/models/media/video/video_file_frames/_mark_frames_extracted_status.py +107 -0
  437. endoreg_db/models/media/video/video_file_io.py +272 -0
  438. endoreg_db/models/media/video/video_file_meta/__init__.py +22 -0
  439. endoreg_db/models/media/video/video_file_meta/get_crop_template.py +58 -0
  440. endoreg_db/models/media/video/video_file_meta/get_endo_roi.py +62 -0
  441. endoreg_db/models/media/video/video_file_meta/get_fps.py +183 -0
  442. endoreg_db/models/media/video/video_file_meta/initialize_video_specs.py +198 -0
  443. endoreg_db/models/media/video/video_file_meta/text_meta.py +178 -0
  444. endoreg_db/models/media/video/video_file_meta/video_meta.py +105 -0
  445. endoreg_db/models/media/video/video_file_segments.py +317 -0
  446. endoreg_db/models/media/video/video_metadata.py +67 -0
  447. endoreg_db/models/media/video/video_processing.py +192 -0
  448. endoreg_db/models/medical/__init__.py +136 -0
  449. endoreg_db/models/medical/contraindication/README.md +1 -0
  450. endoreg_db/models/medical/contraindication/__init__.py +29 -0
  451. endoreg_db/models/medical/disease.py +174 -0
  452. endoreg_db/models/medical/event.py +154 -0
  453. endoreg_db/models/medical/examination/__init__.py +20 -0
  454. endoreg_db/models/medical/examination/examination.py +183 -0
  455. endoreg_db/models/medical/examination/examination_indication.py +229 -0
  456. endoreg_db/models/medical/examination/examination_time.py +68 -0
  457. endoreg_db/models/medical/examination/examination_time_type.py +44 -0
  458. endoreg_db/models/medical/examination/examination_type.py +47 -0
  459. endoreg_db/models/medical/finding/__init__.py +20 -0
  460. endoreg_db/models/medical/finding/finding.py +113 -0
  461. endoreg_db/models/medical/finding/finding_classification.py +131 -0
  462. endoreg_db/models/medical/finding/finding_intervention.py +68 -0
  463. endoreg_db/models/medical/finding/finding_type.py +38 -0
  464. endoreg_db/models/medical/hardware/__init__.py +8 -0
  465. endoreg_db/models/medical/hardware/endoscope.py +77 -0
  466. endoreg_db/models/medical/hardware/endoscopy_processor.py +182 -0
  467. endoreg_db/models/medical/laboratory/__init__.py +5 -0
  468. endoreg_db/models/medical/laboratory/lab_value.py +490 -0
  469. endoreg_db/models/medical/medication/__init__.py +23 -0
  470. endoreg_db/models/medical/medication/medication.py +45 -0
  471. endoreg_db/models/medical/medication/medication_indication.py +78 -0
  472. endoreg_db/models/medical/medication/medication_indication_type.py +58 -0
  473. endoreg_db/models/medical/medication/medication_intake_time.py +58 -0
  474. endoreg_db/models/medical/medication/medication_schedule.py +58 -0
  475. endoreg_db/models/medical/organ/__init__.py +38 -0
  476. endoreg_db/models/medical/patient/__init__.py +48 -0
  477. endoreg_db/models/medical/patient/medication_examples.py +56 -0
  478. endoreg_db/models/medical/patient/patient_disease.py +72 -0
  479. endoreg_db/models/medical/patient/patient_event.py +80 -0
  480. endoreg_db/models/medical/patient/patient_examination.py +280 -0
  481. endoreg_db/models/medical/patient/patient_examination_indication.py +57 -0
  482. endoreg_db/models/medical/patient/patient_finding.py +416 -0
  483. endoreg_db/models/medical/patient/patient_finding_classification.py +231 -0
  484. endoreg_db/models/medical/patient/patient_finding_intervention.py +37 -0
  485. endoreg_db/models/medical/patient/patient_lab_sample.py +157 -0
  486. endoreg_db/models/medical/patient/patient_lab_value.py +247 -0
  487. endoreg_db/models/medical/patient/patient_medication.py +111 -0
  488. endoreg_db/models/medical/patient/patient_medication_schedule.py +152 -0
  489. endoreg_db/models/medical/risk/__init__.py +7 -0
  490. endoreg_db/models/medical/risk/risk.py +73 -0
  491. endoreg_db/models/medical/risk/risk_type.py +54 -0
  492. endoreg_db/models/metadata/__init__.py +19 -0
  493. endoreg_db/models/metadata/model_meta.py +266 -0
  494. endoreg_db/models/metadata/model_meta_logic.py +485 -0
  495. endoreg_db/models/metadata/pdf_meta.py +96 -0
  496. endoreg_db/models/metadata/sensitive_meta.py +345 -0
  497. endoreg_db/models/metadata/sensitive_meta_logic.py +1161 -0
  498. endoreg_db/models/metadata/video_meta.py +459 -0
  499. endoreg_db/models/metadata/video_prediction_logic.py +232 -0
  500. endoreg_db/models/metadata/video_prediction_meta.py +319 -0
  501. endoreg_db/models/operation_log.py +63 -0
  502. endoreg_db/models/other/__init__.py +40 -0
  503. endoreg_db/models/other/distribution/__init__.py +46 -0
  504. endoreg_db/models/other/distribution/base_value_distribution.py +22 -0
  505. endoreg_db/models/other/distribution/date_value_distribution.py +163 -0
  506. endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +50 -0
  507. endoreg_db/models/other/distribution/numeric_value_distribution.py +211 -0
  508. endoreg_db/models/other/distribution/single_categorical_value_distribution.py +23 -0
  509. endoreg_db/models/other/emission/__init__.py +5 -0
  510. endoreg_db/models/other/emission/emission_factor.py +110 -0
  511. endoreg_db/models/other/gender.py +32 -0
  512. endoreg_db/models/other/information_source.py +190 -0
  513. endoreg_db/models/other/material.py +34 -0
  514. endoreg_db/models/other/resource.py +24 -0
  515. endoreg_db/models/other/tag.py +32 -0
  516. endoreg_db/models/other/transport_route.py +40 -0
  517. endoreg_db/models/other/unit.py +40 -0
  518. endoreg_db/models/other/waste.py +28 -0
  519. endoreg_db/models/report/__init__.py +0 -0
  520. endoreg_db/models/report/images.py +0 -0
  521. endoreg_db/models/report/report.py +5 -0
  522. endoreg_db/models/requirement/__init__.py +11 -0
  523. endoreg_db/models/requirement/requirement.py +792 -0
  524. endoreg_db/models/requirement/requirement_error.py +84 -0
  525. endoreg_db/models/requirement/requirement_evaluation/__init__.py +6 -0
  526. endoreg_db/models/requirement/requirement_evaluation/evaluate_with_dependencies.py +268 -0
  527. endoreg_db/models/requirement/requirement_evaluation/get_values.py +40 -0
  528. endoreg_db/models/requirement/requirement_evaluation/operator_evaluation_models.py +6 -0
  529. endoreg_db/models/requirement/requirement_evaluation/requirement_type_parser.py +137 -0
  530. endoreg_db/models/requirement/requirement_operator.py +187 -0
  531. endoreg_db/models/requirement/requirement_set.py +327 -0
  532. endoreg_db/models/state/__init__.py +13 -0
  533. endoreg_db/models/state/abstract.py +11 -0
  534. endoreg_db/models/state/anonymization.py +30 -0
  535. endoreg_db/models/state/audit_ledger.py +155 -0
  536. endoreg_db/models/state/label_video_segment.py +31 -0
  537. endoreg_db/models/state/processing_history/__init__.py +3 -0
  538. endoreg_db/models/state/processing_history/processing_history.py +136 -0
  539. endoreg_db/models/state/raw_pdf.py +219 -0
  540. endoreg_db/models/state/sensitive_meta.py +50 -0
  541. endoreg_db/models/state/video.py +251 -0
  542. endoreg_db/models/upload_job.py +100 -0
  543. endoreg_db/models/utils.py +138 -0
  544. endoreg_db/queries/__init__.py +3 -0
  545. endoreg_db/queries/annotations/__init__.py +1 -0
  546. endoreg_db/queries/annotations/legacy.py +169 -0
  547. endoreg_db/queries/sanity/__init_.py +0 -0
  548. endoreg_db/root_urls.py +27 -0
  549. endoreg_db/schemas/__init__.py +0 -0
  550. endoreg_db/schemas/examination_evaluation.py +30 -0
  551. endoreg_db/serializers/Frames_NICE_and_PARIS_classifications.py +861 -0
  552. endoreg_db/serializers/__init__.py +104 -0
  553. endoreg_db/serializers/administration/__init__.py +13 -0
  554. endoreg_db/serializers/administration/ai/__init__.py +9 -0
  555. endoreg_db/serializers/administration/ai/active_model.py +12 -0
  556. endoreg_db/serializers/administration/ai/ai_model.py +20 -0
  557. endoreg_db/serializers/administration/ai/model_type.py +12 -0
  558. endoreg_db/serializers/administration/center.py +14 -0
  559. endoreg_db/serializers/administration/gender.py +11 -0
  560. endoreg_db/serializers/anonymization.py +77 -0
  561. endoreg_db/serializers/evaluation/examination_evaluation.py +0 -0
  562. endoreg_db/serializers/examination/__init__.py +10 -0
  563. endoreg_db/serializers/examination/base.py +45 -0
  564. endoreg_db/serializers/examination/dropdown.py +20 -0
  565. endoreg_db/serializers/examination_serializer.py +9 -0
  566. endoreg_db/serializers/finding/__init__.py +5 -0
  567. endoreg_db/serializers/finding/finding.py +61 -0
  568. endoreg_db/serializers/finding_classification/__init__.py +7 -0
  569. endoreg_db/serializers/finding_classification/choice.py +19 -0
  570. endoreg_db/serializers/finding_classification/classification.py +11 -0
  571. endoreg_db/serializers/label_video_segment/__init__.py +9 -0
  572. endoreg_db/serializers/label_video_segment/image_classification_annotation.py +62 -0
  573. endoreg_db/serializers/label_video_segment/label/__init__.py +6 -0
  574. endoreg_db/serializers/label_video_segment/label/label.py +15 -0
  575. endoreg_db/serializers/label_video_segment/label_video_segment.py +427 -0
  576. endoreg_db/serializers/meta/__init__.py +13 -0
  577. endoreg_db/serializers/meta/sensitive_meta_detail.py +122 -0
  578. endoreg_db/serializers/meta/sensitive_meta_update.py +153 -0
  579. endoreg_db/serializers/meta/sensitive_meta_verification.py +62 -0
  580. endoreg_db/serializers/meta/video_meta.py +39 -0
  581. endoreg_db/serializers/misc/__init__.py +14 -0
  582. endoreg_db/serializers/misc/file_overview.py +72 -0
  583. endoreg_db/serializers/misc/sensitive_patient_data.py +144 -0
  584. endoreg_db/serializers/misc/stats.py +35 -0
  585. endoreg_db/serializers/misc/translatable_field_mix_in.py +44 -0
  586. endoreg_db/serializers/misc/upload_job.py +74 -0
  587. endoreg_db/serializers/patient/__init__.py +12 -0
  588. endoreg_db/serializers/patient/patient.py +103 -0
  589. endoreg_db/serializers/patient/patient_dropdown.py +35 -0
  590. endoreg_db/serializers/patient_examination/__init__.py +7 -0
  591. endoreg_db/serializers/patient_examination/patient_examination.py +168 -0
  592. endoreg_db/serializers/patient_finding/__init__.py +15 -0
  593. endoreg_db/serializers/patient_finding/patient_finding.py +32 -0
  594. endoreg_db/serializers/patient_finding/patient_finding_classification.py +47 -0
  595. endoreg_db/serializers/patient_finding/patient_finding_detail.py +62 -0
  596. endoreg_db/serializers/patient_finding/patient_finding_intervention.py +28 -0
  597. endoreg_db/serializers/patient_finding/patient_finding_list.py +40 -0
  598. endoreg_db/serializers/patient_finding/patient_finding_write.py +135 -0
  599. endoreg_db/serializers/pdf/__init__.py +3 -0
  600. endoreg_db/serializers/pdf/anony_text_validation.py +101 -0
  601. endoreg_db/serializers/requirements/requirement_schema.py +20 -0
  602. endoreg_db/serializers/requirements/requirement_sets.py +99 -0
  603. endoreg_db/serializers/sensitive_meta_serializer.py +301 -0
  604. endoreg_db/serializers/video/__init__.py +7 -0
  605. endoreg_db/serializers/video/video_file.py +283 -0
  606. endoreg_db/serializers/video/video_file_brief.py +14 -0
  607. endoreg_db/serializers/video/video_file_detail.py +96 -0
  608. endoreg_db/serializers/video/video_file_list.py +100 -0
  609. endoreg_db/serializers/video/video_processing_history.py +172 -0
  610. endoreg_db/serializers/video_examination.py +198 -0
  611. endoreg_db/services/__init__.py +5 -0
  612. endoreg_db/services/anonymization.py +274 -0
  613. endoreg_db/services/examination_evaluation.py +172 -0
  614. endoreg_db/services/finding_description_service.py +0 -0
  615. endoreg_db/services/lookup_service.py +424 -0
  616. endoreg_db/services/lookup_store.py +266 -0
  617. endoreg_db/services/model_meta_from_hf.py +76 -0
  618. endoreg_db/services/pdf_import.py +0 -0
  619. endoreg_db/services/polling_coordinator.py +319 -0
  620. endoreg_db/services/pseudonym_service.py +94 -0
  621. endoreg_db/services/report_import.py +13 -0
  622. endoreg_db/services/segment_sync.py +171 -0
  623. endoreg_db/services/video_import.py +9 -0
  624. endoreg_db/templates/admin/patient_finding_intervention.html +253 -0
  625. endoreg_db/templates/admin/start_examination.html +12 -0
  626. endoreg_db/templates/timeline.html +176 -0
  627. endoreg_db/urls/__init__.py +56 -0
  628. endoreg_db/urls/ai.py +14 -0
  629. endoreg_db/urls/anonymization.py +78 -0
  630. endoreg_db/urls/auth.py +16 -0
  631. endoreg_db/urls/classification.py +34 -0
  632. endoreg_db/urls/examination.py +63 -0
  633. endoreg_db/urls/media.py +251 -0
  634. endoreg_db/urls/patient.py +23 -0
  635. endoreg_db/urls/requirements.py +15 -0
  636. endoreg_db/urls/root_urls.py +28 -0
  637. endoreg_db/urls/stats.py +54 -0
  638. endoreg_db/urls/upload.py +12 -0
  639. endoreg_db/urls.py +9 -0
  640. endoreg_db/utils/__init__.py +97 -0
  641. endoreg_db/utils/ai/__init__.py +9 -0
  642. endoreg_db/utils/ai/data_loader_for_model_input.py +262 -0
  643. endoreg_db/utils/ai/data_loader_for_model_training.py +262 -0
  644. endoreg_db/utils/ai/get.py +6 -0
  645. endoreg_db/utils/ai/inference_dataset.py +51 -0
  646. endoreg_db/utils/ai/model_training/config.py +117 -0
  647. endoreg_db/utils/ai/model_training/dataset.py +74 -0
  648. endoreg_db/utils/ai/model_training/losses.py +68 -0
  649. endoreg_db/utils/ai/model_training/metrics.py +78 -0
  650. endoreg_db/utils/ai/model_training/model_backbones.py +155 -0
  651. endoreg_db/utils/ai/model_training/model_gastronet_resnet.py +118 -0
  652. endoreg_db/utils/ai/model_training/trainer_gastronet_multilabel.py +771 -0
  653. endoreg_db/utils/ai/multilabel_classification_net.py +270 -0
  654. endoreg_db/utils/ai/postprocess.py +63 -0
  655. endoreg_db/utils/ai/predict.py +293 -0
  656. endoreg_db/utils/ai/preprocess.py +76 -0
  657. endoreg_db/utils/calc_duration_seconds.py +24 -0
  658. endoreg_db/utils/case_generator/__init__.py +3 -0
  659. endoreg_db/utils/case_generator/lab_sample_factory.py +32 -0
  660. endoreg_db/utils/check_video_files.py +175 -0
  661. endoreg_db/utils/cropping.py +30 -0
  662. endoreg_db/utils/dataloader.py +285 -0
  663. endoreg_db/utils/dates.py +59 -0
  664. endoreg_db/utils/defaults/set_default_center.py +33 -0
  665. endoreg_db/utils/env.py +37 -0
  666. endoreg_db/utils/extract_specific_frames.py +87 -0
  667. endoreg_db/utils/file_operations.py +70 -0
  668. endoreg_db/utils/fix_video_path_direct.py +157 -0
  669. endoreg_db/utils/frame_anonymization_utils.py +463 -0
  670. endoreg_db/utils/hashs.py +138 -0
  671. endoreg_db/utils/links/__init__.py +0 -0
  672. endoreg_db/utils/links/requirement_link.py +237 -0
  673. endoreg_db/utils/mime_types.py +0 -0
  674. endoreg_db/utils/names.py +82 -0
  675. endoreg_db/utils/ocr.py +195 -0
  676. endoreg_db/utils/operation_log.py +87 -0
  677. endoreg_db/utils/parse_and_generate_yaml.py +45 -0
  678. endoreg_db/utils/paths.py +159 -0
  679. endoreg_db/utils/permissions.py +160 -0
  680. endoreg_db/utils/pipelines/Readme.md +235 -0
  681. endoreg_db/utils/pipelines/__init__.py +0 -0
  682. endoreg_db/utils/pipelines/process_video_dir.py +144 -0
  683. endoreg_db/utils/product/__init__.py +0 -0
  684. endoreg_db/utils/product/sum_emissions.py +22 -0
  685. endoreg_db/utils/product/sum_weights.py +20 -0
  686. endoreg_db/utils/pydantic_models/__init__.py +5 -0
  687. endoreg_db/utils/pydantic_models/db_config.py +57 -0
  688. endoreg_db/utils/requirement_helpers.py +0 -0
  689. endoreg_db/utils/requirement_operator_logic/__init__.py +0 -0
  690. endoreg_db/utils/requirement_operator_logic/_old/lab_value_operators.py +678 -0
  691. endoreg_db/utils/requirement_operator_logic/_old/model_evaluators.py +842 -0
  692. endoreg_db/utils/requirement_operator_logic/new_operator_logic.py +114 -0
  693. endoreg_db/utils/setup_config.py +196 -0
  694. endoreg_db/utils/storage.py +117 -0
  695. endoreg_db/utils/translation.py +31 -0
  696. endoreg_db/utils/uuid.py +5 -0
  697. endoreg_db/utils/validate_endo_roi.py +33 -0
  698. endoreg_db/utils/validate_subcategory_dict.py +93 -0
  699. endoreg_db/utils/validate_video_detailed.py +415 -0
  700. endoreg_db/utils/video/__init__.py +30 -0
  701. endoreg_db/utils/video/extract_frames.py +100 -0
  702. endoreg_db/utils/video/ffmpeg_wrapper.py +996 -0
  703. endoreg_db/utils/video/names.py +47 -0
  704. endoreg_db/utils/video/streaming_processor.py +386 -0
  705. endoreg_db/utils/video/video_splitter.py +105 -0
  706. endoreg_db/versioning.md +79 -0
  707. endoreg_db/views/Frames_NICE_and_PARIS_classifications_views.py +247 -0
  708. endoreg_db/views/__init__.py +157 -0
  709. endoreg_db/views/anonymization/__init__.py +31 -0
  710. endoreg_db/views/anonymization/media_management.py +486 -0
  711. endoreg_db/views/anonymization/overview.py +307 -0
  712. endoreg_db/views/anonymization/validate.py +310 -0
  713. endoreg_db/views/auth/__init__.py +13 -0
  714. endoreg_db/views/auth/keycloak.py +146 -0
  715. endoreg_db/views/examination/__init__.py +30 -0
  716. endoreg_db/views/examination/examination.py +37 -0
  717. endoreg_db/views/examination/examination_manifest_cache.py +26 -0
  718. endoreg_db/views/examination/get_finding_classification_choices.py +62 -0
  719. endoreg_db/views/examination/get_finding_classifications.py +38 -0
  720. endoreg_db/views/examination/get_findings.py +39 -0
  721. endoreg_db/views/examination/get_instruments.py +19 -0
  722. endoreg_db/views/examination/get_interventions.py +14 -0
  723. endoreg_db/views/finding/__init__.py +9 -0
  724. endoreg_db/views/finding/finding.py +116 -0
  725. endoreg_db/views/finding/get_classifications.py +14 -0
  726. endoreg_db/views/finding/get_interventions.py +17 -0
  727. endoreg_db/views/finding_classification/__init__.py +13 -0
  728. endoreg_db/views/finding_classification/base.py +0 -0
  729. endoreg_db/views/finding_classification/finding_classification.py +41 -0
  730. endoreg_db/views/finding_classification/get_classification_choices.py +54 -0
  731. endoreg_db/views/media/__init__.py +32 -0
  732. endoreg_db/views/media/pdf_media.py +411 -0
  733. endoreg_db/views/media/sensitive_metadata.py +372 -0
  734. endoreg_db/views/media/video_media.py +275 -0
  735. endoreg_db/views/meta/__init__.py +7 -0
  736. endoreg_db/views/meta/sensitive_meta_list.py +102 -0
  737. endoreg_db/views/meta/sensitive_meta_verification.py +74 -0
  738. endoreg_db/views/misc/__init__.py +29 -0
  739. endoreg_db/views/misc/center.py +14 -0
  740. endoreg_db/views/misc/csrf.py +8 -0
  741. endoreg_db/views/misc/gender.py +15 -0
  742. endoreg_db/views/misc/stats.py +255 -0
  743. endoreg_db/views/misc/upload_views.py +241 -0
  744. endoreg_db/views/patient/__init__.py +3 -0
  745. endoreg_db/views/patient/patient.py +253 -0
  746. endoreg_db/views/patient_examination/__init__.py +11 -0
  747. endoreg_db/views/patient_examination/patient_examination.py +141 -0
  748. endoreg_db/views/patient_examination/patient_examination_create.py +58 -0
  749. endoreg_db/views/patient_examination/patient_examination_detail.py +63 -0
  750. endoreg_db/views/patient_examination/patient_examination_list.py +72 -0
  751. endoreg_db/views/patient_examination/video.py +228 -0
  752. endoreg_db/views/patient_finding/__init__.py +7 -0
  753. endoreg_db/views/patient_finding/base.py +0 -0
  754. endoreg_db/views/patient_finding/patient_finding.py +71 -0
  755. endoreg_db/views/patient_finding/patient_finding_optimized.py +291 -0
  756. endoreg_db/views/patient_finding_classification/__init__.py +5 -0
  757. endoreg_db/views/patient_finding_classification/pfc_create.py +75 -0
  758. endoreg_db/views/report/__init__.py +7 -0
  759. endoreg_db/views/report/reimport.py +177 -0
  760. endoreg_db/views/report/report_stream.py +191 -0
  761. endoreg_db/views/requirement/__init__.py +11 -0
  762. endoreg_db/views/requirement/evaluate.py +278 -0
  763. endoreg_db/views/requirement/lookup.py +380 -0
  764. endoreg_db/views/requirement/lookup_store.py +183 -0
  765. endoreg_db/views/requirement/requirement_utils.py +87 -0
  766. endoreg_db/views/requirement_lookup/lookup.py +0 -0
  767. endoreg_db/views/requirement_lookup/lookup_store.py +0 -0
  768. endoreg_db/views/stats/__init__.py +13 -0
  769. endoreg_db/views/stats/stats_views.py +266 -0
  770. endoreg_db/views/video/__init__.py +49 -0
  771. endoreg_db/views/video/ai/__init__.py +8 -0
  772. endoreg_db/views/video/ai/label.py +159 -0
  773. endoreg_db/views/video/correction.py +529 -0
  774. endoreg_db/views/video/reimport.py +230 -0
  775. endoreg_db/views/video/segments_crud.py +709 -0
  776. endoreg_db/views/video/video_apply_mask.py +49 -0
  777. endoreg_db/views/video/video_correction.py +22 -0
  778. endoreg_db/views/video/video_download_processed.py +58 -0
  779. endoreg_db/views/video/video_examination_viewset.py +242 -0
  780. endoreg_db/views/video/video_metadata.py +101 -0
  781. endoreg_db/views/video/video_processing_history.py +25 -0
  782. endoreg_db/views/video/video_remove_frames.py +49 -0
  783. endoreg_db/views/video/video_stream.py +334 -0
  784. endoreg_db-0.8.9.32.dist-info/METADATA +404 -0
  785. endoreg_db-0.8.9.32.dist-info/RECORD +787 -0
  786. endoreg_db-0.8.9.32.dist-info/WHEEL +4 -0
  787. endoreg_db-0.8.9.32.dist-info/licenses/LICENSE +674 -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,36 @@
1
+ - model: endoreg_db.requirement_operator
2
+ fields:
3
+ name: "model_attribute_numeric_in_range"
4
+ name_de: "Modellattribut numerisch im Bereich"
5
+ name_en: "Model attribute numeric in range"
6
+ description: "
7
+ Checks if a numeric model attribute is within a specified range.
8
+ If this operator is used in a requirement, the requirement
9
+ must define 'target_attributes', 'numeric_value_min', and 'numeric_value_max' fields.
10
+ "
11
+
12
+ - model: endoreg_db.requirement_operator
13
+ fields:
14
+ name: "model_attribute_set_any"
15
+ name_de: "Modellattribut Menge beliebig"
16
+ name_en: "Model attribute set any"
17
+ description: "
18
+ Checks if a model attribute is set to any value (not null or empty).
19
+ If this operator is used in a requirement, the requirement
20
+ must define 'target_attributes' field.
21
+ "
22
+
23
+ - model: endoreg_db.requirement_operator
24
+ fields:
25
+ name: "model_attribute_is_among_values"
26
+ name_de: "Modellattribut ist unter Werten"
27
+ name_en: "Model attribute is among values"
28
+ description: "
29
+ Checks if a model attribute is among a specified set of values.
30
+ If this operator is used in a requirement, the requirement
31
+ must define 'target_attributes'. In this case,
32
+ target must contain a comma-separated list.
33
+ Entries without prefix are target fields to check against,
34
+ entries with prefix '?' define fields of the requirement to use
35
+ as reference during evaluation.
36
+ "
@@ -0,0 +1,65 @@
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: "patient_names_generic"
15
+ name_de: "Patientennamen (Vorname, Nachname)"
16
+ name_en: "Patient names generic"
17
+ description: "Patient names (generic)"
18
+ requirement_set_type: "all"
19
+ requirements:
20
+ - patient_first_name #TODO
21
+ - patient_last_name #TODO
22
+
23
+ - models: endoreg_db.requirement_set
24
+ fields:
25
+ name: "patient_dob_generic"
26
+ name_de: "Patienten-Geburtsdatum"
27
+ name_en: "Patient date of birth generic"
28
+ description: "Patient date of birth (generic)"
29
+ requirement_set_type: "all"
30
+ requirements:
31
+ - patient_date_of_birth_present #TODO
32
+
33
+ - models: endoreg_db.requirement_set
34
+ fields:
35
+ name: "colonoscopy_basic_patient_history"
36
+ name_de: "Koloskopie - Basis Patientenanamnese"
37
+ name_en: "Colonoscopy - Basic Patient History"
38
+ description: "Colonoscopy - Basic Patient History"
39
+ requirement_set_type: "all"
40
+ requirements:
41
+ - "patient_history_last_colonoscopy_known" #TODO
42
+ - "patient_history_previous_bowel_surgery_known" #TODO
43
+
44
+ - models: endoreg_db.requirement_set
45
+ fields:
46
+ name: "patient_age_generic"
47
+ name_de: "Patientenalter (18-100 Jahre)"
48
+ name_en: "Patient Age (18-100 years)"
49
+ description: "Patient age between 18 and 100 years"
50
+ requirement_set_type: "all"
51
+ requirements:
52
+ - "patient_age_gte_18"
53
+ - "patient_age_lte_100"
54
+
55
+ - models: endoreg_db.requirement_set
56
+ fields:
57
+ name: "generic_patient"
58
+ requirement_set_type: "all"
59
+ description: "Generic patient requirement set"
60
+ name_de: "Generische Patientenanforderung"
61
+ name_en: "Generic Patient Requirement"
62
+ links_to_sets:
63
+ - "patient_age_generic"
64
+ - "patient_gender_generic"
65
+ - "basic_lab_values_normal"
@@ -0,0 +1,13 @@
1
+ - models: endoreg_db.requirement_set
2
+ fields:
3
+ name: "basic_lab_values_normal"
4
+ name_de: "Basis-Labortests (Unauffällig)"
5
+ name_en: "Basic Lab Tests (Normal)"
6
+ description: "Basic lab tests (normal)"
7
+ requirement_set_type: "all"
8
+ requirements:
9
+ - "lab_value_hb_normal"
10
+ - "lab_value_leukocytes_normal"
11
+ - "lab_value_platelets_normal"
12
+ - "lab_value_creatinine_normal"
13
+ - "lab_value_inr_normal"
@@ -0,0 +1,46 @@
1
+ - models: endoreg_db.requirement_set
2
+ fields:
3
+ name: "endoscopy_bleeding_risk_high"
4
+ name_de: "Endoskopie - Blutungsrisiko: hoch"
5
+ name_en: "Endoscopy - Bleeding Risk: High"
6
+ description: "Endoskopie - Blutungsrisiko: hoch"
7
+ # linked_sets: [] # if this rule depends on others
8
+ requirement_set_type: "any"
9
+ requirements:
10
+ - "endoscopy_intervention_bleeding_risk_high"
11
+
12
+ - models: endoreg_db.requirement_set
13
+ fields:
14
+ name: "endoscopy_bleeding_risk_low"
15
+ name_de: "Endoskopie - Blutungsrisiko: niedrig"
16
+ name_en: "Endoscopy - Bleeding Risk: Low"
17
+ description: "Endoskopie - Blutungsrisiko: niedrig"
18
+ # linked_sets: [] # if this rule depends on others
19
+ requirement_set_type: "any"
20
+ requirements:
21
+ - "endoscopy_intervention_bleeding_risk_low"
22
+ links_to_sets: []
23
+
24
+ - models: endoreg_db.requirement_set
25
+ fields:
26
+ name: "patient_medication_indication_anticoagulation"
27
+ name_de: "Patientenmedikation - Antikoagulation"
28
+ name_en: "Patient Medication - Anticoagulation"
29
+ description: "Patient medication - anticoagulation"
30
+ requirement_set_type: "any"
31
+ requirements:
32
+ - "indication_non_valvular_af_apixaban_is_defined_in_requirement"
33
+ - "indication_after_hip_apixaban_is_defined_in_requirement"
34
+ - "indication_after_knee_apixaban_is_defined_in_requirement"
35
+
36
+ - models: endoreg_db.requirement_set
37
+ fields:
38
+ name: "high_bleed_risk_endoscopy_w_patient_w_anticoagulation"
39
+ name_de: "Endoskopie - hohes Blutungsrisiko mit generischen Patientenanforderungen"
40
+ name_en: "High Bleed Risk Endoscopy with Generic Patient Requirements"
41
+ description: "High bleed risk endoscopy with generic patient requirements"
42
+ requirement_set_type: "all"
43
+ links_to_sets:
44
+ - "endoscopy_bleeding_risk_high"
45
+ - "generic_patient"
46
+ - "patient_medication_indication_anticoagulation"
@@ -0,0 +1,190 @@
1
+ - models: endoreg_db.requirement_set
2
+ fields:
3
+ name: "coloreg_patient_data"
4
+ name_de: "Coloreg Patientendaten"
5
+ name_en: "Coloreg Patient Data"
6
+ description: "Coloreg Patient Data"
7
+ requirement_set_type: "all"
8
+ requirements:
9
+ - "patient_has_gender_information" # Checks if any gender is set
10
+ # - "patient_has_valid_gender_information" # checks if gender is male or female
11
+ - "patient_has_dob_information" #TODO
12
+ - "patient_has_names_information" #TODO
13
+ links_to_sets:
14
+ - "colonoscopy_basic_patient_history" # includes previous bowel_surgery_known and last_colonoscopy_known
15
+ tags: [] # not tagged as report_mask_requirement_set, only used in top level requirement set
16
+
17
+ - models: endoreg_db.requirement_set
18
+ fields:
19
+ name: "coloreg_examination_data"
20
+ name_de: "Coloreg Untersuchungsdaten"
21
+ name_en: "Coloreg Examination Data"
22
+ description: "Coloreg Examination Data"
23
+ requirement_set_type: "all"
24
+ requirements:
25
+ - "examination_has_indication" #TODO
26
+ - "examination_has_sedation_information" #TODO
27
+ - "examination_bowel_prep_recorded" #TODO
28
+ links_to_sets:
29
+ - "colonoscopy_deepest_insertion_reached_recorded" #TODO # if not cecum or terminal ileum
30
+ tags: []
31
+
32
+ - models: endoreg_db.requirement_set
33
+ fields:
34
+ name: "coloreg_finding_colon_polyp_location_base"
35
+ name_de: "Coloreg Befund Kolon Polyp Lage"
36
+ name_en: "Coloreg Finding Colon Polyp Location"
37
+ description: "Coloreg Finding Colon Polyp Exact Location"
38
+ requirement_set_type: "any"
39
+ requirements:
40
+ - "colon_polyp_has_location" #TODO
41
+
42
+ - models: endoreg_db.requirement_set
43
+ fields:
44
+ name: "coloreg_finding_colon_polyp_rectosigmoid_location"
45
+ name_de: "Coloreg Befund Kolon Polyp Rektosigmoid Lage"
46
+ name_en: "Coloreg Finding Colon Polyp Rectosigmoid Location"
47
+ description: "Coloreg Finding Colon Polyp Rectosigmoid Location"
48
+ requirement_set_type: "all"
49
+ depends_on:
50
+ - "coloreg_finding_colon_polyp_location_base"
51
+ requirements:
52
+ - "coloreg_finding_colon_polyp_rectosigmoid_has_location_cm" #TODO Rektosigmoid muss cm haben
53
+ - "coloreg_finding_colon_polyp_non_rectosigmoid_has_location_cm" #TODO nicht rektosigmoid kann cm haben
54
+ - "coloreg_finding_colon_polyp_non_rectosigmoid_has_location_colon_segment" #TODO nicht rektosigmoid kann Segment haben
55
+
56
+ - models: endoreg_db.requirement_set
57
+ fields:
58
+ name: "coloreg_finding_colon_polyp_size"
59
+ name_de: "Coloreg Befund Kolon Polyp Größe"
60
+ name_en: "Coloreg Finding Colon Polyp Size"
61
+ description: "Coloreg Finding Colon Polyp Size"
62
+ requirement_set_type: "any"
63
+ requirements:
64
+ - "coloreg_finding_colon_polyp_size_measured_in_mm" #TODO
65
+ - "coloreg_finding_colon_polyp_size_categorical" #TODO
66
+
67
+ - models: endoreg_db.requirement_set
68
+ fields:
69
+ name: "coloreg_polyp_small_morphology"
70
+ name_de: "Coloreg Polyp Klein Morphologie"
71
+ name_en: "Coloreg Polyp Small Morphology"
72
+ description: "Coloreg Polyp Small Morphology"
73
+ requirement_set_type: "all"
74
+ requirements:
75
+ - "colon_polyp_size_smaller_10_mm" # any size_cat is <6 or 6 - 9 mm or size_mm is < 10 mm
76
+ - "colonoscopy_default_polyp_morphology_wli" # any (paris / description)
77
+
78
+ - models: endoreg_db.requirement_set
79
+ fields:
80
+ name: "coloreg_polyp_medium_morphology"
81
+ name_de: "Coloreg Polyp Mittel Morphologie"
82
+ name_en: "Coloreg Polyp Medium Morphology"
83
+ description: "Coloreg Polyp Medium Morphology"
84
+ requirement_set_type: "all"
85
+ requirements:
86
+ - "colon_polyp_size_smaller_10_19_mm" # size cat is 10-19 mm or size_mm between 10 and 19 mm
87
+ - "colonoscopy_default_polyp_morphology_wli"
88
+ - "colonoscopy_nbi_polyp_morphology" # (nice)
89
+
90
+ - models: endoreg_db.requirement_set
91
+ fields:
92
+ name: "coloreg_polyp_large_morphology"
93
+ name_de: "Coloreg Polyp Groß Morphologie"
94
+ name_en: "Coloreg Polyp Large Morphology"
95
+ description: "Coloreg Polyp Large Morphology"
96
+ requirement_set_type: "all"
97
+ requirements:
98
+ - "colon_polyp_size_20_mm_or_larger" # size cat is 20+ mm or size_mm >=20 mm
99
+ - "colonoscopy_nbi_polyp_morphology" # (nice)
100
+ - "colonoscopy_large_polyp_morphology" # ( LST )
101
+
102
+ - models: endoreg_db.requirement_set
103
+ fields:
104
+ name: "coloreg_finding_colon_polyp_morphology"
105
+ name_de: "Coloreg Befund Kolon Polyp Morphologie"
106
+ name_en: "Coloreg Finding Colon Polyp Morphology"
107
+ description: "Coloreg Finding Colon Polyp Morphology"
108
+ requirement_set_type: "any"
109
+ depends_on:
110
+ - "coloreg_finding_colon_polyp_size"
111
+ links_to_sets:
112
+ - "coloreg_polyp_small_morphology"
113
+ - "coloreg_polyp_medium_morphology"
114
+ - "coloreg_polyp_large_morphology"
115
+
116
+ - models: endoreg_db.requirement_set
117
+ fields:
118
+ name: "coloreg_finding_colon_polyp_histology_expected_and_available"
119
+ name_de: "Coloreg Befund Kolon Polyp Histologie"
120
+ name_en: "Coloreg Finding Colon Polyp Histology"
121
+ description: "Coloreg Finding Colon Polyp Histology"
122
+ requirement_set_type: "all"
123
+ requirements:
124
+ - "colonoscopy_default_polyp_resection"
125
+ - "colonoscopy_default_polyp_histology"
126
+
127
+ - models: endoreg_db.requirement_set
128
+ fields:
129
+ name: "coloreg_finding_colon_polyp_histology_not_expected"
130
+ name_de: "Coloreg Befund Kolon Polyp Histologie"
131
+ name_en: "Coloreg Finding Colon Polyp Histology"
132
+ description: "Coloreg Finding Colon Polyp Histology"
133
+ requirement_set_type: "all"
134
+ requirements:
135
+ - "colonoscopy_default_polyp_no_resection"
136
+ # - "colonoscopy_finding_colon_polyp_no_resection_reason"
137
+
138
+ - models: endoreg_db.requirement_set
139
+ fields:
140
+ name: "coloreg_finding_colon_polyp_histology"
141
+ name_de: "Coloreg Befund Kolon Polyp Histologie"
142
+ name_en: "Coloreg Finding Colon Polyp Histology"
143
+ description: "Coloreg Finding Colon Polyp Histology"
144
+ requirement_set_type: "any"
145
+ links_to_sets:
146
+ - "coloreg_finding_colon_polyp_histology_expected_and_available"
147
+ - "coloreg_finding_colon_polyp_histology_not_expected"
148
+
149
+ - models: endoreg_db.requirement_set
150
+ fields:
151
+ name: "coloreg_finding_colon_polyp_base_description"
152
+ name_de: "Coloreg Befund Kolon Polyp"
153
+ name_en: "Coloreg Finding Colon Polyp"
154
+ description: "Coloreg Finding Colon Polyp"
155
+ requirement_set_type: "all"
156
+ requirements: []
157
+ links_to_sets:
158
+ - "coloreg_finding_colon_polyp_size"
159
+ - "coloreg_finding_colon_polyp_location_base"
160
+ - "coloreg_finding_colon_polyp_rectosigmoid_location"
161
+ - "coloreg_finding_colon_polyp_morphology"
162
+ - "coloreg_finding_colon_polyp_histology"
163
+ tags: []
164
+
165
+ - models: endoreg_db.requirement_set
166
+ fields:
167
+ name: "coloreg_finding_data_complete"
168
+ name_de: "Coloreg Befund Kolon Polyp Komplett"
169
+ name_en: "Coloreg Finding Colon Polyp Complete"
170
+ description: "Coloreg Finding Colon Polyp Complete"
171
+ requirement_set_type: "all"
172
+ links_to_sets:
173
+ - "coloreg_finding_colon_polyp_base_description"
174
+ tags: []
175
+
176
+ - models: endoreg_db.requirement_set
177
+ fields:
178
+ name: "coloreg_colonoscopy_report_complete"
179
+ name_de: "Koloskopie Coloreg"
180
+ name_en: "Colonoscopy Coloreg"
181
+ description: "Colonoscopy Coloreg"
182
+ requirement_set_type: "all"
183
+ links_to_sets:
184
+ - "coloreg_patient_data"
185
+ - "coloreg_examination_data"
186
+ - "coloreg_finding_data_complete"
187
+ tags:
188
+ - "report_mask_requirement_set"
189
+ reqset_exam_links:
190
+ - "colonoscopy_req_sets"
@@ -0,0 +1,109 @@
1
+ - models: endoreg_db.requirement_set
2
+ fields:
3
+ name: "coloreg_patient_data"
4
+ name_de: "Coloreg Patientendaten"
5
+ name_en: "Coloreg Patient Data"
6
+ description: "Coloreg Patient Data"
7
+ requirement_set_type: "all"
8
+ requirements: []
9
+ links_to_sets:
10
+ - "patient_gender_generic"
11
+ - "patient_names_generic"
12
+ - "patient_dob_generic"
13
+ - "colonoscopy_basic_patient_history" # includes previous bowel_surgery_known and last_colonoscopy_known
14
+ tags: [] # not tagged as report_mask_requirement_set, only used in top level requirement set
15
+
16
+ - models: endoreg_db.requirement_set
17
+ fields:
18
+ name: "coloreg_examination_data"
19
+ name_de: "Coloreg Untersuchungsdaten"
20
+ name_en: "Coloreg Examination Data"
21
+ description: "Coloreg Examination Data"
22
+ requirement_set_type: "all"
23
+ requirements:
24
+ - "examination_has_indication" #TODO
25
+ - "examination_has_sedation_information" #TODO
26
+ - "examination_bowel_prep_recorded" #TODO
27
+ links_to_sets:
28
+ - "colonoscopy_deepest_insertion_reached_recorded" #TODO # if not cecum or terminal ileum
29
+ tags: []
30
+
31
+ - models: endoreg_db.requirement_set
32
+ fields:
33
+ name: "coloreg_finding_colon_polyp_location"
34
+ name_de: "Coloreg Befund Kolon Polyp Lage"
35
+ name_en: "Coloreg Finding Colon Polyp Location"
36
+ description: "Coloreg Finding Colon Polyp Exact Location"
37
+ requirement_set_type: "any"
38
+ requirements:
39
+ - "coloreg_finding_colon_polyp_rectosigmoid_has_location_distance_from_anal_verge" #TODO
40
+ - "coloreg_finding_colon_polyp_non_rectosigmoid_has_location_distance_from_anal_verge" #TODO
41
+ - "coloreg_finding_colon_polyp_non_rectosigmoid_has_location_colon_segment" #TODO
42
+
43
+ - models: endoreg_db.requirement_set
44
+ fields:
45
+ name: "coloreg_finding_colon_polyp_size"
46
+ name_de: "Coloreg Befund Kolon Polyp Größe"
47
+ name_en: "Coloreg Finding Colon Polyp Size"
48
+ description: "Coloreg Finding Colon Polyp Size"
49
+ requirement_set_type: "any"
50
+ requirements:
51
+ - "coloreg_finding_colon_polyp_size_measured_in_mm" #TODO
52
+ - "coloreg_finding_colon_polyp_size_categorical" #TODO
53
+
54
+ - models: endoreg_db.requirement_set
55
+ fields:
56
+ name: "coloreg_finding_colon_polyp_small_base"
57
+ name_de: "Coloreg Befund Kolon Polyp Klein"
58
+ name_en: "Coloreg Finding Colon Polyp Small"
59
+ description: "Coloreg Finding Colon Polyp Small"
60
+ requirement_set_type: "all"
61
+ requirements:
62
+ - "coloreg_finding_colon_polyp_size_smaller_10_mm" #TODO any; size_cat or size_mm
63
+ - "coloreg_finding_colon_polyp_location" # either location_categorical or location_cm (any)
64
+ - "colonoscopy_default_polyp_morphology_wli" # any (paris / description)
65
+ - "colonoscopy_default_polyp_histology" # all
66
+
67
+ - models: endoreg_db.requirement_set
68
+ fields:
69
+ name: "coloreg_finding_colon_polyp_medium_base"
70
+ name_de: "Coloreg Befund Kolon Polyp Mittel"
71
+ name_en: "Coloreg Finding Colon Polyp Medium"
72
+ description: "Coloreg Finding Colon Polyp Medium"
73
+ requirement_set_type: "all"
74
+ requirements:
75
+ - "coloreg_finding_colon_polyp_size_between_10_and_19_mm" #TODO size >=10mm
76
+ - "coloreg_finding_colon_polyp_location"
77
+ - "colonoscopy_default_polyp_morphology_wli"
78
+ - "colonoscopy_advanced_polyp_morphology"
79
+ - "colonoscopy_default_polyp_histology"
80
+
81
+ - models: endoreg_db.requirement_set
82
+ fields:
83
+ name: "coloreg_finding_colon_polyp_base_description"
84
+ name_de: "Coloreg Befund Kolon Polyp"
85
+ name_en: "Coloreg Finding Colon Polyp"
86
+ description: "Coloreg Finding Colon Polyp"
87
+ requirement_set_type: "any"
88
+ requirements: []
89
+ links_to_sets:
90
+ - "coloreg_finding_colon_polyp_small_base" #TODO size <10mm, requires size, location, paris / description, histology
91
+ - "coloreg_finding_colon_polyp_medium_base" #TODO size >=10mm, requires size, location, paris / description, advanced morphology, histology
92
+ - "coloreg_finding_colon_polyp_large_base" #TODO size >=20mm, requires size, location, LST / description, advanced morphology, histology
93
+ tags: []
94
+
95
+ - models: endoreg_db.requirement_set
96
+ fields:
97
+ name: "colonoscopy_coloreg"
98
+ name_de: "Koloskopie Coloreg"
99
+ name_en: "Colonoscopy Coloreg"
100
+ description: "Colonoscopy Coloreg"
101
+ requirement_set_type: "all"
102
+ links_to_sets:
103
+ - "coloreg_patient_data"
104
+ - "coloreg_examination_data"
105
+ - "coloreg_finding_colon_polyp_base_description"
106
+ tags:
107
+ - "report_mask_requirement_set"
108
+ reqset_exam_links:
109
+ - "colonoscopy_req_sets"
@@ -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"
@@ -0,0 +1,41 @@
1
+ - model: endoreg_db.requirement_set_type
2
+ fields:
3
+ name: "all"
4
+ name_de: "alle"
5
+ name_en: "all"
6
+ description: "All requirement are true"
7
+
8
+ - model: endoreg_db.requirement_set_type
9
+ fields:
10
+ name: "any"
11
+ name_de: "mindestens eine"
12
+ name_en: "at least one"
13
+ description: "At least one requirement is true"
14
+
15
+ - model: endoreg_db.requirement_set_type
16
+ fields:
17
+ name: "none"
18
+ name_de: "keine"
19
+ name_en: "none"
20
+ description: "No requirement is true"
21
+
22
+ - model: endoreg_db.requirement_set_type
23
+ fields:
24
+ name: "exactly_1"
25
+ name_de: "genau eins"
26
+ name_en: "exactly one"
27
+ description: "Exactly one requirement is true"
28
+
29
+ - model: endoreg_db.requirement_set_type
30
+ fields:
31
+ name: "at_least_1"
32
+ name_de: "mindestens eins"
33
+ name_en: "at least one"
34
+ description: "At least one requirement is true"
35
+
36
+ - model: endoreg_db.requirement_set_type
37
+ fields:
38
+ name: "at_most_1"
39
+ name_de: "höchstens eins"
40
+ name_en: "at most one"
41
+ description: "At most one requirement is true"