endoreg-db 0.6.3__py3-none-any.whl → 0.8.1__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 (798) hide show
  1. endoreg_db/admin.py +26 -26
  2. endoreg_db/api_urls.py +4 -0
  3. endoreg_db/apps.py +12 -0
  4. endoreg_db/assets/dummy_model.ckpt +1 -0
  5. endoreg_db/codemods/readme.md +88 -0
  6. endoreg_db/codemods/rename_datetime_fields.py +92 -0
  7. endoreg_db/config/env.py +101 -0
  8. endoreg_db/data/__init__.py +26 -0
  9. endoreg_db/data/ai_model/data.yaml +1 -1
  10. endoreg_db/data/ai_model_label/label/polyp_classification.yaml +52 -0
  11. endoreg_db/data/ai_model_label/label-set/data.yaml +20 -1
  12. endoreg_db/data/ai_model_label/label-set/polyp_classifications.yaml +25 -0
  13. endoreg_db/data/center/data.yaml +13 -12
  14. endoreg_db/data/center_shift/ukw.yaml +9 -0
  15. endoreg_db/data/db_summary.csv +58 -0
  16. endoreg_db/data/db_summary.xlsx +0 -0
  17. endoreg_db/data/disease/misc.yaml +1 -2
  18. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +2 -2
  19. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +6 -6
  20. endoreg_db/data/endoscopy_processor/data.yaml +3 -0
  21. endoreg_db/data/event/cardiology.yaml +0 -13
  22. endoreg_db/data/examination/examinations/data.yaml +34 -28
  23. endoreg_db/data/examination/type/data.yaml +12 -0
  24. endoreg_db/data/examination_indication/endoscopy.yaml +418 -2
  25. endoreg_db/data/examination_indication_classification/endoscopy.yaml +157 -5
  26. endoreg_db/data/examination_requirement_set/colonoscopy.yaml +15 -0
  27. endoreg_db/data/finding/anatomy_colon.yaml +128 -0
  28. endoreg_db/data/finding/colonoscopy.yaml +40 -0
  29. endoreg_db/data/finding/colonoscopy_bowel_prep.yaml +56 -0
  30. endoreg_db/data/finding/complication.yaml +16 -0
  31. endoreg_db/data/finding/data.yaml +8 -44
  32. endoreg_db/data/finding/examination_setting.yaml +16 -0
  33. endoreg_db/data/finding/medication_related.yaml +18 -0
  34. endoreg_db/data/finding/outcome.yaml +12 -0
  35. endoreg_db/data/finding_classification/colonoscopy_bowel_preparation.yaml +95 -0
  36. endoreg_db/data/finding_classification/colonoscopy_jnet.yaml +22 -0
  37. endoreg_db/data/finding_classification/colonoscopy_kudo.yaml +25 -0
  38. endoreg_db/data/finding_classification/colonoscopy_lesion_circularity.yaml +20 -0
  39. endoreg_db/data/finding_classification/colonoscopy_lesion_planarity.yaml +24 -0
  40. endoreg_db/data/finding_classification/colonoscopy_lesion_size.yaml +68 -0
  41. endoreg_db/data/finding_classification/colonoscopy_lesion_surface.yaml +20 -0
  42. endoreg_db/data/finding_classification/colonoscopy_location.yaml +80 -0
  43. endoreg_db/data/finding_classification/colonoscopy_lst.yaml +21 -0
  44. endoreg_db/data/finding_classification/colonoscopy_nice.yaml +20 -0
  45. endoreg_db/data/finding_classification/colonoscopy_paris.yaml +26 -0
  46. endoreg_db/data/finding_classification/colonoscopy_sano.yaml +22 -0
  47. endoreg_db/data/finding_classification/colonoscopy_summary.yaml +53 -0
  48. endoreg_db/data/finding_classification/complication_generic.yaml +25 -0
  49. endoreg_db/data/finding_classification/examination_setting_generic.yaml +40 -0
  50. endoreg_db/data/finding_classification/histology_colo.yaml +51 -0
  51. endoreg_db/data/finding_classification/intervention_required.yaml +26 -0
  52. endoreg_db/data/finding_classification/medication_related.yaml +23 -0
  53. endoreg_db/data/finding_classification/visualized.yaml +33 -0
  54. endoreg_db/data/finding_classification_choice/bowel_preparation.yaml +78 -0
  55. endoreg_db/data/{finding_morphology_classification_choice → finding_classification_choice}/colon_lesion_circularity_default.yaml +0 -2
  56. endoreg_db/data/finding_classification_choice/colon_lesion_jnet.yaml +15 -0
  57. endoreg_db/data/finding_classification_choice/colon_lesion_kudo.yaml +23 -0
  58. endoreg_db/data/finding_classification_choice/colon_lesion_lst.yaml +15 -0
  59. endoreg_db/data/{finding_morphology_classification_choice → finding_classification_choice}/colon_lesion_nice.yaml +4 -7
  60. endoreg_db/data/{finding_morphology_classification_choice → finding_classification_choice}/colon_lesion_paris.yaml +0 -8
  61. endoreg_db/data/{finding_morphology_classification_choice → finding_classification_choice}/colon_lesion_planarity_default.yaml +6 -13
  62. endoreg_db/data/finding_classification_choice/colon_lesion_sano.yaml +14 -0
  63. endoreg_db/data/{finding_morphology_classification_choice → finding_classification_choice}/colon_lesion_surface_intact_default.yaml +3 -6
  64. endoreg_db/data/{finding_location_classification_choice/colonoscopy.yaml → finding_classification_choice/colonoscopy_location.yaml} +11 -22
  65. endoreg_db/data/finding_classification_choice/colonoscopy_not_complete_reason.yaml +19 -0
  66. endoreg_db/data/finding_classification_choice/colonoscopy_size.yaml +82 -0
  67. endoreg_db/data/finding_classification_choice/colonoscopy_summary_worst_finding.yaml +15 -0
  68. endoreg_db/data/finding_classification_choice/complication_generic_types.yaml +15 -0
  69. endoreg_db/data/finding_classification_choice/examination_setting_generic_types.yaml +15 -0
  70. endoreg_db/data/finding_classification_choice/histology.yaml +24 -0
  71. endoreg_db/data/finding_classification_choice/histology_polyp.yaml +20 -0
  72. endoreg_db/data/finding_classification_choice/outcome.yaml +19 -0
  73. endoreg_db/data/finding_classification_choice/yes_no_na.yaml +11 -0
  74. endoreg_db/data/finding_classification_type/colonoscopy_basic.yaml +48 -0
  75. endoreg_db/data/finding_intervention/endoscopy.yaml +26 -121
  76. endoreg_db/data/finding_intervention/endoscopy_colonoscopy.yaml +168 -0
  77. endoreg_db/data/finding_intervention/endoscopy_egd.yaml +128 -0
  78. endoreg_db/data/finding_intervention/endoscopy_ercp.yaml +32 -0
  79. endoreg_db/data/finding_intervention/endoscopy_eus_lower.yaml +9 -0
  80. endoreg_db/data/finding_intervention/endoscopy_eus_upper.yaml +36 -0
  81. endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +6 -6
  82. endoreg_db/data/finding_type/data.yaml +23 -10
  83. endoreg_db/data/gender/data.yaml +8 -1
  84. endoreg_db/data/information_source/annotation.yaml +6 -0
  85. endoreg_db/data/information_source/endoscopy_guidelines.yaml +7 -0
  86. endoreg_db/data/information_source/prediction.yaml +7 -0
  87. endoreg_db/data/information_source_type/data.yaml +8 -0
  88. endoreg_db/data/lab_value/misc.yaml +43 -0
  89. endoreg_db/data/medication/anticoagulation.yaml +5 -5
  90. endoreg_db/data/medication/tah.yaml +5 -5
  91. endoreg_db/data/medication_indication/anticoagulation.yaml +4 -4
  92. endoreg_db/data/medication_intake_time/base.yaml +4 -4
  93. endoreg_db/data/names_first/first_names.yaml +3 -0
  94. endoreg_db/data/pdf_type/data.yaml +27 -10
  95. endoreg_db/data/qualification/endoscopy.yaml +36 -0
  96. endoreg_db/data/qualification/m2.yaml +39 -0
  97. endoreg_db/data/qualification/outpatient_clinic.yaml +35 -0
  98. endoreg_db/data/qualification/sonography.yaml +36 -0
  99. endoreg_db/data/qualification_type/base.yaml +29 -0
  100. endoreg_db/data/report_reader_flag/rkh-histology-generic.yaml +10 -0
  101. endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +5 -0
  102. endoreg_db/data/requirement/age.yaml +26 -0
  103. endoreg_db/data/requirement/colonoscopy_baseline_austria.yaml +45 -0
  104. endoreg_db/data/requirement/disease_cardiovascular.yaml +79 -0
  105. endoreg_db/data/requirement/disease_classification_choice_cardiovascular.yaml +41 -0
  106. endoreg_db/data/requirement/disease_hepatology.yaml +12 -0
  107. endoreg_db/data/requirement/disease_misc.yaml +12 -0
  108. endoreg_db/data/requirement/disease_renal.yaml +96 -0
  109. endoreg_db/data/requirement/endoscopy_bleeding_risk.yaml +59 -0
  110. endoreg_db/data/requirement/event_cardiology.yaml +251 -0
  111. endoreg_db/data/requirement/event_requirements.yaml +145 -0
  112. endoreg_db/data/requirement/finding_colon_polyp.yaml +50 -0
  113. endoreg_db/data/requirement/gender.yaml +25 -0
  114. endoreg_db/data/requirement/lab_value.yaml +441 -0
  115. endoreg_db/data/requirement/medication.yaml +93 -0
  116. endoreg_db/data/requirement_operator/age.yaml +13 -0
  117. endoreg_db/data/requirement_operator/lab_operators.yaml +129 -0
  118. endoreg_db/data/requirement_operator/model_operators.yaml +96 -0
  119. endoreg_db/data/requirement_set/01_endoscopy_generic.yaml +48 -0
  120. endoreg_db/data/requirement_set/colonoscopy_austria_screening.yaml +57 -0
  121. endoreg_db/data/requirement_set/endoscopy_bleeding_risk.yaml +52 -0
  122. endoreg_db/data/requirement_set_type/data.yaml +20 -0
  123. endoreg_db/data/requirement_type/requirement_types.yaml +165 -0
  124. endoreg_db/data/risk/bleeding.yaml +26 -0
  125. endoreg_db/data/risk/thrombosis.yaml +37 -0
  126. endoreg_db/data/risk_type/data.yaml +27 -0
  127. endoreg_db/data/shift/endoscopy.yaml +21 -0
  128. endoreg_db/data/shift_type/base.yaml +35 -0
  129. endoreg_db/data/tag/requirement_set_tags.yaml +11 -0
  130. endoreg_db/data/unit/concentration.yaml +23 -0
  131. endoreg_db/data/unit/time.yaml +36 -1
  132. endoreg_db/exceptions.py +19 -0
  133. endoreg_db/forms/patient_finding_intervention_form.py +4 -5
  134. endoreg_db/forms/patient_form.py +7 -6
  135. endoreg_db/forms/questionnaires/__init__.py +1 -1
  136. endoreg_db/forms/questionnaires/tto_questionnaire.py +19 -19
  137. endoreg_db/helpers/count_db.py +45 -0
  138. endoreg_db/helpers/data_loader.py +208 -0
  139. endoreg_db/helpers/default_objects.py +359 -0
  140. endoreg_db/helpers/interact.py +6 -0
  141. endoreg_db/helpers/test_video_helper.py +119 -0
  142. endoreg_db/logger_conf.py +140 -0
  143. endoreg_db/management/__init__.py +1 -0
  144. endoreg_db/management/commands/__init__.py +1 -0
  145. endoreg_db/management/commands/anonymize_video.py +0 -0
  146. endoreg_db/management/commands/check_auth.py +125 -0
  147. endoreg_db/management/commands/create_multilabel_model_meta.py +214 -0
  148. endoreg_db/management/commands/fix_missing_patient_data.py +172 -0
  149. endoreg_db/management/commands/fix_video_paths.py +165 -0
  150. endoreg_db/management/commands/import_fallback_video.py +203 -0
  151. endoreg_db/management/commands/import_report.py +298 -0
  152. endoreg_db/management/commands/import_video.py +422 -0
  153. endoreg_db/management/commands/import_video_with_classification.py +367 -0
  154. endoreg_db/management/commands/init_default_ai_model.py +112 -0
  155. endoreg_db/management/commands/load_ai_model_data.py +2 -7
  156. endoreg_db/management/commands/load_base_db_data.py +15 -1
  157. endoreg_db/management/commands/load_center_data.py +46 -21
  158. endoreg_db/management/commands/load_endoscope_data.py +2 -2
  159. endoreg_db/management/commands/load_examination_indication_data.py +49 -28
  160. endoreg_db/management/commands/load_finding_data.py +49 -92
  161. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +0 -1
  162. endoreg_db/management/commands/load_information_source.py +13 -7
  163. endoreg_db/management/commands/load_qualification_data.py +59 -0
  164. endoreg_db/management/commands/load_requirement_data.py +180 -0
  165. endoreg_db/management/commands/load_risk_data.py +56 -0
  166. endoreg_db/management/commands/load_shift_data.py +60 -0
  167. endoreg_db/management/commands/load_tag_data.py +57 -0
  168. endoreg_db/management/commands/register_ai_model.py +1 -1
  169. endoreg_db/management/commands/start_filewatcher.py +106 -0
  170. endoreg_db/management/commands/storage_management.py +548 -0
  171. endoreg_db/management/commands/summarize_db_content.py +189 -0
  172. endoreg_db/management/commands/validate_video.py +204 -0
  173. endoreg_db/management/commands/validate_video_files.py +161 -0
  174. endoreg_db/management/commands/video_validation.py +22 -0
  175. endoreg_db/migrations/0001_initial.py +625 -813
  176. endoreg_db/migrations/0002_add_video_correction_models.py +52 -0
  177. endoreg_db/models/__init__.py +274 -291
  178. endoreg_db/models/administration/__init__.py +116 -0
  179. endoreg_db/models/{ai_model → administration/ai}/__init__.py +6 -1
  180. endoreg_db/models/administration/ai/active_model.py +35 -0
  181. endoreg_db/models/administration/ai/ai_model.py +156 -0
  182. endoreg_db/models/{ai_model → administration/ai}/model_type.py +6 -1
  183. endoreg_db/models/administration/case/__init__.py +19 -0
  184. endoreg_db/models/administration/case/case.py +114 -0
  185. endoreg_db/models/{case_template → administration/case/case_template}/case_template.py +3 -3
  186. endoreg_db/models/{case_template → administration/case/case_template}/case_template_rule.py +3 -10
  187. endoreg_db/models/{case_template → administration/case/case_template}/case_template_rule_value.py +2 -4
  188. endoreg_db/models/{case_template → administration/case/case_template}/case_template_type.py +1 -3
  189. endoreg_db/models/{center → administration/center}/__init__.py +3 -1
  190. endoreg_db/models/administration/center/center.py +61 -0
  191. endoreg_db/models/administration/center/center_product.py +64 -0
  192. endoreg_db/models/{center → administration/center}/center_resource.py +19 -3
  193. endoreg_db/models/administration/center/center_shift.py +88 -0
  194. endoreg_db/models/administration/center/center_waste.py +30 -0
  195. endoreg_db/models/administration/permissions/__init__.py +44 -0
  196. endoreg_db/models/administration/person/__init__.py +24 -0
  197. endoreg_db/models/administration/person/employee/__init__.py +3 -0
  198. endoreg_db/models/administration/person/employee/employee.py +35 -0
  199. endoreg_db/models/administration/person/employee/employee_qualification.py +39 -0
  200. endoreg_db/models/administration/person/employee/employee_type.py +42 -0
  201. endoreg_db/models/administration/person/examiner/__init__.py +4 -0
  202. endoreg_db/models/administration/person/examiner/examiner.py +54 -0
  203. endoreg_db/models/administration/person/names/__init__.py +0 -0
  204. endoreg_db/models/{persons → administration/person/names}/first_name.py +1 -1
  205. endoreg_db/models/{persons → administration/person/names}/last_name.py +2 -3
  206. endoreg_db/models/administration/person/patient/__init__.py +5 -0
  207. endoreg_db/models/administration/person/patient/patient.py +460 -0
  208. endoreg_db/models/administration/person/profession/__init__.py +24 -0
  209. endoreg_db/models/administration/person/user/__init__.py +5 -0
  210. endoreg_db/models/administration/person/user/portal_user_information.py +37 -0
  211. endoreg_db/models/administration/product/product.py +97 -0
  212. endoreg_db/models/administration/product/product_group.py +39 -0
  213. endoreg_db/models/administration/product/product_material.py +54 -0
  214. endoreg_db/models/{product → administration/product}/product_weight.py +9 -0
  215. endoreg_db/models/{product → administration/product}/reference_product.py +26 -11
  216. endoreg_db/models/administration/qualification/__init__.py +7 -0
  217. endoreg_db/models/administration/qualification/qualification.py +37 -0
  218. endoreg_db/models/administration/qualification/qualification_type.py +35 -0
  219. endoreg_db/models/administration/shift/__init__.py +9 -0
  220. endoreg_db/models/administration/shift/scheduled_days.py +69 -0
  221. endoreg_db/models/administration/shift/shift.py +51 -0
  222. endoreg_db/models/administration/shift/shift_type.py +108 -0
  223. endoreg_db/models/label/__init__.py +24 -1
  224. endoreg_db/models/label/annotation/__init__.py +12 -0
  225. endoreg_db/models/label/annotation/image_classification.py +84 -0
  226. endoreg_db/models/label/annotation/video_segmentation_annotation.py +66 -0
  227. endoreg_db/models/label/label.py +45 -74
  228. endoreg_db/models/label/label_set.py +53 -0
  229. endoreg_db/models/label/label_type.py +29 -0
  230. endoreg_db/models/label/label_video_segment/__init__.py +3 -0
  231. endoreg_db/models/label/label_video_segment/_create_from_video.py +41 -0
  232. endoreg_db/models/label/label_video_segment/label_video_segment.py +511 -0
  233. endoreg_db/models/label/video_segmentation_label.py +31 -0
  234. endoreg_db/models/{annotation → label}/video_segmentation_labelset.py +7 -0
  235. endoreg_db/models/media/__init__.py +14 -0
  236. endoreg_db/models/media/frame/__init__.py +3 -0
  237. endoreg_db/models/media/frame/frame.py +111 -0
  238. endoreg_db/models/media/pdf/__init__.py +11 -0
  239. endoreg_db/models/media/pdf/raw_pdf.py +608 -0
  240. endoreg_db/models/media/pdf/report_file.py +162 -0
  241. endoreg_db/models/media/pdf/report_reader/report_reader_config.py +77 -0
  242. endoreg_db/models/media/video/__init__.py +4 -0
  243. endoreg_db/models/media/video/create_from_file.py +336 -0
  244. endoreg_db/models/media/video/pipe_1.py +195 -0
  245. endoreg_db/models/media/video/pipe_2.py +105 -0
  246. endoreg_db/models/media/video/refactor_plan.md +0 -0
  247. endoreg_db/models/media/video/video_file.py +680 -0
  248. endoreg_db/models/media/video/video_file_ai.py +443 -0
  249. endoreg_db/models/media/video/video_file_anonymize.py +348 -0
  250. endoreg_db/models/media/video/video_file_frames/__init__.py +47 -0
  251. endoreg_db/models/media/video/video_file_frames/_bulk_create_frames.py +22 -0
  252. endoreg_db/models/media/video/video_file_frames/_create_frame_object.py +23 -0
  253. endoreg_db/models/media/video/video_file_frames/_delete_frames.py +104 -0
  254. endoreg_db/models/media/video/video_file_frames/_extract_frames.py +174 -0
  255. endoreg_db/models/media/video/video_file_frames/_get_frame.py +28 -0
  256. endoreg_db/models/media/video/video_file_frames/_get_frame_number.py +27 -0
  257. endoreg_db/models/media/video/video_file_frames/_get_frame_path.py +20 -0
  258. endoreg_db/models/media/video/video_file_frames/_get_frame_paths.py +27 -0
  259. endoreg_db/models/media/video/video_file_frames/_get_frame_range.py +34 -0
  260. endoreg_db/models/media/video/video_file_frames/_get_frames.py +27 -0
  261. endoreg_db/models/media/video/video_file_frames/_initialize_frames.py +129 -0
  262. endoreg_db/models/media/video/video_file_frames/_manage_frame_range.py +129 -0
  263. endoreg_db/models/media/video/video_file_frames/_mark_frames_extracted_status.py +65 -0
  264. endoreg_db/models/media/video/video_file_frames.py +0 -0
  265. endoreg_db/models/media/video/video_file_io.py +166 -0
  266. endoreg_db/models/media/video/video_file_meta/__init__.py +22 -0
  267. endoreg_db/models/media/video/video_file_meta/get_crop_template.py +45 -0
  268. endoreg_db/models/media/video/video_file_meta/get_endo_roi.py +39 -0
  269. endoreg_db/models/media/video/video_file_meta/get_fps.py +147 -0
  270. endoreg_db/models/media/video/video_file_meta/initialize_video_specs.py +143 -0
  271. endoreg_db/models/media/video/video_file_meta/text_meta.py +134 -0
  272. endoreg_db/models/media/video/video_file_meta/video_meta.py +70 -0
  273. endoreg_db/models/media/video/video_file_meta.py +11 -0
  274. endoreg_db/models/media/video/video_file_segments.py +209 -0
  275. endoreg_db/models/medical/__init__.py +146 -0
  276. endoreg_db/models/{contraindication → medical/contraindication}/__init__.py +1 -5
  277. endoreg_db/models/medical/disease.py +156 -0
  278. endoreg_db/models/medical/event.py +137 -0
  279. endoreg_db/models/{examination → medical/examination}/__init__.py +1 -1
  280. endoreg_db/models/medical/examination/examination.py +148 -0
  281. endoreg_db/models/medical/examination/examination_indication.py +278 -0
  282. endoreg_db/models/{examination → medical/examination}/examination_time.py +0 -4
  283. endoreg_db/models/{examination → medical/examination}/examination_time_type.py +1 -8
  284. endoreg_db/models/{examination → medical/examination}/examination_type.py +18 -10
  285. endoreg_db/models/medical/finding/__init__.py +18 -0
  286. endoreg_db/models/medical/finding/finding.py +96 -0
  287. endoreg_db/models/medical/finding/finding_classification.py +142 -0
  288. endoreg_db/models/{finding → medical/finding}/finding_intervention.py +2 -10
  289. endoreg_db/models/medical/finding/finding_type.py +35 -0
  290. endoreg_db/models/medical/hardware/__init__.py +8 -0
  291. endoreg_db/models/{hardware → medical/hardware}/endoscope.py +28 -23
  292. endoreg_db/models/medical/laboratory/__init__.py +5 -0
  293. endoreg_db/models/medical/laboratory/lab_value.py +419 -0
  294. endoreg_db/models/{medication → medical/medication}/medication.py +1 -3
  295. endoreg_db/models/{medication → medical/medication}/medication_indication_type.py +8 -3
  296. endoreg_db/models/{medication → medical/medication}/medication_intake_time.py +21 -3
  297. endoreg_db/models/{medication → medical/medication}/medication_schedule.py +13 -5
  298. endoreg_db/models/{organ → medical/organ}/__init__.py +3 -6
  299. endoreg_db/models/medical/patient/__init__.py +56 -0
  300. endoreg_db/models/medical/patient/medication_examples.py +38 -0
  301. endoreg_db/models/medical/patient/patient_disease.py +63 -0
  302. endoreg_db/models/medical/patient/patient_event.py +75 -0
  303. endoreg_db/models/medical/patient/patient_examination.py +249 -0
  304. endoreg_db/models/{persons → medical}/patient/patient_examination_indication.py +21 -9
  305. endoreg_db/models/medical/patient/patient_finding.py +357 -0
  306. endoreg_db/models/medical/patient/patient_finding_classification.py +207 -0
  307. endoreg_db/models/{patient → medical/patient}/patient_finding_intervention.py +15 -1
  308. endoreg_db/models/medical/patient/patient_lab_sample.py +148 -0
  309. endoreg_db/models/{persons → medical}/patient/patient_lab_value.py +40 -15
  310. endoreg_db/models/medical/patient/patient_medication.py +104 -0
  311. endoreg_db/models/medical/patient/patient_medication_schedule.py +136 -0
  312. endoreg_db/models/medical/risk/__init__.py +7 -0
  313. endoreg_db/models/medical/risk/risk.py +72 -0
  314. endoreg_db/models/medical/risk/risk_type.py +51 -0
  315. endoreg_db/models/{data_file/metadata → metadata}/__init__.py +6 -0
  316. endoreg_db/models/metadata/frame_ocr_result.py +0 -0
  317. endoreg_db/models/metadata/model_meta.py +193 -0
  318. endoreg_db/models/metadata/model_meta_logic.py +236 -0
  319. endoreg_db/models/{data_file/metadata → metadata}/pdf_meta.py +28 -13
  320. endoreg_db/models/metadata/sensitive_meta.py +288 -0
  321. endoreg_db/models/metadata/sensitive_meta_logic.py +643 -0
  322. endoreg_db/models/metadata/video_meta.py +332 -0
  323. endoreg_db/models/metadata/video_prediction_logic.py +190 -0
  324. endoreg_db/models/metadata/video_prediction_meta.py +270 -0
  325. endoreg_db/models/other/__init__.py +17 -0
  326. endoreg_db/models/other/distribution/date_value_distribution.py +0 -2
  327. endoreg_db/models/other/distribution/numeric_value_distribution.py +30 -2
  328. endoreg_db/models/{emission → other/emission}/emission_factor.py +15 -6
  329. endoreg_db/models/{persons → other}/gender.py +8 -3
  330. endoreg_db/models/other/information_source.py +159 -0
  331. endoreg_db/models/other/material.py +10 -2
  332. endoreg_db/models/other/resource.py +6 -2
  333. endoreg_db/models/other/tag.py +27 -0
  334. endoreg_db/models/other/transport_route.py +13 -2
  335. endoreg_db/models/{unit.py → other/unit.py} +16 -6
  336. endoreg_db/models/other/waste.py +10 -3
  337. endoreg_db/models/requirement/__init__.py +11 -0
  338. endoreg_db/models/requirement/requirement.py +767 -0
  339. endoreg_db/models/requirement/requirement_evaluation/__init__.py +6 -0
  340. endoreg_db/models/requirement/requirement_evaluation/get_values.py +40 -0
  341. endoreg_db/models/requirement/requirement_evaluation/operator_evaluation_models.py +9 -0
  342. endoreg_db/models/requirement/requirement_evaluation/requirement_type_parser.py +95 -0
  343. endoreg_db/models/requirement/requirement_operator.py +176 -0
  344. endoreg_db/models/requirement/requirement_set.py +287 -0
  345. endoreg_db/models/rule/__init__.py +13 -0
  346. endoreg_db/models/{rules → rule}/rule.py +6 -3
  347. endoreg_db/models/{rules → rule}/rule_attribute_dtype.py +0 -2
  348. endoreg_db/models/{rules → rule}/rule_type.py +0 -2
  349. endoreg_db/models/{rules → rule}/ruleset.py +0 -2
  350. endoreg_db/models/state/__init__.py +12 -0
  351. endoreg_db/models/state/abstract.py +11 -0
  352. endoreg_db/models/state/audit_ledger.py +150 -0
  353. endoreg_db/models/state/label_video_segment.py +22 -0
  354. endoreg_db/models/state/raw_pdf.py +187 -0
  355. endoreg_db/models/state/sensitive_meta.py +46 -0
  356. endoreg_db/models/state/video.py +232 -0
  357. endoreg_db/models/upload_job.py +99 -0
  358. endoreg_db/models/utils.py +135 -0
  359. endoreg_db/models/video_metadata.py +66 -0
  360. endoreg_db/models/video_processing.py +153 -0
  361. endoreg_db/renames.yml +8 -0
  362. endoreg_db/root_urls.py +9 -0
  363. endoreg_db/schemas/__init__.py +0 -0
  364. endoreg_db/schemas/examination_evaluation.py +27 -0
  365. endoreg_db/serializers/Frames_NICE_and_PARIS_classifications.py +775 -0
  366. endoreg_db/serializers/__init__.py +147 -10
  367. endoreg_db/serializers/{raw_pdf_meta_validation.py → _old/raw_pdf_meta_validation.py} +3 -3
  368. endoreg_db/serializers/{raw_video_meta_validation.py → _old/raw_video_meta_validation.py} +18 -14
  369. endoreg_db/serializers/_old/video.py +71 -0
  370. endoreg_db/serializers/administration/__init__.py +14 -0
  371. endoreg_db/serializers/administration/ai/__init__.py +10 -0
  372. endoreg_db/serializers/administration/ai/active_model.py +10 -0
  373. endoreg_db/serializers/administration/ai/ai_model.py +18 -0
  374. endoreg_db/serializers/administration/ai/model_type.py +10 -0
  375. endoreg_db/serializers/administration/center.py +9 -0
  376. endoreg_db/serializers/administration/gender.py +9 -0
  377. endoreg_db/serializers/anonymization.py +66 -0
  378. endoreg_db/serializers/evaluation/examination_evaluation.py +1 -0
  379. endoreg_db/serializers/examination/__init__.py +10 -0
  380. endoreg_db/serializers/examination/base.py +46 -0
  381. endoreg_db/serializers/examination/dropdown.py +21 -0
  382. endoreg_db/serializers/examination_serializer.py +12 -0
  383. endoreg_db/serializers/finding/__init__.py +5 -0
  384. endoreg_db/serializers/finding/finding.py +54 -0
  385. endoreg_db/serializers/finding_classification/__init__.py +7 -0
  386. endoreg_db/serializers/finding_classification/choice.py +19 -0
  387. endoreg_db/serializers/finding_classification/classification.py +13 -0
  388. endoreg_db/serializers/label/__init__.py +7 -0
  389. endoreg_db/serializers/label/image_classification_annotation.py +62 -0
  390. endoreg_db/serializers/label/label.py +15 -0
  391. endoreg_db/serializers/label_video_segment/__init__.py +7 -0
  392. endoreg_db/serializers/label_video_segment/_lvs_create.py +149 -0
  393. endoreg_db/serializers/label_video_segment/_lvs_update.py +138 -0
  394. endoreg_db/serializers/label_video_segment/_lvs_validate.py +149 -0
  395. endoreg_db/serializers/label_video_segment/label_video_segment.py +344 -0
  396. endoreg_db/serializers/label_video_segment/label_video_segment_annotation.py +99 -0
  397. endoreg_db/serializers/label_video_segment/label_video_segment_update.py +163 -0
  398. endoreg_db/serializers/meta/__init__.py +19 -0
  399. endoreg_db/serializers/meta/pdf_file_meta_extraction.py +115 -0
  400. endoreg_db/serializers/meta/report_meta.py +53 -0
  401. endoreg_db/serializers/meta/sensitive_meta_detail.py +162 -0
  402. endoreg_db/serializers/meta/sensitive_meta_update.py +148 -0
  403. endoreg_db/serializers/meta/sensitive_meta_verification.py +59 -0
  404. endoreg_db/serializers/meta/video_meta.py +39 -0
  405. endoreg_db/serializers/misc/__init__.py +14 -0
  406. endoreg_db/serializers/misc/file_overview.py +152 -0
  407. endoreg_db/serializers/misc/stats.py +33 -0
  408. endoreg_db/serializers/misc/translatable_field_mix_in.py +44 -0
  409. endoreg_db/serializers/misc/upload_job.py +71 -0
  410. endoreg_db/serializers/misc/vop_patient_data.py +120 -0
  411. endoreg_db/serializers/patient/__init__.py +11 -0
  412. endoreg_db/serializers/patient/patient.py +86 -0
  413. endoreg_db/serializers/patient/patient_dropdown.py +27 -0
  414. endoreg_db/serializers/patient_examination/__init__.py +7 -0
  415. endoreg_db/serializers/patient_examination/patient_examination.py +141 -0
  416. endoreg_db/serializers/patient_finding/__init__.py +15 -0
  417. endoreg_db/serializers/patient_finding/patient_finding.py +31 -0
  418. endoreg_db/serializers/patient_finding/patient_finding_classification.py +39 -0
  419. endoreg_db/serializers/patient_finding/patient_finding_detail.py +53 -0
  420. endoreg_db/serializers/patient_finding/patient_finding_intervention.py +26 -0
  421. endoreg_db/serializers/patient_finding/patient_finding_list.py +41 -0
  422. endoreg_db/serializers/patient_finding/patient_finding_write.py +126 -0
  423. endoreg_db/serializers/pdf/__init__.py +5 -0
  424. endoreg_db/serializers/pdf/anony_text_validation.py +85 -0
  425. endoreg_db/serializers/report/__init__.py +9 -0
  426. endoreg_db/serializers/report/mixins.py +45 -0
  427. endoreg_db/serializers/report/report.py +105 -0
  428. endoreg_db/serializers/report/report_list.py +22 -0
  429. endoreg_db/serializers/report/secure_file_url.py +26 -0
  430. endoreg_db/serializers/requirements/requirement_schema.py +25 -0
  431. endoreg_db/serializers/requirements/requirement_sets.py +29 -0
  432. endoreg_db/serializers/sensitive_meta_serializer.py +282 -0
  433. endoreg_db/serializers/video/__init__.py +7 -0
  434. endoreg_db/serializers/video/segmentation.py +263 -0
  435. endoreg_db/serializers/video/video_file_brief.py +10 -0
  436. endoreg_db/serializers/video/video_file_detail.py +83 -0
  437. endoreg_db/serializers/video/video_file_list.py +67 -0
  438. endoreg_db/serializers/video/video_metadata.py +105 -0
  439. endoreg_db/serializers/video/video_processing_history.py +153 -0
  440. endoreg_db/services/__init__.py +5 -0
  441. endoreg_db/services/anonymization.py +223 -0
  442. endoreg_db/services/examination_evaluation.py +149 -0
  443. endoreg_db/services/finding_description_service.py +0 -0
  444. endoreg_db/services/lookup_service.py +241 -0
  445. endoreg_db/services/lookup_store.py +122 -0
  446. endoreg_db/services/ollama_api_docs.py +1528 -0
  447. endoreg_db/services/pdf_import.py +993 -0
  448. endoreg_db/services/polling_coordinator.py +288 -0
  449. endoreg_db/services/pseudonym_service.py +89 -0
  450. endoreg_db/services/requirements_object.py +147 -0
  451. endoreg_db/services/segment_sync.py +155 -0
  452. endoreg_db/services/storage_aware_video_processor.py +344 -0
  453. endoreg_db/services/video_import.py +915 -0
  454. endoreg_db/tasks/upload_tasks.py +207 -0
  455. endoreg_db/tasks/video_ingest.py +157 -0
  456. endoreg_db/tasks/video_processing_tasks.py +327 -0
  457. endoreg_db/urls/__init__.py +72 -0
  458. endoreg_db/urls/anonymization.py +32 -0
  459. endoreg_db/urls/auth.py +16 -0
  460. endoreg_db/urls/classification.py +39 -0
  461. endoreg_db/urls/examination.py +54 -0
  462. endoreg_db/urls/files.py +6 -0
  463. endoreg_db/urls/label_video_segment_validate.py +33 -0
  464. endoreg_db/urls/label_video_segments.py +44 -0
  465. endoreg_db/urls/media.py +32 -0
  466. endoreg_db/urls/patient.py +19 -0
  467. endoreg_db/urls/pdf.py +0 -0
  468. endoreg_db/urls/report.py +78 -0
  469. endoreg_db/urls/requirements.py +13 -0
  470. endoreg_db/urls/sensitive_meta.py +36 -0
  471. endoreg_db/urls/stats.py +46 -0
  472. endoreg_db/urls/upload.py +20 -0
  473. endoreg_db/urls/video.py +119 -0
  474. endoreg_db/urls.py +6 -269
  475. endoreg_db/utils/__init__.py +68 -16
  476. endoreg_db/utils/ai/__init__.py +9 -0
  477. endoreg_db/{models/ai_model/utils.py → utils/ai/get.py} +1 -4
  478. endoreg_db/{models/ai_model/lightning → utils/ai}/inference_dataset.py +0 -1
  479. endoreg_db/{models/ai_model/lightning → utils/ai}/multilabel_classification_net.py +14 -10
  480. endoreg_db/{models/ai_model/lightning → utils/ai}/postprocess.py +15 -5
  481. endoreg_db/utils/ai/predict.py +291 -0
  482. endoreg_db/{models/ai_model/lightning → utils/ai}/preprocess.py +1 -1
  483. endoreg_db/utils/calc_duration_seconds.py +24 -0
  484. endoreg_db/utils/case_generator/__init__.py +0 -0
  485. endoreg_db/utils/check_video_files.py +148 -0
  486. endoreg_db/utils/dataloader.py +88 -31
  487. endoreg_db/utils/dates.py +21 -0
  488. endoreg_db/utils/env.py +33 -0
  489. endoreg_db/utils/extract_specific_frames.py +72 -0
  490. endoreg_db/utils/file_operations.py +29 -1
  491. endoreg_db/utils/fix_video_path_direct.py +141 -0
  492. endoreg_db/utils/frame_anonymization_utils.py +463 -0
  493. endoreg_db/utils/hashs.py +1 -0
  494. endoreg_db/utils/links/__init__.py +0 -0
  495. endoreg_db/utils/links/requirement_link.py +193 -0
  496. endoreg_db/utils/mime_types.py +0 -0
  497. endoreg_db/utils/names.py +2 -0
  498. endoreg_db/utils/paths.py +104 -0
  499. endoreg_db/utils/permissions.py +143 -0
  500. endoreg_db/utils/pipelines/Readme.md +235 -0
  501. endoreg_db/utils/pipelines/__init__.py +0 -0
  502. endoreg_db/utils/pipelines/process_video_dir.py +120 -0
  503. endoreg_db/utils/product/__init__.py +0 -0
  504. endoreg_db/utils/product/sum_emissions.py +20 -0
  505. endoreg_db/utils/product/sum_weights.py +18 -0
  506. endoreg_db/utils/pydantic_models/db_config.py +1 -1
  507. endoreg_db/utils/requirement_helpers.py +0 -0
  508. endoreg_db/utils/requirement_operator_logic/__init__.py +0 -0
  509. endoreg_db/utils/requirement_operator_logic/lab_value_operators.py +578 -0
  510. endoreg_db/utils/requirement_operator_logic/model_evaluators.py +368 -0
  511. endoreg_db/utils/translation.py +27 -0
  512. endoreg_db/utils/validate_video_detailed.py +357 -0
  513. endoreg_db/utils/video/__init__.py +19 -6
  514. endoreg_db/utils/video/extract_frames.py +37 -70
  515. endoreg_db/utils/video/ffmpeg_wrapper.py +772 -0
  516. endoreg_db/utils/video/names.py +42 -0
  517. endoreg_db/utils/video/streaming_processor.py +312 -0
  518. endoreg_db/utils/video/video_splitter.py +94 -0
  519. endoreg_db/views/Frames_NICE_and_PARIS_classifications_views.py +238 -0
  520. endoreg_db/views/__init__.py +282 -2
  521. endoreg_db/views/anonymization/__init__.py +27 -0
  522. endoreg_db/views/anonymization/media_management.py +454 -0
  523. endoreg_db/views/anonymization/overview.py +216 -0
  524. endoreg_db/views/anonymization/validate.py +63 -0
  525. endoreg_db/views/auth/__init__.py +13 -0
  526. endoreg_db/views/auth/keycloak.py +113 -0
  527. endoreg_db/views/examination/__init__.py +33 -0
  528. endoreg_db/views/examination/examination.py +37 -0
  529. endoreg_db/views/examination/examination_manifest_cache.py +26 -0
  530. endoreg_db/views/examination/get_finding_classification_choices.py +59 -0
  531. endoreg_db/views/examination/get_finding_classifications.py +36 -0
  532. endoreg_db/views/examination/get_findings.py +41 -0
  533. endoreg_db/views/examination/get_instruments.py +18 -0
  534. endoreg_db/views/examination/get_interventions.py +14 -0
  535. endoreg_db/views/finding/__init__.py +9 -0
  536. endoreg_db/views/finding/finding.py +112 -0
  537. endoreg_db/views/finding/get_classifications.py +14 -0
  538. endoreg_db/views/finding/get_interventions.py +17 -0
  539. endoreg_db/views/finding_classification/__init__.py +13 -0
  540. endoreg_db/views/finding_classification/base.py +0 -0
  541. endoreg_db/views/finding_classification/finding_classification.py +42 -0
  542. endoreg_db/views/finding_classification/get_classification_choices.py +55 -0
  543. endoreg_db/views/label/__init__.py +5 -0
  544. endoreg_db/views/label/label.py +15 -0
  545. endoreg_db/views/label_video_segment/__init__.py +16 -0
  546. endoreg_db/views/label_video_segment/create_lvs_from_annotation.py +44 -0
  547. endoreg_db/views/label_video_segment/get_lvs_by_name_and_video.py +50 -0
  548. endoreg_db/views/label_video_segment/label_video_segment.py +77 -0
  549. endoreg_db/views/label_video_segment/label_video_segment_by_label.py +174 -0
  550. endoreg_db/views/label_video_segment/label_video_segment_detail.py +73 -0
  551. endoreg_db/views/label_video_segment/update_lvs_from_annotation.py +46 -0
  552. endoreg_db/views/label_video_segment/validate.py +226 -0
  553. endoreg_db/views/media/__init__.py +9 -0
  554. endoreg_db/views/media/pdf_media.py +386 -0
  555. endoreg_db/views/media/video_media.py +272 -0
  556. endoreg_db/views/meta/__init__.py +15 -0
  557. endoreg_db/views/meta/available_files_list.py +146 -0
  558. endoreg_db/views/meta/report_meta.py +53 -0
  559. endoreg_db/views/meta/sensitive_meta_detail.py +148 -0
  560. endoreg_db/views/meta/sensitive_meta_list.py +104 -0
  561. endoreg_db/views/meta/sensitive_meta_verification.py +71 -0
  562. endoreg_db/views/misc/__init__.py +63 -0
  563. endoreg_db/views/misc/center.py +13 -0
  564. endoreg_db/views/misc/gender.py +14 -0
  565. endoreg_db/views/misc/secure_file_serving_view.py +80 -0
  566. endoreg_db/views/misc/secure_file_url_view.py +84 -0
  567. endoreg_db/views/misc/secure_url_validate.py +79 -0
  568. endoreg_db/views/misc/stats.py +220 -0
  569. endoreg_db/views/misc/translation.py +182 -0
  570. endoreg_db/views/misc/upload_views.py +240 -0
  571. endoreg_db/views/patient/__init__.py +5 -0
  572. endoreg_db/views/patient/patient.py +210 -0
  573. endoreg_db/views/patient_examination/DEPRECATED_video_backup.py +164 -0
  574. endoreg_db/views/patient_examination/__init__.py +11 -0
  575. endoreg_db/views/patient_examination/patient_examination.py +140 -0
  576. endoreg_db/views/patient_examination/patient_examination_create.py +63 -0
  577. endoreg_db/views/patient_examination/patient_examination_detail.py +66 -0
  578. endoreg_db/views/patient_examination/patient_examination_list.py +68 -0
  579. endoreg_db/views/patient_examination/video.py +194 -0
  580. endoreg_db/views/patient_finding/__init__.py +7 -0
  581. endoreg_db/views/patient_finding/base.py +0 -0
  582. endoreg_db/views/patient_finding/patient_finding.py +64 -0
  583. endoreg_db/views/patient_finding/patient_finding_optimized.py +259 -0
  584. endoreg_db/views/patient_finding_classification/__init__.py +5 -0
  585. endoreg_db/views/patient_finding_classification/pfc_create.py +67 -0
  586. endoreg_db/views/patient_finding_location/__init__.py +5 -0
  587. endoreg_db/views/patient_finding_location/pfl_create.py +70 -0
  588. endoreg_db/views/patient_finding_morphology/__init__.py +5 -0
  589. endoreg_db/views/patient_finding_morphology/pfm_create.py +70 -0
  590. endoreg_db/views/pdf/__init__.py +11 -0
  591. endoreg_db/views/pdf/pdf_media.py +239 -0
  592. endoreg_db/views/pdf/pdf_stream_views.py +127 -0
  593. endoreg_db/views/pdf/reimport.py +151 -0
  594. endoreg_db/views/report/__init__.py +9 -0
  595. endoreg_db/views/report/report_list.py +112 -0
  596. endoreg_db/views/report/report_with_secure_url.py +28 -0
  597. endoreg_db/views/report/start_examination.py +7 -0
  598. endoreg_db/views/requirement/__init__.py +10 -0
  599. endoreg_db/views/requirement/evaluate.py +279 -0
  600. endoreg_db/views/requirement/lookup.py +483 -0
  601. endoreg_db/views/requirement/lookup_store.py +252 -0
  602. endoreg_db/views/requirement_lookup/lookup.py +0 -0
  603. endoreg_db/views/requirement_lookup/lookup_store.py +0 -0
  604. endoreg_db/views/stats/__init__.py +13 -0
  605. endoreg_db/views/stats/stats_views.py +229 -0
  606. endoreg_db/views/video/__init__.py +72 -0
  607. endoreg_db/views/video/correction.py +672 -0
  608. endoreg_db/views/video/media/__init__.py +23 -0
  609. endoreg_db/views/video/media/task_status.py +49 -0
  610. endoreg_db/views/video/media/video_analyze.py +52 -0
  611. endoreg_db/views/video/media/video_apply_mask.py +48 -0
  612. endoreg_db/views/video/media/video_correction.py +21 -0
  613. endoreg_db/views/video/media/video_download_processed.py +58 -0
  614. endoreg_db/views/video/media/video_media.py +158 -0
  615. endoreg_db/views/video/media/video_meta.py +29 -0
  616. endoreg_db/views/video/media/video_processing_history.py +24 -0
  617. endoreg_db/views/video/media/video_remove_frames.py +48 -0
  618. endoreg_db/views/video/media/video_reprocess.py +40 -0
  619. endoreg_db/views/video/reimport.py +192 -0
  620. endoreg_db/views/video/segmentation.py +274 -0
  621. endoreg_db/views/{views_for_timeline.py → video/timeline.py} +3 -3
  622. endoreg_db/views/video/video_examination_viewset.py +329 -0
  623. endoreg_db/views/video/video_stream.py +188 -0
  624. endoreg_db-0.8.1.dist-info/METADATA +384 -0
  625. endoreg_db-0.8.1.dist-info/RECORD +789 -0
  626. endoreg_db/data/agl_service/data.yaml +0 -19
  627. endoreg_db/data/finding_location_classification/colonoscopy.yaml +0 -46
  628. endoreg_db/data/finding_morphology_classification/colonoscopy.yaml +0 -48
  629. endoreg_db/data/finding_morphology_classification_choice/colonoscopy_size.yaml +0 -57
  630. endoreg_db/management/commands/_load_model_template.py +0 -41
  631. endoreg_db/management/commands/delete_all.py +0 -18
  632. endoreg_db/management/commands/fetch_legacy_image_dataset.py +0 -32
  633. endoreg_db/management/commands/fix_auth_permission.py +0 -20
  634. endoreg_db/management/commands/load_active_model_data.py +0 -45
  635. endoreg_db/management/commands/load_g_play_data.py +0 -113
  636. endoreg_db/management/commands/load_logging_data.py +0 -39
  637. endoreg_db/management/commands/load_lx_data.py +0 -64
  638. endoreg_db/management/commands/load_medication_indication_data.py +0 -63
  639. endoreg_db/management/commands/load_medication_indication_type_data.py +0 -41
  640. endoreg_db/management/commands/load_medication_intake_time_data.py +0 -41
  641. endoreg_db/management/commands/load_medication_schedule_data.py +0 -55
  642. endoreg_db/management/commands/load_network_data.py +0 -57
  643. endoreg_db/migrations/0002_alter_frame_image_alter_rawframe_image.py +0 -23
  644. endoreg_db/migrations/0003_alter_frame_image_alter_rawframe_image.py +0 -23
  645. endoreg_db/migrations/0004_alter_rawvideofile_file_alter_video_file.py +0 -25
  646. endoreg_db/migrations/0005_rawvideofile_frame_count_and_more.py +0 -33
  647. endoreg_db/migrations/0006_frame_extracted_rawframe_extracted.py +0 -23
  648. endoreg_db/migrations/0007_rename_pseudo_patient_video_patient_and_more.py +0 -24
  649. endoreg_db/migrations/0008_remove_reportfile_patient_examination_and_more.py +0 -48
  650. endoreg_db/models/ai_model/active_model.py +0 -9
  651. endoreg_db/models/ai_model/ai_model.py +0 -103
  652. endoreg_db/models/ai_model/lightning/__init__.py +0 -3
  653. endoreg_db/models/ai_model/lightning/predict.py +0 -172
  654. endoreg_db/models/ai_model/lightning/prediction_visualizer.py +0 -55
  655. endoreg_db/models/ai_model/lightning/run_visualizer.py +0 -21
  656. endoreg_db/models/ai_model/model_meta.py +0 -250
  657. endoreg_db/models/annotation/__init__.py +0 -32
  658. endoreg_db/models/annotation/anonymized_image_annotation.py +0 -115
  659. endoreg_db/models/annotation/binary_classification_annotation_task.py +0 -117
  660. endoreg_db/models/annotation/image_classification.py +0 -86
  661. endoreg_db/models/annotation/video_segmentation_annotation.py +0 -52
  662. endoreg_db/models/case/__init__.py +0 -1
  663. endoreg_db/models/case/case.py +0 -34
  664. endoreg_db/models/center/center.py +0 -51
  665. endoreg_db/models/center/center_product.py +0 -33
  666. endoreg_db/models/center/center_waste.py +0 -16
  667. endoreg_db/models/data_file/__init__.py +0 -39
  668. endoreg_db/models/data_file/base_classes/__init__.py +0 -7
  669. endoreg_db/models/data_file/base_classes/abstract_frame.py +0 -100
  670. endoreg_db/models/data_file/base_classes/abstract_pdf.py +0 -136
  671. endoreg_db/models/data_file/base_classes/abstract_video.py +0 -807
  672. endoreg_db/models/data_file/base_classes/frame_helpers.py +0 -17
  673. endoreg_db/models/data_file/base_classes/prepare_bulk_frames.py +0 -19
  674. endoreg_db/models/data_file/base_classes/utils.py +0 -80
  675. endoreg_db/models/data_file/frame.py +0 -29
  676. endoreg_db/models/data_file/import_classes/__init__.py +0 -18
  677. endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +0 -35
  678. endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +0 -28
  679. endoreg_db/models/data_file/import_classes/processing_functions/video.py +0 -260
  680. endoreg_db/models/data_file/import_classes/raw_pdf.py +0 -260
  681. endoreg_db/models/data_file/import_classes/raw_video.py +0 -288
  682. endoreg_db/models/data_file/metadata/sensitive_meta.py +0 -290
  683. endoreg_db/models/data_file/metadata/video_meta.py +0 -199
  684. endoreg_db/models/data_file/report_file.py +0 -56
  685. endoreg_db/models/data_file/video/__init__.py +0 -11
  686. endoreg_db/models/data_file/video/import_meta.py +0 -25
  687. endoreg_db/models/data_file/video/video.py +0 -196
  688. endoreg_db/models/data_file/video_segment.py +0 -214
  689. endoreg_db/models/disease.py +0 -79
  690. endoreg_db/models/event.py +0 -73
  691. endoreg_db/models/examination/examination.py +0 -67
  692. endoreg_db/models/examination/examination_indication.py +0 -170
  693. endoreg_db/models/finding/__init__.py +0 -11
  694. endoreg_db/models/finding/finding.py +0 -75
  695. endoreg_db/models/finding/finding_location_classification.py +0 -94
  696. endoreg_db/models/finding/finding_morphology_classification.py +0 -89
  697. endoreg_db/models/finding/finding_type.py +0 -22
  698. endoreg_db/models/hardware/__init__.py +0 -2
  699. endoreg_db/models/information_source.py +0 -29
  700. endoreg_db/models/laboratory/__init__.py +0 -1
  701. endoreg_db/models/laboratory/lab_value.py +0 -111
  702. endoreg_db/models/logging/__init__.py +0 -11
  703. endoreg_db/models/logging/agl_service.py +0 -19
  704. endoreg_db/models/logging/base.py +0 -22
  705. endoreg_db/models/logging/log_type.py +0 -23
  706. endoreg_db/models/logging/network_device.py +0 -27
  707. endoreg_db/models/lx/__init__.py +0 -4
  708. endoreg_db/models/lx/client.py +0 -57
  709. endoreg_db/models/lx/identity.py +0 -34
  710. endoreg_db/models/lx/permission.py +0 -18
  711. endoreg_db/models/lx/user.py +0 -16
  712. endoreg_db/models/network/__init__.py +0 -9
  713. endoreg_db/models/network/agl_service.py +0 -38
  714. endoreg_db/models/network/network_device.py +0 -58
  715. endoreg_db/models/network/network_device_type.py +0 -23
  716. endoreg_db/models/other/distribution.py +0 -5
  717. endoreg_db/models/patient/__init__.py +0 -24
  718. endoreg_db/models/patient/patient_examination.py +0 -182
  719. endoreg_db/models/patient/patient_finding.py +0 -143
  720. endoreg_db/models/patient/patient_finding_location.py +0 -120
  721. endoreg_db/models/patient/patient_finding_morphology.py +0 -166
  722. endoreg_db/models/permissions/__init__.py +0 -44
  723. endoreg_db/models/persons/__init__.py +0 -34
  724. endoreg_db/models/persons/examiner/__init__.py +0 -2
  725. endoreg_db/models/persons/examiner/examiner.py +0 -60
  726. endoreg_db/models/persons/examiner/examiner_type.py +0 -2
  727. endoreg_db/models/persons/patient/__init__.py +0 -8
  728. endoreg_db/models/persons/patient/patient.py +0 -389
  729. endoreg_db/models/persons/patient/patient_disease.py +0 -22
  730. endoreg_db/models/persons/patient/patient_event.py +0 -52
  731. endoreg_db/models/persons/patient/patient_lab_sample.py +0 -108
  732. endoreg_db/models/persons/patient/patient_medication.py +0 -59
  733. endoreg_db/models/persons/patient/patient_medication_schedule.py +0 -88
  734. endoreg_db/models/persons/portal_user_information.py +0 -27
  735. endoreg_db/models/prediction/__init__.py +0 -8
  736. endoreg_db/models/prediction/image_classification.py +0 -51
  737. endoreg_db/models/prediction/video_prediction_meta.py +0 -306
  738. endoreg_db/models/product/product.py +0 -110
  739. endoreg_db/models/product/product_group.py +0 -27
  740. endoreg_db/models/product/product_material.py +0 -28
  741. endoreg_db/models/questionnaires/__init__.py +0 -114
  742. endoreg_db/models/quiz/__init__.py +0 -9
  743. endoreg_db/models/quiz/quiz_answer.py +0 -41
  744. endoreg_db/models/quiz/quiz_question.py +0 -54
  745. endoreg_db/models/report_reader/report_reader_config.py +0 -53
  746. endoreg_db/models/rules/__init__.py +0 -5
  747. endoreg_db/queries/get/__init__.py +0 -6
  748. endoreg_db/queries/get/center.py +0 -42
  749. endoreg_db/queries/get/model.py +0 -13
  750. endoreg_db/queries/get/patient.py +0 -14
  751. endoreg_db/queries/get/patient_examination.py +0 -20
  752. endoreg_db/queries/get/report_file.py +0 -33
  753. endoreg_db/queries/get/video.py +0 -31
  754. endoreg_db/serializers/ai_model.py +0 -19
  755. endoreg_db/serializers/annotation.py +0 -14
  756. endoreg_db/serializers/center.py +0 -11
  757. endoreg_db/serializers/examination.py +0 -33
  758. endoreg_db/serializers/frame.py +0 -9
  759. endoreg_db/serializers/hardware.py +0 -21
  760. endoreg_db/serializers/label.py +0 -22
  761. endoreg_db/serializers/patient.py +0 -33
  762. endoreg_db/serializers/prediction.py +0 -10
  763. endoreg_db/serializers/raw_pdf_anony_text_validation.py +0 -137
  764. endoreg_db/serializers/report_file.py +0 -7
  765. endoreg_db/serializers/video.py +0 -20
  766. endoreg_db/serializers/video_segmentation.py +0 -587
  767. endoreg_db/tests.py +0 -3
  768. endoreg_db/utils/legacy_ocr.py +0 -201
  769. endoreg_db/utils/video/transcode_videofile.py +0 -111
  770. endoreg_db/views/patient_views.py +0 -90
  771. endoreg_db/views/raw_pdf_anony_text_validation_views.py +0 -95
  772. endoreg_db/views/raw_pdf_meta_validation_views.py +0 -111
  773. endoreg_db/views/raw_video_meta_validation_views.py +0 -148
  774. endoreg_db/views/report_views.py +0 -96
  775. endoreg_db/views/video_segmentation_views.py +0 -166
  776. endoreg_db-0.6.3.dist-info/METADATA +0 -161
  777. endoreg_db-0.6.3.dist-info/RECORD +0 -435
  778. /endoreg_db/{case_generator/__init__.py → api/serializers/finding_descriptions.py} +0 -0
  779. /endoreg_db/{queries/get/annotation.py → api/views/finding_descriptions.py} +0 -0
  780. /endoreg_db/{queries/get/prediction.py → data/shift/m2.yaml} +0 -0
  781. /endoreg_db/{queries/get/video_import_meta.py → factories/__init__.py} +0 -0
  782. /endoreg_db/{queries/get/video_prediction_meta.py → helpers/__init__.py} +0 -0
  783. /endoreg_db/models/{case_template → administration/case/case_template}/__init__.py +0 -0
  784. /endoreg_db/models/{persons → administration/person}/person.py +0 -0
  785. /endoreg_db/models/{product → administration/product}/__init__.py +0 -0
  786. /endoreg_db/models/{report_reader → media/pdf/report_reader}/__init__.py +0 -0
  787. /endoreg_db/models/{report_reader → media/pdf/report_reader}/report_reader_flag.py +0 -0
  788. /endoreg_db/models/{hardware → medical/hardware}/endoscopy_processor.py +0 -0
  789. /endoreg_db/models/{medication → medical/medication}/__init__.py +0 -0
  790. /endoreg_db/models/{medication → medical/medication}/medication_indication.py +0 -0
  791. /endoreg_db/models/{emission → other/emission}/__init__.py +0 -0
  792. /endoreg_db/models/{rules → rule}/rule_applicator.py +0 -0
  793. /endoreg_db/{case_generator → utils/case_generator}/case_generator.py +0 -0
  794. /endoreg_db/{case_generator → utils/case_generator}/lab_sample_factory.py +0 -0
  795. /endoreg_db/{case_generator → utils/case_generator}/utils.py +0 -0
  796. /endoreg_db/views/{csrf.py → misc/csrf.py} +0 -0
  797. {endoreg_db-0.6.3.dist-info → endoreg_db-0.8.1.dist-info}/WHEEL +0 -0
  798. {endoreg_db-0.6.3.dist-info → endoreg_db-0.8.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,384 @@
1
+ Metadata-Version: 2.4
2
+ Name: endoreg-db
3
+ Version: 0.8.1
4
+ Summary: EndoReg Db Django App
5
+ Project-URL: Homepage, https://info.coloreg.de
6
+ Project-URL: Repository, https://github.com/wg-lux/endoreg-db
7
+ Author: Max Hild, Hamza Zahid, Peter Kowalczyk
8
+ Author-email: "Thomas J. Lux" <lux_t1@ukw.de>
9
+ Maintainer: Max Hild, Hamza Zahid, Peter Kowalczyk
10
+ Maintainer-email: "Thomas J. Lux" <lux_t1@ukw.de>
11
+ License-File: LICENSE
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
16
+ Requires-Python: <3.13,>=3.12
17
+ Requires-Dist: agl-report-reader>=0.4.0
18
+ Requires-Dist: build>=1.3.0
19
+ Requires-Dist: celery>=5.5.3
20
+ Requires-Dist: cryptography>=44.0.2
21
+ Requires-Dist: decord==0.6.0
22
+ Requires-Dist: django-bootstrap5>=25.2
23
+ Requires-Dist: django-cors-headers>=4.8.0
24
+ Requires-Dist: django-extensions>=3.2.3
25
+ Requires-Dist: django-filter>=25.1
26
+ Requires-Dist: django-modeltranslation>=0.19.16
27
+ Requires-Dist: django>=5.2.4
28
+ Requires-Dist: djangorestframework>=3.16.1
29
+ Requires-Dist: dotenv>=0.9.9
30
+ Requires-Dist: faker>=37.6.0
31
+ Requires-Dist: flake8>=7.3.0
32
+ Requires-Dist: gunicorn>=23.0.0
33
+ Requires-Dist: icecream>=2.1.4
34
+ Requires-Dist: librosa==0.11.0
35
+ Requires-Dist: llvmlite>=0.44.0
36
+ Requires-Dist: lx-anonymizer[llm,ocr]>=0.8.1
37
+ Requires-Dist: moviepy==2.2.1
38
+ Requires-Dist: mypy>=1.16.0
39
+ Requires-Dist: numpy>=2.2.3
40
+ Requires-Dist: opencv-python>=4.11.0.86
41
+ Requires-Dist: openpyxl>=3.1.5
42
+ Requires-Dist: optimum==1.26.1
43
+ Requires-Dist: pandas>=2.2.3
44
+ Requires-Dist: pillow>=11.3.0
45
+ Requires-Dist: pip>=25.2
46
+ Requires-Dist: pydantic>=2.10.6
47
+ Requires-Dist: pyjwt>=2.10.1
48
+ Requires-Dist: pytesseract>=0.3.13
49
+ Requires-Dist: pytest-cov>=6.1.1
50
+ Requires-Dist: pytest-django>=4.11.1
51
+ Requires-Dist: pytest-env>=1.1.5
52
+ Requires-Dist: pytest>=8.3.5
53
+ Requires-Dist: python-ffmpeg>=2.0.12
54
+ Requires-Dist: python-magic>=0.4.27
55
+ Requires-Dist: pytorch-lightning>=2.5.1
56
+ Requires-Dist: pyyaml>=6.0.2
57
+ Requires-Dist: regex>=2024.11.6
58
+ Requires-Dist: requests>=2.32.3
59
+ Requires-Dist: ruff>=0.14.0
60
+ Requires-Dist: scikit-learn>=1.5.2
61
+ Requires-Dist: scipy>=1.16.1
62
+ Requires-Dist: soundfile==0.12.1
63
+ Requires-Dist: sphinx-rtd-theme>=3.0.2
64
+ Requires-Dist: sphinx>=8.2.3
65
+ Requires-Dist: tesseract>=0.1.3
66
+ Requires-Dist: torch==2.5.1
67
+ Requires-Dist: torchaudio==2.5.1
68
+ Requires-Dist: torchvision==0.20.1
69
+ Requires-Dist: tqdm>=4.67.0
70
+ Requires-Dist: transformers==4.44.2
71
+ Requires-Dist: twine>=6.2.0
72
+ Requires-Dist: urllib3>=2.2.3
73
+ Requires-Dist: vector-quantize-pytorch==1.18.5
74
+ Requires-Dist: vocos==0.1.0
75
+ Requires-Dist: whitenoise>=6.10.0
76
+ Provides-Extra: dev
77
+ Description-Content-Type: text/markdown
78
+
79
+ # EndoregDB - Professional Data Infrastructure for Clinical Research
80
+
81
+ EndoregDB is a comprehensive database framework designed to manage medical and research-related data for clinical trials. This repository focuses on efficient data processing, automated deployment, security, and reproducibility, offering a flexible setup for local development environments as well as distributed systems. It supports the integration of AI/ML tools and advanced image and report processing.
82
+
83
+ This infrastructure was originally designed for clinical research studies and is optimized for handling large data volumes, including:
84
+
85
+ - Medical reports,
86
+ - Patient imaging and video data,
87
+ - Clinical product and treatment data,
88
+ and more.
89
+
90
+ ## 🚀 Key Features
91
+
92
+ ### System Architecture
93
+
94
+ - **Modular Design**: Built on scalable and reusable components to simplify integration into various environments.
95
+ - **Multi-System Support**: Manages configurations for local workstations and production servers.
96
+ - **Role-Specific Configuration**: Predefined roles for common use cases:
97
+ - Medical data processing systems
98
+ - AI/ML model deployment
99
+ - Research workstation configuration
100
+
101
+ ### Security & Data Management
102
+
103
+ - **Data Encryption**: All sensitive data is encrypted, and privacy policies are enforced.
104
+ - **Impermanence**: Stateless system configuration with persistence for critical data.
105
+ - **Access Control**: Role-based access and identity management integration.
106
+
107
+ ### Data and Processing Environment
108
+
109
+ - **Data Processing**: Optimized for processing medical datasets with preprocessing tools.
110
+ - **AI/ML Support**:
111
+ - Integration of machine learning tools for predictive analysis.
112
+ - TensorFlow, PyTorch, and other frameworks supported for model training.
113
+ - **Image/Video Processing**: Support for analyzing patient images and clinical videos.
114
+
115
+ ### Development Tools & Infrastructure
116
+
117
+ - **Data Science Toolchains**: Pre-configured environments for data processing, analysis, and visualization.
118
+ - **Monitoring & Logging**: Setup for continuous monitoring and logging to ensure system stability and performance.
119
+
120
+ ---
121
+
122
+ ## 🛠 Getting Started
123
+
124
+ ### Prerequisites
125
+
126
+ - A Linux-based system (Ubuntu/Debian recommended) or NixOS
127
+ - Hardware with sufficient storage for data processing (at least 1 TB recommended)
128
+
129
+ ### Quick Start
130
+
131
+ 1. Clone the repository:
132
+
133
+ ```bash
134
+ git clone https://github.com/wg-lux/endoreg-db.git
135
+ cd endoreg-db
136
+ ```
137
+
138
+ 2. Set up your Python environment
139
+ We need to have a `devenv.nix` file.
140
+ This Nix `devenv.nix` configuration sets up a Python development environment for a Django-based project using `uv` for dependency management. It defines project directories, environment variables, runtime packages, and several development tasks and scripts.
141
+
142
+ **Some available Test Shortcuts**
143
+
144
+ - `runtests`: Runs all tests — `uv run python runtests.py`
145
+ - `runtests-dataloader`: Runs dataloader tests — `uv run python runtests.py 'dataloader'`
146
+ - `runtests-other`: Runs other miscellaneous tests — `uv run python runtests.py 'other'`
147
+ - `runtests-helpers`: Runs helper module tests — `uv run python runtests.py 'helpers'`
148
+ - `runtests-administration`: Runs admin module tests — `uv run python runtests.py 'administration'`
149
+ - `runtests-medical`: Runs medical module tests — `uv run python runtests.py 'medical'`
150
+
151
+ 3. Then run
152
+
153
+ ```bash
154
+ direnv allow
155
+ ```
156
+
157
+ 4. Run tests:
158
+ Call Devenv Script to run tests
159
+
160
+ ```bash
161
+ runtests
162
+ ```
163
+ Tests Overview
164
+ - These tests ensure the functionality of different models and scenarios.
165
+ - After running them, you can view the results as demonstrated in the image below:
166
+
167
+ ![Test Results](Images/testscreenshort.png)
168
+
169
+ 5. Run
170
+ ```python
171
+ python manage.py migrate
172
+
173
+ ```
174
+ - It applies database migrations and make tables.
175
+ - It updates your database schema to match the current state of your Django models.
176
+
177
+ 6. To load the database data run
178
+ ```
179
+ python manage.py load_base_db_data
180
+
181
+ ```
182
+ ![Data](Images/loadbasedata0.png)
183
+ ![Data](Images/loadbasedata1.png)
184
+ ![Data](Images/loadbasedata2.png)
185
+ ![Data](Images/loadbasedata3.png)
186
+ ![Data](Images/loadbasedata4.png)
187
+ ![Data](Images/loadbasedata4b.png)
188
+ ![Data](Images/loadbasedata5.png)
189
+
190
+ 7. Accessing the Django Shell
191
+ - To fetch or interact with data in the terminal, run the following command to run the Django shell:
192
+
193
+ ```bash
194
+ python manage.py shell
195
+ ```
196
+ - Using the Django shell, you can:
197
+ - Import database models
198
+ - Fetch data from the database
199
+ - Access related data through model relationships (e.g., foreign keys, one-to-many, many-to-many)
200
+ - Example is shown below
201
+
202
+ #### EXAMPLE # 1
203
+ ![Shell](Images/shell2.png)
204
+ - Explanation:
205
+ This script fetches a patient by ID and prints their related examination(s) using Django ORM. It retrieves the examination name linked to the patient from the PatientExamination table.
206
+
207
+ #### EXAMPLE # 2
208
+ ![Shell](Images/shell0.png)
209
+ - Explanation:
210
+ In the Django shell, a specific ExaminationIndication named "colonoscopy_screening" was fetched, and its related FindingIntervention records were accessed using the reverse relation expected_interventions. The first intervention (colon_lesion_polypectomy_cold_snare) was then queried to confirm it is also linked to multiple indications, demonstrating a many-to-many relationship between indications and interventions.
211
+
212
+ #### EXAMPLE # 3
213
+ ![Shell](Images/shell1.png)
214
+ - Explanation:
215
+ All required labels (polyp, instrument, digital_chromo_endoscopy, etc.) are confirmed to exist. The first available video (VideoFile) was loaded, with a valid frame_dir. Using the label "polyp", 8 labeled polyp segments were found in that video, with specific start and end frame numbers.
216
+
217
+ #### EXAMPLE # 4
218
+ ##### Image a
219
+
220
+ ![Shell](Images/shell3.png)
221
+
222
+ ##### Image b - All classifications with their choices together
223
+
224
+ ![Shell](Images/shell3b.png)
225
+
226
+ - Explanation: Using the Django shell to fetch all morphology classifications (e.g., NICE, Paris) and their related choices from the database.
227
+
228
+
229
+
230
+
231
+ ---
232
+ ## 📦 Database Backup and Restore
233
+
234
+ This project includes two shell scripts to **export** and **import** database data in JSON format using Django's management commands.
235
+
236
+ ### Setup
237
+
238
+ First, make the scripts executable:
239
+
240
+ ```bash
241
+ chmod +x import_db.sh
242
+ chmod +x export_db.sh
243
+ ```
244
+ ### Export (Backup) the Database
245
+
246
+ To export the current database into a JSON file:
247
+
248
+ ```bash
249
+ ./export_db.sh
250
+ ```
251
+ This will create a backup file such as `endoreg_db_backup.json`.
252
+
253
+ #### List of the comands in 'export_db.sh'
254
+ 1. `python manage.py dumpdata --indent 4 --output=endoreg_db_backup.json` (if migrate comand generates and stores data in database table then wee nee dto exclude those tables from dumping)
255
+
256
+ 2. `python manage.py shell < fix_endoreg_db_backup_json.py`
257
+
258
+ ### Import (Restore) the Database
259
+
260
+ To load the data back into the database
261
+ ```bash
262
+ ./import_db.sh
263
+ ```
264
+ #### List of the comands in 'import_db.sh'
265
+ 1. `rm dev_db.sqlite3`
266
+ 2. `python manage.py migrate`
267
+ 3. `python manage.py shell < fix_endoreg_db_backup_json.py`
268
+ 4. `python manage.py loaddata endoreg_db_backup_fixed.json`
269
+
270
+ ---
271
+
272
+
273
+
274
+ ## 📁 Repository Structure
275
+
276
+ ```
277
+ endoreg-db/
278
+ ├── endoreg_db/ # Main Django app for medical data
279
+ │ ├── case_generator/ # Sample case generator
280
+ │ ├── data/ # Medical knowledge base
281
+ │ ├── management/ # Data wrangling operations
282
+ │ ├── models/ # Data models
283
+ │ ├── migrations/ # Database migrations
284
+ │ └── serializers/ # Serializers for data
285
+ ├── .gitignore # Git ignore file for unnecessary files
286
+ └── README.md # Project description and setup instructions
287
+ ```
288
+
289
+ ---
290
+
291
+ ## 🔒 Security Features
292
+
293
+ - **Data Encryption**: All sensitive patient data is encrypted.
294
+ - **Role-Based Access Control**: Configurable roles for managing access to various parts of the system.
295
+ - **Logging & Auditing**: Comprehensive logging system that tracks user activities and data changes.
296
+
297
+ ---
298
+
299
+ ## 🖥️ Supported Systems
300
+
301
+ - **Workstations**: Local development or research workstations with low data processing demands.
302
+ - **Servers**: Scalable server infrastructure for processing large data volumes, integrated with cloud services for scalability.
303
+
304
+ ---
305
+
306
+ ## 🛟 Support
307
+
308
+ For issues and questions:
309
+
310
+ - Create an issue in the repository
311
+ - Review the Deployment Guide for common issues
312
+
313
+ ---
314
+
315
+ ## 📜 License
316
+
317
+ MIT - see LICENSE
318
+
319
+ ---
320
+
321
+
322
+ ## 📖 Further Documentation
323
+
324
+ All extended documentation lives in the project **Wiki** → **[Browse the Wiki »](https://github.com/wg-lux/endoreg-db/wiki)**
325
+
326
+ ### Optimization Documentation
327
+ - [Complete Optimization Project Report](https://github.com/wg-lux/endoreg-db/wiki/Complete-Optimiztion-Project-Report)
328
+ - [Test Performance Optimization Guide](https://github.com/wg-lux/endoreg-db/wiki/Test-Performance-Optimization-Guide)
329
+ - [Test Performance Optimization - Success Summary](https://github.com/wg-lux/endoreg-db/wiki/Test-Performance-Optimization-‐-Succes-Summary)
330
+ - [Test Performance Optimization: Complete Implementation Summary](https://github.com/wg-lux/endoreg-db/wiki/Test-Performance-Optimization:-Complete-Implementation-Summary)
331
+ - [Test Suite Optimization - Final Status Report](https://github.com/wg-lux/endoreg-db/wiki/Test-Suite-Optimization-‐-Final-Status-Report)
332
+ - [Test Suite Analysis & Optimization Plan](https://github.com/wg-lux/endoreg-db/wiki/Test-Suite-Analysis-&-Optimization-Plan)
333
+
334
+ ---
335
+
336
+ ### Models and Migration Documentation
337
+ - [Models Documentation](https://github.com/wg-lux/endoreg-db/wiki/Models-Documentation)
338
+ - [Test Migration & Optimization Report](https://github.com/wg-lux/endoreg-db/wiki/Test-Migration-&-Optimization-Report)
339
+ - [Test Migration Success Summary](https://github.com/wg-lux/endoreg-db/wiki/Test-Migration-Success-Summary)
340
+ - [Test Optimization Migration Guide](https://github.com/wg-lux/endoreg-db/wiki/Test-Optimization-Migration-Guide)
341
+
342
+ ---
343
+
344
+ ### API Documentation
345
+ - [Upload API Documentation](https://github.com/wg-lux/endoreg-db/wiki/Upload-API-Documentation)
346
+
347
+ ---
348
+
349
+ ### Frame-Anonymisierung
350
+ - [Frame-Anonymisierung](https://github.com/wg-lux/endoreg-db/wiki/Frame-Anonymisierung)
351
+
352
+ ---
353
+
354
+ ### Tutorials Documentation
355
+ - [Run Production Server](https://github.com/wg-lux/endoreg-db/wiki/Run-Production-Server)
356
+ - [Date and Time Standardization for Models](https://github.com/wg-lux/endoreg-db/wiki/Date-and-Time-Standardization-for-Models)
357
+
358
+ ---
359
+
360
+ ### Keycloak
361
+ - [How to Create a New Account for Keycloak + Nextcloud](https://github.com/wg-lux/endoreg-db/wiki/How-to-Create-a-New-Account-for-Keycloak-+-Nextcloud)
362
+ - [Integration with the frontend](https://github.com/wg-lux/endoreg-db/wiki/Integration-with-the-frontend)
363
+ - [Merging Multi-User Accounts in Nextcloud // current options](https://github.com/wg-lux/endoreg-db/wiki/Merging-Multi-User-Accounts-in-Nextcloud-//-current-options)
364
+ - [New user login steps for keycloak and nextcloud](https://github.com/wg-lux/endoreg-db/wiki/New-user-login-steps-for-keycloak-and-nextcloud)
365
+ - [keycloak integration with backend endpoint](https://github.com/wg-lux/endoreg-db/wiki/keycloak-integration-with-backend-endpoint)
366
+
367
+ ---
368
+
369
+ ### Coding Principles & Practices
370
+ - [Timestamp Naming Standard](https://github.com/wg-lux/endoreg-db/wiki/Timestamp-Naming-Standard)
371
+
372
+ ---
373
+
374
+ ### Figures
375
+ - [Coloreg](https://github.com/wg-lux/endoreg-db/wiki/Coloreg)
376
+ - [EndoReg Framework](https://github.com/wg-lux/endoreg-db/wiki/EndoReg-Framework)
377
+ - [EndoReg Data Collection Workflow](https://github.com/wg-lux/endoreg-db/wiki/EndoReg-Data-Collection-Workflow)
378
+ - [Eine gemeinsame Datenplattform für Klinik & Forschung](https://github.com/wg-lux/endoreg-db/wiki/Eine-gemeinsame-Datenplattform-für-Klinik-&-Forschung)
379
+
380
+ ---
381
+
382
+ ### Miscellaneous
383
+ - [Requirement System Guide](https://github.com/wg-lux/endoreg-db/wiki/Requirement-System-Guide)
384
+ - [Official Site Link](https://github.com/wg-lux/endoreg-db/wiki/Official-Site-Link)