endoreg-db 0.3.6__py3-none-any.whl → 0.3.7__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 (347) hide show
  1. endoreg_db/admin.py +3 -3
  2. endoreg_db/apps.py +6 -6
  3. endoreg_db/data/__init__.py +67 -64
  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 -167
  6. endoreg_db/data/case_template/rule/01_patient-set-age.yaml +7 -7
  7. endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +8 -8
  8. endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +22 -22
  9. endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +18 -18
  10. endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +18 -18
  11. endoreg_db/data/case_template/rule/19_create_patient.yaml +16 -16
  12. endoreg_db/data/case_template/rule_type/base_types.yaml +35 -35
  13. endoreg_db/data/case_template/rule_value_type/base_types.yaml +58 -58
  14. endoreg_db/data/case_template/template/base.yaml +7 -7
  15. endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +2 -2
  16. endoreg_db/data/case_template/tmp/_rule_value +13 -13
  17. endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +21 -21
  18. endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +9 -9
  19. endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +6 -6
  20. endoreg_db/data/center/data.yaml +59 -59
  21. endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +144 -144
  22. endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +48 -48
  23. endoreg_db/data/disease/cardiovascular.yaml +37 -37
  24. endoreg_db/data/disease/hepatology.yaml +4 -4
  25. endoreg_db/data/disease/misc.yaml +5 -5
  26. endoreg_db/data/disease/renal.yaml +4 -4
  27. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +5 -5
  28. endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +5 -5
  29. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +40 -40
  30. endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +19 -19
  31. endoreg_db/data/distribution/date/patient.yaml +6 -6
  32. endoreg_db/data/distribution/single_categorical/patient.yaml +6 -6
  33. endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +132 -132
  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 +27 -27
  37. endoreg_db/data/event/neurology.yaml +13 -13
  38. endoreg_db/data/event/surgery.yaml +12 -12
  39. endoreg_db/data/event/thrombembolism.yaml +19 -19
  40. endoreg_db/data/examination/examinations/data.yaml +65 -65
  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 -18
  45. endoreg_db/data/information_source/data.yaml +30 -30
  46. endoreg_db/data/information_source/medication.yaml +5 -5
  47. endoreg_db/data/lab_value/cardiac_enzymes.yaml +30 -30
  48. endoreg_db/data/lab_value/coagulation.yaml +48 -48
  49. endoreg_db/data/lab_value/electrolytes.yaml +189 -189
  50. endoreg_db/data/lab_value/gastrointestinal_function.yaml +121 -121
  51. endoreg_db/data/lab_value/hematology.yaml +169 -169
  52. endoreg_db/data/lab_value/hormones.yaml +53 -53
  53. endoreg_db/data/lab_value/lipids.yaml +44 -44
  54. endoreg_db/data/lab_value/misc.yaml +30 -30
  55. endoreg_db/data/lab_value/renal_function.yaml +10 -10
  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/medication/anticoagulation.yaml +64 -64
  60. endoreg_db/data/medication/tah.yaml +69 -69
  61. endoreg_db/data/medication_indication/anticoagulation.yaml +120 -120
  62. endoreg_db/data/medication_indication_type/data.yaml +10 -10
  63. endoreg_db/data/medication_indication_type/thrombembolism.yaml +40 -40
  64. endoreg_db/data/medication_intake_time/base.yaml +30 -30
  65. endoreg_db/data/medication_schedule/apixaban.yaml +94 -94
  66. endoreg_db/data/medication_schedule/ass.yaml +12 -12
  67. endoreg_db/data/medication_schedule/enoxaparin.yaml +26 -26
  68. endoreg_db/data/model_type/data.yaml +6 -6
  69. endoreg_db/data/network_device/data.yaml +17 -0
  70. endoreg_db/data/network_device_type/data.yaml +8 -0
  71. endoreg_db/data/patient_lab_sample_type/generic.yaml +5 -5
  72. endoreg_db/data/pdf_type/data.yaml +28 -28
  73. endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +66 -66
  74. endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +33 -33
  75. endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +308 -308
  76. endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +88 -88
  77. endoreg_db/data/profession/data.yaml +70 -70
  78. endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +55 -55
  79. endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +26 -26
  80. endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +19 -19
  81. endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +15 -15
  82. endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +12 -12
  83. endoreg_db/data/unit/concentration.yaml +92 -92
  84. endoreg_db/data/unit/data.yaml +17 -17
  85. endoreg_db/data/unit/length.yaml +30 -30
  86. endoreg_db/data/unit/misc.yaml +19 -19
  87. endoreg_db/data/unit/rate.yaml +5 -5
  88. endoreg_db/data/unit/time.yaml +12 -12
  89. endoreg_db/data/unit/volume.yaml +35 -35
  90. endoreg_db/data/unit/weight.yaml +37 -37
  91. endoreg_db/data/waste/data.yaml +11 -11
  92. endoreg_db/forms/__init__.py +2 -2
  93. endoreg_db/forms/questionnaires/tto_questionnaire.py +23 -23
  94. endoreg_db/forms/settings/__init__.py +8 -8
  95. endoreg_db/forms/unit.py +5 -5
  96. endoreg_db/management/commands/_load_model_template.py +40 -40
  97. endoreg_db/management/commands/delete_all.py +18 -18
  98. endoreg_db/management/commands/delete_legacy_images.py +19 -19
  99. endoreg_db/management/commands/delete_legacy_videos.py +16 -16
  100. endoreg_db/management/commands/extract_legacy_video_frames.py +18 -18
  101. endoreg_db/management/commands/fetch_legacy_image_dataset.py +32 -32
  102. endoreg_db/management/commands/fix_auth_permission.py +20 -20
  103. endoreg_db/management/commands/import_legacy_images.py +94 -94
  104. endoreg_db/management/commands/import_legacy_videos.py +76 -76
  105. endoreg_db/management/commands/load_active_model_data.py +44 -44
  106. endoreg_db/management/commands/load_ai_model_data.py +44 -44
  107. endoreg_db/management/commands/load_base_db_data.py +132 -128
  108. endoreg_db/management/commands/load_center_data.py +42 -42
  109. endoreg_db/management/commands/load_disease_classification_choices_data.py +40 -40
  110. endoreg_db/management/commands/load_disease_classification_data.py +40 -40
  111. endoreg_db/management/commands/load_disease_data.py +39 -39
  112. endoreg_db/management/commands/load_distribution_data.py +65 -65
  113. endoreg_db/management/commands/load_endoscope_type_data.py +44 -44
  114. endoreg_db/management/commands/load_endoscopy_processor_data.py +44 -44
  115. endoreg_db/management/commands/load_event_data.py +40 -40
  116. endoreg_db/management/commands/load_examination_data.py +74 -74
  117. endoreg_db/management/commands/load_g_play_data.py +112 -112
  118. endoreg_db/management/commands/load_gender_data.py +43 -43
  119. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +132 -132
  120. endoreg_db/management/commands/load_information_source.py +44 -44
  121. endoreg_db/management/commands/load_lab_value_data.py +49 -49
  122. endoreg_db/management/commands/load_label_data.py +66 -66
  123. endoreg_db/management/commands/load_medication_data.py +40 -40
  124. endoreg_db/management/commands/load_medication_indication_data.py +62 -62
  125. endoreg_db/management/commands/load_medication_indication_type_data.py +40 -40
  126. endoreg_db/management/commands/load_medication_intake_time_data.py +40 -40
  127. endoreg_db/management/commands/load_medication_schedule_data.py +54 -54
  128. endoreg_db/management/commands/load_network_data.py +49 -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 -42
  161. endoreg_db/migrations/0026_disease_diseaseclassification_and_more.py +166 -166
  162. endoreg_db/migrations/0027_labvalue_abbreviation_labvalue_default_normal_range_and_more.py +38 -38
  163. endoreg_db/migrations/0028_alter_unit_abbreviation.py +18 -18
  164. endoreg_db/migrations/0029_medicationintaketime_and_more.py +75 -75
  165. endoreg_db/migrations/0030_medicationindicationtype_and_more.py +101 -101
  166. endoreg_db/migrations/0031_rename_adapt_to_liver_function_medication_adapt_to_age_and_more.py +38 -38
  167. endoreg_db/migrations/0032_alter_medicationschedule_therapy_duration_d.py +18 -18
  168. endoreg_db/migrations/0033_medicationindication_sources.py +18 -18
  169. endoreg_db/migrations/0034_alter_rawpdffile_file.py +20 -20
  170. endoreg_db/migrations/0035_alter_medicationindication_sources.py +18 -18
  171. endoreg_db/migrations/0036_alter_rawpdffile_file.py +20 -20
  172. endoreg_db/migrations/0037_alter_medicationindication_sources.py +18 -18
  173. endoreg_db/migrations/0038_emissionfactor_material_product_productgroup_and_more.py +164 -164
  174. endoreg_db/migrations/0039_referenceproduct_name.py +19 -19
  175. endoreg_db/migrations/0040_quizanswertype_quizquestiontype_quizquestion_and_more.py +50 -50
  176. endoreg_db/migrations/0041_gender_patientmedication_medication_indication_and_more.py +40 -40
  177. endoreg_db/migrations/0042_casetemplateruletype_casetemplaterulevalue_and_more.py +74 -74
  178. endoreg_db/migrations/0043_casetemplatetype_name_de_casetemplatetype_name_en.py +23 -23
  179. endoreg_db/migrations/0044_casetemplateruletype_name_de_and_more.py +23 -23
  180. endoreg_db/migrations/0045_casetemplaterulevalue_value_type.py +19 -19
  181. endoreg_db/migrations/0046_casetemplaterulevalue_target_field.py +18 -18
  182. endoreg_db/migrations/0047_casetemplaterule_target_model.py +18 -18
  183. endoreg_db/migrations/0048_remove_casetemplaterule_chained_rules_and_more.py +22 -22
  184. endoreg_db/migrations/0049_remove_casetemplaterule_rule_values.py +17 -17
  185. endoreg_db/migrations/0050_casetemplaterule_rule_values.py +18 -18
  186. endoreg_db/migrations/0051_remove_casetemplaterule_calling_rules_and_more.py +27 -27
  187. endoreg_db/migrations/0052_rename_case_template_type_casetemplate_template_type.py +18 -18
  188. endoreg_db/migrations/0053_patientlabsampletype_patientlabsample_and_more.py +38 -38
  189. endoreg_db/migrations/0054_multiplecategoricalvaluedistribution_and_more.py +69 -69
  190. endoreg_db/migrations/0055_remove_casetemplaterule_rule_values_and_more.py +59 -59
  191. endoreg_db/migrations/0056_datevaluedistribution_and_more.py +32 -32
  192. endoreg_db/migrations/0057_remove_datevaluedistribution_max_date_and_more.py +72 -72
  193. endoreg_db/migrations/0058_datevaluedistribution_description_and_more.py +28 -28
  194. endoreg_db/migrations/0059_casetemplaterule_rule_values.py +18 -18
  195. endoreg_db/migrations/0060_labvalue__default_date_value_distribution_and_more.py +44 -44
  196. endoreg_db/migrations/0061_remove_patientlabvalue_date_patientlabvalue_datetime.py +24 -24
  197. endoreg_db/migrations/0062_labvalue_numeric_precision.py +18 -18
  198. endoreg_db/migrations/0063_alter_labvalue_numeric_precision.py +18 -18
  199. endoreg_db/migrations/0064_casetemplaterule_extra_parameters_and_more.py +23 -23
  200. endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date_value_distribution_and_more.py +58 -58
  201. endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py +29 -29
  202. endoreg_db/migrations/0067_alter_medicationindication_indication_type.py +19 -19
  203. endoreg_db/models/__init__.py +75 -74
  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 +5 -5
  213. endoreg_db/models/case_template/case_template.py +81 -81
  214. endoreg_db/models/case_template/case_template_rule.py +276 -276
  215. endoreg_db/models/case_template/case_template_rule_value.py +73 -73
  216. endoreg_db/models/case_template/case_template_type.py +27 -27
  217. endoreg_db/models/center/__init__.py +4 -4
  218. endoreg_db/models/center/center.py +24 -24
  219. endoreg_db/models/center/center_product.py +33 -33
  220. endoreg_db/models/center/center_resource.py +18 -18
  221. endoreg_db/models/center/center_waste.py +10 -10
  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 -188
  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 -132
  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 +55 -55
  243. endoreg_db/models/emission/emission_factor.py +19 -19
  244. endoreg_db/models/event.py +21 -21
  245. endoreg_db/models/examination/__init__.py +3 -3
  246. endoreg_db/models/examination/examination.py +26 -26
  247. endoreg_db/models/examination/examination_time.py +27 -27
  248. endoreg_db/models/examination/examination_time_type.py +24 -24
  249. endoreg_db/models/examination/examination_type.py +18 -18
  250. endoreg_db/models/hardware/__init__.py +1 -1
  251. endoreg_db/models/hardware/endoscope.py +44 -44
  252. endoreg_db/models/hardware/endoscopy_processor.py +143 -143
  253. endoreg_db/models/information_source.py +29 -29
  254. endoreg_db/models/label/label.py +84 -84
  255. endoreg_db/models/laboratory/lab_value.py +102 -102
  256. endoreg_db/models/legacy_data/__init__.py +3 -3
  257. endoreg_db/models/legacy_data/image.py +34 -34
  258. endoreg_db/models/medication/medication.py +148 -148
  259. endoreg_db/models/network/__init__.py +2 -0
  260. endoreg_db/models/network/network_device.py +27 -0
  261. endoreg_db/models/network/network_device_type.py +23 -0
  262. endoreg_db/models/other/__init__.py +4 -4
  263. endoreg_db/models/other/distribution.py +215 -215
  264. endoreg_db/models/other/material.py +16 -16
  265. endoreg_db/models/other/resource.py +17 -17
  266. endoreg_db/models/other/transport_route.py +20 -20
  267. endoreg_db/models/other/waste.py +20 -20
  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 +6 -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 -22
  276. endoreg_db/models/persons/last_name.py +19 -19
  277. endoreg_db/models/persons/patient/__init__.py +7 -7
  278. endoreg_db/models/persons/patient/case/case.py +30 -30
  279. endoreg_db/models/persons/patient/patient.py +216 -216
  280. endoreg_db/models/persons/patient/patient_disease.py +16 -16
  281. endoreg_db/models/persons/patient/patient_event.py +22 -22
  282. endoreg_db/models/persons/patient/patient_lab_sample.py +106 -106
  283. endoreg_db/models/persons/patient/patient_lab_value.py +176 -176
  284. endoreg_db/models/persons/patient/patient_medication.py +43 -43
  285. endoreg_db/models/persons/patient/patient_medication_schedule.py +27 -27
  286. endoreg_db/models/persons/person.py +31 -31
  287. endoreg_db/models/persons/portal_user_information.py +27 -27
  288. endoreg_db/models/prediction/__init__.py +1 -1
  289. endoreg_db/models/prediction/image_classification.py +37 -37
  290. endoreg_db/models/prediction/video_prediction_meta.py +244 -244
  291. endoreg_db/models/product/__init__.py +4 -4
  292. endoreg_db/models/product/product.py +97 -97
  293. endoreg_db/models/product/product_group.py +19 -19
  294. endoreg_db/models/product/product_material.py +24 -24
  295. endoreg_db/models/product/product_weight.py +26 -26
  296. endoreg_db/models/product/reference_product.py +99 -99
  297. endoreg_db/models/questionnaires/__init__.py +114 -114
  298. endoreg_db/models/quiz/__init__.py +1 -1
  299. endoreg_db/models/quiz/quiz_answer.py +41 -41
  300. endoreg_db/models/quiz/quiz_question.py +54 -54
  301. endoreg_db/models/report_reader/__init__.py +1 -1
  302. endoreg_db/models/report_reader/report_reader_config.py +53 -53
  303. endoreg_db/models/report_reader/report_reader_flag.py +19 -19
  304. endoreg_db/models/rules/__init__.py +4 -4
  305. endoreg_db/models/rules/rule.py +23 -23
  306. endoreg_db/models/rules/rule_applicator.py +224 -224
  307. endoreg_db/models/rules/rule_attribute_dtype.py +18 -18
  308. endoreg_db/models/rules/rule_type.py +21 -21
  309. endoreg_db/models/rules/ruleset.py +19 -19
  310. endoreg_db/models/unit.py +21 -21
  311. endoreg_db/queries/__init__.py +4 -4
  312. endoreg_db/queries/annotations/__init__.py +2 -2
  313. endoreg_db/queries/annotations/legacy.py +159 -159
  314. endoreg_db/queries/get/__init__.py +5 -5
  315. endoreg_db/queries/get/center.py +42 -42
  316. endoreg_db/queries/get/model.py +13 -13
  317. endoreg_db/queries/get/patient.py +14 -14
  318. endoreg_db/queries/get/patient_examination.py +20 -20
  319. endoreg_db/queries/get/report_file.py +33 -33
  320. endoreg_db/queries/get/video.py +31 -31
  321. endoreg_db/serializers/__init__.py +9 -9
  322. endoreg_db/serializers/ai_model.py +18 -18
  323. endoreg_db/serializers/annotation.py +17 -17
  324. endoreg_db/serializers/center.py +11 -11
  325. endoreg_db/serializers/examination.py +32 -32
  326. endoreg_db/serializers/frame.py +13 -13
  327. endoreg_db/serializers/hardware.py +20 -20
  328. endoreg_db/serializers/label.py +22 -22
  329. endoreg_db/serializers/patient.py +10 -10
  330. endoreg_db/serializers/prediction.py +15 -15
  331. endoreg_db/serializers/report_file.py +7 -7
  332. endoreg_db/serializers/video.py +27 -27
  333. endoreg_db/tests.py +3 -3
  334. endoreg_db/utils/cropping.py +28 -28
  335. endoreg_db/utils/dataloader.py +92 -92
  336. endoreg_db/utils/file_operations.py +30 -30
  337. endoreg_db/utils/hashs.py +33 -33
  338. endoreg_db/utils/legacy_ocr.py +201 -201
  339. endoreg_db/utils/ocr.py +197 -197
  340. endoreg_db/utils/uuid.py +4 -4
  341. endoreg_db/utils/video_metadata.py +87 -87
  342. endoreg_db/views.py +3 -3
  343. {endoreg_db-0.3.6.dist-info → endoreg_db-0.3.7.dist-info}/LICENSE +674 -674
  344. {endoreg_db-0.3.6.dist-info → endoreg_db-0.3.7.dist-info}/METADATA +2 -2
  345. endoreg_db-0.3.7.dist-info/RECORD +363 -0
  346. {endoreg_db-0.3.6.dist-info → endoreg_db-0.3.7.dist-info}/WHEEL +1 -1
  347. endoreg_db-0.3.6.dist-info/RECORD +0 -357
@@ -1,24 +1,24 @@
1
- from django.db import models
2
-
3
- class ExaminationTimeTypeManager(models.Manager):
4
- def get_by_natural_key(self, name):
5
- return self.get(name=name)
6
-
7
- class ExaminationTimeType(models.Model):
8
- objects = ExaminationTimeTypeManager()
9
- name = models.CharField(max_length=100, unique=True)
10
- name_de = models.CharField(max_length=100, blank=True, null=True)
11
- name_en = models.CharField(max_length=100, blank=True, null=True)
12
- examinations = models.ManyToManyField('Examination', blank=True)
13
-
14
- def __str__(self):
15
- return self.name
16
-
17
- def natural_key(self):
18
- return (self.name,)
19
-
20
- class Meta:
21
- verbose_name = 'Examination Time Type'
22
- verbose_name_plural = 'Examination Time Types'
23
- ordering = ['name']
24
-
1
+ from django.db import models
2
+
3
+ class ExaminationTimeTypeManager(models.Manager):
4
+ def get_by_natural_key(self, name):
5
+ return self.get(name=name)
6
+
7
+ class ExaminationTimeType(models.Model):
8
+ objects = ExaminationTimeTypeManager()
9
+ name = models.CharField(max_length=100, unique=True)
10
+ name_de = models.CharField(max_length=100, blank=True, null=True)
11
+ name_en = models.CharField(max_length=100, blank=True, null=True)
12
+ examinations = models.ManyToManyField('Examination', blank=True)
13
+
14
+ def __str__(self):
15
+ return self.name
16
+
17
+ def natural_key(self):
18
+ return (self.name,)
19
+
20
+ class Meta:
21
+ verbose_name = 'Examination Time Type'
22
+ verbose_name_plural = 'Examination Time Types'
23
+ ordering = ['name']
24
+
@@ -1,18 +1,18 @@
1
- from django.db import models
2
-
3
- class ExaminationTypeManager(models.Manager):
4
- def get_by_natural_key(self, name):
5
- return self.get(name=name)
6
-
7
- class ExaminationType(models.Model):
8
- objects = ExaminationTypeManager()
9
- name = models.CharField(max_length=100, unique=True)
10
- name_de = models.CharField(max_length=100, blank=True, null=True)
11
- name_en = models.CharField(max_length=100, blank=True, null=True)
12
-
13
- def __str__(self):
14
- return self.name_en
15
-
16
- def natural_key(self):
17
- return (self.name,)
18
-
1
+ from django.db import models
2
+
3
+ class ExaminationTypeManager(models.Manager):
4
+ def get_by_natural_key(self, name):
5
+ return self.get(name=name)
6
+
7
+ class ExaminationType(models.Model):
8
+ objects = ExaminationTypeManager()
9
+ name = models.CharField(max_length=100, unique=True)
10
+ name_de = models.CharField(max_length=100, blank=True, null=True)
11
+ name_en = models.CharField(max_length=100, blank=True, null=True)
12
+
13
+ def __str__(self):
14
+ return self.name_en
15
+
16
+ def natural_key(self):
17
+ return (self.name,)
18
+
@@ -1,2 +1,2 @@
1
- from .endoscopy_processor import EndoscopyProcessor
1
+ from .endoscopy_processor import EndoscopyProcessor
2
2
  from .endoscope import Endoscope, EndoscopeType
@@ -1,44 +1,44 @@
1
- from django.db import models
2
-
3
- class EndoscopeManager(models.Manager):
4
- def get_by_natural_key(self, name, sn):
5
- return self.get(name=name, sn=sn)
6
-
7
- class Endoscope(models.Model):
8
- objects = EndoscopeManager()
9
-
10
- name = models.CharField(max_length=255)
11
- sn = models.CharField(max_length=255)
12
-
13
- def natural_key(self):
14
- return (self.name, self.sn)
15
-
16
- def __str__(self):
17
- return self.name
18
-
19
- class Meta:
20
- ordering = ['name']
21
- verbose_name = 'Endoscope'
22
- verbose_name_plural = 'Endoscopes'
23
-
24
- class EndoscopeTypeManager(models.Manager):
25
- def get_by_natural_key(self, name):
26
- return self.get(name=name)
27
-
28
- class EndoscopeType(models.Model):
29
- objects = EndoscopeTypeManager()
30
-
31
- name = models.CharField(max_length=255)
32
- name_de = models.CharField(max_length=255, blank=True, null=True)
33
- name_en = models.CharField(max_length=255, blank=True, null=True)
34
-
35
- def natural_key(self):
36
- return (self.name,)
37
-
38
- def __str__(self):
39
- return self.name
40
-
41
- class Meta:
42
- ordering = ['name']
43
- verbose_name = 'Endoscope Type'
44
- verbose_name_plural = 'Endoscope Types'
1
+ from django.db import models
2
+
3
+ class EndoscopeManager(models.Manager):
4
+ def get_by_natural_key(self, name, sn):
5
+ return self.get(name=name, sn=sn)
6
+
7
+ class Endoscope(models.Model):
8
+ objects = EndoscopeManager()
9
+
10
+ name = models.CharField(max_length=255)
11
+ sn = models.CharField(max_length=255)
12
+
13
+ def natural_key(self):
14
+ return (self.name, self.sn)
15
+
16
+ def __str__(self):
17
+ return self.name
18
+
19
+ class Meta:
20
+ ordering = ['name']
21
+ verbose_name = 'Endoscope'
22
+ verbose_name_plural = 'Endoscopes'
23
+
24
+ class EndoscopeTypeManager(models.Manager):
25
+ def get_by_natural_key(self, name):
26
+ return self.get(name=name)
27
+
28
+ class EndoscopeType(models.Model):
29
+ objects = EndoscopeTypeManager()
30
+
31
+ name = models.CharField(max_length=255)
32
+ name_de = models.CharField(max_length=255, blank=True, null=True)
33
+ name_en = models.CharField(max_length=255, blank=True, null=True)
34
+
35
+ def natural_key(self):
36
+ return (self.name,)
37
+
38
+ def __str__(self):
39
+ return self.name
40
+
41
+ class Meta:
42
+ ordering = ['name']
43
+ verbose_name = 'Endoscope Type'
44
+ verbose_name_plural = 'Endoscope Types'
@@ -1,143 +1,143 @@
1
- from django.db import models
2
-
3
- class EndoscopyProcessorManager(models.Manager):
4
- def get_by_natural_key(self, name):
5
- return self.get(name=name)
6
-
7
- class EndoscopyProcessor(models.Model):
8
- objects = EndoscopyProcessorManager()
9
-
10
- name = models.CharField(max_length=255)
11
- image_width = models.IntegerField()
12
- image_height = models.IntegerField()
13
- # image_fps = models.IntegerField()
14
-
15
- # Roi for endoscope image
16
- endoscope_image_x = models.IntegerField()
17
- endoscope_image_y = models.IntegerField()
18
- endoscope_image_width = models.IntegerField()
19
- endoscope_image_height = models.IntegerField()
20
-
21
- # Roi for examination date
22
- examination_date_x = models.IntegerField()
23
- examination_date_y = models.IntegerField()
24
- examination_date_width = models.IntegerField()
25
- examination_date_height = models.IntegerField()
26
-
27
- # Roi for examination time
28
- examination_time_x = models.IntegerField(blank=True, null=True)
29
- examination_time_y = models.IntegerField(blank=True, null=True)
30
- examination_time_width = models.IntegerField(blank=True, null=True)
31
- examination_time_height = models.IntegerField(blank=True, null=True)
32
-
33
- # Roi for patient first name
34
- patient_first_name_x = models.IntegerField()
35
- patient_first_name_y = models.IntegerField()
36
- patient_first_name_width = models.IntegerField()
37
- patient_first_name_height = models.IntegerField()
38
-
39
- # Roi for patient name
40
- patient_last_name_x = models.IntegerField()
41
- patient_last_name_y = models.IntegerField()
42
- patient_last_name_width = models.IntegerField()
43
- patient_last_name_height = models.IntegerField()
44
-
45
- # Roi for patient dob
46
- patient_dob_x = models.IntegerField()
47
- patient_dob_y = models.IntegerField()
48
- patient_dob_width = models.IntegerField()
49
- patient_dob_height = models.IntegerField()
50
-
51
- # Roi for endoscope type
52
- endoscope_type_x = models.IntegerField(blank=True, null=True)
53
- endoscope_type_y = models.IntegerField(blank=True, null=True)
54
- endoscope_type_width = models.IntegerField(blank=True, null=True)
55
- endoscope_type_height = models.IntegerField(blank=True, null=True)
56
-
57
- # Roi for endoscopy sn
58
- endoscope_sn_x = models.IntegerField(blank=True, null=True)
59
- endoscope_sn_y = models.IntegerField(blank=True, null=True)
60
- endoscope_sn_width = models.IntegerField(blank=True, null=True)
61
- endoscope_sn_height = models.IntegerField(blank=True, null=True)
62
-
63
- def natural_key(self):
64
- return (self.name,)
65
-
66
- def __str__(self):
67
- return self.name
68
-
69
- def get_roi_endoscope_image(self):
70
- return {
71
- "x": self.endoscope_image_x,
72
- "y": self.endoscope_image_y,
73
- "width": self.endoscope_image_width,
74
- "height": self.endoscope_image_height
75
- }
76
-
77
- def get_roi_examination_date(self):
78
- return {
79
- "x": self.examination_date_x,
80
- "y": self.examination_date_y,
81
- "width": self.examination_date_width,
82
- "height": self.examination_date_height
83
- }
84
-
85
- def get_roi_examination_time(self):
86
- return {
87
- "x": self.examination_time_x,
88
- "y": self.examination_time_y,
89
- "width": self.examination_time_width,
90
- "height": self.examination_time_height
91
- }
92
-
93
- def get_roi_patient_last_name(self):
94
- return {
95
- "x": self.patient_last_name_x,
96
- "y": self.patient_last_name_y,
97
- "width": self.patient_last_name_width,
98
- "height": self.patient_last_name_height
99
- }
100
-
101
- def get_roi_patient_first_name(self):
102
- return {
103
- "x": self.patient_first_name_x,
104
- "y": self.patient_first_name_y,
105
- "width": self.patient_first_name_width,
106
- "height": self.patient_first_name_height
107
- }
108
-
109
- def get_roi_patient_dob(self):
110
- return {
111
- "x": self.patient_dob_x,
112
- "y": self.patient_dob_y,
113
- "width": self.patient_dob_width,
114
- "height": self.patient_dob_height
115
- }
116
-
117
- def get_roi_endoscope_type(self):
118
- return {
119
- "x": self.endoscope_type_x,
120
- "y": self.endoscope_type_y,
121
- "width": self.endoscope_type_width,
122
- "height": self.endoscope_type_height
123
- }
124
-
125
- def get_roi_endoscopy_sn(self):
126
- return {
127
- "x": self.endoscope_sn_x,
128
- "y": self.endoscope_sn_y,
129
- "width": self.endoscope_sn_width,
130
- "height": self.endoscope_sn_height
131
- }
132
-
133
- def get_rois(self):
134
- return {
135
- "endoscope_image": self.get_roi_endoscope_image(),
136
- "examination_date": self.get_roi_examination_date(),
137
- "examination_time": self.get_roi_examination_time(),
138
- "patient_first_name": self.get_roi_patient_first_name(),
139
- "patient_last_name": self.get_roi_patient_last_name(),
140
- "patient_dob": self.get_roi_patient_dob(),
141
- "endoscope_type": self.get_roi_endoscope_type(),
142
- "endoscope_sn": self.get_roi_endoscopy_sn()
143
- }
1
+ from django.db import models
2
+
3
+ class EndoscopyProcessorManager(models.Manager):
4
+ def get_by_natural_key(self, name):
5
+ return self.get(name=name)
6
+
7
+ class EndoscopyProcessor(models.Model):
8
+ objects = EndoscopyProcessorManager()
9
+
10
+ name = models.CharField(max_length=255)
11
+ image_width = models.IntegerField()
12
+ image_height = models.IntegerField()
13
+ # image_fps = models.IntegerField()
14
+
15
+ # Roi for endoscope image
16
+ endoscope_image_x = models.IntegerField()
17
+ endoscope_image_y = models.IntegerField()
18
+ endoscope_image_width = models.IntegerField()
19
+ endoscope_image_height = models.IntegerField()
20
+
21
+ # Roi for examination date
22
+ examination_date_x = models.IntegerField()
23
+ examination_date_y = models.IntegerField()
24
+ examination_date_width = models.IntegerField()
25
+ examination_date_height = models.IntegerField()
26
+
27
+ # Roi for examination time
28
+ examination_time_x = models.IntegerField(blank=True, null=True)
29
+ examination_time_y = models.IntegerField(blank=True, null=True)
30
+ examination_time_width = models.IntegerField(blank=True, null=True)
31
+ examination_time_height = models.IntegerField(blank=True, null=True)
32
+
33
+ # Roi for patient first name
34
+ patient_first_name_x = models.IntegerField()
35
+ patient_first_name_y = models.IntegerField()
36
+ patient_first_name_width = models.IntegerField()
37
+ patient_first_name_height = models.IntegerField()
38
+
39
+ # Roi for patient name
40
+ patient_last_name_x = models.IntegerField()
41
+ patient_last_name_y = models.IntegerField()
42
+ patient_last_name_width = models.IntegerField()
43
+ patient_last_name_height = models.IntegerField()
44
+
45
+ # Roi for patient dob
46
+ patient_dob_x = models.IntegerField()
47
+ patient_dob_y = models.IntegerField()
48
+ patient_dob_width = models.IntegerField()
49
+ patient_dob_height = models.IntegerField()
50
+
51
+ # Roi for endoscope type
52
+ endoscope_type_x = models.IntegerField(blank=True, null=True)
53
+ endoscope_type_y = models.IntegerField(blank=True, null=True)
54
+ endoscope_type_width = models.IntegerField(blank=True, null=True)
55
+ endoscope_type_height = models.IntegerField(blank=True, null=True)
56
+
57
+ # Roi for endoscopy sn
58
+ endoscope_sn_x = models.IntegerField(blank=True, null=True)
59
+ endoscope_sn_y = models.IntegerField(blank=True, null=True)
60
+ endoscope_sn_width = models.IntegerField(blank=True, null=True)
61
+ endoscope_sn_height = models.IntegerField(blank=True, null=True)
62
+
63
+ def natural_key(self):
64
+ return (self.name,)
65
+
66
+ def __str__(self):
67
+ return self.name
68
+
69
+ def get_roi_endoscope_image(self):
70
+ return {
71
+ "x": self.endoscope_image_x,
72
+ "y": self.endoscope_image_y,
73
+ "width": self.endoscope_image_width,
74
+ "height": self.endoscope_image_height
75
+ }
76
+
77
+ def get_roi_examination_date(self):
78
+ return {
79
+ "x": self.examination_date_x,
80
+ "y": self.examination_date_y,
81
+ "width": self.examination_date_width,
82
+ "height": self.examination_date_height
83
+ }
84
+
85
+ def get_roi_examination_time(self):
86
+ return {
87
+ "x": self.examination_time_x,
88
+ "y": self.examination_time_y,
89
+ "width": self.examination_time_width,
90
+ "height": self.examination_time_height
91
+ }
92
+
93
+ def get_roi_patient_last_name(self):
94
+ return {
95
+ "x": self.patient_last_name_x,
96
+ "y": self.patient_last_name_y,
97
+ "width": self.patient_last_name_width,
98
+ "height": self.patient_last_name_height
99
+ }
100
+
101
+ def get_roi_patient_first_name(self):
102
+ return {
103
+ "x": self.patient_first_name_x,
104
+ "y": self.patient_first_name_y,
105
+ "width": self.patient_first_name_width,
106
+ "height": self.patient_first_name_height
107
+ }
108
+
109
+ def get_roi_patient_dob(self):
110
+ return {
111
+ "x": self.patient_dob_x,
112
+ "y": self.patient_dob_y,
113
+ "width": self.patient_dob_width,
114
+ "height": self.patient_dob_height
115
+ }
116
+
117
+ def get_roi_endoscope_type(self):
118
+ return {
119
+ "x": self.endoscope_type_x,
120
+ "y": self.endoscope_type_y,
121
+ "width": self.endoscope_type_width,
122
+ "height": self.endoscope_type_height
123
+ }
124
+
125
+ def get_roi_endoscopy_sn(self):
126
+ return {
127
+ "x": self.endoscope_sn_x,
128
+ "y": self.endoscope_sn_y,
129
+ "width": self.endoscope_sn_width,
130
+ "height": self.endoscope_sn_height
131
+ }
132
+
133
+ def get_rois(self):
134
+ return {
135
+ "endoscope_image": self.get_roi_endoscope_image(),
136
+ "examination_date": self.get_roi_examination_date(),
137
+ "examination_time": self.get_roi_examination_time(),
138
+ "patient_first_name": self.get_roi_patient_first_name(),
139
+ "patient_last_name": self.get_roi_patient_last_name(),
140
+ "patient_dob": self.get_roi_patient_dob(),
141
+ "endoscope_type": self.get_roi_endoscope_type(),
142
+ "endoscope_sn": self.get_roi_endoscopy_sn()
143
+ }
@@ -1,29 +1,29 @@
1
- from django.db import models
2
-
3
- def get_prediction_information_source():
4
- _source = InformationSource.objects.get(name="prediction")
5
-
6
- # make sure to return only one object
7
- assert _source, "No prediction information source found"
8
- return _source
9
-
10
- class InformationSourceManager(models.Manager):
11
- def get_by_natural_key(self, name):
12
- return self.get(name=name)
13
-
14
- class InformationSource(models.Model):
15
- objects = InformationSourceManager()
16
-
17
- name = models.CharField(max_length=100)
18
- name_de = models.CharField(max_length=100, blank=True, null=True)
19
- name_en = models.CharField(max_length=100, blank=True, null=True)
20
-
21
- url = models.URLField(blank=True, null=True)
22
- description = models.TextField(blank=True, null=True)
23
- date = models.DateField(blank=True, null=True)
24
-
25
- def natural_key(self):
26
- return (self.name,)
27
-
28
- def __str__(self):
29
- return self.name
1
+ from django.db import models
2
+
3
+ def get_prediction_information_source():
4
+ _source = InformationSource.objects.get(name="prediction")
5
+
6
+ # make sure to return only one object
7
+ assert _source, "No prediction information source found"
8
+ return _source
9
+
10
+ class InformationSourceManager(models.Manager):
11
+ def get_by_natural_key(self, name):
12
+ return self.get(name=name)
13
+
14
+ class InformationSource(models.Model):
15
+ objects = InformationSourceManager()
16
+
17
+ name = models.CharField(max_length=100)
18
+ name_de = models.CharField(max_length=100, blank=True, null=True)
19
+ name_en = models.CharField(max_length=100, blank=True, null=True)
20
+
21
+ url = models.URLField(blank=True, null=True)
22
+ description = models.TextField(blank=True, null=True)
23
+ date = models.DateField(blank=True, null=True)
24
+
25
+ def natural_key(self):
26
+ return (self.name,)
27
+
28
+ def __str__(self):
29
+ return self.name