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