endoreg-db 0.3.4__py3-none-any.whl → 0.3.6__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.
Files changed (350) hide show
  1. endoreg_db/admin.py +3 -3
  2. endoreg_db/apps.py +6 -6
  3. endoreg_db/data/__init__.py +65 -16
  4. endoreg_db/data/active_model/data.yaml +2 -2
  5. endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +167 -0
  6. endoreg_db/data/case_template/rule/01_patient-set-age.yaml +8 -0
  7. endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +9 -0
  8. endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +23 -0
  9. endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +19 -0
  10. endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +19 -0
  11. endoreg_db/data/case_template/rule/19_create_patient.yaml +17 -0
  12. endoreg_db/data/case_template/rule_type/base_types.yaml +35 -0
  13. endoreg_db/data/case_template/rule_value_type/base_types.yaml +59 -0
  14. endoreg_db/data/case_template/template/base.yaml +8 -0
  15. endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +3 -0
  16. endoreg_db/data/case_template/tmp/_rule_value +13 -0
  17. endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +21 -0
  18. endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +10 -0
  19. endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +7 -0
  20. endoreg_db/data/center/data.yaml +60 -52
  21. endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +144 -0
  22. endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +48 -0
  23. endoreg_db/data/disease/cardiovascular.yaml +37 -0
  24. endoreg_db/data/disease/hepatology.yaml +5 -0
  25. endoreg_db/data/disease/misc.yaml +6 -0
  26. endoreg_db/data/disease/renal.yaml +5 -0
  27. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +6 -0
  28. endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +6 -0
  29. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +41 -0
  30. endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +20 -0
  31. endoreg_db/data/distribution/date/patient.yaml +7 -0
  32. endoreg_db/data/distribution/single_categorical/patient.yaml +7 -0
  33. endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +132 -0
  34. endoreg_db/data/endoscope_type/data.yaml +10 -10
  35. endoreg_db/data/endoscopy_processor/data.yaml +45 -45
  36. endoreg_db/data/event/cardiology.yaml +28 -0
  37. endoreg_db/data/event/neurology.yaml +14 -0
  38. endoreg_db/data/event/surgery.yaml +13 -0
  39. endoreg_db/data/event/thrombembolism.yaml +20 -0
  40. endoreg_db/data/examination/examinations/data.yaml +65 -16
  41. endoreg_db/data/examination/time/data.yaml +47 -47
  42. endoreg_db/data/examination/time-type/data.yaml +7 -7
  43. endoreg_db/data/examination/type/data.yaml +5 -5
  44. endoreg_db/data/gender/data.yaml +18 -0
  45. endoreg_db/data/information_source/data.yaml +30 -30
  46. endoreg_db/data/information_source/medication.yaml +6 -0
  47. endoreg_db/data/lab_value/cardiac_enzymes.yaml +31 -0
  48. endoreg_db/data/lab_value/coagulation.yaml +49 -0
  49. endoreg_db/data/lab_value/electrolytes.yaml +190 -0
  50. endoreg_db/data/lab_value/gastrointestinal_function.yaml +121 -0
  51. endoreg_db/data/lab_value/hematology.yaml +169 -0
  52. endoreg_db/data/lab_value/hormones.yaml +53 -0
  53. endoreg_db/data/lab_value/lipids.yaml +44 -0
  54. endoreg_db/data/lab_value/misc.yaml +30 -0
  55. endoreg_db/data/lab_value/renal_function.yaml +11 -0
  56. endoreg_db/data/label/label/data.yaml +62 -62
  57. endoreg_db/data/label/label-set/data.yaml +17 -17
  58. endoreg_db/data/label/label-type/data.yaml +6 -6
  59. endoreg_db/data/material/material.yaml +91 -0
  60. endoreg_db/data/medication/anticoagulation.yaml +65 -0
  61. endoreg_db/data/medication/tah.yaml +70 -0
  62. endoreg_db/data/medication_indication/anticoagulation.yaml +120 -0
  63. endoreg_db/data/medication_indication_type/data.yaml +11 -0
  64. endoreg_db/data/medication_indication_type/thrombembolism.yaml +41 -0
  65. endoreg_db/data/medication_intake_time/base.yaml +31 -0
  66. endoreg_db/data/medication_schedule/apixaban.yaml +95 -0
  67. endoreg_db/data/medication_schedule/ass.yaml +12 -0
  68. endoreg_db/data/medication_schedule/enoxaparin.yaml +26 -0
  69. endoreg_db/data/model_type/data.yaml +6 -6
  70. endoreg_db/data/patient_lab_sample_type/generic.yaml +6 -0
  71. endoreg_db/data/pdf_type/data.yaml +28 -28
  72. endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +66 -0
  73. endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +33 -0
  74. endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +308 -0
  75. endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +88 -0
  76. endoreg_db/data/profession/data.yaml +70 -70
  77. endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +55 -0
  78. endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +26 -26
  79. endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +19 -19
  80. endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +15 -0
  81. endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
  82. endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
  83. endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +12 -0
  84. endoreg_db/data/unit/concentration.yaml +92 -0
  85. endoreg_db/data/unit/data.yaml +17 -17
  86. endoreg_db/data/unit/length.yaml +30 -30
  87. endoreg_db/data/unit/misc.yaml +20 -0
  88. endoreg_db/data/unit/rate.yaml +6 -0
  89. endoreg_db/data/unit/time.yaml +13 -0
  90. endoreg_db/data/unit/volume.yaml +35 -26
  91. endoreg_db/data/unit/weight.yaml +37 -30
  92. endoreg_db/data/waste/data.yaml +12 -0
  93. endoreg_db/forms/__init__.py +2 -2
  94. endoreg_db/forms/questionnaires/tto_questionnaire.py +23 -23
  95. endoreg_db/forms/settings/__init__.py +8 -8
  96. endoreg_db/forms/unit.py +5 -5
  97. endoreg_db/management/commands/_load_model_template.py +40 -40
  98. endoreg_db/management/commands/delete_all.py +18 -18
  99. endoreg_db/management/commands/delete_legacy_images.py +19 -19
  100. endoreg_db/management/commands/delete_legacy_videos.py +16 -16
  101. endoreg_db/management/commands/extract_legacy_video_frames.py +18 -18
  102. endoreg_db/management/commands/fetch_legacy_image_dataset.py +32 -32
  103. endoreg_db/management/commands/fix_auth_permission.py +20 -20
  104. endoreg_db/management/commands/import_legacy_images.py +94 -94
  105. endoreg_db/management/commands/import_legacy_videos.py +76 -76
  106. endoreg_db/management/commands/load_active_model_data.py +44 -44
  107. endoreg_db/management/commands/load_ai_model_data.py +44 -44
  108. endoreg_db/management/commands/load_base_db_data.py +128 -71
  109. endoreg_db/management/commands/load_center_data.py +42 -42
  110. endoreg_db/management/commands/load_disease_classification_choices_data.py +41 -0
  111. endoreg_db/management/commands/load_disease_classification_data.py +41 -0
  112. endoreg_db/management/commands/load_disease_data.py +40 -0
  113. endoreg_db/management/commands/load_distribution_data.py +66 -0
  114. endoreg_db/management/commands/load_endoscope_type_data.py +44 -44
  115. endoreg_db/management/commands/load_endoscopy_processor_data.py +44 -44
  116. endoreg_db/management/commands/load_event_data.py +41 -0
  117. endoreg_db/management/commands/load_examination_data.py +74 -74
  118. endoreg_db/management/commands/load_g_play_data.py +113 -0
  119. endoreg_db/management/commands/load_gender_data.py +44 -0
  120. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +133 -0
  121. endoreg_db/management/commands/load_information_source.py +44 -44
  122. endoreg_db/management/commands/load_lab_value_data.py +50 -0
  123. endoreg_db/management/commands/load_label_data.py +66 -66
  124. endoreg_db/management/commands/load_medication_data.py +41 -0
  125. endoreg_db/management/commands/load_medication_indication_data.py +63 -0
  126. endoreg_db/management/commands/load_medication_indication_type_data.py +41 -0
  127. endoreg_db/management/commands/load_medication_intake_time_data.py +41 -0
  128. endoreg_db/management/commands/load_medication_schedule_data.py +55 -0
  129. endoreg_db/management/commands/load_pdf_type_data.py +60 -60
  130. endoreg_db/management/commands/load_profession_data.py +43 -43
  131. endoreg_db/management/commands/load_report_reader_flag.py +45 -45
  132. endoreg_db/management/commands/load_unit_data.py +45 -45
  133. endoreg_db/management/commands/load_user_groups.py +28 -28
  134. endoreg_db/management/commands/register_ai_model.py +65 -65
  135. endoreg_db/management/commands/reset_celery_schedule.py +9 -9
  136. endoreg_db/migrations/0001_initial.py +582 -582
  137. endoreg_db/migrations/0002_rawvideofile.py +26 -26
  138. endoreg_db/migrations/0003_rawvideofile_frames_required.py +18 -18
  139. endoreg_db/migrations/0004_rename_hash_rawvideofile_video_hash.py +18 -18
  140. endoreg_db/migrations/0005_ffmpegmeta_remove_videoimportmeta_center_and_more.py +56 -56
  141. endoreg_db/migrations/0006_rawvideofile_center_alter_videometa_processor.py +25 -25
  142. endoreg_db/migrations/0007_rawvideofile_processor.py +19 -19
  143. endoreg_db/migrations/0008_rename_frames_required_rawvideofile_state_frames_required.py +18 -18
  144. endoreg_db/migrations/0009_sensitivemeta_rawvideofile_sensitive_meta.py +31 -31
  145. endoreg_db/migrations/0010_rename_endoscope_serial_number_sensitivemeta_endoscope_sn.py +18 -18
  146. endoreg_db/migrations/0011_rawvideofile_state_sensitive_data_retrieved.py +18 -18
  147. endoreg_db/migrations/0012_rawvideofile_prediction_dir_and_more.py +109 -109
  148. endoreg_db/migrations/0013_rawpdffile.py +31 -31
  149. endoreg_db/migrations/0014_pdftype_alter_rawpdffile_file_pdfmeta.py +38 -38
  150. endoreg_db/migrations/0015_rename_report_processed_rawpdffile_state_report_processed_and_more.py +31 -31
  151. endoreg_db/migrations/0016_rawpdffile_state_report_processing_required.py +18 -18
  152. endoreg_db/migrations/0017_firstname_lastname_center_first_names_and_more.py +37 -37
  153. endoreg_db/migrations/0018_reportreaderflag_reportreaderconfig.py +37 -37
  154. endoreg_db/migrations/0019_pdftype_cut_off_above_lines_and_more.py +42 -42
  155. endoreg_db/migrations/0020_rename_endoscopy_info_line_pdftype_endoscope_info_line.py +18 -18
  156. endoreg_db/migrations/0021_alter_pdftype_endoscope_info_line.py +19 -19
  157. endoreg_db/migrations/0022_alter_pdftype_endoscope_info_line.py +19 -19
  158. endoreg_db/migrations/0023_ttoquestionnaire_alter_pdftype_endoscope_info_line.py +59 -59
  159. endoreg_db/migrations/0024_remove_ttoquestionnaire_infections_and_more.py +27 -27
  160. endoreg_db/migrations/0025_event_alter_rawpdffile_file_patientevent.py +42 -0
  161. endoreg_db/migrations/0026_disease_diseaseclassification_and_more.py +166 -0
  162. endoreg_db/migrations/0027_labvalue_abbreviation_labvalue_default_normal_range_and_more.py +38 -0
  163. endoreg_db/migrations/0028_alter_unit_abbreviation.py +18 -0
  164. endoreg_db/migrations/0029_medicationintaketime_and_more.py +75 -0
  165. endoreg_db/migrations/0030_medicationindicationtype_and_more.py +101 -0
  166. endoreg_db/migrations/0031_rename_adapt_to_liver_function_medication_adapt_to_age_and_more.py +38 -0
  167. endoreg_db/migrations/0032_alter_medicationschedule_therapy_duration_d.py +18 -0
  168. endoreg_db/migrations/0033_medicationindication_sources.py +18 -0
  169. endoreg_db/migrations/0034_alter_rawpdffile_file.py +20 -0
  170. endoreg_db/migrations/0035_alter_medicationindication_sources.py +18 -0
  171. endoreg_db/migrations/0036_alter_rawpdffile_file.py +20 -0
  172. endoreg_db/migrations/0037_alter_medicationindication_sources.py +18 -0
  173. endoreg_db/migrations/0038_emissionfactor_material_product_productgroup_and_more.py +164 -0
  174. endoreg_db/migrations/0039_referenceproduct_name.py +19 -0
  175. endoreg_db/migrations/0040_quizanswertype_quizquestiontype_quizquestion_and_more.py +50 -0
  176. endoreg_db/migrations/0041_gender_patientmedication_medication_indication_and_more.py +40 -0
  177. endoreg_db/migrations/0042_casetemplateruletype_casetemplaterulevalue_and_more.py +74 -0
  178. endoreg_db/migrations/0043_casetemplatetype_name_de_casetemplatetype_name_en.py +23 -0
  179. endoreg_db/migrations/0044_casetemplateruletype_name_de_and_more.py +23 -0
  180. endoreg_db/migrations/0045_casetemplaterulevalue_value_type.py +19 -0
  181. endoreg_db/migrations/0046_casetemplaterulevalue_target_field.py +18 -0
  182. endoreg_db/migrations/0047_casetemplaterule_target_model.py +18 -0
  183. endoreg_db/migrations/0048_remove_casetemplaterule_chained_rules_and_more.py +22 -0
  184. endoreg_db/migrations/0049_remove_casetemplaterule_rule_values.py +17 -0
  185. endoreg_db/migrations/0050_casetemplaterule_rule_values.py +18 -0
  186. endoreg_db/migrations/0051_remove_casetemplaterule_calling_rules_and_more.py +27 -0
  187. endoreg_db/migrations/0052_rename_case_template_type_casetemplate_template_type.py +18 -0
  188. endoreg_db/migrations/0053_patientlabsampletype_patientlabsample_and_more.py +38 -0
  189. endoreg_db/migrations/0054_multiplecategoricalvaluedistribution_and_more.py +69 -0
  190. endoreg_db/migrations/0055_remove_casetemplaterule_rule_values_and_more.py +59 -0
  191. endoreg_db/migrations/0056_datevaluedistribution_and_more.py +32 -0
  192. endoreg_db/migrations/0057_remove_datevaluedistribution_max_date_and_more.py +72 -0
  193. endoreg_db/migrations/0058_datevaluedistribution_description_and_more.py +28 -0
  194. endoreg_db/migrations/0059_casetemplaterule_rule_values.py +18 -0
  195. endoreg_db/migrations/0060_labvalue__default_date_value_distribution_and_more.py +44 -0
  196. endoreg_db/migrations/0061_remove_patientlabvalue_date_patientlabvalue_datetime.py +24 -0
  197. endoreg_db/migrations/0062_labvalue_numeric_precision.py +18 -0
  198. endoreg_db/migrations/0063_alter_labvalue_numeric_precision.py +18 -0
  199. endoreg_db/migrations/0064_casetemplaterule_extra_parameters_and_more.py +23 -0
  200. endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date_value_distribution_and_more.py +58 -0
  201. endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py +29 -0
  202. endoreg_db/migrations/0067_alter_medicationindication_indication_type.py +19 -0
  203. endoreg_db/models/__init__.py +74 -57
  204. endoreg_db/models/ai_model/__init__.py +3 -3
  205. endoreg_db/models/ai_model/active_model.py +9 -9
  206. endoreg_db/models/ai_model/model_meta.py +24 -24
  207. endoreg_db/models/ai_model/model_type.py +25 -25
  208. endoreg_db/models/ai_model/utils.py +8 -8
  209. endoreg_db/models/annotation/__init__.py +1 -1
  210. endoreg_db/models/annotation/binary_classification_annotation_task.py +80 -80
  211. endoreg_db/models/annotation/image_classification.py +26 -26
  212. endoreg_db/models/case_template/__init__.py +6 -0
  213. endoreg_db/models/case_template/case_template.py +81 -0
  214. endoreg_db/models/case_template/case_template_rule.py +276 -0
  215. endoreg_db/models/case_template/case_template_rule_value.py +73 -0
  216. endoreg_db/models/case_template/case_template_type.py +28 -0
  217. endoreg_db/models/center/__init__.py +4 -0
  218. endoreg_db/models/{center.py → center/center.py} +24 -24
  219. endoreg_db/models/center/center_product.py +34 -0
  220. endoreg_db/models/center/center_resource.py +19 -0
  221. endoreg_db/models/center/center_waste.py +11 -0
  222. endoreg_db/models/data_file/__init__.py +5 -5
  223. endoreg_db/models/data_file/base_classes/__init__.py +2 -2
  224. endoreg_db/models/data_file/base_classes/abstract_frame.py +50 -50
  225. endoreg_db/models/data_file/base_classes/abstract_video.py +200 -200
  226. endoreg_db/models/data_file/frame.py +45 -45
  227. endoreg_db/models/data_file/import_classes/__init__.py +31 -31
  228. endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +34 -34
  229. endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +28 -28
  230. endoreg_db/models/data_file/import_classes/processing_functions/video.py +260 -260
  231. endoreg_db/models/data_file/import_classes/raw_pdf.py +188 -185
  232. endoreg_db/models/data_file/import_classes/raw_video.py +343 -343
  233. endoreg_db/models/data_file/metadata/__init__.py +3 -3
  234. endoreg_db/models/data_file/metadata/pdf_meta.py +70 -70
  235. endoreg_db/models/data_file/metadata/sensitive_meta.py +31 -31
  236. endoreg_db/models/data_file/metadata/video_meta.py +132 -131
  237. endoreg_db/models/data_file/report_file.py +89 -89
  238. endoreg_db/models/data_file/video/__init__.py +6 -6
  239. endoreg_db/models/data_file/video/import_meta.py +25 -25
  240. endoreg_db/models/data_file/video/video.py +25 -25
  241. endoreg_db/models/data_file/video_segment.py +107 -107
  242. endoreg_db/models/disease.py +56 -0
  243. endoreg_db/models/emission/__init__.py +1 -0
  244. endoreg_db/models/emission/emission_factor.py +20 -0
  245. endoreg_db/models/event.py +22 -0
  246. endoreg_db/models/examination/__init__.py +3 -3
  247. endoreg_db/models/examination/examination.py +26 -26
  248. endoreg_db/models/examination/examination_time.py +27 -27
  249. endoreg_db/models/examination/examination_time_type.py +24 -24
  250. endoreg_db/models/examination/examination_type.py +18 -18
  251. endoreg_db/models/hardware/__init__.py +1 -1
  252. endoreg_db/models/hardware/endoscope.py +44 -44
  253. endoreg_db/models/hardware/endoscopy_processor.py +143 -143
  254. endoreg_db/models/information_source.py +29 -22
  255. endoreg_db/models/label/label.py +84 -84
  256. endoreg_db/models/laboratory/__init__.py +1 -0
  257. endoreg_db/models/laboratory/lab_value.py +102 -0
  258. endoreg_db/models/legacy_data/__init__.py +3 -3
  259. endoreg_db/models/legacy_data/image.py +34 -34
  260. endoreg_db/models/medication/__init__.py +1 -0
  261. endoreg_db/models/medication/medication.py +148 -0
  262. endoreg_db/models/other/__init__.py +5 -0
  263. endoreg_db/models/other/distribution.py +215 -0
  264. endoreg_db/models/other/material.py +16 -0
  265. endoreg_db/models/other/resource.py +18 -0
  266. endoreg_db/models/other/transport_route.py +21 -0
  267. endoreg_db/models/other/waste.py +20 -0
  268. endoreg_db/models/patient_examination/__init__.py +35 -35
  269. endoreg_db/models/permissions/__init__.py +44 -44
  270. endoreg_db/models/persons/__init__.py +7 -6
  271. endoreg_db/models/persons/examiner/__init__.py +1 -1
  272. endoreg_db/models/persons/examiner/examiner.py +15 -15
  273. endoreg_db/models/persons/examiner/examiner_type.py +1 -1
  274. endoreg_db/models/persons/first_name.py +17 -17
  275. endoreg_db/models/persons/gender.py +22 -0
  276. endoreg_db/models/persons/last_name.py +19 -19
  277. endoreg_db/models/persons/patient/__init__.py +8 -0
  278. endoreg_db/models/persons/patient/case/__init__.py +0 -0
  279. endoreg_db/models/persons/patient/case/case.py +30 -0
  280. endoreg_db/models/persons/patient/patient.py +216 -0
  281. endoreg_db/models/persons/patient/patient_disease.py +16 -0
  282. endoreg_db/models/persons/patient/patient_event.py +22 -0
  283. endoreg_db/models/persons/patient/patient_lab_sample.py +106 -0
  284. endoreg_db/models/persons/patient/patient_lab_value.py +176 -0
  285. endoreg_db/models/persons/patient/patient_medication.py +44 -0
  286. endoreg_db/models/persons/patient/patient_medication_schedule.py +28 -0
  287. endoreg_db/models/persons/person.py +31 -34
  288. endoreg_db/models/persons/portal_user_information.py +27 -29
  289. endoreg_db/models/prediction/__init__.py +1 -1
  290. endoreg_db/models/prediction/image_classification.py +37 -37
  291. endoreg_db/models/prediction/video_prediction_meta.py +244 -244
  292. endoreg_db/models/product/__init__.py +5 -0
  293. endoreg_db/models/product/product.py +97 -0
  294. endoreg_db/models/product/product_group.py +19 -0
  295. endoreg_db/models/product/product_material.py +24 -0
  296. endoreg_db/models/product/product_weight.py +26 -0
  297. endoreg_db/models/product/reference_product.py +99 -0
  298. endoreg_db/models/questionnaires/__init__.py +114 -114
  299. endoreg_db/models/quiz/__init__.py +2 -0
  300. endoreg_db/models/quiz/quiz_answer.py +41 -0
  301. endoreg_db/models/quiz/quiz_question.py +54 -0
  302. endoreg_db/models/report_reader/__init__.py +1 -1
  303. endoreg_db/models/report_reader/report_reader_config.py +53 -53
  304. endoreg_db/models/report_reader/report_reader_flag.py +19 -19
  305. endoreg_db/models/rules/__init__.py +5 -0
  306. endoreg_db/models/rules/rule.py +24 -0
  307. endoreg_db/models/rules/rule_applicator.py +224 -0
  308. endoreg_db/models/rules/rule_attribute_dtype.py +19 -0
  309. endoreg_db/models/rules/rule_type.py +22 -0
  310. endoreg_db/models/rules/ruleset.py +19 -0
  311. endoreg_db/models/unit.py +21 -19
  312. endoreg_db/queries/__init__.py +4 -4
  313. endoreg_db/queries/annotations/__init__.py +2 -2
  314. endoreg_db/queries/annotations/legacy.py +159 -159
  315. endoreg_db/queries/get/__init__.py +5 -5
  316. endoreg_db/queries/get/center.py +42 -42
  317. endoreg_db/queries/get/model.py +13 -13
  318. endoreg_db/queries/get/patient.py +14 -14
  319. endoreg_db/queries/get/patient_examination.py +20 -20
  320. endoreg_db/queries/get/report_file.py +33 -33
  321. endoreg_db/queries/get/video.py +31 -31
  322. endoreg_db/serializers/__init__.py +9 -9
  323. endoreg_db/serializers/ai_model.py +18 -18
  324. endoreg_db/serializers/annotation.py +17 -17
  325. endoreg_db/serializers/center.py +11 -11
  326. endoreg_db/serializers/examination.py +32 -32
  327. endoreg_db/serializers/frame.py +13 -13
  328. endoreg_db/serializers/hardware.py +20 -20
  329. endoreg_db/serializers/label.py +22 -22
  330. endoreg_db/serializers/patient.py +10 -10
  331. endoreg_db/serializers/prediction.py +15 -15
  332. endoreg_db/serializers/report_file.py +7 -7
  333. endoreg_db/serializers/video.py +27 -27
  334. endoreg_db/tests.py +3 -3
  335. endoreg_db/utils/cropping.py +28 -28
  336. endoreg_db/utils/dataloader.py +92 -185
  337. endoreg_db/utils/file_operations.py +30 -30
  338. endoreg_db/utils/hashs.py +33 -33
  339. endoreg_db/utils/legacy_ocr.py +201 -201
  340. endoreg_db/utils/ocr.py +197 -197
  341. endoreg_db/utils/uuid.py +4 -4
  342. endoreg_db/utils/video_metadata.py +87 -87
  343. endoreg_db/views.py +3 -3
  344. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.6.dist-info}/LICENSE +674 -674
  345. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.6.dist-info}/METADATA +2 -2
  346. endoreg_db-0.3.6.dist-info/RECORD +357 -0
  347. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.6.dist-info}/WHEEL +1 -1
  348. endoreg_db/models/persons/patient.py +0 -58
  349. endoreg_db/models.py +0 -3
  350. endoreg_db-0.3.4.dist-info/RECORD +0 -185
@@ -1,6 +1,6 @@
1
- from .annotation import *
2
- from .center import *
3
- from .model import *
4
- from .patient import *
5
- from .patient_examination import *
1
+ from .annotation import *
2
+ from .center import *
3
+ from .model import *
4
+ from .patient import *
5
+ from .patient_examination import *
6
6
  from .video import *
@@ -1,42 +1,42 @@
1
- from endoreg_db.models import Center
2
- from typing import Optional
3
-
4
- def get_centers() -> Center:
5
- """
6
- Returns all Center objects from the database.
7
- """
8
- return Center.objects.all()
9
-
10
- def get_center_by_name(name) -> Optional[Center]:
11
- """Retrieve a Center object by its name.
12
-
13
- Args:
14
- name (str): The name of the center to retrieve.
15
-
16
- Returns:
17
- Optional[Center]: The Center object with the given name, or None if it does not exist.
18
- """
19
- return Center.objects.get(name=name)
20
-
21
- def get_center_by_id(id) -> Optional[Center]:
22
- """Retrieve a Center object by its id.
23
-
24
- Args:
25
- id (int): The id of the center to retrieve.
26
-
27
- Returns:
28
- Optional[Center]: The Center object with the given id, or None if it does not exist.
29
- """
30
- return Center.objects.get(id=id)
31
-
32
- def get_center_by_natural_key(name: str) -> Optional[Center]:
33
- """
34
- Retrieve a Center object by its natural key.
35
-
36
- Args:
37
- name: The name of the center to retrieve.
38
-
39
- Returns:
40
- The Center object with the given name, or None if it does not exist.
41
- """
42
- return Center.objects.get_by_natural_key(name=name)
1
+ from endoreg_db.models import Center
2
+ from typing import Optional
3
+
4
+ def get_centers() -> Center:
5
+ """
6
+ Returns all Center objects from the database.
7
+ """
8
+ return Center.objects.all()
9
+
10
+ def get_center_by_name(name) -> Optional[Center]:
11
+ """Retrieve a Center object by its name.
12
+
13
+ Args:
14
+ name (str): The name of the center to retrieve.
15
+
16
+ Returns:
17
+ Optional[Center]: The Center object with the given name, or None if it does not exist.
18
+ """
19
+ return Center.objects.get(name=name)
20
+
21
+ def get_center_by_id(id) -> Optional[Center]:
22
+ """Retrieve a Center object by its id.
23
+
24
+ Args:
25
+ id (int): The id of the center to retrieve.
26
+
27
+ Returns:
28
+ Optional[Center]: The Center object with the given id, or None if it does not exist.
29
+ """
30
+ return Center.objects.get(id=id)
31
+
32
+ def get_center_by_natural_key(name: str) -> Optional[Center]:
33
+ """
34
+ Retrieve a Center object by its natural key.
35
+
36
+ Args:
37
+ name: The name of the center to retrieve.
38
+
39
+ Returns:
40
+ The Center object with the given name, or None if it does not exist.
41
+ """
42
+ return Center.objects.get_by_natural_key(name=name)
@@ -1,13 +1,13 @@
1
- from endoreg_db.models import (
2
- ModelMeta,
3
- )
4
-
5
- def get_latest_model_by_name(model_name):
6
- """
7
- Expects model name. Fetches models by name from database, sorts by version and returns latest version.
8
- """
9
- models = ModelMeta.objects.filter(name=model_name).order_by('-version')
10
- if len(models) == 0:
11
- return None
12
- else:
13
- return models[0]
1
+ from endoreg_db.models import (
2
+ ModelMeta,
3
+ )
4
+
5
+ def get_latest_model_by_name(model_name):
6
+ """
7
+ Expects model name. Fetches models by name from database, sorts by version and returns latest version.
8
+ """
9
+ models = ModelMeta.objects.filter(name=model_name).order_by('-version')
10
+ if len(models) == 0:
11
+ return None
12
+ else:
13
+ return models[0]
@@ -1,14 +1,14 @@
1
- from endoreg_db.models import Patient
2
-
3
- def get_patients() -> Patient:
4
- """
5
- Returns all Patient objects from the database.
6
- """
7
- return Patient.objects.all()
8
-
9
- def get_patients_without_dob() -> Patient:
10
- """
11
- Returns all Patient objects from the database without a date of birth.
12
- """
13
- return Patient.objects.filter(dob__isnull=True)
14
-
1
+ from endoreg_db.models import Patient
2
+
3
+ def get_patients() -> Patient:
4
+ """
5
+ Returns all Patient objects from the database.
6
+ """
7
+ return Patient.objects.all()
8
+
9
+ def get_patients_without_dob() -> Patient:
10
+ """
11
+ Returns all Patient objects from the database without a date of birth.
12
+ """
13
+ return Patient.objects.filter(dob__isnull=True)
14
+
@@ -1,20 +1,20 @@
1
- from endoreg_db.models import PatientExamination
2
- from typing import Optional
3
-
4
- def get_patient_examinations() -> PatientExamination:
5
- """
6
- Returns all PatientExamination objects from the database.
7
- """
8
- return PatientExamination.objects.all()
9
-
10
- def get_patient_examinations_without_report_file() -> PatientExamination:
11
- """
12
- Returns all PatientExamination objects from the database without a report_file.
13
- """
14
- return PatientExamination.objects.filter(report_file__isnull=True)
15
-
16
- def get_patient_examinations_without_video() -> PatientExamination:
17
- """
18
- Returns all PatientExamination objects from the database without a video.
19
- """
20
- return PatientExamination.objects.filter(video__isnull=True)
1
+ from endoreg_db.models import PatientExamination
2
+ from typing import Optional
3
+
4
+ def get_patient_examinations() -> PatientExamination:
5
+ """
6
+ Returns all PatientExamination objects from the database.
7
+ """
8
+ return PatientExamination.objects.all()
9
+
10
+ def get_patient_examinations_without_report_file() -> PatientExamination:
11
+ """
12
+ Returns all PatientExamination objects from the database without a report_file.
13
+ """
14
+ return PatientExamination.objects.filter(report_file__isnull=True)
15
+
16
+ def get_patient_examinations_without_video() -> PatientExamination:
17
+ """
18
+ Returns all PatientExamination objects from the database without a video.
19
+ """
20
+ return PatientExamination.objects.filter(video__isnull=True)
@@ -1,33 +1,33 @@
1
- from endoreg_db.models import ReportFile
2
- from typing import Optional
3
-
4
- def get_report_files() -> ReportFile:
5
- """
6
- Returns all ReportFile objects from the database.
7
- """
8
- return ReportFile.objects.all()
9
-
10
- def get_report_file_by_id(id) -> Optional[ReportFile]:
11
- """Retrieve a ReportFile object by its id.
12
-
13
- Args:
14
- id (int): The id of the report_file to retrieve.
15
-
16
- Returns:
17
- Optional[ReportFile]: The ReportFile object with the given id, or None if it does not exist.
18
- """
19
- return ReportFile.objects.get(id=id)
20
-
21
- def get_report_files_without_examination() -> ReportFile:
22
- """
23
- Returns all ReportFile objects from the database without an examination.
24
- """
25
- return ReportFile.objects.filter(patient_examination__isnull=True)
26
-
27
- def get_report_files_without_patient() -> ReportFile:
28
- """
29
- Returns all ReportFile objects from the database without a patient.
30
- """
31
- return ReportFile.objects.filter(patient__isnull=True)
32
-
33
-
1
+ from endoreg_db.models import ReportFile
2
+ from typing import Optional
3
+
4
+ def get_report_files() -> ReportFile:
5
+ """
6
+ Returns all ReportFile objects from the database.
7
+ """
8
+ return ReportFile.objects.all()
9
+
10
+ def get_report_file_by_id(id) -> Optional[ReportFile]:
11
+ """Retrieve a ReportFile object by its id.
12
+
13
+ Args:
14
+ id (int): The id of the report_file to retrieve.
15
+
16
+ Returns:
17
+ Optional[ReportFile]: The ReportFile object with the given id, or None if it does not exist.
18
+ """
19
+ return ReportFile.objects.get(id=id)
20
+
21
+ def get_report_files_without_examination() -> ReportFile:
22
+ """
23
+ Returns all ReportFile objects from the database without an examination.
24
+ """
25
+ return ReportFile.objects.filter(patient_examination__isnull=True)
26
+
27
+ def get_report_files_without_patient() -> ReportFile:
28
+ """
29
+ Returns all ReportFile objects from the database without a patient.
30
+ """
31
+ return ReportFile.objects.filter(patient__isnull=True)
32
+
33
+
@@ -1,31 +1,31 @@
1
- from endoreg_db.models import Video, PatientExamination
2
- from typing import Optional
3
-
4
- def get_videos() -> Video:
5
- """
6
- Returns all Video objects from the database.
7
- """
8
- return Video.objects.all()
9
-
10
- def get_video_by_id(id) -> Optional[Video]:
11
- """Retrieve a Video object by its id.
12
-
13
- Args:
14
- id (int): The id of the video to retrieve.
15
-
16
- Returns:
17
- Optional[Video]: The Video object with the given id, or None if it does not exist.
18
- """
19
- return Video.objects.get(id=id)
20
-
21
- def get_video_without_examination() -> Video:
22
- """
23
- Returns all Video objects from the database without an examination.
24
- """
25
- return Video.objects.filter(patient_examination__isnull=True)
26
-
27
- def get_video_without_patient() -> Video:
28
- """
29
- Returns all Video objects from the database without a patient.
30
- """
31
- return Video.objects.filter(patient__isnull=True)
1
+ from endoreg_db.models import Video, PatientExamination
2
+ from typing import Optional
3
+
4
+ def get_videos() -> Video:
5
+ """
6
+ Returns all Video objects from the database.
7
+ """
8
+ return Video.objects.all()
9
+
10
+ def get_video_by_id(id) -> Optional[Video]:
11
+ """Retrieve a Video object by its id.
12
+
13
+ Args:
14
+ id (int): The id of the video to retrieve.
15
+
16
+ Returns:
17
+ Optional[Video]: The Video object with the given id, or None if it does not exist.
18
+ """
19
+ return Video.objects.get(id=id)
20
+
21
+ def get_video_without_examination() -> Video:
22
+ """
23
+ Returns all Video objects from the database without an examination.
24
+ """
25
+ return Video.objects.filter(patient_examination__isnull=True)
26
+
27
+ def get_video_without_patient() -> Video:
28
+ """
29
+ Returns all Video objects from the database without a patient.
30
+ """
31
+ return Video.objects.filter(patient__isnull=True)
@@ -1,10 +1,10 @@
1
- from .ai_model import *
2
- from .annotation import *
3
- from .center import *
4
- from .examination import *
5
- from .frame import *
6
- from .hardware import *
7
- from .label import *
8
- from .patient import *
9
- from .report_file import *
1
+ from .ai_model import *
2
+ from .annotation import *
3
+ from .center import *
4
+ from .examination import *
5
+ from .frame import *
6
+ from .hardware import *
7
+ from .label import *
8
+ from .patient import *
9
+ from .report_file import *
10
10
  from .video import *
@@ -1,19 +1,19 @@
1
- from endoreg_db.models import ModelMeta, ModelType, ActiveModel
2
- from rest_framework import serializers
3
-
4
- class ModelMetaSerializer(serializers.ModelSerializer):
5
- weights = serializers.FileField(use_url=True) # use_url=True will provide the file's URI
6
-
7
- class Meta:
8
- model = ModelMeta
9
- fields = '__all__'
10
-
11
- class ModelTypeSerializer(serializers.ModelSerializer):
12
- class Meta:
13
- model = ModelType
14
- fields = '__all__'
15
-
16
- class ActiveModelSerializer(serializers.ModelSerializer):
17
- class Meta:
18
- model = ActiveModel
1
+ from endoreg_db.models import ModelMeta, ModelType, ActiveModel
2
+ from rest_framework import serializers
3
+
4
+ class ModelMetaSerializer(serializers.ModelSerializer):
5
+ weights = serializers.FileField(use_url=True) # use_url=True will provide the file's URI
6
+
7
+ class Meta:
8
+ model = ModelMeta
9
+ fields = '__all__'
10
+
11
+ class ModelTypeSerializer(serializers.ModelSerializer):
12
+ class Meta:
13
+ model = ModelType
14
+ fields = '__all__'
15
+
16
+ class ActiveModelSerializer(serializers.ModelSerializer):
17
+ class Meta:
18
+ model = ActiveModel
19
19
  fields = '__all__'
@@ -1,17 +1,17 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import LegacyBinaryClassificationAnnotationTask, BinaryClassificationAnnotationTask, ImageClassificationAnnotation
3
-
4
- class LegacyBinaryClassificationAnnotationTaskSerializer(serializers.ModelSerializer):
5
- class Meta:
6
- model = LegacyBinaryClassificationAnnotationTask
7
- fields = '__all__'
8
-
9
- class BinaryClassificationAnnotationTaskSerializer(serializers.ModelSerializer):
10
- class Meta:
11
- model = BinaryClassificationAnnotationTask
12
- fields = '__all__'
13
-
14
- class ImageClassificationAnnotationSerializer(serializers.ModelSerializer):
15
- class Meta:
16
- model = ImageClassificationAnnotation
17
- fields = '__all__'
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import LegacyBinaryClassificationAnnotationTask, BinaryClassificationAnnotationTask, ImageClassificationAnnotation
3
+
4
+ class LegacyBinaryClassificationAnnotationTaskSerializer(serializers.ModelSerializer):
5
+ class Meta:
6
+ model = LegacyBinaryClassificationAnnotationTask
7
+ fields = '__all__'
8
+
9
+ class BinaryClassificationAnnotationTaskSerializer(serializers.ModelSerializer):
10
+ class Meta:
11
+ model = BinaryClassificationAnnotationTask
12
+ fields = '__all__'
13
+
14
+ class ImageClassificationAnnotationSerializer(serializers.ModelSerializer):
15
+ class Meta:
16
+ model = ImageClassificationAnnotation
17
+ fields = '__all__'
@@ -1,11 +1,11 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import (
3
- Center,
4
- )
5
-
6
- class CenterSerializer(serializers.ModelSerializer):
7
- class Meta:
8
- model = Center
9
- fields = '__all__'
10
-
11
-
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import (
3
+ Center,
4
+ )
5
+
6
+ class CenterSerializer(serializers.ModelSerializer):
7
+ class Meta:
8
+ model = Center
9
+ fields = '__all__'
10
+
11
+
@@ -1,33 +1,33 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import (
3
- Examination,
4
- ExaminationTimeType,
5
- ExaminationTime,
6
- ExaminationType,
7
- PatientExamination
8
- )
9
-
10
- class ExaminationTimeTypeSerializer(serializers.ModelSerializer):
11
- class Meta:
12
- model = ExaminationTimeType
13
- fields = '__all__'
14
-
15
- class ExaminationTimeSerializer(serializers.ModelSerializer):
16
- class Meta:
17
- model = ExaminationTime
18
- fields = '__all__'
19
-
20
- class ExaminationTypeSerializer(serializers.ModelSerializer):
21
- class Meta:
22
- model = ExaminationType
23
- fields = '__all__'
24
-
25
- class ExaminationSerializer(serializers.ModelSerializer):
26
- class Meta:
27
- model = Examination
28
- fields = '__all__'
29
-
30
- class PatientExaminationSerializer(serializers.ModelSerializer):
31
- class Meta:
32
- model = PatientExamination
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import (
3
+ Examination,
4
+ ExaminationTimeType,
5
+ ExaminationTime,
6
+ ExaminationType,
7
+ PatientExamination
8
+ )
9
+
10
+ class ExaminationTimeTypeSerializer(serializers.ModelSerializer):
11
+ class Meta:
12
+ model = ExaminationTimeType
13
+ fields = '__all__'
14
+
15
+ class ExaminationTimeSerializer(serializers.ModelSerializer):
16
+ class Meta:
17
+ model = ExaminationTime
18
+ fields = '__all__'
19
+
20
+ class ExaminationTypeSerializer(serializers.ModelSerializer):
21
+ class Meta:
22
+ model = ExaminationType
23
+ fields = '__all__'
24
+
25
+ class ExaminationSerializer(serializers.ModelSerializer):
26
+ class Meta:
27
+ model = Examination
28
+ fields = '__all__'
29
+
30
+ class PatientExaminationSerializer(serializers.ModelSerializer):
31
+ class Meta:
32
+ model = PatientExamination
33
33
  fields = '__all__'
@@ -1,13 +1,13 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import Frame, LegacyFrame
3
-
4
- class FrameSerializer(serializers.ModelSerializer):
5
- class Meta:
6
- model = Frame
7
- fields = '__all__'
8
-
9
- class LegacyFrameSerializer(serializers.ModelSerializer):
10
- class Meta:
11
- model = LegacyFrame
12
- fields = '__all__'
13
-
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import Frame, LegacyFrame
3
+
4
+ class FrameSerializer(serializers.ModelSerializer):
5
+ class Meta:
6
+ model = Frame
7
+ fields = '__all__'
8
+
9
+ class LegacyFrameSerializer(serializers.ModelSerializer):
10
+ class Meta:
11
+ model = LegacyFrame
12
+ fields = '__all__'
13
+
@@ -1,21 +1,21 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import (
3
- Endoscope,
4
- EndoscopeType,
5
- EndoscopyProcessor,
6
- )
7
-
8
- class EndoscopeSerializer(serializers.ModelSerializer):
9
- class Meta:
10
- model = Endoscope
11
- fields = '__all__'
12
-
13
- class EndoscopyProcessorSerializer(serializers.ModelSerializer):
14
- class Meta:
15
- model = EndoscopyProcessor
16
- fields = '__all__'
17
-
18
- class EndoscopeTypeSerializer(serializers.ModelSerializer):
19
- class Meta:
20
- model = EndoscopeType
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import (
3
+ Endoscope,
4
+ EndoscopeType,
5
+ EndoscopyProcessor,
6
+ )
7
+
8
+ class EndoscopeSerializer(serializers.ModelSerializer):
9
+ class Meta:
10
+ model = Endoscope
11
+ fields = '__all__'
12
+
13
+ class EndoscopyProcessorSerializer(serializers.ModelSerializer):
14
+ class Meta:
15
+ model = EndoscopyProcessor
16
+ fields = '__all__'
17
+
18
+ class EndoscopeTypeSerializer(serializers.ModelSerializer):
19
+ class Meta:
20
+ model = EndoscopeType
21
21
  fields = '__all__'
@@ -1,22 +1,22 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import (
3
- Label,
4
- LabelSet,
5
- LabelType,
6
- )
7
-
8
- class LabelTypeSerializer(serializers.ModelSerializer):
9
- class Meta:
10
- model = LabelType
11
- fields = '__all__'
12
-
13
- class LabelSetSerializer(serializers.ModelSerializer):
14
- class Meta:
15
- model = LabelSet
16
- fields = '__all__'
17
-
18
- class LabelSerializer(serializers.ModelSerializer):
19
- class Meta:
20
- model = Label
21
- fields = '__all__'
22
-
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import (
3
+ Label,
4
+ LabelSet,
5
+ LabelType,
6
+ )
7
+
8
+ class LabelTypeSerializer(serializers.ModelSerializer):
9
+ class Meta:
10
+ model = LabelType
11
+ fields = '__all__'
12
+
13
+ class LabelSetSerializer(serializers.ModelSerializer):
14
+ class Meta:
15
+ model = LabelSet
16
+ fields = '__all__'
17
+
18
+ class LabelSerializer(serializers.ModelSerializer):
19
+ class Meta:
20
+ model = Label
21
+ fields = '__all__'
22
+
@@ -1,10 +1,10 @@
1
- from rest_framework import serializers
2
- from endoreg_db.models import (
3
- Patient,
4
- )
5
-
6
- class PatientSerializer(serializers.ModelSerializer):
7
- class Meta:
8
- model = Patient
9
- fields = '__all__'
10
-
1
+ from rest_framework import serializers
2
+ from endoreg_db.models import (
3
+ Patient,
4
+ )
5
+
6
+ class PatientSerializer(serializers.ModelSerializer):
7
+ class Meta:
8
+ model = Patient
9
+ fields = '__all__'
10
+