endoreg-db 0.3.4__py3-none-any.whl → 0.3.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. endoreg_db/admin.py +3 -3
  2. endoreg_db/apps.py +6 -6
  3. endoreg_db/data/__init__.py +65 -16
  4. endoreg_db/data/active_model/data.yaml +2 -2
  5. endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +167 -0
  6. endoreg_db/data/case_template/rule/01_patient-set-age.yaml +8 -0
  7. endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +9 -0
  8. endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +23 -0
  9. endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +19 -0
  10. endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +19 -0
  11. endoreg_db/data/case_template/rule/19_create_patient.yaml +17 -0
  12. endoreg_db/data/case_template/rule_type/base_types.yaml +35 -0
  13. endoreg_db/data/case_template/rule_value_type/base_types.yaml +59 -0
  14. endoreg_db/data/case_template/template/base.yaml +8 -0
  15. endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +3 -0
  16. endoreg_db/data/case_template/tmp/_rule_value +13 -0
  17. endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +21 -0
  18. endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +10 -0
  19. endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +7 -0
  20. endoreg_db/data/center/data.yaml +60 -52
  21. endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +144 -0
  22. endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +48 -0
  23. endoreg_db/data/disease/cardiovascular.yaml +37 -0
  24. endoreg_db/data/disease/hepatology.yaml +5 -0
  25. endoreg_db/data/disease/misc.yaml +6 -0
  26. endoreg_db/data/disease/renal.yaml +5 -0
  27. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +6 -0
  28. endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +6 -0
  29. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +41 -0
  30. endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +20 -0
  31. endoreg_db/data/distribution/date/patient.yaml +7 -0
  32. endoreg_db/data/distribution/single_categorical/patient.yaml +7 -0
  33. endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +132 -0
  34. endoreg_db/data/endoscope_type/data.yaml +10 -10
  35. endoreg_db/data/endoscopy_processor/data.yaml +45 -45
  36. endoreg_db/data/event/cardiology.yaml +28 -0
  37. endoreg_db/data/event/neurology.yaml +14 -0
  38. endoreg_db/data/event/surgery.yaml +13 -0
  39. endoreg_db/data/event/thrombembolism.yaml +20 -0
  40. endoreg_db/data/examination/examinations/data.yaml +65 -16
  41. endoreg_db/data/examination/time/data.yaml +47 -47
  42. endoreg_db/data/examination/time-type/data.yaml +7 -7
  43. endoreg_db/data/examination/type/data.yaml +5 -5
  44. endoreg_db/data/gender/data.yaml +18 -0
  45. endoreg_db/data/information_source/data.yaml +30 -30
  46. endoreg_db/data/information_source/medication.yaml +6 -0
  47. endoreg_db/data/lab_value/cardiac_enzymes.yaml +31 -0
  48. endoreg_db/data/lab_value/coagulation.yaml +49 -0
  49. endoreg_db/data/lab_value/electrolytes.yaml +190 -0
  50. endoreg_db/data/lab_value/gastrointestinal_function.yaml +121 -0
  51. endoreg_db/data/lab_value/hematology.yaml +169 -0
  52. endoreg_db/data/lab_value/hormones.yaml +53 -0
  53. endoreg_db/data/lab_value/lipids.yaml +44 -0
  54. endoreg_db/data/lab_value/misc.yaml +30 -0
  55. endoreg_db/data/lab_value/renal_function.yaml +11 -0
  56. endoreg_db/data/label/label/data.yaml +62 -62
  57. endoreg_db/data/label/label-set/data.yaml +17 -17
  58. endoreg_db/data/label/label-type/data.yaml +6 -6
  59. endoreg_db/data/material/material.yaml +91 -0
  60. endoreg_db/data/medication/anticoagulation.yaml +65 -0
  61. endoreg_db/data/medication/tah.yaml +70 -0
  62. endoreg_db/data/medication_indication/anticoagulation.yaml +120 -0
  63. endoreg_db/data/medication_indication_type/data.yaml +11 -0
  64. endoreg_db/data/medication_indication_type/thrombembolism.yaml +41 -0
  65. endoreg_db/data/medication_intake_time/base.yaml +31 -0
  66. endoreg_db/data/medication_schedule/apixaban.yaml +95 -0
  67. endoreg_db/data/medication_schedule/ass.yaml +12 -0
  68. endoreg_db/data/medication_schedule/enoxaparin.yaml +26 -0
  69. endoreg_db/data/model_type/data.yaml +6 -6
  70. endoreg_db/data/patient_lab_sample_type/generic.yaml +6 -0
  71. endoreg_db/data/pdf_type/data.yaml +28 -28
  72. endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +66 -0
  73. endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +33 -0
  74. endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +308 -0
  75. endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +88 -0
  76. endoreg_db/data/profession/data.yaml +70 -70
  77. endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +55 -0
  78. endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +26 -26
  79. endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +19 -19
  80. endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +15 -0
  81. endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
  82. endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
  83. endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +12 -0
  84. endoreg_db/data/unit/concentration.yaml +92 -0
  85. endoreg_db/data/unit/data.yaml +17 -17
  86. endoreg_db/data/unit/length.yaml +30 -30
  87. endoreg_db/data/unit/misc.yaml +20 -0
  88. endoreg_db/data/unit/rate.yaml +6 -0
  89. endoreg_db/data/unit/time.yaml +13 -0
  90. endoreg_db/data/unit/volume.yaml +35 -26
  91. endoreg_db/data/unit/weight.yaml +37 -30
  92. endoreg_db/data/waste/data.yaml +12 -0
  93. endoreg_db/forms/__init__.py +2 -2
  94. endoreg_db/forms/questionnaires/tto_questionnaire.py +23 -23
  95. endoreg_db/forms/settings/__init__.py +8 -8
  96. endoreg_db/forms/unit.py +5 -5
  97. endoreg_db/management/commands/_load_model_template.py +40 -40
  98. endoreg_db/management/commands/delete_all.py +18 -18
  99. endoreg_db/management/commands/delete_legacy_images.py +19 -19
  100. endoreg_db/management/commands/delete_legacy_videos.py +16 -16
  101. endoreg_db/management/commands/extract_legacy_video_frames.py +18 -18
  102. endoreg_db/management/commands/fetch_legacy_image_dataset.py +32 -32
  103. endoreg_db/management/commands/fix_auth_permission.py +20 -20
  104. endoreg_db/management/commands/import_legacy_images.py +94 -94
  105. endoreg_db/management/commands/import_legacy_videos.py +76 -76
  106. endoreg_db/management/commands/load_active_model_data.py +44 -44
  107. endoreg_db/management/commands/load_ai_model_data.py +44 -44
  108. endoreg_db/management/commands/load_base_db_data.py +128 -71
  109. endoreg_db/management/commands/load_center_data.py +42 -42
  110. endoreg_db/management/commands/load_disease_classification_choices_data.py +41 -0
  111. endoreg_db/management/commands/load_disease_classification_data.py +41 -0
  112. endoreg_db/management/commands/load_disease_data.py +40 -0
  113. endoreg_db/management/commands/load_distribution_data.py +66 -0
  114. endoreg_db/management/commands/load_endoscope_type_data.py +44 -44
  115. endoreg_db/management/commands/load_endoscopy_processor_data.py +44 -44
  116. endoreg_db/management/commands/load_event_data.py +41 -0
  117. endoreg_db/management/commands/load_examination_data.py +74 -74
  118. endoreg_db/management/commands/load_g_play_data.py +113 -0
  119. endoreg_db/management/commands/load_gender_data.py +44 -0
  120. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +133 -0
  121. endoreg_db/management/commands/load_information_source.py +44 -44
  122. endoreg_db/management/commands/load_lab_value_data.py +50 -0
  123. endoreg_db/management/commands/load_label_data.py +66 -66
  124. endoreg_db/management/commands/load_medication_data.py +41 -0
  125. endoreg_db/management/commands/load_medication_indication_data.py +63 -0
  126. endoreg_db/management/commands/load_medication_indication_type_data.py +41 -0
  127. endoreg_db/management/commands/load_medication_intake_time_data.py +41 -0
  128. endoreg_db/management/commands/load_medication_schedule_data.py +55 -0
  129. endoreg_db/management/commands/load_pdf_type_data.py +60 -60
  130. endoreg_db/management/commands/load_profession_data.py +43 -43
  131. endoreg_db/management/commands/load_report_reader_flag.py +45 -45
  132. endoreg_db/management/commands/load_unit_data.py +45 -45
  133. endoreg_db/management/commands/load_user_groups.py +28 -28
  134. endoreg_db/management/commands/register_ai_model.py +65 -65
  135. endoreg_db/management/commands/reset_celery_schedule.py +9 -9
  136. endoreg_db/migrations/0001_initial.py +582 -582
  137. endoreg_db/migrations/0002_rawvideofile.py +26 -26
  138. endoreg_db/migrations/0003_rawvideofile_frames_required.py +18 -18
  139. endoreg_db/migrations/0004_rename_hash_rawvideofile_video_hash.py +18 -18
  140. endoreg_db/migrations/0005_ffmpegmeta_remove_videoimportmeta_center_and_more.py +56 -56
  141. endoreg_db/migrations/0006_rawvideofile_center_alter_videometa_processor.py +25 -25
  142. endoreg_db/migrations/0007_rawvideofile_processor.py +19 -19
  143. endoreg_db/migrations/0008_rename_frames_required_rawvideofile_state_frames_required.py +18 -18
  144. endoreg_db/migrations/0009_sensitivemeta_rawvideofile_sensitive_meta.py +31 -31
  145. endoreg_db/migrations/0010_rename_endoscope_serial_number_sensitivemeta_endoscope_sn.py +18 -18
  146. endoreg_db/migrations/0011_rawvideofile_state_sensitive_data_retrieved.py +18 -18
  147. endoreg_db/migrations/0012_rawvideofile_prediction_dir_and_more.py +109 -109
  148. endoreg_db/migrations/0013_rawpdffile.py +31 -31
  149. endoreg_db/migrations/0014_pdftype_alter_rawpdffile_file_pdfmeta.py +38 -38
  150. endoreg_db/migrations/0015_rename_report_processed_rawpdffile_state_report_processed_and_more.py +31 -31
  151. endoreg_db/migrations/0016_rawpdffile_state_report_processing_required.py +18 -18
  152. endoreg_db/migrations/0017_firstname_lastname_center_first_names_and_more.py +37 -37
  153. endoreg_db/migrations/0018_reportreaderflag_reportreaderconfig.py +37 -37
  154. endoreg_db/migrations/0019_pdftype_cut_off_above_lines_and_more.py +42 -42
  155. endoreg_db/migrations/0020_rename_endoscopy_info_line_pdftype_endoscope_info_line.py +18 -18
  156. endoreg_db/migrations/0021_alter_pdftype_endoscope_info_line.py +19 -19
  157. endoreg_db/migrations/0022_alter_pdftype_endoscope_info_line.py +19 -19
  158. endoreg_db/migrations/0023_ttoquestionnaire_alter_pdftype_endoscope_info_line.py +59 -59
  159. endoreg_db/migrations/0024_remove_ttoquestionnaire_infections_and_more.py +27 -27
  160. endoreg_db/migrations/0025_event_alter_rawpdffile_file_patientevent.py +42 -0
  161. endoreg_db/migrations/0026_disease_diseaseclassification_and_more.py +166 -0
  162. endoreg_db/migrations/0027_labvalue_abbreviation_labvalue_default_normal_range_and_more.py +38 -0
  163. endoreg_db/migrations/0028_alter_unit_abbreviation.py +18 -0
  164. endoreg_db/migrations/0029_medicationintaketime_and_more.py +75 -0
  165. endoreg_db/migrations/0030_medicationindicationtype_and_more.py +101 -0
  166. endoreg_db/migrations/0031_rename_adapt_to_liver_function_medication_adapt_to_age_and_more.py +38 -0
  167. endoreg_db/migrations/0032_alter_medicationschedule_therapy_duration_d.py +18 -0
  168. endoreg_db/migrations/0033_medicationindication_sources.py +18 -0
  169. endoreg_db/migrations/0034_alter_rawpdffile_file.py +20 -0
  170. endoreg_db/migrations/0035_alter_medicationindication_sources.py +18 -0
  171. endoreg_db/migrations/0036_alter_rawpdffile_file.py +20 -0
  172. endoreg_db/migrations/0037_alter_medicationindication_sources.py +18 -0
  173. endoreg_db/migrations/0038_emissionfactor_material_product_productgroup_and_more.py +164 -0
  174. endoreg_db/migrations/0039_referenceproduct_name.py +19 -0
  175. endoreg_db/migrations/0040_quizanswertype_quizquestiontype_quizquestion_and_more.py +50 -0
  176. endoreg_db/migrations/0041_gender_patientmedication_medication_indication_and_more.py +40 -0
  177. endoreg_db/migrations/0042_casetemplateruletype_casetemplaterulevalue_and_more.py +74 -0
  178. endoreg_db/migrations/0043_casetemplatetype_name_de_casetemplatetype_name_en.py +23 -0
  179. endoreg_db/migrations/0044_casetemplateruletype_name_de_and_more.py +23 -0
  180. endoreg_db/migrations/0045_casetemplaterulevalue_value_type.py +19 -0
  181. endoreg_db/migrations/0046_casetemplaterulevalue_target_field.py +18 -0
  182. endoreg_db/migrations/0047_casetemplaterule_target_model.py +18 -0
  183. endoreg_db/migrations/0048_remove_casetemplaterule_chained_rules_and_more.py +22 -0
  184. endoreg_db/migrations/0049_remove_casetemplaterule_rule_values.py +17 -0
  185. endoreg_db/migrations/0050_casetemplaterule_rule_values.py +18 -0
  186. endoreg_db/migrations/0051_remove_casetemplaterule_calling_rules_and_more.py +27 -0
  187. endoreg_db/migrations/0052_rename_case_template_type_casetemplate_template_type.py +18 -0
  188. endoreg_db/migrations/0053_patientlabsampletype_patientlabsample_and_more.py +38 -0
  189. endoreg_db/migrations/0054_multiplecategoricalvaluedistribution_and_more.py +69 -0
  190. endoreg_db/migrations/0055_remove_casetemplaterule_rule_values_and_more.py +59 -0
  191. endoreg_db/migrations/0056_datevaluedistribution_and_more.py +32 -0
  192. endoreg_db/migrations/0057_remove_datevaluedistribution_max_date_and_more.py +72 -0
  193. endoreg_db/migrations/0058_datevaluedistribution_description_and_more.py +28 -0
  194. endoreg_db/migrations/0059_casetemplaterule_rule_values.py +18 -0
  195. endoreg_db/migrations/0060_labvalue__default_date_value_distribution_and_more.py +44 -0
  196. endoreg_db/migrations/0061_remove_patientlabvalue_date_patientlabvalue_datetime.py +24 -0
  197. endoreg_db/migrations/0062_labvalue_numeric_precision.py +18 -0
  198. endoreg_db/migrations/0063_alter_labvalue_numeric_precision.py +18 -0
  199. endoreg_db/migrations/0064_casetemplaterule_extra_parameters_and_more.py +23 -0
  200. endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date_value_distribution_and_more.py +58 -0
  201. endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py +29 -0
  202. endoreg_db/migrations/0067_alter_medicationindication_indication_type.py +19 -0
  203. endoreg_db/models/__init__.py +74 -57
  204. endoreg_db/models/ai_model/__init__.py +3 -3
  205. endoreg_db/models/ai_model/active_model.py +9 -9
  206. endoreg_db/models/ai_model/model_meta.py +24 -24
  207. endoreg_db/models/ai_model/model_type.py +25 -25
  208. endoreg_db/models/ai_model/utils.py +8 -8
  209. endoreg_db/models/annotation/__init__.py +1 -1
  210. endoreg_db/models/annotation/binary_classification_annotation_task.py +80 -80
  211. endoreg_db/models/annotation/image_classification.py +26 -26
  212. endoreg_db/models/case_template/__init__.py +6 -0
  213. endoreg_db/models/case_template/case_template.py +81 -0
  214. endoreg_db/models/case_template/case_template_rule.py +276 -0
  215. endoreg_db/models/case_template/case_template_rule_value.py +73 -0
  216. endoreg_db/models/case_template/case_template_type.py +28 -0
  217. endoreg_db/models/center/__init__.py +4 -0
  218. endoreg_db/models/{center.py → center/center.py} +24 -24
  219. endoreg_db/models/center/center_product.py +34 -0
  220. endoreg_db/models/center/center_resource.py +19 -0
  221. endoreg_db/models/center/center_waste.py +11 -0
  222. endoreg_db/models/data_file/__init__.py +5 -5
  223. endoreg_db/models/data_file/base_classes/__init__.py +2 -2
  224. endoreg_db/models/data_file/base_classes/abstract_frame.py +50 -50
  225. endoreg_db/models/data_file/base_classes/abstract_video.py +200 -200
  226. endoreg_db/models/data_file/frame.py +45 -45
  227. endoreg_db/models/data_file/import_classes/__init__.py +31 -31
  228. endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +34 -34
  229. endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +28 -28
  230. endoreg_db/models/data_file/import_classes/processing_functions/video.py +260 -260
  231. endoreg_db/models/data_file/import_classes/raw_pdf.py +188 -185
  232. endoreg_db/models/data_file/import_classes/raw_video.py +343 -343
  233. endoreg_db/models/data_file/metadata/__init__.py +3 -3
  234. endoreg_db/models/data_file/metadata/pdf_meta.py +70 -70
  235. endoreg_db/models/data_file/metadata/sensitive_meta.py +31 -31
  236. endoreg_db/models/data_file/metadata/video_meta.py +132 -131
  237. endoreg_db/models/data_file/report_file.py +89 -89
  238. endoreg_db/models/data_file/video/__init__.py +6 -6
  239. endoreg_db/models/data_file/video/import_meta.py +25 -25
  240. endoreg_db/models/data_file/video/video.py +25 -25
  241. endoreg_db/models/data_file/video_segment.py +107 -107
  242. endoreg_db/models/disease.py +56 -0
  243. endoreg_db/models/emission/__init__.py +1 -0
  244. endoreg_db/models/emission/emission_factor.py +20 -0
  245. endoreg_db/models/event.py +22 -0
  246. endoreg_db/models/examination/__init__.py +3 -3
  247. endoreg_db/models/examination/examination.py +26 -26
  248. endoreg_db/models/examination/examination_time.py +27 -27
  249. endoreg_db/models/examination/examination_time_type.py +24 -24
  250. endoreg_db/models/examination/examination_type.py +18 -18
  251. endoreg_db/models/hardware/__init__.py +1 -1
  252. endoreg_db/models/hardware/endoscope.py +44 -44
  253. endoreg_db/models/hardware/endoscopy_processor.py +143 -143
  254. endoreg_db/models/information_source.py +29 -22
  255. endoreg_db/models/label/label.py +84 -84
  256. endoreg_db/models/laboratory/__init__.py +1 -0
  257. endoreg_db/models/laboratory/lab_value.py +102 -0
  258. endoreg_db/models/legacy_data/__init__.py +3 -3
  259. endoreg_db/models/legacy_data/image.py +34 -34
  260. endoreg_db/models/medication/__init__.py +1 -0
  261. endoreg_db/models/medication/medication.py +148 -0
  262. endoreg_db/models/other/__init__.py +5 -0
  263. endoreg_db/models/other/distribution.py +215 -0
  264. endoreg_db/models/other/material.py +16 -0
  265. endoreg_db/models/other/resource.py +18 -0
  266. endoreg_db/models/other/transport_route.py +21 -0
  267. endoreg_db/models/other/waste.py +20 -0
  268. endoreg_db/models/patient_examination/__init__.py +35 -35
  269. endoreg_db/models/permissions/__init__.py +44 -44
  270. endoreg_db/models/persons/__init__.py +7 -6
  271. endoreg_db/models/persons/examiner/__init__.py +1 -1
  272. endoreg_db/models/persons/examiner/examiner.py +15 -15
  273. endoreg_db/models/persons/examiner/examiner_type.py +1 -1
  274. endoreg_db/models/persons/first_name.py +17 -17
  275. endoreg_db/models/persons/gender.py +22 -0
  276. endoreg_db/models/persons/last_name.py +19 -19
  277. endoreg_db/models/persons/patient/__init__.py +8 -0
  278. endoreg_db/models/persons/patient/case/__init__.py +0 -0
  279. endoreg_db/models/persons/patient/case/case.py +30 -0
  280. endoreg_db/models/persons/patient/patient.py +216 -0
  281. endoreg_db/models/persons/patient/patient_disease.py +16 -0
  282. endoreg_db/models/persons/patient/patient_event.py +22 -0
  283. endoreg_db/models/persons/patient/patient_lab_sample.py +106 -0
  284. endoreg_db/models/persons/patient/patient_lab_value.py +176 -0
  285. endoreg_db/models/persons/patient/patient_medication.py +44 -0
  286. endoreg_db/models/persons/patient/patient_medication_schedule.py +28 -0
  287. endoreg_db/models/persons/person.py +31 -34
  288. endoreg_db/models/persons/portal_user_information.py +27 -29
  289. endoreg_db/models/prediction/__init__.py +1 -1
  290. endoreg_db/models/prediction/image_classification.py +37 -37
  291. endoreg_db/models/prediction/video_prediction_meta.py +244 -244
  292. endoreg_db/models/product/__init__.py +5 -0
  293. endoreg_db/models/product/product.py +97 -0
  294. endoreg_db/models/product/product_group.py +19 -0
  295. endoreg_db/models/product/product_material.py +24 -0
  296. endoreg_db/models/product/product_weight.py +26 -0
  297. endoreg_db/models/product/reference_product.py +99 -0
  298. endoreg_db/models/questionnaires/__init__.py +114 -114
  299. endoreg_db/models/quiz/__init__.py +2 -0
  300. endoreg_db/models/quiz/quiz_answer.py +41 -0
  301. endoreg_db/models/quiz/quiz_question.py +54 -0
  302. endoreg_db/models/report_reader/__init__.py +1 -1
  303. endoreg_db/models/report_reader/report_reader_config.py +53 -53
  304. endoreg_db/models/report_reader/report_reader_flag.py +19 -19
  305. endoreg_db/models/rules/__init__.py +5 -0
  306. endoreg_db/models/rules/rule.py +24 -0
  307. endoreg_db/models/rules/rule_applicator.py +224 -0
  308. endoreg_db/models/rules/rule_attribute_dtype.py +19 -0
  309. endoreg_db/models/rules/rule_type.py +22 -0
  310. endoreg_db/models/rules/ruleset.py +19 -0
  311. endoreg_db/models/unit.py +21 -19
  312. endoreg_db/queries/__init__.py +4 -4
  313. endoreg_db/queries/annotations/__init__.py +2 -2
  314. endoreg_db/queries/annotations/legacy.py +159 -159
  315. endoreg_db/queries/get/__init__.py +5 -5
  316. endoreg_db/queries/get/center.py +42 -42
  317. endoreg_db/queries/get/model.py +13 -13
  318. endoreg_db/queries/get/patient.py +14 -14
  319. endoreg_db/queries/get/patient_examination.py +20 -20
  320. endoreg_db/queries/get/report_file.py +33 -33
  321. endoreg_db/queries/get/video.py +31 -31
  322. endoreg_db/serializers/__init__.py +9 -9
  323. endoreg_db/serializers/ai_model.py +18 -18
  324. endoreg_db/serializers/annotation.py +17 -17
  325. endoreg_db/serializers/center.py +11 -11
  326. endoreg_db/serializers/examination.py +32 -32
  327. endoreg_db/serializers/frame.py +13 -13
  328. endoreg_db/serializers/hardware.py +20 -20
  329. endoreg_db/serializers/label.py +22 -22
  330. endoreg_db/serializers/patient.py +10 -10
  331. endoreg_db/serializers/prediction.py +15 -15
  332. endoreg_db/serializers/report_file.py +7 -7
  333. endoreg_db/serializers/video.py +27 -27
  334. endoreg_db/tests.py +3 -3
  335. endoreg_db/utils/cropping.py +28 -28
  336. endoreg_db/utils/dataloader.py +92 -185
  337. endoreg_db/utils/file_operations.py +30 -30
  338. endoreg_db/utils/hashs.py +33 -33
  339. endoreg_db/utils/legacy_ocr.py +201 -201
  340. endoreg_db/utils/ocr.py +197 -197
  341. endoreg_db/utils/uuid.py +4 -4
  342. endoreg_db/utils/video_metadata.py +87 -87
  343. endoreg_db/views.py +3 -3
  344. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.6.dist-info}/LICENSE +674 -674
  345. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.6.dist-info}/METADATA +2 -2
  346. endoreg_db-0.3.6.dist-info/RECORD +357 -0
  347. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.6.dist-info}/WHEEL +1 -1
  348. endoreg_db/models/persons/patient.py +0 -58
  349. endoreg_db/models.py +0 -3
  350. endoreg_db-0.3.4.dist-info/RECORD +0 -185
@@ -1,45 +1,45 @@
1
- from django.conf import settings
2
- import os
3
- from django.core.management.base import BaseCommand
4
- from ...models import EndoscopyProcessor
5
- from ...utils import load_model_data_from_yaml
6
- from ...data import ENDOSCOPY_PROCESSOR_DATA_DIR
7
-
8
- SOURCE_DIR = ENDOSCOPY_PROCESSOR_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
9
-
10
- MODEL_0 = EndoscopyProcessor
11
-
12
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
13
- MODEL_0.__name__,
14
- ]
15
-
16
- IMPORT_METADATA = {
17
- MODEL_0.__name__: {
18
- "dir": SOURCE_DIR, # e.g. "interventions"
19
- "model": MODEL_0, # e.g. Intervention
20
- "foreign_keys": [], # e.g. ["intervention_types"]
21
- "foreign_key_models": [] # e.g. [InterventionType]
22
- }
23
- }
24
-
25
- class Command(BaseCommand):
26
- help = """Load all .yaml files in the data/intervention directory
27
- into the Intervention and InterventionType model"""
28
-
29
- def add_arguments(self, parser):
30
- parser.add_argument(
31
- '--verbose',
32
- action='store_true',
33
- help='Display verbose output',
34
- )
35
-
36
- def handle(self, *args, **options):
37
- verbose = options['verbose']
38
- for model_name in IMPORT_MODELS:
39
- _metadata = IMPORT_METADATA[model_name]
40
- load_model_data_from_yaml(
41
- self,
42
- model_name,
43
- _metadata,
44
- verbose
1
+ from django.conf import settings
2
+ import os
3
+ from django.core.management.base import BaseCommand
4
+ from ...models import EndoscopyProcessor
5
+ from ...utils import load_model_data_from_yaml
6
+ from ...data import ENDOSCOPY_PROCESSOR_DATA_DIR
7
+
8
+ SOURCE_DIR = ENDOSCOPY_PROCESSOR_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
9
+
10
+ MODEL_0 = EndoscopyProcessor
11
+
12
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
13
+ MODEL_0.__name__,
14
+ ]
15
+
16
+ IMPORT_METADATA = {
17
+ MODEL_0.__name__: {
18
+ "dir": SOURCE_DIR, # e.g. "interventions"
19
+ "model": MODEL_0, # e.g. Intervention
20
+ "foreign_keys": [], # e.g. ["intervention_types"]
21
+ "foreign_key_models": [] # e.g. [InterventionType]
22
+ }
23
+ }
24
+
25
+ class Command(BaseCommand):
26
+ help = """Load all .yaml files in the data/intervention directory
27
+ into the Intervention and InterventionType model"""
28
+
29
+ def add_arguments(self, parser):
30
+ parser.add_argument(
31
+ '--verbose',
32
+ action='store_true',
33
+ help='Display verbose output',
34
+ )
35
+
36
+ def handle(self, *args, **options):
37
+ verbose = options['verbose']
38
+ for model_name in IMPORT_MODELS:
39
+ _metadata = IMPORT_METADATA[model_name]
40
+ load_model_data_from_yaml(
41
+ self,
42
+ model_name,
43
+ _metadata,
44
+ verbose
45
45
  )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import Event
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import EVENT_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = Event
7
+
8
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
9
+ MODEL_0.__name__,
10
+ ]
11
+
12
+ IMPORT_METADATA = {
13
+ MODEL_0.__name__: {
14
+ "dir": SOURCE_DIR, # e.g. "interventions"
15
+ "model": MODEL_0, # 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_from_yaml(
37
+ self,
38
+ model_name,
39
+ _metadata,
40
+ verbose
41
+ )
@@ -1,75 +1,75 @@
1
- from django.conf import settings
2
- from django.core.management.base import BaseCommand
3
- from ...models import (
4
- Examination,
5
- ExaminationType, # Replace 'your_app_name' with the actual app name
6
- ExaminationTime,
7
- ExaminationTimeType,
8
- )
9
- import os
10
- from ...utils import load_model_data_from_yaml
11
- from ...data import EXAMINATION_DATA_DIR
12
-
13
- SOURCE_DIR = EXAMINATION_DATA_DIR
14
-
15
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
16
- "ExaminationType",
17
- "Examination",
18
- "ExaminationTimeType",
19
- "ExaminationTime"
20
- ]
21
-
22
- IMPORT_METADATA = {
23
- # "": { # same as model name in "import models", e.g. "Intervention"
24
- # "subdir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
25
- # "model": None, # e.g. Intervention
26
- # "foreign_keys": [], # e.g. ["intervention_types"]
27
- # "foreign_key_models": [] # e.g. [InterventionType]
28
- # },
29
- "ExaminationType": {
30
- "dir": os.path.join(SOURCE_DIR,"type"), # e.g. "interventions"
31
- "model": ExaminationType, # e.g. Intervention
32
- "foreign_keys": [], # e.g. ["intervention_types"]
33
- "foreign_key_models": [] # e.g. [InterventionType]
34
- },
35
- "Examination": {
36
- "dir": os.path.join(SOURCE_DIR,"examinations"), # e.g. "interventions"
37
- "model": Examination, # e.g. Intervention
38
- "foreign_keys": ["examination_types"], # e.g. ["intervention_types"]
39
- "foreign_key_models": [ExaminationType] # e.g. [InterventionType]
40
- },
41
- "ExaminationTimeType": {
42
- "dir": os.path.join(SOURCE_DIR,"time-type"), # e.g. "interventions"
43
- "model": ExaminationTimeType, # e.g. Intervention
44
- "foreign_keys": ["examinations"], # e.g. ["intervention_types"]
45
- "foreign_key_models": [Examination] # e.g. [InterventionType]
46
- },
47
- "ExaminationTime": {
48
- "dir": os.path.join(SOURCE_DIR,"time"), # e.g. "interventions"
49
- "model": ExaminationTime, # e.g. Intervention
50
- "foreign_keys": ["time_types"], # e.g. ["intervention_types"]
51
- "foreign_key_models": [ExaminationTimeType] # e.g. [InterventionType]
52
- },
53
- }
54
-
55
- class Command(BaseCommand):
56
- help = """Load all .yaml files in the data/intervention directory
57
- into the Intervention and InterventionType model"""
58
-
59
- def add_arguments(self, parser):
60
- parser.add_argument(
61
- '--verbose',
62
- action='store_true',
63
- help='Display verbose output',
64
- )
65
-
66
- def handle(self, *args, **options):
67
- verbose = options['verbose']
68
- for model_name in IMPORT_MODELS:
69
- _metadata = IMPORT_METADATA[model_name]
70
- load_model_data_from_yaml(
71
- self,
72
- model_name,
73
- _metadata,
74
- verbose
1
+ from django.conf import settings
2
+ from django.core.management.base import BaseCommand
3
+ from ...models import (
4
+ Examination,
5
+ ExaminationType, # Replace 'your_app_name' with the actual app name
6
+ ExaminationTime,
7
+ ExaminationTimeType,
8
+ )
9
+ import os
10
+ from ...utils import load_model_data_from_yaml
11
+ from ...data import EXAMINATION_DATA_DIR
12
+
13
+ SOURCE_DIR = EXAMINATION_DATA_DIR
14
+
15
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
16
+ "ExaminationType",
17
+ "Examination",
18
+ "ExaminationTimeType",
19
+ "ExaminationTime"
20
+ ]
21
+
22
+ IMPORT_METADATA = {
23
+ # "": { # same as model name in "import models", e.g. "Intervention"
24
+ # "subdir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
25
+ # "model": None, # e.g. Intervention
26
+ # "foreign_keys": [], # e.g. ["intervention_types"]
27
+ # "foreign_key_models": [] # e.g. [InterventionType]
28
+ # },
29
+ "ExaminationType": {
30
+ "dir": os.path.join(SOURCE_DIR,"type"), # e.g. "interventions"
31
+ "model": ExaminationType, # e.g. Intervention
32
+ "foreign_keys": [], # e.g. ["intervention_types"]
33
+ "foreign_key_models": [] # e.g. [InterventionType]
34
+ },
35
+ "Examination": {
36
+ "dir": os.path.join(SOURCE_DIR,"examinations"), # e.g. "interventions"
37
+ "model": Examination, # e.g. Intervention
38
+ "foreign_keys": ["examination_types"], # e.g. ["intervention_types"]
39
+ "foreign_key_models": [ExaminationType] # e.g. [InterventionType]
40
+ },
41
+ "ExaminationTimeType": {
42
+ "dir": os.path.join(SOURCE_DIR,"time-type"), # e.g. "interventions"
43
+ "model": ExaminationTimeType, # e.g. Intervention
44
+ "foreign_keys": ["examinations"], # e.g. ["intervention_types"]
45
+ "foreign_key_models": [Examination] # e.g. [InterventionType]
46
+ },
47
+ "ExaminationTime": {
48
+ "dir": os.path.join(SOURCE_DIR,"time"), # e.g. "interventions"
49
+ "model": ExaminationTime, # e.g. Intervention
50
+ "foreign_keys": ["time_types"], # e.g. ["intervention_types"]
51
+ "foreign_key_models": [ExaminationTimeType] # e.g. [InterventionType]
52
+ },
53
+ }
54
+
55
+ class Command(BaseCommand):
56
+ help = """Load all .yaml files in the data/intervention directory
57
+ into the Intervention and InterventionType model"""
58
+
59
+ def add_arguments(self, parser):
60
+ parser.add_argument(
61
+ '--verbose',
62
+ action='store_true',
63
+ help='Display verbose output',
64
+ )
65
+
66
+ def handle(self, *args, **options):
67
+ verbose = options['verbose']
68
+ for model_name in IMPORT_MODELS:
69
+ _metadata = IMPORT_METADATA[model_name]
70
+ load_model_data_from_yaml(
71
+ self,
72
+ model_name,
73
+ _metadata,
74
+ verbose
75
75
  )
@@ -0,0 +1,113 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ CaseTemplateRuleType,
4
+ CaseTemplateRuleValueType,
5
+ CaseTemplateRuleValue,
6
+ CaseTemplateRule,
7
+ CaseTemplateType,
8
+ CaseTemplate,
9
+ SingleCategoricalValueDistribution,
10
+ NumericValueDistribution,
11
+ MultipleCategoricalValueDistribution,
12
+ DateValueDistribution,
13
+
14
+ QuizQuestionType,
15
+ QuizAnswerType,
16
+ QuizQuestion,
17
+ QuizAnswer,
18
+
19
+ # Other models for ForeignKeys
20
+ Unit, Center
21
+ )
22
+ from collections import OrderedDict
23
+
24
+ from ...utils import load_model_data_from_yaml
25
+ from ...data import (
26
+ CASE_TEMPLATE_RULE_TYPE_DATA_DIR,
27
+ CASE_TEMPLATE_RULE_DATA_DIR,
28
+ CASE_TEMPLATE_RULE_VALUE_TYPE_DATA_DIR,
29
+ CASE_TEMPLATE_RULE_VALUE_DATA_DIR,
30
+ CASE_TEMPLATE_TYPE_DATA_DIR,
31
+ CASE_TEMPLATE_DATA_DIR,
32
+ )
33
+
34
+ IMPORT_METADATA = OrderedDict({
35
+ CaseTemplateRuleType.__name__: {
36
+ "dir": CASE_TEMPLATE_RULE_TYPE_DATA_DIR,
37
+ "model": CaseTemplateRuleType,
38
+ "foreign_keys": [],
39
+ "foreign_key_models": []
40
+ },
41
+ CaseTemplateRuleValueType.__name__: {
42
+ "dir": CASE_TEMPLATE_RULE_VALUE_TYPE_DATA_DIR,
43
+ "model": CaseTemplateRuleValueType,
44
+ "foreign_keys": [],
45
+ "foreign_key_models": []
46
+ },
47
+ CaseTemplateRuleValue.__name__: {
48
+ "dir": CASE_TEMPLATE_RULE_VALUE_DATA_DIR,
49
+ "model": CaseTemplateRuleValue,
50
+ "foreign_keys": ["value_type"],
51
+ "foreign_key_models": [CaseTemplateRuleValueType]
52
+ },
53
+ CaseTemplateRule.__name__: {
54
+ "dir": CASE_TEMPLATE_RULE_DATA_DIR,
55
+ "model": CaseTemplateRule,
56
+ "foreign_keys": [
57
+ "rule_type",
58
+ # "rule_values",
59
+ "chained_rules",
60
+ "value_type",
61
+ "single_categorical_value_distribution",
62
+ "numerical_value_distribution",
63
+ "multiple_categorical_value_distribution",
64
+ "date_value_distribution"
65
+ ],
66
+ "foreign_key_models": [
67
+ CaseTemplateRuleType,
68
+ # CaseTemplateRuleValue,
69
+ CaseTemplateRule,
70
+ CaseTemplateRuleValueType,
71
+ SingleCategoricalValueDistribution,
72
+ NumericValueDistribution,
73
+ MultipleCategoricalValueDistribution,
74
+ DateValueDistribution
75
+
76
+ ]
77
+ },
78
+ CaseTemplateType.__name__: {
79
+ "dir": CASE_TEMPLATE_TYPE_DATA_DIR,
80
+ "model": CaseTemplateType,
81
+ "foreign_keys": [],
82
+ "foreign_key_models": []
83
+ },
84
+ CaseTemplate.__name__: {
85
+ "dir": CASE_TEMPLATE_DATA_DIR,
86
+ "model": CaseTemplate,
87
+ "foreign_keys": ["template_type", "rules"],
88
+ "foreign_key_models": [CaseTemplateType, CaseTemplateRule]
89
+ },
90
+
91
+ })
92
+
93
+ class Command(BaseCommand):
94
+ help = """Load all .yaml files in the data/intervention directory
95
+ into the Intervention and InterventionType model"""
96
+
97
+ def add_arguments(self, parser):
98
+ parser.add_argument(
99
+ '--verbose',
100
+ action='store_true',
101
+ help='Display verbose output',
102
+ )
103
+
104
+ def handle(self, *args, **options):
105
+ verbose = options['verbose']
106
+ for model_name in IMPORT_METADATA.keys():
107
+ _metadata = IMPORT_METADATA[model_name]
108
+ load_model_data_from_yaml(
109
+ self,
110
+ model_name,
111
+ _metadata,
112
+ verbose
113
+ )
@@ -0,0 +1,44 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ Gender,
4
+
5
+ # Other models for ForeignKeys
6
+ Unit, Center
7
+ )
8
+ from collections import OrderedDict
9
+
10
+ from ...utils import load_model_data_from_yaml
11
+ from ...data import (
12
+ GENDER_DATA_DIR,
13
+ )
14
+
15
+ IMPORT_METADATA = OrderedDict({
16
+ Gender.__name__: {
17
+ "dir": GENDER_DATA_DIR,
18
+ "model": Gender,
19
+ "foreign_keys": [],
20
+ "foreign_key_models": []
21
+ },
22
+ })
23
+
24
+ class Command(BaseCommand):
25
+ help = """Load all .yaml files in the data/intervention directory
26
+ into the Intervention and InterventionType model"""
27
+
28
+ def add_arguments(self, parser):
29
+ parser.add_argument(
30
+ '--verbose',
31
+ action='store_true',
32
+ help='Display verbose output',
33
+ )
34
+
35
+ def handle(self, *args, **options):
36
+ verbose = options['verbose']
37
+ for model_name in IMPORT_METADATA.keys():
38
+ _metadata = IMPORT_METADATA[model_name]
39
+ load_model_data_from_yaml(
40
+ self,
41
+ model_name,
42
+ _metadata,
43
+ verbose
44
+ )
@@ -0,0 +1,133 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ EmissionFactor,
4
+ Resource,
5
+ Waste,
6
+ Material,
7
+ Product,
8
+ ProductGroup,
9
+ ReferenceProduct,
10
+ ProductGroup,
11
+ TransportRoute,
12
+ CenterWaste,
13
+ CenterResource,
14
+ ProductMaterial,
15
+ ProductWeight,
16
+
17
+ # Other models for ForeignKeys
18
+ Unit, Center
19
+ )
20
+ from collections import OrderedDict
21
+
22
+ from ...utils import load_model_data_from_yaml
23
+ from ...data import (
24
+ EMISSION_FACTOR_DATA_DIR,
25
+ RESOURCE_DATA_DIR,
26
+ WASTE_DATA_DIR,
27
+ MATERIAL_DATA_DIR,
28
+ PRODUCT_DATA_DIR,
29
+ PRODUCT_GROUP_DATA_DIR,
30
+ REFERENCE_PRODUCT_DATA_DIR,
31
+ TRANSPORT_ROUTE_DATA_DIR,
32
+ CENTER_WASTE_DATA_DIR,
33
+ CENTER_RESOURCE_DATA_DIR,
34
+ PRODUCT_MATERIAL_DATA_DIR,
35
+ PRODUCT_WEIGHT_DATA_DIR,
36
+ )
37
+
38
+ IMPORT_METADATA = OrderedDict({
39
+ EmissionFactor.__name__: {
40
+ "dir": EMISSION_FACTOR_DATA_DIR,
41
+ "model": EmissionFactor,
42
+ "foreign_keys": ["unit"],
43
+ "foreign_key_models": [Unit]
44
+ },
45
+ Resource.__name__: {
46
+ "dir": RESOURCE_DATA_DIR,
47
+ "model": Resource,
48
+ "foreign_keys": [],
49
+ "foreign_key_models": []
50
+ },
51
+ Waste.__name__: {
52
+ "dir": WASTE_DATA_DIR,
53
+ "model": Waste,
54
+ "foreign_keys": [],
55
+ "foreign_key_models": []
56
+ },
57
+ Material.__name__: {
58
+ "dir": MATERIAL_DATA_DIR,
59
+ "model": Material,
60
+ "foreign_keys": ["emission_factor"],
61
+ "foreign_key_models": [EmissionFactor]
62
+ },
63
+ ProductGroup.__name__: {
64
+ "dir": PRODUCT_GROUP_DATA_DIR,
65
+ "model": ProductGroup,
66
+ "foreign_keys": [],
67
+ "foreign_key_models": []
68
+ },
69
+ TransportRoute.__name__: {
70
+ "dir": TRANSPORT_ROUTE_DATA_DIR,
71
+ "model": TransportRoute,
72
+ "foreign_keys": ["emission_factor", "unit"],
73
+ "foreign_key_models": [EmissionFactor, Unit]
74
+ },
75
+ Product.__name__: {
76
+ "dir": PRODUCT_DATA_DIR,
77
+ "model": Product,
78
+ "foreign_keys": ["product_group", "transport_route"],
79
+ "foreign_key_models": [ProductGroup, TransportRoute]
80
+ },
81
+ ReferenceProduct.__name__: {
82
+ "dir": REFERENCE_PRODUCT_DATA_DIR,
83
+ "model": ReferenceProduct,
84
+ "foreign_keys": ["product","product_group"],
85
+ "foreign_key_models": [Product,ProductGroup]
86
+ },
87
+ CenterWaste.__name__: {
88
+ "dir": CENTER_WASTE_DATA_DIR,
89
+ "model": CenterWaste,
90
+ "foreign_keys": ["waste", "center", "unit", "emission_factor"],
91
+ "foreign_key_models": [Waste, Center, Unit, EmissionFactor]
92
+ },
93
+ CenterResource.__name__: {
94
+ "dir": CENTER_RESOURCE_DATA_DIR,
95
+ "model": CenterResource,
96
+ "foreign_keys": ["center","resource", "unit", "transport_emission_factor", "use_emission_factor"],
97
+ "foreign_key_models": [Center,Resource, Unit, EmissionFactor, EmissionFactor]
98
+ },
99
+ ProductMaterial.__name__: {
100
+ "dir": PRODUCT_MATERIAL_DATA_DIR,
101
+ "model": ProductMaterial,
102
+ "foreign_keys": ["product", "material", "unit"],
103
+ "foreign_key_models": [Product, Material, Unit]
104
+ },
105
+ ProductWeight.__name__: {
106
+ "dir": PRODUCT_WEIGHT_DATA_DIR,
107
+ "model": ProductWeight,
108
+ "foreign_keys": ["product", "unit"],
109
+ "foreign_key_models": [Product, Unit]
110
+ }
111
+ })
112
+
113
+ class Command(BaseCommand):
114
+ help = """Load all .yaml files in the data/intervention directory
115
+ into the Intervention and InterventionType model"""
116
+
117
+ def add_arguments(self, parser):
118
+ parser.add_argument(
119
+ '--verbose',
120
+ action='store_true',
121
+ help='Display verbose output',
122
+ )
123
+
124
+ def handle(self, *args, **options):
125
+ verbose = options['verbose']
126
+ for model_name in IMPORT_METADATA.keys():
127
+ _metadata = IMPORT_METADATA[model_name]
128
+ load_model_data_from_yaml(
129
+ self,
130
+ model_name,
131
+ _metadata,
132
+ verbose
133
+ )
@@ -1,45 +1,45 @@
1
- from django.conf import settings
2
- import os
3
- from django.core.management.base import BaseCommand
4
- from ...models import InformationSource
5
- from ...utils import load_model_data_from_yaml
6
- from ...data import INFORMATION_DATA_DIR
7
-
8
- SOURCE_DIR = INFORMATION_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
9
-
10
- MODEL_0 = InformationSource
11
-
12
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
13
- MODEL_0.__name__,
14
- ]
15
-
16
- IMPORT_METADATA = {
17
- MODEL_0.__name__: {
18
- "dir": SOURCE_DIR, # e.g. "interventions"
19
- "model": MODEL_0, # e.g. Intervention
20
- "foreign_keys": [], # e.g. ["intervention_types"]
21
- "foreign_key_models": [] # e.g. [InterventionType]
22
- }
23
- }
24
-
25
- class Command(BaseCommand):
26
- help = """Load all .yaml files in the data/intervention directory
27
- into the Intervention and InterventionType model"""
28
-
29
- def add_arguments(self, parser):
30
- parser.add_argument(
31
- '--verbose',
32
- action='store_true',
33
- help='Display verbose output',
34
- )
35
-
36
- def handle(self, *args, **options):
37
- verbose = options['verbose']
38
- for model_name in IMPORT_MODELS:
39
- _metadata = IMPORT_METADATA[model_name]
40
- load_model_data_from_yaml(
41
- self,
42
- model_name,
43
- _metadata,
44
- verbose
1
+ from django.conf import settings
2
+ import os
3
+ from django.core.management.base import BaseCommand
4
+ from ...models import InformationSource
5
+ from ...utils import load_model_data_from_yaml
6
+ from ...data import INFORMATION_DATA_DIR
7
+
8
+ SOURCE_DIR = INFORMATION_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
9
+
10
+ MODEL_0 = InformationSource
11
+
12
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
13
+ MODEL_0.__name__,
14
+ ]
15
+
16
+ IMPORT_METADATA = {
17
+ MODEL_0.__name__: {
18
+ "dir": SOURCE_DIR, # e.g. "interventions"
19
+ "model": MODEL_0, # e.g. Intervention
20
+ "foreign_keys": [], # e.g. ["intervention_types"]
21
+ "foreign_key_models": [] # e.g. [InterventionType]
22
+ }
23
+ }
24
+
25
+ class Command(BaseCommand):
26
+ help = """Load all .yaml files in the data/intervention directory
27
+ into the Intervention and InterventionType model"""
28
+
29
+ def add_arguments(self, parser):
30
+ parser.add_argument(
31
+ '--verbose',
32
+ action='store_true',
33
+ help='Display verbose output',
34
+ )
35
+
36
+ def handle(self, *args, **options):
37
+ verbose = options['verbose']
38
+ for model_name in IMPORT_MODELS:
39
+ _metadata = IMPORT_METADATA[model_name]
40
+ load_model_data_from_yaml(
41
+ self,
42
+ model_name,
43
+ _metadata,
44
+ verbose
45
45
  )