endoreg-db 0.5.3__tar.gz → 0.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of endoreg-db might be problematic. Click here for more details.

Files changed (567) hide show
  1. endoreg_db-0.6.1/.envrc +3 -0
  2. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/.gitignore +10 -2
  3. endoreg_db-0.6.1/.pylintrc +14 -0
  4. endoreg_db-0.6.1/.python-version +1 -0
  5. endoreg_db-0.6.1/PKG-INFO +151 -0
  6. endoreg_db-0.6.1/README.md +121 -0
  7. endoreg_db-0.6.1/dev/cg.py +9 -0
  8. endoreg_db-0.6.1/dev/explore_legacy_frames.py +108 -0
  9. endoreg_db-0.6.1/dev/test_model.py +3 -0
  10. endoreg_db-0.6.1/dev/video_utils.py +46 -0
  11. endoreg_db-0.6.1/devenv.lock +183 -0
  12. endoreg_db-0.6.1/devenv.nix +61 -0
  13. endoreg_db-0.6.1/devenv.yaml +11 -0
  14. endoreg_db-0.6.1/endoreg_db/admin.py +92 -0
  15. endoreg_db-0.6.1/endoreg_db/case_generator/case_generator.py +159 -0
  16. endoreg_db-0.6.1/endoreg_db/case_generator/lab_sample_factory.py +33 -0
  17. endoreg_db-0.6.1/endoreg_db/case_generator/utils.py +30 -0
  18. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/__init__.py +50 -4
  19. endoreg_db-0.6.1/endoreg_db/data/ai_model/data.yaml +7 -0
  20. {endoreg_db-0.5.3/endoreg_db/data/label → endoreg_db-0.6.1/endoreg_db/data/ai_model_label}/label/data.yaml +27 -1
  21. endoreg_db-0.6.1/endoreg_db/data/ai_model_label/label-set/data.yaml +21 -0
  22. endoreg_db-0.6.1/endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +5 -0
  23. endoreg_db-0.6.1/endoreg_db/data/ai_model_video_segmentation_label/base_segmentation.yaml +176 -0
  24. endoreg_db-0.6.1/endoreg_db/data/ai_model_video_segmentation_labelset/data.yaml +20 -0
  25. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/center/data.yaml +35 -5
  26. endoreg_db-0.6.1/endoreg_db/data/contraindication/bleeding.yaml +11 -0
  27. endoreg_db-0.6.1/endoreg_db/data/distribution/numeric/data.yaml +14 -0
  28. endoreg_db-0.6.1/endoreg_db/data/endoscope/data.yaml +93 -0
  29. endoreg_db-0.6.1/endoreg_db/data/examination_indication/endoscopy.yaml +8 -0
  30. endoreg_db-0.6.1/endoreg_db/data/examination_indication_classification/endoscopy.yaml +8 -0
  31. endoreg_db-0.6.1/endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +101 -0
  32. endoreg_db-0.6.1/endoreg_db/data/finding/data.yaml +141 -0
  33. endoreg_db-0.6.1/endoreg_db/data/finding_intervention/endoscopy.yaml +138 -0
  34. endoreg_db-0.6.1/endoreg_db/data/finding_intervention_type/endoscopy.yaml +15 -0
  35. endoreg_db-0.6.1/endoreg_db/data/finding_location_classification/colonoscopy.yaml +46 -0
  36. endoreg_db-0.6.1/endoreg_db/data/finding_location_classification_choice/colonoscopy.yaml +240 -0
  37. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification/colonoscopy.yaml +48 -0
  38. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_circularity_default.yaml +34 -0
  39. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_nice.yaml +20 -0
  40. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_paris.yaml +65 -0
  41. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_planarity_default.yaml +56 -0
  42. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_choice/colon_lesion_surface_intact_default.yaml +39 -0
  43. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_choice/colonoscopy_size.yaml +57 -0
  44. endoreg_db-0.6.1/endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +79 -0
  45. endoreg_db-0.6.1/endoreg_db/data/finding_type/data.yaml +30 -0
  46. endoreg_db-0.6.1/endoreg_db/data/gender/data.yaml +35 -0
  47. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/cardiac_enzymes.yaml +7 -1
  48. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/coagulation.yaml +6 -1
  49. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/electrolytes.yaml +39 -1
  50. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/gastrointestinal_function.yaml +12 -0
  51. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/hematology.yaml +17 -2
  52. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/hormones.yaml +6 -0
  53. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/lipids.yaml +12 -3
  54. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/misc.yaml +5 -2
  55. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/lab_value/renal_function.yaml +2 -1
  56. endoreg_db-0.6.1/endoreg_db/data/lx_client_tag/base.yaml +54 -0
  57. endoreg_db-0.6.1/endoreg_db/data/lx_client_type/base.yaml +30 -0
  58. endoreg_db-0.6.1/endoreg_db/data/lx_permission/base.yaml +24 -0
  59. endoreg_db-0.6.1/endoreg_db/data/lx_permission/endoreg.yaml +52 -0
  60. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_indication/anticoagulation.yaml +44 -49
  61. endoreg_db-0.6.1/endoreg_db/data/names_first/first_names.yaml +51 -0
  62. endoreg_db-0.6.1/endoreg_db/data/names_last/last_names.yaml +51 -0
  63. endoreg_db-0.6.1/endoreg_db/data/network_device/data.yaml +59 -0
  64. endoreg_db-0.6.1/endoreg_db/data/organ/data.yaml +29 -0
  65. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/pdf_type/data.yaml +2 -1
  66. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +4 -0
  67. endoreg_db-0.6.1/endoreg_db/forms/__init__.py +5 -0
  68. endoreg_db-0.6.1/endoreg_db/forms/examination_form.py +11 -0
  69. endoreg_db-0.6.1/endoreg_db/forms/patient_finding_intervention_form.py +19 -0
  70. endoreg_db-0.6.1/endoreg_db/forms/patient_form.py +26 -0
  71. endoreg_db-0.6.1/endoreg_db/management/commands/load_ai_model_data.py +79 -0
  72. endoreg_db-0.6.1/endoreg_db/management/commands/load_ai_model_label_data.py +59 -0
  73. endoreg_db-0.6.1/endoreg_db/management/commands/load_base_db_data.py +178 -0
  74. endoreg_db-0.5.3/endoreg_db/management/commands/load_disease_data.py → endoreg_db-0.6.1/endoreg_db/management/commands/load_contraindication_data.py +3 -2
  75. endoreg_db-0.6.1/endoreg_db/management/commands/load_disease_data.py +62 -0
  76. endoreg_db-0.5.3/endoreg_db/management/commands/load_endoscope_type_data.py → endoreg_db-0.6.1/endoreg_db/management/commands/load_endoscope_data.py +30 -7
  77. endoreg_db-0.6.1/endoreg_db/management/commands/load_examination_indication_data.py +65 -0
  78. endoreg_db-0.6.1/endoreg_db/management/commands/load_finding_data.py +171 -0
  79. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_lab_value_data.py +3 -3
  80. endoreg_db-0.6.1/endoreg_db/management/commands/load_lx_data.py +64 -0
  81. endoreg_db-0.6.1/endoreg_db/management/commands/load_medication_data.py +103 -0
  82. endoreg_db-0.6.1/endoreg_db/management/commands/load_name_data.py +37 -0
  83. endoreg_db-0.6.1/endoreg_db/management/commands/load_organ_data.py +43 -0
  84. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/migrations/0001_initial.py +1206 -728
  85. endoreg_db-0.6.1/endoreg_db/migrations/0002_alter_frame_image_alter_rawframe_image.py +23 -0
  86. endoreg_db-0.6.1/endoreg_db/migrations/0003_alter_frame_image_alter_rawframe_image.py +23 -0
  87. endoreg_db-0.6.1/endoreg_db/migrations/0004_alter_rawvideofile_file_alter_video_file.py +25 -0
  88. endoreg_db-0.6.1/endoreg_db/migrations/0005_rawvideofile_frame_count_and_more.py +33 -0
  89. endoreg_db-0.6.1/endoreg_db/migrations/0006_frame_extracted_rawframe_extracted.py +23 -0
  90. endoreg_db-0.6.1/endoreg_db/migrations/0007_rename_pseudo_patient_video_patient_and_more.py +24 -0
  91. endoreg_db-0.6.1/endoreg_db/migrations/0008_remove_reportfile_patient_examination_and_more.py +48 -0
  92. endoreg_db-0.6.1/endoreg_db/models/__init__.py +376 -0
  93. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/ai_model/__init__.py +1 -0
  94. endoreg_db-0.6.1/endoreg_db/models/ai_model/ai_model.py +103 -0
  95. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/__init__.py +3 -0
  96. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/inference_dataset.py +53 -0
  97. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/multilabel_classification_net.py +155 -0
  98. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/postprocess.py +53 -0
  99. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/predict.py +172 -0
  100. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/prediction_visualizer.py +55 -0
  101. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/preprocess.py +68 -0
  102. endoreg_db-0.6.1/endoreg_db/models/ai_model/lightning/run_visualizer.py +21 -0
  103. endoreg_db-0.6.1/endoreg_db/models/ai_model/model_meta.py +250 -0
  104. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/ai_model/model_type.py +13 -3
  105. endoreg_db-0.6.1/endoreg_db/models/annotation/__init__.py +32 -0
  106. endoreg_db-0.6.1/endoreg_db/models/annotation/anonymized_image_annotation.py +115 -0
  107. endoreg_db-0.6.1/endoreg_db/models/annotation/binary_classification_annotation_task.py +117 -0
  108. endoreg_db-0.6.1/endoreg_db/models/annotation/image_classification.py +86 -0
  109. endoreg_db-0.6.1/endoreg_db/models/annotation/video_segmentation_annotation.py +52 -0
  110. endoreg_db-0.6.1/endoreg_db/models/annotation/video_segmentation_labelset.py +20 -0
  111. endoreg_db-0.6.1/endoreg_db/models/case/__init__.py +1 -0
  112. {endoreg_db-0.5.3/endoreg_db/models/persons/patient → endoreg_db-0.6.1/endoreg_db/models}/case/case.py +4 -0
  113. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/case_template/__init__.py +10 -1
  114. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/case_template/case_template.py +57 -13
  115. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/case_template/case_template_rule.py +5 -5
  116. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/case_template/case_template_rule_value.py +19 -4
  117. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/center/__init__.py +7 -0
  118. endoreg_db-0.6.1/endoreg_db/models/center/center.py +51 -0
  119. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/center/center_product.py +0 -1
  120. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/center/center_resource.py +16 -2
  121. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/center/center_waste.py +6 -1
  122. endoreg_db-0.5.3/endoreg_db/models/examination/examination_time_type.py → endoreg_db-0.6.1/endoreg_db/models/contraindication/__init__.py +9 -12
  123. endoreg_db-0.6.1/endoreg_db/models/data_file/__init__.py +39 -0
  124. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/__init__.py +7 -0
  125. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/abstract_frame.py +100 -0
  126. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/abstract_pdf.py +136 -0
  127. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/abstract_video.py +807 -0
  128. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/frame_helpers.py +17 -0
  129. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/prepare_bulk_frames.py +19 -0
  130. endoreg_db-0.6.1/endoreg_db/models/data_file/base_classes/utils.py +80 -0
  131. endoreg_db-0.6.1/endoreg_db/models/data_file/frame.py +29 -0
  132. endoreg_db-0.6.1/endoreg_db/models/data_file/import_classes/__init__.py +18 -0
  133. endoreg_db-0.6.1/endoreg_db/models/data_file/import_classes/raw_pdf.py +260 -0
  134. endoreg_db-0.6.1/endoreg_db/models/data_file/import_classes/raw_video.py +288 -0
  135. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/metadata/__init__.py +10 -0
  136. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/metadata/pdf_meta.py +4 -0
  137. endoreg_db-0.6.1/endoreg_db/models/data_file/metadata/sensitive_meta.py +290 -0
  138. endoreg_db-0.6.1/endoreg_db/models/data_file/metadata/video_meta.py +199 -0
  139. endoreg_db-0.6.1/endoreg_db/models/data_file/report_file.py +56 -0
  140. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/video/__init__.py +6 -2
  141. endoreg_db-0.6.1/endoreg_db/models/data_file/video/video.py +196 -0
  142. endoreg_db-0.6.1/endoreg_db/models/data_file/video_segment.py +214 -0
  143. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/disease.py +25 -2
  144. endoreg_db-0.6.1/endoreg_db/models/emission/__init__.py +5 -0
  145. endoreg_db-0.6.1/endoreg_db/models/emission/emission_factor.py +85 -0
  146. endoreg_db-0.6.1/endoreg_db/models/event.py +73 -0
  147. endoreg_db-0.6.1/endoreg_db/models/examination/__init__.py +9 -0
  148. endoreg_db-0.6.1/endoreg_db/models/examination/examination.py +67 -0
  149. endoreg_db-0.6.1/endoreg_db/models/examination/examination_indication.py +170 -0
  150. endoreg_db-0.6.1/endoreg_db/models/examination/examination_time.py +53 -0
  151. endoreg_db-0.6.1/endoreg_db/models/examination/examination_time_type.py +48 -0
  152. endoreg_db-0.6.1/endoreg_db/models/examination/examination_type.py +40 -0
  153. endoreg_db-0.6.1/endoreg_db/models/finding/__init__.py +11 -0
  154. endoreg_db-0.6.1/endoreg_db/models/finding/finding.py +75 -0
  155. endoreg_db-0.6.1/endoreg_db/models/finding/finding_intervention.py +60 -0
  156. endoreg_db-0.6.1/endoreg_db/models/finding/finding_location_classification.py +94 -0
  157. endoreg_db-0.6.1/endoreg_db/models/finding/finding_morphology_classification.py +89 -0
  158. endoreg_db-0.5.3/endoreg_db/models/examination/examination_type.py → endoreg_db-0.6.1/endoreg_db/models/finding/finding_type.py +10 -6
  159. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/hardware/endoscope.py +16 -0
  160. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/hardware/endoscopy_processor.py +31 -19
  161. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/label/label.py +35 -7
  162. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/laboratory/lab_value.py +12 -3
  163. endoreg_db-0.6.1/endoreg_db/models/logging/__init__.py +11 -0
  164. endoreg_db-0.6.1/endoreg_db/models/lx/__init__.py +4 -0
  165. endoreg_db-0.6.1/endoreg_db/models/lx/client.py +57 -0
  166. endoreg_db-0.6.1/endoreg_db/models/lx/identity.py +34 -0
  167. endoreg_db-0.6.1/endoreg_db/models/lx/permission.py +18 -0
  168. endoreg_db-0.6.1/endoreg_db/models/lx/user.py +16 -0
  169. endoreg_db-0.6.1/endoreg_db/models/medication/__init__.py +19 -0
  170. endoreg_db-0.6.1/endoreg_db/models/medication/medication.py +33 -0
  171. endoreg_db-0.6.1/endoreg_db/models/medication/medication_indication.py +50 -0
  172. endoreg_db-0.6.1/endoreg_db/models/medication/medication_indication_type.py +34 -0
  173. endoreg_db-0.6.1/endoreg_db/models/medication/medication_intake_time.py +26 -0
  174. endoreg_db-0.6.1/endoreg_db/models/medication/medication_schedule.py +37 -0
  175. endoreg_db-0.6.1/endoreg_db/models/network/__init__.py +9 -0
  176. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/network/network_device.py +13 -8
  177. endoreg_db-0.6.1/endoreg_db/models/organ/__init__.py +38 -0
  178. endoreg_db-0.6.1/endoreg_db/models/other/__init__.py +23 -0
  179. endoreg_db-0.6.1/endoreg_db/models/other/distribution/__init__.py +44 -0
  180. endoreg_db-0.6.1/endoreg_db/models/other/distribution/base_value_distribution.py +20 -0
  181. endoreg_db-0.6.1/endoreg_db/models/other/distribution/date_value_distribution.py +91 -0
  182. endoreg_db-0.6.1/endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +32 -0
  183. endoreg_db-0.6.1/endoreg_db/models/other/distribution/numeric_value_distribution.py +97 -0
  184. endoreg_db-0.6.1/endoreg_db/models/other/distribution/single_categorical_value_distribution.py +22 -0
  185. endoreg_db-0.6.1/endoreg_db/models/other/distribution.py +5 -0
  186. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/other/material.py +4 -0
  187. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/other/transport_route.py +2 -1
  188. endoreg_db-0.6.1/endoreg_db/models/patient/__init__.py +24 -0
  189. endoreg_db-0.6.1/endoreg_db/models/patient/patient_examination.py +182 -0
  190. endoreg_db-0.6.1/endoreg_db/models/patient/patient_finding.py +143 -0
  191. endoreg_db-0.6.1/endoreg_db/models/patient/patient_finding_intervention.py +26 -0
  192. endoreg_db-0.6.1/endoreg_db/models/patient/patient_finding_location.py +120 -0
  193. endoreg_db-0.6.1/endoreg_db/models/patient/patient_finding_morphology.py +166 -0
  194. endoreg_db-0.6.1/endoreg_db/models/persons/__init__.py +34 -0
  195. endoreg_db-0.6.1/endoreg_db/models/persons/examiner/examiner.py +60 -0
  196. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/patient/__init__.py +1 -1
  197. endoreg_db-0.6.1/endoreg_db/models/persons/patient/patient.py +389 -0
  198. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/patient/patient_disease.py +6 -0
  199. endoreg_db-0.6.1/endoreg_db/models/persons/patient/patient_event.py +52 -0
  200. endoreg_db-0.6.1/endoreg_db/models/persons/patient/patient_examination_indication.py +32 -0
  201. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/patient/patient_lab_sample.py +4 -2
  202. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/patient/patient_lab_value.py +37 -16
  203. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/patient/patient_medication.py +27 -12
  204. endoreg_db-0.6.1/endoreg_db/models/persons/patient/patient_medication_schedule.py +88 -0
  205. endoreg_db-0.6.1/endoreg_db/models/prediction/__init__.py +8 -0
  206. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/prediction/image_classification.py +20 -6
  207. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/prediction/video_prediction_meta.py +151 -89
  208. endoreg_db-0.6.1/endoreg_db/models/product/__init__.py +14 -0
  209. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/product/product.py +15 -2
  210. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/product/product_group.py +8 -0
  211. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/product/product_material.py +4 -0
  212. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/product/product_weight.py +12 -0
  213. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/product/reference_product.py +19 -3
  214. endoreg_db-0.6.1/endoreg_db/models/quiz/__init__.py +9 -0
  215. endoreg_db-0.6.1/endoreg_db/models/report_reader/__init__.py +7 -0
  216. endoreg_db-0.6.1/endoreg_db/queries/get/video_prediction_meta.py +0 -0
  217. endoreg_db-0.6.1/endoreg_db/queries/sanity/__init_.py +0 -0
  218. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/__init__.py +1 -1
  219. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/annotation.py +2 -5
  220. endoreg_db-0.6.1/endoreg_db/serializers/frame.py +9 -0
  221. endoreg_db-0.6.1/endoreg_db/serializers/patient.py +33 -0
  222. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/prediction.py +2 -7
  223. endoreg_db-0.6.1/endoreg_db/serializers/raw_video_meta_validation.py +13 -0
  224. endoreg_db-0.6.1/endoreg_db/serializers/video.py +20 -0
  225. endoreg_db-0.6.1/endoreg_db/serializers/video_segmentation.py +492 -0
  226. endoreg_db-0.6.1/endoreg_db/templates/admin/patient_finding_intervention.html +253 -0
  227. endoreg_db-0.6.1/endoreg_db/templates/admin/start_examination.html +12 -0
  228. endoreg_db-0.6.1/endoreg_db/templates/timeline.html +176 -0
  229. endoreg_db-0.6.1/endoreg_db/urls.py +173 -0
  230. endoreg_db-0.6.1/endoreg_db/utils/__init__.py +36 -0
  231. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/utils/dataloader.py +45 -19
  232. endoreg_db-0.6.1/endoreg_db/utils/dates.py +39 -0
  233. endoreg_db-0.6.1/endoreg_db/utils/hashs.py +152 -0
  234. endoreg_db-0.6.1/endoreg_db/utils/names.py +74 -0
  235. endoreg_db-0.6.1/endoreg_db/utils/parse_and_generate_yaml.py +46 -0
  236. endoreg_db-0.6.1/endoreg_db/utils/pydantic_models/__init__.py +6 -0
  237. endoreg_db-0.6.1/endoreg_db/utils/pydantic_models/db_config.py +57 -0
  238. endoreg_db-0.6.1/endoreg_db/utils/validate_endo_roi.py +19 -0
  239. endoreg_db-0.6.1/endoreg_db/utils/validate_subcategory_dict.py +91 -0
  240. endoreg_db-0.6.1/endoreg_db/utils/video/__init__.py +13 -0
  241. endoreg_db-0.6.1/endoreg_db/utils/video/extract_frames.py +121 -0
  242. endoreg_db-0.6.1/endoreg_db/utils/video/transcode_videofile.py +111 -0
  243. endoreg_db-0.6.1/endoreg_db/views/__init__.py +2 -0
  244. endoreg_db-0.6.1/endoreg_db/views/csrf.py +7 -0
  245. endoreg_db-0.6.1/endoreg_db/views/patient_views.py +90 -0
  246. endoreg_db-0.6.1/endoreg_db/views/raw_video_meta_validation_views.py +38 -0
  247. endoreg_db-0.6.1/endoreg_db/views/report_views.py +96 -0
  248. endoreg_db-0.6.1/endoreg_db/views/video_segmentation_views.py +149 -0
  249. endoreg_db-0.6.1/endoreg_db/views/views_for_timeline.py +46 -0
  250. endoreg_db-0.6.1/endoreg_db/views.py +0 -0
  251. endoreg_db-0.6.1/hello.py +58 -0
  252. endoreg_db-0.6.1/install_dependencies.py +31 -0
  253. endoreg_db-0.6.1/logs/2024-12-01_15-37-07.txt +1 -0
  254. endoreg_db-0.6.1/logs/2024-12-01_15-37-45.txt +1 -0
  255. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/pyproject.toml +14 -24
  256. endoreg_db-0.6.1/requirements-cpu.txt +61 -0
  257. endoreg_db-0.6.1/requirements-gpu.txt +76 -0
  258. endoreg_db-0.6.1/runtests.py +15 -0
  259. endoreg_db-0.6.1/teeeests_for_later/case_template/__init__.py +0 -0
  260. endoreg_db-0.6.1/teeeests_for_later/case_template/_test_main_template.py +70 -0
  261. endoreg_db-0.6.1/teeeests_for_later/center/__init__.py +0 -0
  262. endoreg_db-0.6.1/teeeests_for_later/center/test_center.py +12 -0
  263. endoreg_db-0.6.1/teeeests_for_later/center/test_green_endoscopy.py +17 -0
  264. endoreg_db-0.6.1/tests/__init__.py +0 -0
  265. endoreg_db-0.6.1/tests/center/__init__.py +0 -0
  266. endoreg_db-0.6.1/tests/center/conf.py +18 -0
  267. endoreg_db-0.6.1/tests/center/test_center.py +61 -0
  268. endoreg_db-0.6.1/tests/center/test_hardware.py +90 -0
  269. endoreg_db-0.6.1/tests/datafiles/__init__.py +0 -0
  270. endoreg_db-0.6.1/tests/datafiles/conf.py +56 -0
  271. endoreg_db-0.6.1/tests/datafiles/test_ai_model.py +180 -0
  272. endoreg_db-0.6.1/tests/datafiles/test_pdf.py +90 -0
  273. endoreg_db-0.6.1/tests/datafiles/test_video_import.py +142 -0
  274. endoreg_db-0.6.1/tests/luxnix/__init__.py +0 -0
  275. endoreg_db-0.6.1/tests/luxnix/conf.py +85 -0
  276. endoreg_db-0.6.1/tests/luxnix/test_client_permission.py +39 -0
  277. endoreg_db-0.6.1/tests/luxnix/test_client_tags.py +0 -0
  278. endoreg_db-0.6.1/tests/luxnix/test_client_types.py +33 -0
  279. endoreg_db-0.6.1/tests/management/__init__.py +0 -0
  280. endoreg_db-0.6.1/tests/management/test_load_data.py +30 -0
  281. endoreg_db-0.6.1/tests/models.py +8 -0
  282. endoreg_db-0.6.1/tests/patient/__init__.py +0 -0
  283. endoreg_db-0.6.1/tests/patient/conf.py +69 -0
  284. endoreg_db-0.6.1/tests/patient/test_patient.py +67 -0
  285. endoreg_db-0.6.1/tests/patient/test_patient_disease.py +58 -0
  286. endoreg_db-0.6.1/tests/patient/test_patient_event.py +41 -0
  287. endoreg_db-0.6.1/tests/patient/test_patient_examination.py +108 -0
  288. endoreg_db-0.6.1/tests/patient/test_patient_finding_intervention.py +96 -0
  289. endoreg_db-0.6.1/tests/patient/test_patient_findings.py +222 -0
  290. endoreg_db-0.6.1/tests/patient/test_patient_lab_sample.py +78 -0
  291. endoreg_db-0.6.1/tests/patient/test_patient_medication.py +102 -0
  292. endoreg_db-0.6.1/tests/patient/utils.py +51 -0
  293. endoreg_db-0.6.1/tests/test_settings.py +25 -0
  294. endoreg_db-0.6.1/tests/unit/__init__.py +0 -0
  295. endoreg_db-0.6.1/tests/unit/conf.py +5 -0
  296. endoreg_db-0.6.1/tests/unit/test_unit.py +25 -0
  297. endoreg_db-0.6.1/tests/utils/__init__.py +0 -0
  298. endoreg_db-0.6.1/tests/utils/test_dates.py +26 -0
  299. endoreg_db-0.6.1/uv.lock +1555 -0
  300. endoreg_db-0.5.3/.envrc +0 -1
  301. endoreg_db-0.5.3/PKG-INFO +0 -28
  302. endoreg_db-0.5.3/README.md +0 -8
  303. endoreg_db-0.5.3/_flake.nix +0 -130
  304. endoreg_db-0.5.3/_pyproject.toml +0 -33
  305. endoreg_db-0.5.3/depreceated_pip-shell.nix +0 -12
  306. endoreg_db-0.5.3/endoreg_db/admin.py +0 -3
  307. endoreg_db-0.5.3/endoreg_db/data/active_model/data.yaml +0 -3
  308. endoreg_db-0.5.3/endoreg_db/data/gender/data.yaml +0 -18
  309. endoreg_db-0.5.3/endoreg_db/data/label/label-set/data.yaml +0 -18
  310. endoreg_db-0.5.3/endoreg_db/data/network_device/data.yaml +0 -29
  311. endoreg_db-0.5.3/endoreg_db/forms/__init__.py +0 -3
  312. endoreg_db-0.5.3/endoreg_db/management/commands/delete_legacy_images.py +0 -19
  313. endoreg_db-0.5.3/endoreg_db/management/commands/delete_legacy_videos.py +0 -17
  314. endoreg_db-0.5.3/endoreg_db/management/commands/extract_legacy_video_frames.py +0 -18
  315. endoreg_db-0.5.3/endoreg_db/management/commands/import_legacy_images.py +0 -94
  316. endoreg_db-0.5.3/endoreg_db/management/commands/import_legacy_videos.py +0 -76
  317. endoreg_db-0.5.3/endoreg_db/management/commands/load_ai_model_data.py +0 -45
  318. endoreg_db-0.5.3/endoreg_db/management/commands/load_base_db_data.py +0 -136
  319. endoreg_db-0.5.3/endoreg_db/management/commands/load_endoscopy_processor_data.py +0 -45
  320. endoreg_db-0.5.3/endoreg_db/management/commands/load_label_data.py +0 -67
  321. endoreg_db-0.5.3/endoreg_db/management/commands/load_medication_data.py +0 -41
  322. endoreg_db-0.5.3/endoreg_db/migrations/0002_anonymizedimagelabel_anonymousimageannotation_and_more.py +0 -55
  323. endoreg_db-0.5.3/endoreg_db/migrations/0003_anonymousimageannotation_original_image_url_and_more.py +0 -39
  324. endoreg_db-0.5.3/endoreg_db/migrations/0004_alter_rawpdffile_file.py +0 -20
  325. endoreg_db-0.5.3/endoreg_db/migrations/0005_uploadedfile_alter_rawpdffile_file_anonymizedfile.py +0 -40
  326. endoreg_db-0.5.3/endoreg_db/migrations/0006_alter_rawpdffile_file.py +0 -20
  327. endoreg_db-0.5.3/endoreg_db/migrations/0007_networkdevicelogentry_datetime_and_more.py +0 -43
  328. endoreg_db-0.5.3/endoreg_db/migrations/0008_networkdevicelogentry_aglnet_ip_and_more.py +0 -28
  329. endoreg_db-0.5.3/endoreg_db/migrations/0009_alter_networkdevicelogentry_vpn_service_status.py +0 -18
  330. endoreg_db-0.5.3/endoreg_db/migrations/0010_remove_networkdevicelogentry_hostname.py +0 -17
  331. endoreg_db-0.5.3/endoreg_db/models/__init__.py +0 -73
  332. endoreg_db-0.5.3/endoreg_db/models/ai_model/model_meta.py +0 -24
  333. endoreg_db-0.5.3/endoreg_db/models/annotation/__init__.py +0 -3
  334. endoreg_db-0.5.3/endoreg_db/models/annotation/anonymized_image_annotation.py +0 -60
  335. endoreg_db-0.5.3/endoreg_db/models/annotation/binary_classification_annotation_task.py +0 -80
  336. endoreg_db-0.5.3/endoreg_db/models/annotation/image_classification.py +0 -27
  337. endoreg_db-0.5.3/endoreg_db/models/center/center.py +0 -25
  338. endoreg_db-0.5.3/endoreg_db/models/data_file/__init__.py +0 -6
  339. endoreg_db-0.5.3/endoreg_db/models/data_file/base_classes/__init__.py +0 -2
  340. endoreg_db-0.5.3/endoreg_db/models/data_file/base_classes/abstract_frame.py +0 -51
  341. endoreg_db-0.5.3/endoreg_db/models/data_file/base_classes/abstract_video.py +0 -201
  342. endoreg_db-0.5.3/endoreg_db/models/data_file/frame.py +0 -45
  343. endoreg_db-0.5.3/endoreg_db/models/data_file/import_classes/__init__.py +0 -32
  344. endoreg_db-0.5.3/endoreg_db/models/data_file/import_classes/raw_pdf.py +0 -188
  345. endoreg_db-0.5.3/endoreg_db/models/data_file/import_classes/raw_video.py +0 -343
  346. endoreg_db-0.5.3/endoreg_db/models/data_file/metadata/sensitive_meta.py +0 -31
  347. endoreg_db-0.5.3/endoreg_db/models/data_file/metadata/video_meta.py +0 -133
  348. endoreg_db-0.5.3/endoreg_db/models/data_file/report_file.py +0 -89
  349. endoreg_db-0.5.3/endoreg_db/models/data_file/video/video.py +0 -25
  350. endoreg_db-0.5.3/endoreg_db/models/data_file/video_segment.py +0 -107
  351. endoreg_db-0.5.3/endoreg_db/models/emission/__init__.py +0 -1
  352. endoreg_db-0.5.3/endoreg_db/models/emission/emission_factor.py +0 -20
  353. endoreg_db-0.5.3/endoreg_db/models/event.py +0 -22
  354. endoreg_db-0.5.3/endoreg_db/models/examination/__init__.py +0 -4
  355. endoreg_db-0.5.3/endoreg_db/models/examination/examination.py +0 -26
  356. endoreg_db-0.5.3/endoreg_db/models/examination/examination_time.py +0 -27
  357. endoreg_db-0.5.3/endoreg_db/models/legacy_data/__init__.py +0 -3
  358. endoreg_db-0.5.3/endoreg_db/models/legacy_data/image.py +0 -34
  359. endoreg_db-0.5.3/endoreg_db/models/logging/__init__.py +0 -4
  360. endoreg_db-0.5.3/endoreg_db/models/medication/__init__.py +0 -1
  361. endoreg_db-0.5.3/endoreg_db/models/medication/medication.py +0 -148
  362. endoreg_db-0.5.3/endoreg_db/models/network/__init__.py +0 -3
  363. endoreg_db-0.5.3/endoreg_db/models/other/__init__.py +0 -5
  364. endoreg_db-0.5.3/endoreg_db/models/other/distribution.py +0 -215
  365. endoreg_db-0.5.3/endoreg_db/models/patient_examination/__init__.py +0 -35
  366. endoreg_db-0.5.3/endoreg_db/models/persons/__init__.py +0 -7
  367. endoreg_db-0.5.3/endoreg_db/models/persons/examiner/examiner.py +0 -16
  368. endoreg_db-0.5.3/endoreg_db/models/persons/patient/patient.py +0 -216
  369. endoreg_db-0.5.3/endoreg_db/models/persons/patient/patient_event.py +0 -22
  370. endoreg_db-0.5.3/endoreg_db/models/persons/patient/patient_medication_schedule.py +0 -28
  371. endoreg_db-0.5.3/endoreg_db/models/prediction/__init__.py +0 -2
  372. endoreg_db-0.5.3/endoreg_db/models/product/__init__.py +0 -5
  373. endoreg_db-0.5.3/endoreg_db/models/quiz/__init__.py +0 -2
  374. endoreg_db-0.5.3/endoreg_db/models/report_reader/__init__.py +0 -2
  375. endoreg_db-0.5.3/endoreg_db/serializers/frame.py +0 -13
  376. endoreg_db-0.5.3/endoreg_db/serializers/patient.py +0 -10
  377. endoreg_db-0.5.3/endoreg_db/serializers/video.py +0 -27
  378. endoreg_db-0.5.3/endoreg_db/utils/__init__.py +0 -1
  379. endoreg_db-0.5.3/endoreg_db/utils/hashs.py +0 -34
  380. endoreg_db-0.5.3/endoreg_db/utils/video_metadata.py +0 -87
  381. endoreg_db-0.5.3/endoreg_db/views.py +0 -3
  382. endoreg_db-0.5.3/flake.lock +0 -72
  383. endoreg_db-0.5.3/flake.nix +0 -197
  384. endoreg_db-0.5.3/poetry.lock +0 -976
  385. endoreg_db-0.5.3/uv.lock +0 -928
  386. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/LICENSE +0 -0
  387. {endoreg_db-0.5.3/endoreg_db → endoreg_db-0.6.1/dev}/__init__.py +0 -0
  388. {endoreg_db-0.5.3/endoreg_db/migrations → endoreg_db-0.6.1/endoreg_db}/__init__.py +0 -0
  389. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/apps.py +0 -0
  390. {endoreg_db-0.5.3/endoreg_db/models/persons/patient/case → endoreg_db-0.6.1/endoreg_db/case_generator}/__init__.py +0 -0
  391. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/agl_service/data.yaml +0 -0
  392. {endoreg_db-0.5.3/endoreg_db/data/label → endoreg_db-0.6.1/endoreg_db/data/ai_model_label}/label-type/data.yaml +0 -0
  393. {endoreg_db-0.5.3/endoreg_db/data/model_type → endoreg_db-0.6.1/endoreg_db/data/ai_model_type}/data.yaml +0 -0
  394. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +0 -0
  395. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/01_patient-set-age.yaml +0 -0
  396. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +0 -0
  397. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +0 -0
  398. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +0 -0
  399. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +0 -0
  400. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule/19_create_patient.yaml +0 -0
  401. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule_type/base_types.yaml +0 -0
  402. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule_value/.init +0 -0
  403. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/rule_value_type/base_types.yaml +0 -0
  404. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/template/base.yaml +0 -0
  405. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +0 -0
  406. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/tmp/_rule_value +0 -0
  407. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +0 -0
  408. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +0 -0
  409. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +0 -0
  410. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +0 -0
  411. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +0 -0
  412. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease/cardiovascular.yaml +0 -0
  413. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease/hepatology.yaml +0 -0
  414. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease/misc.yaml +0 -0
  415. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease/renal.yaml +0 -0
  416. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +0 -0
  417. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +0 -0
  418. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +0 -0
  419. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +0 -0
  420. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/distribution/date/patient.yaml +0 -0
  421. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/distribution/multiple_categorical/.init +0 -0
  422. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/distribution/single_categorical/patient.yaml +0 -0
  423. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +0 -0
  424. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/endoscope_type/data.yaml +0 -0
  425. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/endoscopy_processor/data.yaml +0 -0
  426. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/event/cardiology.yaml +0 -0
  427. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/event/neurology.yaml +0 -0
  428. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/event/surgery.yaml +0 -0
  429. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/event/thrombembolism.yaml +0 -0
  430. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/examination/examinations/data.yaml +0 -0
  431. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/examination/time/data.yaml +0 -0
  432. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/examination/time-type/data.yaml +0 -0
  433. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/examination/type/data.yaml +0 -0
  434. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/information_source/data.yaml +0 -0
  435. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/information_source/medication.yaml +0 -0
  436. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/log_type/data.yaml +0 -0
  437. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/material/material.yaml +0 -0
  438. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication/anticoagulation.yaml +0 -0
  439. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication/tah.yaml +0 -0
  440. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_indication_type/data.yaml +0 -0
  441. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_indication_type/thrombembolism.yaml +0 -0
  442. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_intake_time/base.yaml +0 -0
  443. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_schedule/apixaban.yaml +0 -0
  444. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_schedule/ass.yaml +0 -0
  445. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/medication_schedule/enoxaparin.yaml +0 -0
  446. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/network_device_type/data.yaml +0 -0
  447. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/patient_lab_sample_type/generic.yaml +0 -0
  448. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +0 -0
  449. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +0 -0
  450. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +0 -0
  451. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +0 -0
  452. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/profession/data.yaml +0 -0
  453. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +0 -0
  454. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +0 -0
  455. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +0 -0
  456. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
  457. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
  458. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +0 -0
  459. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/concentration.yaml +0 -0
  460. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/data.yaml +0 -0
  461. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/length.yaml +0 -0
  462. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/misc.yaml +0 -0
  463. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/rate.yaml +0 -0
  464. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/time.yaml +0 -0
  465. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/volume.yaml +0 -0
  466. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/unit/weight.yaml +0 -0
  467. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/data/waste/data.yaml +0 -0
  468. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/forms/questionnaires/__init__.py +0 -0
  469. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/forms/questionnaires/tto_questionnaire.py +0 -0
  470. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/forms/settings/__init__.py +0 -0
  471. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/forms/unit.py +0 -0
  472. /endoreg_db-0.5.3/endoreg_db/data/distribution/numeric/.init → /endoreg_db-0.6.1/endoreg_db/management/__init__.py +0 -0
  473. /endoreg_db-0.5.3/endoreg_db/queries/get/annotation.py → /endoreg_db-0.6.1/endoreg_db/management/commands/__init__.py +0 -0
  474. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/_load_model_template.py +0 -0
  475. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/delete_all.py +0 -0
  476. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/fetch_legacy_image_dataset.py +0 -0
  477. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/fix_auth_permission.py +0 -0
  478. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_active_model_data.py +0 -0
  479. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_center_data.py +0 -0
  480. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_disease_classification_choices_data.py +0 -0
  481. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_disease_classification_data.py +0 -0
  482. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_distribution_data.py +0 -0
  483. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_event_data.py +0 -0
  484. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_examination_data.py +0 -0
  485. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_g_play_data.py +0 -0
  486. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_gender_data.py +0 -0
  487. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +0 -0
  488. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_information_source.py +0 -0
  489. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_logging_data.py +0 -0
  490. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_medication_indication_data.py +0 -0
  491. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_medication_indication_type_data.py +0 -0
  492. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_medication_intake_time_data.py +0 -0
  493. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_medication_schedule_data.py +0 -0
  494. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_network_data.py +0 -0
  495. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_pdf_type_data.py +0 -0
  496. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_profession_data.py +0 -0
  497. /endoreg_db-0.5.3/endoreg_db/management/commands/load_report_reader_flag.py → /endoreg_db-0.6.1/endoreg_db/management/commands/load_report_reader_flag_data.py +0 -0
  498. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_unit_data.py +0 -0
  499. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/load_user_groups.py +0 -0
  500. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/register_ai_model.py +0 -0
  501. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/management/commands/reset_celery_schedule.py +0 -0
  502. /endoreg_db-0.5.3/endoreg_db/queries/get/prediction.py → /endoreg_db-0.6.1/endoreg_db/migrations/__init__.py +0 -0
  503. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/ai_model/active_model.py +0 -0
  504. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/ai_model/utils.py +0 -0
  505. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/case_template/case_template_type.py +0 -0
  506. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +0 -0
  507. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +0 -0
  508. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/import_classes/processing_functions/video.py +0 -0
  509. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/data_file/video/import_meta.py +0 -0
  510. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/hardware/__init__.py +0 -0
  511. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/information_source.py +0 -0
  512. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/label/__init__.py +0 -0
  513. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/laboratory/__init__.py +0 -0
  514. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/logging/agl_service.py +0 -0
  515. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/logging/base.py +0 -0
  516. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/logging/log_type.py +0 -0
  517. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/logging/network_device.py +0 -0
  518. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/network/agl_service.py +0 -0
  519. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/network/network_device_type.py +0 -0
  520. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/other/resource.py +0 -0
  521. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/other/waste.py +0 -0
  522. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/permissions/__init__.py +0 -0
  523. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/examiner/__init__.py +0 -0
  524. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/examiner/examiner_type.py +0 -0
  525. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/first_name.py +0 -0
  526. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/gender.py +0 -0
  527. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/last_name.py +0 -0
  528. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/person.py +0 -0
  529. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/persons/portal_user_information.py +0 -0
  530. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/questionnaires/__init__.py +0 -0
  531. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/quiz/quiz_answer.py +0 -0
  532. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/quiz/quiz_question.py +0 -0
  533. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/report_reader/report_reader_config.py +0 -0
  534. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/report_reader/report_reader_flag.py +0 -0
  535. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/rules/__init__.py +0 -0
  536. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/rules/rule.py +0 -0
  537. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/rules/rule_applicator.py +0 -0
  538. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/rules/rule_attribute_dtype.py +0 -0
  539. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/rules/rule_type.py +0 -0
  540. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/rules/ruleset.py +0 -0
  541. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/models/unit.py +0 -0
  542. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/__init__.py +0 -0
  543. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/annotations/__init__.py +0 -0
  544. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/annotations/legacy.py +0 -0
  545. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/__init__.py +0 -0
  546. /endoreg_db-0.5.3/endoreg_db/queries/get/video_import_meta.py → /endoreg_db-0.6.1/endoreg_db/queries/get/annotation.py +0 -0
  547. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/center.py +0 -0
  548. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/model.py +0 -0
  549. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/patient.py +0 -0
  550. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/patient_examination.py +0 -0
  551. /endoreg_db-0.5.3/endoreg_db/queries/get/video_prediction_meta.py → /endoreg_db-0.6.1/endoreg_db/queries/get/prediction.py +0 -0
  552. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/report_file.py +0 -0
  553. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/queries/get/video.py +0 -0
  554. /endoreg_db-0.5.3/endoreg_db/queries/sanity/__init_.py → /endoreg_db-0.6.1/endoreg_db/queries/get/video_import_meta.py +0 -0
  555. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/ai_model.py +0 -0
  556. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/center.py +0 -0
  557. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/examination.py +0 -0
  558. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/hardware.py +0 -0
  559. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/label.py +0 -0
  560. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/serializers/report_file.py +0 -0
  561. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/tests.py +0 -0
  562. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/utils/cropping.py +0 -0
  563. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/utils/file_operations.py +0 -0
  564. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/utils/legacy_ocr.py +0 -0
  565. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/utils/ocr.py +0 -0
  566. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/endoreg_db/utils/uuid.py +0 -0
  567. {endoreg_db-0.5.3 → endoreg_db-0.6.1}/secrets/poetry.yaml +0 -0
@@ -0,0 +1,3 @@
1
+ source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k="
2
+
3
+ use devenv
@@ -2,6 +2,12 @@ result
2
2
  result/
3
3
  *result
4
4
  .ruff_cache/
5
+ .devenv
6
+ untracked_notes.md
7
+ tests/sensitive/
8
+ erc_data/
9
+ ./data/
10
+ test_reports/*
5
11
 
6
12
  # Byte-compiled / optimized / DLL files
7
13
  __pycache__/
@@ -10,9 +16,11 @@ __pycache__/
10
16
  _build
11
17
  .direnv
12
18
 
13
- ###### Do not Remove ######
19
+ .devenv.flake.nix
20
+
21
+ ###### Do not Remove ###### # Deprecated?
14
22
  # Protects temporary files from being comitted
15
- endoreg_client_manager/data/*
23
+ endoreg_client_manager/data/*
16
24
 
17
25
  # C extensions
18
26
  *.so
@@ -0,0 +1,14 @@
1
+ [MESSAGES CONTROL]
2
+ disable=
3
+ E1101,
4
+ W0611,
5
+ C0114, ; Missing module docstring
6
+ C0115, ; Missing class docstring
7
+ C0116, ; Missing function or method docstring
8
+ C0301, ; Line too long
9
+ C0411,
10
+ C0412,
11
+ C0413,
12
+ C0415, ; Import outside toplevel
13
+ W0613, ; Unused argument
14
+ W0719, ; Broad exception raised
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.4
2
+ Name: endoreg-db
3
+ Version: 0.6.1
4
+ Summary: EndoReg Db Django App
5
+ License-File: LICENSE
6
+ Requires-Python: >=3.11
7
+ Requires-Dist: agl-report-reader>=0.4.0
8
+ Requires-Dist: django-bootstrap5>=24.3
9
+ Requires-Dist: django-cors-headers>=4.7.0
10
+ Requires-Dist: django-extensions>=3.2.3
11
+ Requires-Dist: django>=5.1.3
12
+ Requires-Dist: djangorestframework>=3.15.2
13
+ Requires-Dist: faker>=32.1.0
14
+ Requires-Dist: icecream>=2.1.4
15
+ Requires-Dist: numpy>=2.1.3
16
+ Requires-Dist: opencv-python>=4.10.0.84
17
+ Requires-Dist: pandas>=2.2.3
18
+ Requires-Dist: pillow>=11.0.0
19
+ Requires-Dist: pydantic>=2.10.6
20
+ Requires-Dist: pytesseract>=0.3.13
21
+ Requires-Dist: python-ffmpeg>=2.0.12
22
+ Requires-Dist: pytorch-lightning>=2.4.0
23
+ Requires-Dist: pyyaml>=6.0.2
24
+ Requires-Dist: scikit-learn>=1.5.2
25
+ Requires-Dist: scipy>=1.14.1
26
+ Requires-Dist: tesseract>=0.1.3
27
+ Requires-Dist: tqdm>=4.67.0
28
+ Requires-Dist: urllib3>=2.2.3
29
+ Description-Content-Type: text/markdown
30
+
31
+ # EndoregDB - Professional Data Infrastructure for Clinical Research
32
+
33
+ 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.
34
+
35
+ This infrastructure was originally designed for clinical research studies and is optimized for handling large data volumes, including:
36
+
37
+ - Medical reports,
38
+ - Patient imaging and video data,
39
+ - Clinical product and treatment data,
40
+ and more.
41
+
42
+ ## 🚀 Key Features
43
+
44
+ ### System Architecture
45
+
46
+ - **Modular Design**: Built on scalable and reusable components to simplify integration into various environments.
47
+ - **Multi-System Support**: Manages configurations for local workstations and production servers.
48
+ - **Role-Specific Configuration**: Predefined roles for common use cases:
49
+ - Medical data processing systems
50
+ - AI/ML model deployment
51
+ - Research workstation configuration
52
+
53
+ ### Security & Data Management
54
+
55
+ - **Data Encryption**: All sensitive data is encrypted, and privacy policies are enforced.
56
+ - **Impermanence**: Stateless system configuration with persistence for critical data.
57
+ - **Access Control**: Role-based access and identity management integration.
58
+
59
+ ### Data and Processing Environment
60
+
61
+ - **Data Processing**: Optimized for processing medical datasets with preprocessing tools.
62
+ - **AI/ML Support**:
63
+ - Integration of machine learning tools for predictive analysis.
64
+ - TensorFlow, PyTorch, and other frameworks supported for model training.
65
+ - **Image/Video Processing**: Support for analyzing patient images and clinical videos.
66
+
67
+ ### Development Tools & Infrastructure
68
+
69
+ - **Data Science Toolchains**: Pre-configured environments for data processing, analysis, and visualization.
70
+ - **Monitoring & Logging**: Setup for continuous monitoring and logging to ensure system stability and performance.
71
+
72
+ ---
73
+
74
+ ## 🛠 Getting Started
75
+
76
+ ### Prerequisites
77
+
78
+ - A Linux-based system (Ubuntu/Debian recommended) or NixOS
79
+ - Hardware with sufficient storage for data processing (at least 1 TB recommended)
80
+
81
+ ### Quick Start
82
+
83
+ 1. Clone the repository:
84
+
85
+ ```bash
86
+ git clone https://github.com/wg-lux/endoreg-db.git
87
+ cd endoreg-db
88
+ ```
89
+
90
+ 2. Set up your Python environment:
91
+ _TODO_: Explain Devenv / point to other docs
92
+
93
+ ```bash
94
+ direnv allow
95
+ ```
96
+
97
+ 3. Run tests:
98
+ Call Devenv Script to run tests
99
+
100
+ ```bash
101
+ runtests
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 📁 Repository Structure
107
+
108
+ ```
109
+ endoreg-db/
110
+ ├── endoreg_db/ # Main Django app for medical data
111
+ │ ├── case_generator/ # Sample case generator
112
+ │ ├── data/ # Medical knowledge base
113
+ │ ├── management/ # Data wrangling operations
114
+ │ ├── models/ # Data models
115
+ │ ├── migrations/ # Database migrations
116
+ │ └── serializers/ # Serializers for data
117
+ ├── .gitignore # Git ignore file for unnecessary files
118
+ └── README.md # Project description and setup instructions
119
+ ```
120
+
121
+ ---
122
+
123
+ ## 🔒 Security Features
124
+
125
+ - **Data Encryption**: All sensitive patient data is encrypted.
126
+ - **Role-Based Access Control**: Configurable roles for managing access to various parts of the system.
127
+ - **Logging & Auditing**: Comprehensive logging system that tracks user activities and data changes.
128
+
129
+ ---
130
+
131
+ ## 🖥️ Supported Systems
132
+
133
+ - **Workstations**: Local development or research workstations with low data processing demands.
134
+ - **Servers**: Scalable server infrastructure for processing large data volumes, integrated with cloud services for scalability.
135
+
136
+ ---
137
+
138
+ ## 🛟 Support
139
+
140
+ For issues and questions:
141
+
142
+ - Create an issue in the repository
143
+ - Review the Deployment Guide for common issues
144
+
145
+ ---
146
+
147
+ ## 📜 License
148
+
149
+ MIT - see LICENSE
150
+
151
+ ---
@@ -0,0 +1,121 @@
1
+ # EndoregDB - Professional Data Infrastructure for Clinical Research
2
+
3
+ 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.
4
+
5
+ This infrastructure was originally designed for clinical research studies and is optimized for handling large data volumes, including:
6
+
7
+ - Medical reports,
8
+ - Patient imaging and video data,
9
+ - Clinical product and treatment data,
10
+ and more.
11
+
12
+ ## 🚀 Key Features
13
+
14
+ ### System Architecture
15
+
16
+ - **Modular Design**: Built on scalable and reusable components to simplify integration into various environments.
17
+ - **Multi-System Support**: Manages configurations for local workstations and production servers.
18
+ - **Role-Specific Configuration**: Predefined roles for common use cases:
19
+ - Medical data processing systems
20
+ - AI/ML model deployment
21
+ - Research workstation configuration
22
+
23
+ ### Security & Data Management
24
+
25
+ - **Data Encryption**: All sensitive data is encrypted, and privacy policies are enforced.
26
+ - **Impermanence**: Stateless system configuration with persistence for critical data.
27
+ - **Access Control**: Role-based access and identity management integration.
28
+
29
+ ### Data and Processing Environment
30
+
31
+ - **Data Processing**: Optimized for processing medical datasets with preprocessing tools.
32
+ - **AI/ML Support**:
33
+ - Integration of machine learning tools for predictive analysis.
34
+ - TensorFlow, PyTorch, and other frameworks supported for model training.
35
+ - **Image/Video Processing**: Support for analyzing patient images and clinical videos.
36
+
37
+ ### Development Tools & Infrastructure
38
+
39
+ - **Data Science Toolchains**: Pre-configured environments for data processing, analysis, and visualization.
40
+ - **Monitoring & Logging**: Setup for continuous monitoring and logging to ensure system stability and performance.
41
+
42
+ ---
43
+
44
+ ## 🛠 Getting Started
45
+
46
+ ### Prerequisites
47
+
48
+ - A Linux-based system (Ubuntu/Debian recommended) or NixOS
49
+ - Hardware with sufficient storage for data processing (at least 1 TB recommended)
50
+
51
+ ### Quick Start
52
+
53
+ 1. Clone the repository:
54
+
55
+ ```bash
56
+ git clone https://github.com/wg-lux/endoreg-db.git
57
+ cd endoreg-db
58
+ ```
59
+
60
+ 2. Set up your Python environment:
61
+ _TODO_: Explain Devenv / point to other docs
62
+
63
+ ```bash
64
+ direnv allow
65
+ ```
66
+
67
+ 3. Run tests:
68
+ Call Devenv Script to run tests
69
+
70
+ ```bash
71
+ runtests
72
+ ```
73
+
74
+ ---
75
+
76
+ ## 📁 Repository Structure
77
+
78
+ ```
79
+ endoreg-db/
80
+ ├── endoreg_db/ # Main Django app for medical data
81
+ │ ├── case_generator/ # Sample case generator
82
+ │ ├── data/ # Medical knowledge base
83
+ │ ├── management/ # Data wrangling operations
84
+ │ ├── models/ # Data models
85
+ │ ├── migrations/ # Database migrations
86
+ │ └── serializers/ # Serializers for data
87
+ ├── .gitignore # Git ignore file for unnecessary files
88
+ └── README.md # Project description and setup instructions
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 🔒 Security Features
94
+
95
+ - **Data Encryption**: All sensitive patient data is encrypted.
96
+ - **Role-Based Access Control**: Configurable roles for managing access to various parts of the system.
97
+ - **Logging & Auditing**: Comprehensive logging system that tracks user activities and data changes.
98
+
99
+ ---
100
+
101
+ ## 🖥️ Supported Systems
102
+
103
+ - **Workstations**: Local development or research workstations with low data processing demands.
104
+ - **Servers**: Scalable server infrastructure for processing large data volumes, integrated with cloud services for scalability.
105
+
106
+ ---
107
+
108
+ ## 🛟 Support
109
+
110
+ For issues and questions:
111
+
112
+ - Create an issue in the repository
113
+ - Review the Deployment Guide for common issues
114
+
115
+ ---
116
+
117
+ ## 📜 License
118
+
119
+ MIT - see LICENSE
120
+
121
+ ---
@@ -0,0 +1,9 @@
1
+ from endoreg_db.case_generator.utils import get_case_generator
2
+ from endoreg_db.case_generator.lab_sample_factory import LabSampleFactory
3
+
4
+
5
+ TEMPLATE_NAME = "pre_default_screening_colonoscopy"
6
+
7
+ cg = get_case_generator(TEMPLATE_NAME)
8
+ lab_factory = LabSampleFactory()
9
+
@@ -0,0 +1,108 @@
1
+ from tqdm import tqdm
2
+ import os
3
+ import json
4
+ import shutil
5
+ import random
6
+ from collections import defaultdict
7
+
8
+ # Define the directory paths
9
+ base_dir = "/run/media/setup-user/8f1cd448-7aef-4eb8-9acb-d05869ea1923"
10
+ jsons_dir = os.path.join(base_dir, "jsons")
11
+ output_json_dir = "./jsons"
12
+ output_image_dir = "./images"
13
+
14
+ # Remove existing output directories
15
+ shutil.rmtree(output_json_dir, ignore_errors=True)
16
+ shutil.rmtree(output_image_dir, ignore_errors=True)
17
+
18
+ # Ensure the output directories exist
19
+ os.makedirs(output_json_dir, exist_ok=True)
20
+ os.makedirs(output_image_dir, exist_ok=True)
21
+
22
+ # Initialize dictionaries to track examples and counts
23
+ key_stats = defaultdict(lambda: defaultdict(int))
24
+ examples = defaultdict(list)
25
+
26
+ def normalize_value(value):
27
+ """
28
+ Converts complex data types into a hashable string representation.
29
+ """
30
+ if isinstance(value, (list, dict)):
31
+ return str(value)
32
+ return value
33
+
34
+ def explore_json_file(json_file):
35
+ """
36
+ Reads a JSON file and updates key_stats and examples for specific keys.
37
+ Also copies the corresponding image if the "path" key exists.
38
+ """
39
+ try:
40
+ with open(json_file, 'r', encoding='utf-8') as file:
41
+ data = json.loads(file.read())
42
+ except json.JSONDecodeError as e:
43
+ print(f"Error reading {json_file}: {e}")
44
+ return False # Skip processing this file
45
+
46
+ # Update key_stats and gather examples
47
+ extracted_keys = False
48
+ for key, value in data.items():
49
+ if key in ["predictions_smooth", "labels_new"]:
50
+ for sub_key, sub_value in value.items():
51
+ sub_value_normalized = normalize_value(sub_value)
52
+ key_stats[f"{key}.{sub_key}"][sub_value_normalized] += 1
53
+
54
+ # Add example if fewer than 50 have been collected
55
+ if len(examples[f"{key}.{sub_key}"]) < 50:
56
+ examples[f"{key}.{sub_key}"].append(data)
57
+ extracted_keys = True
58
+ else:
59
+ value_normalized = normalize_value(value)
60
+ key_stats[key][value_normalized] += 1
61
+
62
+ # Copy the corresponding image if "path" key exists
63
+ if "path" in data:
64
+ image_path = os.path.join(base_dir, data["path"])
65
+ if os.path.exists(image_path):
66
+ try:
67
+ shutil.copy(image_path, output_image_dir)
68
+ except Exception as e:
69
+ print(f"Error copying image {image_path}: {e}")
70
+
71
+ return extracted_keys
72
+
73
+ def explore_directory(jsons_dir):
74
+ """
75
+ Iterates through the JSON files in a randomized order and processes them.
76
+ """
77
+ # Gather all JSON files
78
+ json_files = []
79
+ for root, _, files in os.walk(jsons_dir):
80
+ for file in tqdm(files):
81
+ if file.endswith(".json"):
82
+ json_files.append(os.path.join(root, file))
83
+
84
+ # Randomize the order of JSON files
85
+ random.shuffle(json_files)
86
+
87
+ # Process each JSON file
88
+ for json_file in tqdm(json_files):
89
+ extracted = explore_json_file(json_file)
90
+
91
+ # Copy file if it contained relevant keys
92
+ if extracted:
93
+ shutil.copy(json_file, output_json_dir)
94
+
95
+ # Start the exploration process
96
+ explore_directory(jsons_dir)
97
+
98
+ # Save key_stats and examples to separate summary files
99
+ with open(os.path.join(output_json_dir, "key_stats.json"), "w", encoding="utf-8") as stats_file:
100
+ json.dump({k: dict(v) for k, v in key_stats.items()}, stats_file, indent=4)
101
+
102
+ with open(os.path.join(output_json_dir, "examples.json"), "w", encoding="utf-8") as examples_file:
103
+ json.dump({k: [e["_id"] for e in v] for k, v in examples.items()}, examples_file, indent=4)
104
+
105
+ # Display summary
106
+ print("Exploration complete!")
107
+ print(f"Total keys analyzed: {len(key_stats)}")
108
+ print(f"Total examples collected: {sum(len(v) for v in examples.values())}")
@@ -0,0 +1,3 @@
1
+ # run in django shell
2
+
3
+
@@ -0,0 +1,46 @@
1
+ import subprocess
2
+ import os
3
+
4
+ # /home/setup-user/dev/endoreg-db/tests/sensitive/raw_videos/001.mp4
5
+ # /home/setup-user/dev/endoreg-db/tests/sensitive/raw_videos/001_short.mp4
6
+
7
+ def copy_first_minute(input_file, output_file):
8
+ """
9
+ Copies the first minute (60 seconds) of a given MP4 file to a new file.
10
+
11
+ Parameters:
12
+ input_file (str): Path to the input MP4 file.
13
+ output_file (str): Path to the output MP4 file.
14
+ """
15
+ # Check if the input file exists
16
+ if not os.path.isfile(input_file):
17
+ raise FileNotFoundError(f"Input file '{input_file}' does not exist.")
18
+
19
+ # Construct the ffmpeg command
20
+ command = [
21
+ "ffmpeg",
22
+ "-i", input_file, # Input file
23
+ "-t", "60", # Duration to copy (60 seconds)
24
+ "-c", "copy", # Copy codec (no re-encoding)
25
+ output_file # Output file
26
+ ]
27
+
28
+ try:
29
+ # Run the command
30
+ subprocess.run(command, check=True)
31
+ print(f"The first minute of '{input_file}' has been saved to '{output_file}'.")
32
+ except subprocess.CalledProcessError as e:
33
+ print(f"Error during file processing: {e}")
34
+ except Exception as e:
35
+ print(f"An unexpected error occurred: {e}")
36
+
37
+ # Example usage
38
+ if __name__ == "__main__":
39
+ # Input and output file paths
40
+ input_path = "input.mp4"
41
+ output_path = "output_first_minute.mp4"
42
+
43
+ try:
44
+ copy_first_minute(input_path, output_path)
45
+ except Exception as error:
46
+ print(f"Failed: {error}")
@@ -0,0 +1,183 @@
1
+ {
2
+ "nodes": {
3
+ "devenv": {
4
+ "locked": {
5
+ "dir": "src/modules",
6
+ "lastModified": 1734605856,
7
+ "owner": "cachix",
8
+ "repo": "devenv",
9
+ "rev": "f81cf7dc4cbfa46de11618af94e5983c5e600d8c",
10
+ "type": "github"
11
+ },
12
+ "original": {
13
+ "dir": "src/modules",
14
+ "owner": "cachix",
15
+ "repo": "devenv",
16
+ "type": "github"
17
+ }
18
+ },
19
+ "flake-compat": {
20
+ "flake": false,
21
+ "locked": {
22
+ "lastModified": 1733328505,
23
+ "owner": "edolstra",
24
+ "repo": "flake-compat",
25
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
26
+ "type": "github"
27
+ },
28
+ "original": {
29
+ "owner": "edolstra",
30
+ "repo": "flake-compat",
31
+ "type": "github"
32
+ }
33
+ },
34
+ "flake-utils": {
35
+ "inputs": {
36
+ "systems": "systems"
37
+ },
38
+ "locked": {
39
+ "lastModified": 1731533236,
40
+ "owner": "numtide",
41
+ "repo": "flake-utils",
42
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
43
+ "type": "github"
44
+ },
45
+ "original": {
46
+ "owner": "numtide",
47
+ "repo": "flake-utils",
48
+ "type": "github"
49
+ }
50
+ },
51
+ "gitignore": {
52
+ "inputs": {
53
+ "nixpkgs": [
54
+ "pre-commit-hooks",
55
+ "nixpkgs"
56
+ ]
57
+ },
58
+ "locked": {
59
+ "lastModified": 1709087332,
60
+ "owner": "hercules-ci",
61
+ "repo": "gitignore.nix",
62
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
63
+ "type": "github"
64
+ },
65
+ "original": {
66
+ "owner": "hercules-ci",
67
+ "repo": "gitignore.nix",
68
+ "type": "github"
69
+ }
70
+ },
71
+ "mk-shell-bin": {
72
+ "locked": {
73
+ "lastModified": 1677004959,
74
+ "owner": "rrbutani",
75
+ "repo": "nix-mk-shell-bin",
76
+ "rev": "ff5d8bd4d68a347be5042e2f16caee391cd75887",
77
+ "type": "github"
78
+ },
79
+ "original": {
80
+ "owner": "rrbutani",
81
+ "repo": "nix-mk-shell-bin",
82
+ "type": "github"
83
+ }
84
+ },
85
+ "nix2container": {
86
+ "inputs": {
87
+ "flake-utils": "flake-utils",
88
+ "nixpkgs": [
89
+ "nixpkgs"
90
+ ]
91
+ },
92
+ "locked": {
93
+ "lastModified": 1730479402,
94
+ "owner": "nlewo",
95
+ "repo": "nix2container",
96
+ "rev": "5fb215a1564baa74ce04ad7f903d94ad6617e17a",
97
+ "type": "github"
98
+ },
99
+ "original": {
100
+ "owner": "nlewo",
101
+ "repo": "nix2container",
102
+ "type": "github"
103
+ }
104
+ },
105
+ "nixpkgs": {
106
+ "locked": {
107
+ "lastModified": 1734435836,
108
+ "owner": "NixOS",
109
+ "repo": "nixpkgs",
110
+ "rev": "4989a246d7a390a859852baddb1013f825435cee",
111
+ "type": "github"
112
+ },
113
+ "original": {
114
+ "owner": "NixOS",
115
+ "ref": "nixpkgs-unstable",
116
+ "repo": "nixpkgs",
117
+ "type": "github"
118
+ }
119
+ },
120
+ "nixpkgs-stable": {
121
+ "locked": {
122
+ "lastModified": 1734529975,
123
+ "owner": "NixOS",
124
+ "repo": "nixpkgs",
125
+ "rev": "72d11d40b9878a67c38f003c240c2d2e1811e72a",
126
+ "type": "github"
127
+ },
128
+ "original": {
129
+ "owner": "NixOS",
130
+ "ref": "nixos-24.05",
131
+ "repo": "nixpkgs",
132
+ "type": "github"
133
+ }
134
+ },
135
+ "pre-commit-hooks": {
136
+ "inputs": {
137
+ "flake-compat": "flake-compat",
138
+ "gitignore": "gitignore",
139
+ "nixpkgs": [
140
+ "nixpkgs"
141
+ ],
142
+ "nixpkgs-stable": "nixpkgs-stable"
143
+ },
144
+ "locked": {
145
+ "lastModified": 1734425854,
146
+ "owner": "cachix",
147
+ "repo": "pre-commit-hooks.nix",
148
+ "rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d",
149
+ "type": "github"
150
+ },
151
+ "original": {
152
+ "owner": "cachix",
153
+ "repo": "pre-commit-hooks.nix",
154
+ "type": "github"
155
+ }
156
+ },
157
+ "root": {
158
+ "inputs": {
159
+ "devenv": "devenv",
160
+ "mk-shell-bin": "mk-shell-bin",
161
+ "nix2container": "nix2container",
162
+ "nixpkgs": "nixpkgs",
163
+ "pre-commit-hooks": "pre-commit-hooks"
164
+ }
165
+ },
166
+ "systems": {
167
+ "locked": {
168
+ "lastModified": 1681028828,
169
+ "owner": "nix-systems",
170
+ "repo": "default",
171
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
172
+ "type": "github"
173
+ },
174
+ "original": {
175
+ "owner": "nix-systems",
176
+ "repo": "default",
177
+ "type": "github"
178
+ }
179
+ }
180
+ },
181
+ "root": "root",
182
+ "version": 7
183
+ }