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,50 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import LabValue as MODEL_0
3
+ from endoreg_db.models import PatientLabSampleType
4
+ from ...utils import load_model_data_from_yaml
5
+ from ...data import LAB_VALUE_DATA_DIR as SOURCE_DIR
6
+ from ...data import PATIENT_LAB_SAMPLE_TYPE_DATA_DIR
7
+
8
+ from endoreg_db.models import Unit
9
+
10
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
11
+ MODEL_0.__name__,
12
+ PatientLabSampleType.__name__
13
+ ]
14
+
15
+ IMPORT_METADATA = {
16
+ MODEL_0.__name__: {
17
+ "dir": SOURCE_DIR, # e.g. "interventions"
18
+ "model": MODEL_0, # e.g. Intervention
19
+ "foreign_keys": ["default_unit"], # e.g. ["intervention_types"]
20
+ "foreign_key_models": [Unit] # e.g. [InterventionType]
21
+ },
22
+ PatientLabSampleType.__name__: {
23
+ "dir": PATIENT_LAB_SAMPLE_TYPE_DATA_DIR,
24
+ "model": PatientLabSampleType,
25
+ "foreign_keys": [],
26
+ "foreign_key_models": []
27
+ }
28
+ }
29
+
30
+ class Command(BaseCommand):
31
+ help = """Load all .yaml files in the data/intervention directory
32
+ into the Intervention and InterventionType model"""
33
+
34
+ def add_arguments(self, parser):
35
+ parser.add_argument(
36
+ '--verbose',
37
+ action='store_true',
38
+ help='Display verbose output',
39
+ )
40
+
41
+ def handle(self, *args, **options):
42
+ verbose = options['verbose']
43
+ for model_name in IMPORT_MODELS:
44
+ _metadata = IMPORT_METADATA[model_name]
45
+ load_model_data_from_yaml(
46
+ self,
47
+ model_name,
48
+ _metadata,
49
+ verbose
50
+ )
@@ -1,67 +1,67 @@
1
- from django.conf import settings
2
- from django.core.management.base import BaseCommand
3
- from ...models import (
4
- Label,
5
- LabelType,
6
- LabelSet
7
- )
8
- import os
9
- from ...utils import load_model_data_from_yaml
10
- from ...data import LABEL_DATA_DIR
11
-
12
- SOURCE_DIR = LABEL_DATA_DIR
13
-
14
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
15
- "LabelType",
16
- "Label",
17
- "LabelSet",
18
- ]
19
-
20
- IMPORT_METADATA = {
21
- # "": { # same as model name in "import models", e.g. "Intervention"
22
- # "subdir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
23
- # "model": None, # e.g. Intervention
24
- # "foreign_keys": [], # e.g. ["intervention_types"]
25
- # "foreign_key_models": [] # e.g. [InterventionType]
26
- # },
27
- "LabelType": {
28
- "dir": os.path.join(SOURCE_DIR,"label-type"), # e.g. "interventions"
29
- "model": LabelType, # e.g. Intervention
30
- "foreign_keys": [], # e.g. ["intervention_types"]
31
- "foreign_key_models": [] # e.g. [InterventionType]
32
- },
33
- "Label": {
34
- "dir": os.path.join(SOURCE_DIR,"label"), # e.g. "interventions"
35
- "model": Label, # e.g. Intervention
36
- "foreign_keys": ["label_type"], # e.g. ["intervention_types"]
37
- "foreign_key_models": [LabelType] # e.g. [InterventionType]
38
- },
39
- "LabelSet": {
40
- "dir": os.path.join(SOURCE_DIR,"label-set"), # e.g. "interventions"
41
- "model": LabelSet, # e.g. Intervention
42
- "foreign_keys": ["labels"], # e.g. ["intervention_types"]
43
- "foreign_key_models": [Label] # e.g. [InterventionType]
44
- },
45
- }
46
-
47
- class Command(BaseCommand):
48
- help = """Load all .yaml files in the data/intervention directory
49
- into the Intervention and InterventionType model"""
50
-
51
- def add_arguments(self, parser):
52
- parser.add_argument(
53
- '--verbose',
54
- action='store_true',
55
- help='Display verbose output',
56
- )
57
-
58
- def handle(self, *args, **options):
59
- verbose = options['verbose']
60
- for model_name in IMPORT_MODELS:
61
- _metadata = IMPORT_METADATA[model_name]
62
- load_model_data_from_yaml(
63
- self,
64
- model_name,
65
- _metadata,
66
- verbose
1
+ from django.conf import settings
2
+ from django.core.management.base import BaseCommand
3
+ from ...models import (
4
+ Label,
5
+ LabelType,
6
+ LabelSet
7
+ )
8
+ import os
9
+ from ...utils import load_model_data_from_yaml
10
+ from ...data import LABEL_DATA_DIR
11
+
12
+ SOURCE_DIR = LABEL_DATA_DIR
13
+
14
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
15
+ "LabelType",
16
+ "Label",
17
+ "LabelSet",
18
+ ]
19
+
20
+ IMPORT_METADATA = {
21
+ # "": { # same as model name in "import models", e.g. "Intervention"
22
+ # "subdir": os.path.join(SOURCE_DIR,""), # e.g. "interventions"
23
+ # "model": None, # e.g. Intervention
24
+ # "foreign_keys": [], # e.g. ["intervention_types"]
25
+ # "foreign_key_models": [] # e.g. [InterventionType]
26
+ # },
27
+ "LabelType": {
28
+ "dir": os.path.join(SOURCE_DIR,"label-type"), # e.g. "interventions"
29
+ "model": LabelType, # e.g. Intervention
30
+ "foreign_keys": [], # e.g. ["intervention_types"]
31
+ "foreign_key_models": [] # e.g. [InterventionType]
32
+ },
33
+ "Label": {
34
+ "dir": os.path.join(SOURCE_DIR,"label"), # e.g. "interventions"
35
+ "model": Label, # e.g. Intervention
36
+ "foreign_keys": ["label_type"], # e.g. ["intervention_types"]
37
+ "foreign_key_models": [LabelType] # e.g. [InterventionType]
38
+ },
39
+ "LabelSet": {
40
+ "dir": os.path.join(SOURCE_DIR,"label-set"), # e.g. "interventions"
41
+ "model": LabelSet, # e.g. Intervention
42
+ "foreign_keys": ["labels"], # e.g. ["intervention_types"]
43
+ "foreign_key_models": [Label] # e.g. [InterventionType]
44
+ },
45
+ }
46
+
47
+ class Command(BaseCommand):
48
+ help = """Load all .yaml files in the data/intervention directory
49
+ into the Intervention and InterventionType model"""
50
+
51
+ def add_arguments(self, parser):
52
+ parser.add_argument(
53
+ '--verbose',
54
+ action='store_true',
55
+ help='Display verbose output',
56
+ )
57
+
58
+ def handle(self, *args, **options):
59
+ verbose = options['verbose']
60
+ for model_name in IMPORT_MODELS:
61
+ _metadata = IMPORT_METADATA[model_name]
62
+ load_model_data_from_yaml(
63
+ self,
64
+ model_name,
65
+ _metadata,
66
+ verbose
67
67
  )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import Medication, Unit
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import MEDICATION_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = Medication
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": ["default_unit"], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [Unit] # 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
+ )
@@ -0,0 +1,63 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ MedicationIndication,
4
+ MedicationIndicationType,
5
+ MedicationSchedule,
6
+ Disease,
7
+ Event,
8
+ DiseaseClassificationChoice,
9
+ InformationSource
10
+ )
11
+ from ...utils import load_model_data_from_yaml
12
+ from ...data import MEDICATION_INDICATION_DATA_DIR as SOURCE_DIR
13
+
14
+ MODEL_0 = MedicationIndication
15
+
16
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
17
+ MODEL_0.__name__,
18
+ ]
19
+
20
+ IMPORT_METADATA = {
21
+ MODEL_0.__name__: {
22
+ "dir": SOURCE_DIR, # e.g. "interventions"
23
+ "model": MODEL_0, # e.g. Intervention
24
+ "foreign_keys": [
25
+ "indication_type",
26
+ "medication_schedules",
27
+ "diseases",
28
+ "events",
29
+ "classification_choices",
30
+ "sources"
31
+ ], # e.g. ["intervention_types"]
32
+ "foreign_key_models": [
33
+ MedicationIndicationType,
34
+ MedicationSchedule,
35
+ Disease,
36
+ Event,
37
+ DiseaseClassificationChoice,
38
+ InformationSource
39
+ ] # e.g. [InterventionType]
40
+ }
41
+ }
42
+
43
+ class Command(BaseCommand):
44
+ help = """Load all .yaml files in the data/intervention directory
45
+ into the Intervention and InterventionType model"""
46
+
47
+ def add_arguments(self, parser):
48
+ parser.add_argument(
49
+ '--verbose',
50
+ action='store_true',
51
+ help='Display verbose output',
52
+ )
53
+
54
+ def handle(self, *args, **options):
55
+ verbose = options['verbose']
56
+ for model_name in IMPORT_MODELS:
57
+ _metadata = IMPORT_METADATA[model_name]
58
+ load_model_data_from_yaml(
59
+ self,
60
+ model_name,
61
+ _metadata,
62
+ verbose
63
+ )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import MedicationIndicationType
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import MEDICATION_INDICATION_TYPE_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = MedicationIndicationType
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
+ )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import MedicationIntakeTime
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import MEDICATION_INTAKE_TIME_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = MedicationIntakeTime
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
+ )
@@ -0,0 +1,55 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ MedicationSchedule,
4
+ Medication,
5
+ MedicationIntakeTime,
6
+ Unit,
7
+ InformationSource
8
+ )
9
+ from ...utils import load_model_data_from_yaml
10
+ from ...data import MEDICATION_SCHEDULE_DATA_DIR as SOURCE_DIR
11
+
12
+ MODEL_0 = MedicationSchedule
13
+
14
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
15
+ MODEL_0.__name__,
16
+ ]
17
+
18
+ IMPORT_METADATA = {
19
+ MODEL_0.__name__: {
20
+ "dir": SOURCE_DIR, # e.g. "interventions"
21
+ "model": MODEL_0, # e.g. Intervention
22
+ "foreign_keys": [
23
+ "medication",
24
+ "intake_times",
25
+ "unit",
26
+ ], # e.g. ["intervention_types"]
27
+ "foreign_key_models": [
28
+ Medication,
29
+ MedicationIntakeTime,
30
+ Unit,
31
+ ] # e.g. [InterventionType]
32
+ }
33
+ }
34
+
35
+ class Command(BaseCommand):
36
+ help = """Load all .yaml files in the data/intervention directory
37
+ into the Intervention and InterventionType model"""
38
+
39
+ def add_arguments(self, parser):
40
+ parser.add_argument(
41
+ '--verbose',
42
+ action='store_true',
43
+ help='Display verbose output',
44
+ )
45
+
46
+ def handle(self, *args, **options):
47
+ verbose = options['verbose']
48
+ for model_name in IMPORT_MODELS:
49
+ _metadata = IMPORT_METADATA[model_name]
50
+ load_model_data_from_yaml(
51
+ self,
52
+ model_name,
53
+ _metadata,
54
+ verbose
55
+ )
@@ -1,61 +1,61 @@
1
- from django.conf import settings
2
- import os
3
- from django.core.management.base import BaseCommand
4
-
5
- import yaml
6
- from ...utils import load_model_data_from_yaml
7
-
8
-
9
- #### CUSTOMIZE
10
- from ...models import PdfType, ReportReaderFlag
11
- from ...data import PDF_TYPE_DATA_DIR
12
-
13
- SOURCE_DIR = PDF_TYPE_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
14
-
15
- MODEL_0 = PdfType
16
-
17
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
18
- MODEL_0.__name__,
19
- ]
20
-
21
- IMPORT_METADATA = {
22
- MODEL_0.__name__: {
23
- "dir": SOURCE_DIR, # e.g. "interventions"
24
- "model": MODEL_0, # e.g. Intervention
25
- "foreign_keys": [
26
- "patient_info_line",
27
- "endoscope_info_line",
28
- "examiner_info_line",
29
- "cut_off_below_lines",
30
- "cut_off_above_lines"
31
- ], # e.g. ["intervention_types"]
32
- "foreign_key_models": [
33
- ReportReaderFlag,
34
- ReportReaderFlag,
35
- ReportReaderFlag,
36
- ReportReaderFlag,
37
- ReportReaderFlag
38
- ] # e.g. [InterventionType]
39
- }
40
- }
41
-
42
- class Command(BaseCommand):
43
- help = f"""Load all .yaml files in the {SOURCE_DIR} directory"""
44
-
45
- def add_arguments(self, parser):
46
- parser.add_argument(
47
- '--verbose',
48
- action='store_true',
49
- help='Display verbose output',
50
- )
51
-
52
- def handle(self, *args, **options):
53
- verbose = options['verbose']
54
- for model_name in IMPORT_MODELS:
55
- _metadata = IMPORT_METADATA[model_name]
56
- load_model_data_from_yaml(
57
- self,
58
- model_name,
59
- _metadata,
60
- verbose
1
+ from django.conf import settings
2
+ import os
3
+ from django.core.management.base import BaseCommand
4
+
5
+ import yaml
6
+ from ...utils import load_model_data_from_yaml
7
+
8
+
9
+ #### CUSTOMIZE
10
+ from ...models import PdfType, ReportReaderFlag
11
+ from ...data import PDF_TYPE_DATA_DIR
12
+
13
+ SOURCE_DIR = PDF_TYPE_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
14
+
15
+ MODEL_0 = PdfType
16
+
17
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
18
+ MODEL_0.__name__,
19
+ ]
20
+
21
+ IMPORT_METADATA = {
22
+ MODEL_0.__name__: {
23
+ "dir": SOURCE_DIR, # e.g. "interventions"
24
+ "model": MODEL_0, # e.g. Intervention
25
+ "foreign_keys": [
26
+ "patient_info_line",
27
+ "endoscope_info_line",
28
+ "examiner_info_line",
29
+ "cut_off_below_lines",
30
+ "cut_off_above_lines"
31
+ ], # e.g. ["intervention_types"]
32
+ "foreign_key_models": [
33
+ ReportReaderFlag,
34
+ ReportReaderFlag,
35
+ ReportReaderFlag,
36
+ ReportReaderFlag,
37
+ ReportReaderFlag
38
+ ] # e.g. [InterventionType]
39
+ }
40
+ }
41
+
42
+ class Command(BaseCommand):
43
+ help = f"""Load all .yaml files in the {SOURCE_DIR} directory"""
44
+
45
+ def add_arguments(self, parser):
46
+ parser.add_argument(
47
+ '--verbose',
48
+ action='store_true',
49
+ help='Display verbose output',
50
+ )
51
+
52
+ def handle(self, *args, **options):
53
+ verbose = options['verbose']
54
+ for model_name in IMPORT_MODELS:
55
+ _metadata = IMPORT_METADATA[model_name]
56
+ load_model_data_from_yaml(
57
+ self,
58
+ model_name,
59
+ _metadata,
60
+ verbose
61
61
  )
@@ -1,44 +1,44 @@
1
- from django.conf import settings
2
- from django.core.management.base import BaseCommand
3
- from ...models import Profession
4
- from ...utils import load_model_data_from_yaml
5
- from ...data import PROFESSION_DATA_DIR
6
-
7
- SOURCE_DIR = PROFESSION_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
8
-
9
- MODEL_0 = Profession
10
-
11
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
12
- MODEL_0.__name__,
13
- ]
14
-
15
- IMPORT_METADATA = {
16
- MODEL_0.__name__: {
17
- "dir": SOURCE_DIR, # e.g. "interventions"
18
- "model": MODEL_0, # e.g. Intervention
19
- "foreign_keys": [], # e.g. ["intervention_types"]
20
- "foreign_key_models": [] # e.g. [InterventionType]
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_MODELS:
38
- _metadata = IMPORT_METADATA[model_name]
39
- load_model_data_from_yaml(
40
- self,
41
- model_name,
42
- _metadata,
43
- verbose
1
+ from django.conf import settings
2
+ from django.core.management.base import BaseCommand
3
+ from ...models import Profession
4
+ from ...utils import load_model_data_from_yaml
5
+ from ...data import PROFESSION_DATA_DIR
6
+
7
+ SOURCE_DIR = PROFESSION_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
8
+
9
+ MODEL_0 = Profession
10
+
11
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
12
+ MODEL_0.__name__,
13
+ ]
14
+
15
+ IMPORT_METADATA = {
16
+ MODEL_0.__name__: {
17
+ "dir": SOURCE_DIR, # e.g. "interventions"
18
+ "model": MODEL_0, # e.g. Intervention
19
+ "foreign_keys": [], # e.g. ["intervention_types"]
20
+ "foreign_key_models": [] # e.g. [InterventionType]
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_MODELS:
38
+ _metadata = IMPORT_METADATA[model_name]
39
+ load_model_data_from_yaml(
40
+ self,
41
+ model_name,
42
+ _metadata,
43
+ verbose
44
44
  )