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
@@ -0,0 +1,12 @@
1
+ - fields:
2
+ distance: 1000
3
+ emission_factor: transport_product_emission_generic_europe
4
+ name: generic_europe
5
+ unit: kilometer
6
+ model: endoreg_db.TransportRoute
7
+ - fields:
8
+ distance: 10000
9
+ emission_factor: transport_product_emission_generic_overseas
10
+ name: generic_overseas
11
+ unit: kilometer
12
+ model: endoreg_db.TransportRoute
@@ -0,0 +1,92 @@
1
+ # g / l and equivalents; ascending by gram, then ascending by liter
2
+ - model: endoreg_db.unit
3
+ fields:
4
+ name: "picogram per mililiter"
5
+ name_de: "Pikogramm pro Mililiter"
6
+ name_en: "picogram per mililiter"
7
+ abbreviation: "pg/ml"
8
+
9
+
10
+ - model: endoreg_db.unit
11
+ fields:
12
+ name: "nanogram per mililiter"
13
+ name_de: "Nanogramm pro Mililiter"
14
+ name_en: "nanogram per mililiter"
15
+ abbreviation: "ng/ml"
16
+
17
+ - model: endoreg_db.unit
18
+ fields:
19
+ name: "nanogram per deciliter"
20
+ name_de: "Nanogramm pro Deziliter"
21
+ name_en: "nanogram per deciliter"
22
+
23
+ - model: endoreg_db.unit
24
+ fields:
25
+ name: "microgram per mililiter"
26
+ name_de: "Microgramm pro Mililiter"
27
+ name_en: "microgram per mililiter"
28
+ abbreviation: "µg/ml"
29
+
30
+ - model: endoreg_db.Unit
31
+ fields:
32
+ name: "microgram per deciliter"
33
+ abbreviation: "µg/dL"
34
+ name_de: "Mikrogramm pro Deziliter"
35
+ name_en: "microgram per deciliter"
36
+ description: "Micrograms per deciliter, a unit of measurement for concentration."
37
+
38
+ - model: endoreg_db.unit
39
+ fields:
40
+ name: "gram per deciliter"
41
+ name_de: "Gramm pro Deziliter"
42
+ name_en: "gram per deciliter"
43
+
44
+
45
+ # mol / l
46
+ - model: endoreg_db.Unit
47
+ fields:
48
+ name: "milimole per liter"
49
+ abbreviation: "mmol/L"
50
+ name_de: "milimol pro Liter"
51
+ name_en: "milimole per liter"
52
+ description: "milimoles per liter, a unit of measurement for concentration in blood."
53
+
54
+ - model: endoreg_db.Unit
55
+ fields:
56
+ name: "miliequivalent per liter"
57
+ abbreviation: "mEq/L"
58
+ name_de: "miliäquivalent pro Liter"
59
+ name_en: "miliequivalent per liter"
60
+ description: "miliequivalents per liter, used for electrolytes concentration."
61
+
62
+ - model: endoreg_db.Unit
63
+ fields:
64
+ name: "miligram per deciliter"
65
+ abbreviation: "mg/dL"
66
+ name_de: "miligramm pro Deziliter"
67
+ name_en: "miligram per deciliter"
68
+ description: "miligrams per deciliter, commonly used for various blood measurements."
69
+
70
+ # x 10^9 per liter
71
+ - model: endoreg_db.Unit
72
+ fields:
73
+ name: "x 10^9 per liter"
74
+ abbreviation: "x 10^9/L"
75
+ name_de: "x 10^9 pro Liter"
76
+ name_en: "x 10^9 per liter"
77
+ description: "Number of cells per liter, often used for blood cell counts."
78
+
79
+ # U / l
80
+ - model: endoreg_db.unit
81
+ fields:
82
+ name: "units per liter"
83
+ name_de: "Units pro Liter"
84
+ name_en: "units per liter"
85
+ abbreviation: "U/l"
86
+
87
+ - model: endoreg_db.unit
88
+ fields:
89
+ name: "microinternational units per mililiter"
90
+ name_de: "Mikro-Internationale Einheiten pro Mililiter"
91
+ name_en: "micro-international units per mililiter"
92
+ abbreviation: "µU/ml"
@@ -1,17 +1,17 @@
1
- - model: endoreg_db.Unit
2
- fields:
3
- name: "liters-per-minute"
4
- abbreviation: "l/min"
5
- name_de: "Liter pro Minute"
6
- name_en: "Liters per Minute"
7
- description: "liters per minute"
8
-
9
-
10
- # kilowatt-hours
11
- - model: endoreg_db.Unit
12
- fields:
13
- name: "kilowatt-hours"
14
- abbreviation: "kWh"
15
- name_de: "Kilowattstunden"
16
- name_en: "Kilowatt-hours"
17
- description: "kilowatt-hours"
1
+ - model: endoreg_db.Unit
2
+ fields:
3
+ name: "liters-per-minute"
4
+ abbreviation: "l/min"
5
+ name_de: "Liter pro Minute"
6
+ name_en: "Liters per Minute"
7
+ description: "liters per minute"
8
+
9
+
10
+ # kilowatt-hours
11
+ - model: endoreg_db.Unit
12
+ fields:
13
+ name: "kilowatt-hours"
14
+ abbreviation: "kWh"
15
+ name_de: "Kilowattstunden"
16
+ name_en: "Kilowatt-hours"
17
+ description: "kilowatt-hours"
@@ -1,31 +1,31 @@
1
- - model: endoreg_db.Unit
2
- fields:
3
- name: "millimeter"
4
- abbreviation: "mm"
5
- name_de: "Millimeter"
6
- name_en: "Millimeter"
7
- description: "millimeters"
8
-
9
- - model: endoreg_db.Unit
10
- fields:
11
- name: "centimeter"
12
- abbreviation: "cm"
13
- name_de: "Zentimeter"
14
- name_en: "Centimeter"
15
- description: "centimeters"
16
-
17
- - model: endoreg_db.Unit
18
- fields:
19
- name: "meter"
20
- abbreviation: "m"
21
- name_de: "Meter"
22
- name_en: "Meter"
23
- description: "meters"
24
-
25
- - model: endoreg_db.Unit
26
- fields:
27
- name: "kilometer"
28
- abbreviation: "km"
29
- name_de: "Kilometer"
30
- name_en: "Kilometer"
1
+ - model: endoreg_db.Unit
2
+ fields:
3
+ name: "milimeter"
4
+ abbreviation: "mm"
5
+ name_de: "milimeter"
6
+ name_en: "milimeter"
7
+ description: "milimeters"
8
+
9
+ - model: endoreg_db.Unit
10
+ fields:
11
+ name: "centimeter"
12
+ abbreviation: "cm"
13
+ name_de: "Zentimeter"
14
+ name_en: "Centimeter"
15
+ description: "centimeters"
16
+
17
+ - model: endoreg_db.Unit
18
+ fields:
19
+ name: "meter"
20
+ abbreviation: "m"
21
+ name_de: "Meter"
22
+ name_en: "Meter"
23
+ description: "meters"
24
+
25
+ - model: endoreg_db.Unit
26
+ fields:
27
+ name: "kilometer"
28
+ abbreviation: "km"
29
+ name_de: "Kilometer"
30
+ name_en: "Kilometer"
31
31
  description: "kilometers"
@@ -0,0 +1,20 @@
1
+ - model: endoreg_db.unit
2
+ fields:
3
+ name: "percent"
4
+ abbreviation: "%"
5
+ name_de: "Prozent"
6
+ name_en: "percent"
7
+
8
+ - model: endoreg_db.unit
9
+ fields:
10
+ name: "ratio"
11
+ abbreviation: ""
12
+ name_de: "Ratio"
13
+ name_en: "ratio"
14
+
15
+ - model: endoreg_db.unit
16
+ fields:
17
+ name: "dose"
18
+ name_de: "Dosierung(en)"
19
+ name_en: "dose(s)"
20
+ abbreviation: ""
@@ -0,0 +1,6 @@
1
+ - model: endoreg_db.unit
2
+ fields:
3
+ name: "mililiter per minute per 1.73m^2"
4
+ name_de: "ml/min/1.73m²"
5
+ name_en: "ml/min/1.73m²"
6
+ abbreviation: "ml/min/1.73m²"
@@ -0,0 +1,13 @@
1
+ - model: endoreg_db.unit
2
+ fields:
3
+ name: "seconds"
4
+ abbreviation: "s"
5
+ name_de: "Sekunden"
6
+ name_en: "Sekunden"
7
+
8
+ - model: endoreg_db.unit
9
+ fields:
10
+ name: "minutes"
11
+ abbreviation: "min"
12
+ name_de: "Minuten"
13
+ name_en: "Minutes"
@@ -1,26 +1,35 @@
1
- # Units/data.yaml
2
-
3
- - model: endoreg_db.Unit
4
- fields:
5
- name: "milliliter"
6
- abbreviation: "ml"
7
- name_de: "Milliliter"
8
- name_en: "Milliliter"
9
- description: "milliliters"
10
-
11
- - model: endoreg_db.Unit
12
- fields:
13
- name: "liter"
14
- abbreviation: "l"
15
- name_de: "Liter"
16
- name_en: "Liter"
17
- description: "liters"
18
-
19
- # cubic_meter
20
- - model: endoreg_db.Unit
21
- fields:
22
- name: "cubic_meter"
23
- abbreviation: ""
24
- name_de: "Kubikmeter"
25
- name_en: "Cubic Meter"
26
- description: "cubic meters"
1
+ # Units/data.yaml
2
+
3
+ # femptolitre
4
+ - model: endoreg_db.Unit
5
+ fields:
6
+ name: "femtoliter"
7
+ abbreviation: "fl"
8
+ name_de: "Femtoliter"
9
+ name_en: "Femtolitre"
10
+ description: "femtoliters"
11
+
12
+ - model: endoreg_db.Unit
13
+ fields:
14
+ name: "mililiter"
15
+ abbreviation: "ml"
16
+ name_de: "mililiter"
17
+ name_en: "mililiter"
18
+ description: "mililiters"
19
+
20
+ - model: endoreg_db.Unit
21
+ fields:
22
+ name: "liter"
23
+ abbreviation: "l"
24
+ name_de: "Liter"
25
+ name_en: "Liter"
26
+ description: "liters"
27
+
28
+ # cubic_meter
29
+ - model: endoreg_db.Unit
30
+ fields:
31
+ name: "cubic_meter"
32
+ abbreviation: "m³"
33
+ name_de: "Kubikmeter"
34
+ name_en: "Cubic Meter"
35
+ description: "cubic meters"
@@ -1,31 +1,38 @@
1
- - model: endoreg_db.Unit
2
- fields:
3
- name: "microgram"
4
- abbreviation: "µg"
5
- name_de: "Mikrogramm"
6
- name_en: "Microgram"
7
- description: "micrograms"
8
-
9
- - model: endoreg_db.Unit
10
- fields:
11
- name: "milligram"
12
- abbreviation: "mg"
13
- name_de: "Milligramm"
14
- name_en: "Milligram"
15
- description: "milligrams"
16
-
17
- - model: endoreg_db.Unit
18
- fields:
19
- name: "gram"
20
- abbreviation: "g"
21
- name_de: "Gramm"
22
- name_en: "Gram"
23
- description: "grams"
24
-
25
- - model: endoreg_db.Unit
26
- fields:
27
- name: "kilogram"
28
- abbreviation: "kg"
29
- name_de: "Kilogramm"
30
- name_en: "Kilogram"
1
+ - model: endoreg_db.unit
2
+ fields:
3
+ name: "picogram"
4
+ abbreviation: "pg"
5
+ name_de: "Picogramm"
6
+ name_en: "Picogram"
7
+
8
+ - model: endoreg_db.Unit
9
+ fields:
10
+ name: "microgram"
11
+ abbreviation: "µg"
12
+ name_de: "Mikrogramm"
13
+ name_en: "Microgram"
14
+ description: "micrograms"
15
+
16
+ - model: endoreg_db.Unit
17
+ fields:
18
+ name: "miligram"
19
+ abbreviation: "mg"
20
+ name_de: "miligramm"
21
+ name_en: "miligram"
22
+ description: "miligrams"
23
+
24
+ - model: endoreg_db.Unit
25
+ fields:
26
+ name: "gram"
27
+ abbreviation: "g"
28
+ name_de: "Gramm"
29
+ name_en: "Gram"
30
+ description: "grams"
31
+
32
+ - model: endoreg_db.Unit
33
+ fields:
34
+ name: "kilogram"
35
+ abbreviation: "kg"
36
+ name_de: "Kilogramm"
37
+ name_en: "Kilogram"
31
38
  description: "kilograms"
@@ -0,0 +1,12 @@
1
+ - model: endoreg_db.Waste
2
+ fields:
3
+ name: general_waste
4
+ name_de: Allgemeiner Abfall
5
+ name_en: General Waste
6
+
7
+ - model: endoreg_db.Waste
8
+ fields:
9
+ name: medical_waste
10
+ name_de: Medizinischer Abfall
11
+ name_en: Medical Waste
12
+
@@ -1,3 +1,3 @@
1
- from .unit import Unit
2
- from .settings import ActiveModelForm
1
+ from .unit import Unit
2
+ from .settings import ActiveModelForm
3
3
  from .questionnaires import *
@@ -1,23 +1,23 @@
1
- # Path: endoreg_db/forms/questionnaires/tto_questionnaire.py
2
- from endoreg_db.models import TtoQuestionnaire
3
- from django import forms
4
-
5
- class TtoQuestionnaireForm(forms.ModelForm):
6
- class Meta:
7
- model = TtoQuestionnaire
8
- fields = '__all__'
9
- widgets = {
10
- # Specify Bootstrap classes for other fields as needed
11
- 'patient_name': forms.TextInput(attrs={'class': 'form-control'}),
12
- 'birth_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
13
- # You can continue to specify widgets for other fields
14
- }
15
-
16
-
17
- from django.views.generic.edit import CreateView
18
- from django.urls import reverse_lazy
19
-
20
- class TtoQuestionnaireCreate(CreateView):
21
- model = TtoQuestionnaire
22
- form_class = TtoQuestionnaireForm
23
- success_url = reverse_lazy('questionnaire_success') # Redirect to a success page after submission
1
+ # Path: endoreg_db/forms/questionnaires/tto_questionnaire.py
2
+ from endoreg_db.models import TtoQuestionnaire
3
+ from django import forms
4
+
5
+ class TtoQuestionnaireForm(forms.ModelForm):
6
+ class Meta:
7
+ model = TtoQuestionnaire
8
+ fields = '__all__'
9
+ widgets = {
10
+ # Specify Bootstrap classes for other fields as needed
11
+ 'patient_name': forms.TextInput(attrs={'class': 'form-control'}),
12
+ 'birth_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
13
+ # You can continue to specify widgets for other fields
14
+ }
15
+
16
+
17
+ from django.views.generic.edit import CreateView
18
+ from django.urls import reverse_lazy
19
+
20
+ class TtoQuestionnaireCreate(CreateView):
21
+ model = TtoQuestionnaire
22
+ form_class = TtoQuestionnaireForm
23
+ success_url = reverse_lazy('questionnaire_success') # Redirect to a success page after submission
@@ -1,8 +1,8 @@
1
- # forms.py
2
- from django import forms
3
- from endoreg_db.models import ActiveModel
4
-
5
- class ActiveModelForm(forms.ModelForm):
6
- class Meta:
7
- model = ActiveModel
8
- fields = ["model_meta"] # Or list the specific fields you want to include in the form.
1
+ # forms.py
2
+ from django import forms
3
+ from endoreg_db.models import ActiveModel
4
+
5
+ class ActiveModelForm(forms.ModelForm):
6
+ class Meta:
7
+ model = ActiveModel
8
+ fields = ["model_meta"] # Or list the specific fields you want to include in the form.
endoreg_db/forms/unit.py CHANGED
@@ -1,6 +1,6 @@
1
- from django import forms
2
- from ..models import Unit
3
-
4
- class UnitForm(forms.Form):
5
- class Meta:
1
+ from django import forms
2
+ from ..models import Unit
3
+
4
+ class UnitForm(forms.Form):
5
+ class Meta:
6
6
  model = Unit
@@ -1,41 +1,41 @@
1
- from django.conf import settings
2
- from django.core.management.base import BaseCommand
3
- from reports.models import Intervention, InterventionType # Replace 'your_app_name' with the actual app name
4
- import os
5
- from reports.dataloader_utils import load_model_data
6
-
7
- SOURCE_DIR = None # e.g. settings.DATA_DIR_INTERVENTION
8
-
9
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
10
- ]
11
-
12
- IMPORT_METADATA = {
13
- # "": { # same as model name in "import models", e.g. "Intervention"
14
- # "dir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
15
- # "model": None, # e.g. Intervention
16
- # "foreign_keys": [], # e.g. ["intervention_types"]
17
- # "foreign_key_models": [] # e.g. [InterventionType]
18
- # },
19
- }
20
-
21
- class Command(BaseCommand):
22
- help = """Load all .yaml files in the data/intervention directory
23
- into the Intervention and InterventionType model"""
24
-
25
- def add_arguments(self, parser):
26
- parser.add_argument(
27
- '--verbose',
28
- action='store_true',
29
- help='Display verbose output',
30
- )
31
-
32
- def handle(self, *args, **options):
33
- verbose = options['verbose']
34
- for model_name in IMPORT_MODELS:
35
- _metadata = IMPORT_METADATA[model_name]
36
- load_model_data(
37
- self,
38
- model_name,
39
- _metadata,
40
- verbose
1
+ from django.conf import settings
2
+ from django.core.management.base import BaseCommand
3
+ from reports.models import Intervention, InterventionType # Replace 'your_app_name' with the actual app name
4
+ import os
5
+ from reports.dataloader_utils import load_model_data
6
+
7
+ SOURCE_DIR = None # e.g. settings.DATA_DIR_INTERVENTION
8
+
9
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
10
+ ]
11
+
12
+ IMPORT_METADATA = {
13
+ # "": { # same as model name in "import models", e.g. "Intervention"
14
+ # "dir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
15
+ # "model": None, # e.g. Intervention
16
+ # "foreign_keys": [], # e.g. ["intervention_types"]
17
+ # "foreign_key_models": [] # e.g. [InterventionType]
18
+ # },
19
+ }
20
+
21
+ class Command(BaseCommand):
22
+ help = """Load all .yaml files in the data/intervention directory
23
+ into the Intervention and InterventionType model"""
24
+
25
+ def add_arguments(self, parser):
26
+ parser.add_argument(
27
+ '--verbose',
28
+ action='store_true',
29
+ help='Display verbose output',
30
+ )
31
+
32
+ def handle(self, *args, **options):
33
+ verbose = options['verbose']
34
+ for model_name in IMPORT_MODELS:
35
+ _metadata = IMPORT_METADATA[model_name]
36
+ load_model_data(
37
+ self,
38
+ model_name,
39
+ _metadata,
40
+ verbose
41
41
  )
@@ -1,18 +1,18 @@
1
- from django.core.management.base import BaseCommand
2
- from django.apps import apps
3
- from django.db import transaction
4
-
5
- class Command(BaseCommand):
6
- help = 'Deletes all objects from all models in the "endoreg_db" app.'
7
-
8
- def handle(self, *args, **options):
9
- app_models = apps.get_models()
10
- app_models = [model for model in app_models if "endoreg_db" in model._meta.app_label] # Filter models by the "endoreg_db" app
11
- for model in app_models:
12
- with transaction.atomic(): # Use a separate transaction for each model
13
- try:
14
- model.objects.all().delete()
15
- self.stdout.write(self.style.SUCCESS(f'Successfully deleted all objects in {model._meta.db_table}'))
16
- except Exception as e:
17
- # This catches exceptions and continues with the next model
18
- self.stdout.write(self.style.ERROR(f'Error deleting objects in {model._meta.db_table}: {e}'))
1
+ from django.core.management.base import BaseCommand
2
+ from django.apps import apps
3
+ from django.db import transaction
4
+
5
+ class Command(BaseCommand):
6
+ help = 'Deletes all objects from all models in the "endoreg_db" app.'
7
+
8
+ def handle(self, *args, **options):
9
+ app_models = apps.get_models()
10
+ app_models = [model for model in app_models if "endoreg_db" in model._meta.app_label] # Filter models by the "endoreg_db" app
11
+ for model in app_models:
12
+ with transaction.atomic(): # Use a separate transaction for each model
13
+ try:
14
+ model.objects.all().delete()
15
+ self.stdout.write(self.style.SUCCESS(f'Successfully deleted all objects in {model._meta.db_table}'))
16
+ except Exception as e:
17
+ # This catches exceptions and continues with the next model
18
+ self.stdout.write(self.style.ERROR(f'Error deleting objects in {model._meta.db_table}: {e}'))
@@ -1,19 +1,19 @@
1
- # django command to delete all LegacyImage objects
2
-
3
- from django.core.management.base import BaseCommand, CommandError
4
- from endoreg_db.models import LegacyImage
5
- from tqdm import tqdm
6
-
7
- class Command(BaseCommand):
8
- help = 'Deletes all LegacyImage objects including the linked files (legacy_image.image)'
9
-
10
- def handle(self, *args, **options):
11
- legacy_images = LegacyImage.objects.all()
12
-
13
- for legacy_image in tqdm(legacy_images):
14
- legacy_image.image.delete()
15
- legacy_image.delete()
16
-
17
- self.stdout.write(self.style.SUCCESS('Successfully deleted all LegacyImage objects and linked image files'))
18
-
19
-
1
+ # django command to delete all LegacyImage objects
2
+
3
+ from django.core.management.base import BaseCommand, CommandError
4
+ from endoreg_db.models import LegacyImage
5
+ from tqdm import tqdm
6
+
7
+ class Command(BaseCommand):
8
+ help = 'Deletes all LegacyImage objects including the linked files (legacy_image.image)'
9
+
10
+ def handle(self, *args, **options):
11
+ legacy_images = LegacyImage.objects.all()
12
+
13
+ for legacy_image in tqdm(legacy_images):
14
+ legacy_image.image.delete()
15
+ legacy_image.delete()
16
+
17
+ self.stdout.write(self.style.SUCCESS('Successfully deleted all LegacyImage objects and linked image files'))
18
+
19
+