endoreg-db 0.5.3__py3-none-any.whl → 0.6.1__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.

Potentially problematic release.


This version of endoreg-db might be problematic. Click here for more details.

Files changed (268) hide show
  1. endoreg_db/admin.py +90 -1
  2. endoreg_db/case_generator/case_generator.py +159 -0
  3. endoreg_db/case_generator/lab_sample_factory.py +33 -0
  4. endoreg_db/case_generator/utils.py +30 -0
  5. endoreg_db/data/__init__.py +50 -4
  6. endoreg_db/data/ai_model/data.yaml +7 -0
  7. endoreg_db/data/{label → ai_model_label}/label/data.yaml +27 -1
  8. endoreg_db/data/ai_model_label/label-set/data.yaml +21 -0
  9. endoreg_db/data/ai_model_meta/default_multilabel_classification.yaml +5 -0
  10. endoreg_db/data/ai_model_video_segmentation_label/base_segmentation.yaml +176 -0
  11. endoreg_db/data/ai_model_video_segmentation_labelset/data.yaml +20 -0
  12. endoreg_db/data/center/data.yaml +35 -5
  13. endoreg_db/data/contraindication/bleeding.yaml +11 -0
  14. endoreg_db/data/distribution/numeric/data.yaml +14 -0
  15. endoreg_db/data/endoscope/data.yaml +93 -0
  16. endoreg_db/data/examination_indication/endoscopy.yaml +8 -0
  17. endoreg_db/data/examination_indication_classification/endoscopy.yaml +8 -0
  18. endoreg_db/data/examination_indication_classification_choice/endoscopy.yaml +101 -0
  19. endoreg_db/data/finding/data.yaml +141 -0
  20. endoreg_db/data/finding_intervention/endoscopy.yaml +138 -0
  21. endoreg_db/data/finding_intervention_type/endoscopy.yaml +15 -0
  22. endoreg_db/data/finding_location_classification/colonoscopy.yaml +46 -0
  23. endoreg_db/data/finding_location_classification_choice/colonoscopy.yaml +240 -0
  24. endoreg_db/data/finding_morphology_classification/colonoscopy.yaml +48 -0
  25. endoreg_db/data/finding_morphology_classification_choice/colon_lesion_circularity_default.yaml +34 -0
  26. endoreg_db/data/finding_morphology_classification_choice/colon_lesion_nice.yaml +20 -0
  27. endoreg_db/data/finding_morphology_classification_choice/colon_lesion_paris.yaml +65 -0
  28. endoreg_db/data/finding_morphology_classification_choice/colon_lesion_planarity_default.yaml +56 -0
  29. endoreg_db/data/finding_morphology_classification_choice/colon_lesion_surface_intact_default.yaml +39 -0
  30. endoreg_db/data/finding_morphology_classification_choice/colonoscopy_size.yaml +57 -0
  31. endoreg_db/data/finding_morphology_classification_type/colonoscopy.yaml +79 -0
  32. endoreg_db/data/finding_type/data.yaml +30 -0
  33. endoreg_db/data/gender/data.yaml +17 -0
  34. endoreg_db/data/lab_value/cardiac_enzymes.yaml +7 -1
  35. endoreg_db/data/lab_value/coagulation.yaml +6 -1
  36. endoreg_db/data/lab_value/electrolytes.yaml +39 -1
  37. endoreg_db/data/lab_value/gastrointestinal_function.yaml +12 -0
  38. endoreg_db/data/lab_value/hematology.yaml +17 -2
  39. endoreg_db/data/lab_value/hormones.yaml +6 -0
  40. endoreg_db/data/lab_value/lipids.yaml +12 -3
  41. endoreg_db/data/lab_value/misc.yaml +5 -2
  42. endoreg_db/data/lab_value/renal_function.yaml +2 -1
  43. endoreg_db/data/lx_client_tag/base.yaml +54 -0
  44. endoreg_db/data/lx_client_type/base.yaml +30 -0
  45. endoreg_db/data/lx_permission/base.yaml +24 -0
  46. endoreg_db/data/lx_permission/endoreg.yaml +52 -0
  47. endoreg_db/data/medication_indication/anticoagulation.yaml +44 -49
  48. endoreg_db/data/names_first/first_names.yaml +51 -0
  49. endoreg_db/data/names_last/last_names.yaml +51 -0
  50. endoreg_db/data/network_device/data.yaml +30 -0
  51. endoreg_db/data/organ/data.yaml +29 -0
  52. endoreg_db/data/pdf_type/data.yaml +2 -1
  53. endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +4 -0
  54. endoreg_db/forms/__init__.py +3 -1
  55. endoreg_db/forms/examination_form.py +11 -0
  56. endoreg_db/forms/patient_finding_intervention_form.py +19 -0
  57. endoreg_db/forms/patient_form.py +26 -0
  58. endoreg_db/management/commands/__init__.py +0 -0
  59. endoreg_db/management/commands/load_ai_model_data.py +57 -23
  60. endoreg_db/management/commands/load_ai_model_label_data.py +59 -0
  61. endoreg_db/management/commands/load_base_db_data.py +160 -118
  62. endoreg_db/management/commands/{load_endoscope_type_data.py → load_contraindication_data.py} +3 -7
  63. endoreg_db/management/commands/load_disease_data.py +29 -7
  64. endoreg_db/management/commands/load_endoscope_data.py +68 -0
  65. endoreg_db/management/commands/load_examination_indication_data.py +65 -0
  66. endoreg_db/management/commands/load_finding_data.py +171 -0
  67. endoreg_db/management/commands/load_lab_value_data.py +3 -3
  68. endoreg_db/management/commands/load_lx_data.py +64 -0
  69. endoreg_db/management/commands/load_medication_data.py +83 -21
  70. endoreg_db/management/commands/load_name_data.py +37 -0
  71. endoreg_db/management/commands/{load_endoscopy_processor_data.py → load_organ_data.py} +7 -9
  72. endoreg_db/migrations/0001_initial.py +1206 -728
  73. endoreg_db/migrations/0002_alter_frame_image_alter_rawframe_image.py +23 -0
  74. endoreg_db/migrations/0003_alter_frame_image_alter_rawframe_image.py +23 -0
  75. endoreg_db/migrations/0004_alter_rawvideofile_file_alter_video_file.py +25 -0
  76. endoreg_db/migrations/0005_rawvideofile_frame_count_and_more.py +33 -0
  77. endoreg_db/migrations/0006_frame_extracted_rawframe_extracted.py +23 -0
  78. endoreg_db/migrations/0007_rename_pseudo_patient_video_patient_and_more.py +24 -0
  79. endoreg_db/migrations/0008_remove_reportfile_patient_examination_and_more.py +48 -0
  80. endoreg_db/models/__init__.py +331 -28
  81. endoreg_db/models/ai_model/__init__.py +1 -0
  82. endoreg_db/models/ai_model/ai_model.py +103 -0
  83. endoreg_db/models/ai_model/lightning/__init__.py +3 -0
  84. endoreg_db/models/ai_model/lightning/inference_dataset.py +53 -0
  85. endoreg_db/models/ai_model/lightning/multilabel_classification_net.py +155 -0
  86. endoreg_db/models/ai_model/lightning/postprocess.py +53 -0
  87. endoreg_db/models/ai_model/lightning/predict.py +172 -0
  88. endoreg_db/models/ai_model/lightning/prediction_visualizer.py +55 -0
  89. endoreg_db/models/ai_model/lightning/preprocess.py +68 -0
  90. endoreg_db/models/ai_model/lightning/run_visualizer.py +21 -0
  91. endoreg_db/models/ai_model/model_meta.py +232 -6
  92. endoreg_db/models/ai_model/model_type.py +13 -3
  93. endoreg_db/models/annotation/__init__.py +31 -2
  94. endoreg_db/models/annotation/anonymized_image_annotation.py +73 -18
  95. endoreg_db/models/annotation/binary_classification_annotation_task.py +94 -57
  96. endoreg_db/models/annotation/image_classification.py +73 -14
  97. endoreg_db/models/annotation/video_segmentation_annotation.py +52 -0
  98. endoreg_db/models/annotation/video_segmentation_labelset.py +20 -0
  99. endoreg_db/models/case/__init__.py +1 -0
  100. endoreg_db/models/{persons/patient/case → case}/case.py +4 -0
  101. endoreg_db/models/case_template/__init__.py +10 -1
  102. endoreg_db/models/case_template/case_template.py +57 -13
  103. endoreg_db/models/case_template/case_template_rule.py +5 -5
  104. endoreg_db/models/case_template/case_template_rule_value.py +19 -4
  105. endoreg_db/models/center/__init__.py +7 -0
  106. endoreg_db/models/center/center.py +31 -5
  107. endoreg_db/models/center/center_product.py +0 -1
  108. endoreg_db/models/center/center_resource.py +16 -2
  109. endoreg_db/models/center/center_waste.py +6 -1
  110. endoreg_db/models/contraindication/__init__.py +21 -0
  111. endoreg_db/models/data_file/__init__.py +38 -5
  112. endoreg_db/models/data_file/base_classes/__init__.py +6 -1
  113. endoreg_db/models/data_file/base_classes/abstract_frame.py +64 -15
  114. endoreg_db/models/data_file/base_classes/abstract_pdf.py +136 -0
  115. endoreg_db/models/data_file/base_classes/abstract_video.py +744 -138
  116. endoreg_db/models/data_file/base_classes/frame_helpers.py +17 -0
  117. endoreg_db/models/data_file/base_classes/prepare_bulk_frames.py +19 -0
  118. endoreg_db/models/data_file/base_classes/utils.py +80 -0
  119. endoreg_db/models/data_file/frame.py +22 -38
  120. endoreg_db/models/data_file/import_classes/__init__.py +4 -18
  121. endoreg_db/models/data_file/import_classes/raw_pdf.py +162 -90
  122. endoreg_db/models/data_file/import_classes/raw_video.py +239 -294
  123. endoreg_db/models/data_file/metadata/__init__.py +10 -0
  124. endoreg_db/models/data_file/metadata/pdf_meta.py +4 -0
  125. endoreg_db/models/data_file/metadata/sensitive_meta.py +265 -6
  126. endoreg_db/models/data_file/metadata/video_meta.py +116 -50
  127. endoreg_db/models/data_file/report_file.py +30 -63
  128. endoreg_db/models/data_file/video/__init__.py +6 -2
  129. endoreg_db/models/data_file/video/video.py +187 -16
  130. endoreg_db/models/data_file/video_segment.py +162 -55
  131. endoreg_db/models/disease.py +25 -2
  132. endoreg_db/models/emission/__init__.py +5 -1
  133. endoreg_db/models/emission/emission_factor.py +71 -6
  134. endoreg_db/models/event.py +51 -0
  135. endoreg_db/models/examination/__init__.py +6 -1
  136. endoreg_db/models/examination/examination.py +53 -12
  137. endoreg_db/models/examination/examination_indication.py +170 -0
  138. endoreg_db/models/examination/examination_time.py +31 -5
  139. endoreg_db/models/examination/examination_time_type.py +28 -4
  140. endoreg_db/models/examination/examination_type.py +28 -6
  141. endoreg_db/models/finding/__init__.py +11 -0
  142. endoreg_db/models/finding/finding.py +75 -0
  143. endoreg_db/models/finding/finding_intervention.py +60 -0
  144. endoreg_db/models/finding/finding_location_classification.py +94 -0
  145. endoreg_db/models/finding/finding_morphology_classification.py +89 -0
  146. endoreg_db/models/finding/finding_type.py +22 -0
  147. endoreg_db/models/hardware/endoscope.py +16 -0
  148. endoreg_db/models/hardware/endoscopy_processor.py +31 -19
  149. endoreg_db/models/label/label.py +35 -7
  150. endoreg_db/models/laboratory/lab_value.py +12 -3
  151. endoreg_db/models/logging/__init__.py +8 -1
  152. endoreg_db/models/lx/__init__.py +4 -0
  153. endoreg_db/models/lx/client.py +57 -0
  154. endoreg_db/models/lx/identity.py +34 -0
  155. endoreg_db/models/lx/permission.py +18 -0
  156. endoreg_db/models/lx/user.py +16 -0
  157. endoreg_db/models/medication/__init__.py +19 -1
  158. endoreg_db/models/medication/medication.py +7 -122
  159. endoreg_db/models/medication/medication_indication.py +50 -0
  160. endoreg_db/models/medication/medication_indication_type.py +34 -0
  161. endoreg_db/models/medication/medication_intake_time.py +26 -0
  162. endoreg_db/models/medication/medication_schedule.py +37 -0
  163. endoreg_db/models/network/__init__.py +7 -1
  164. endoreg_db/models/network/network_device.py +13 -8
  165. endoreg_db/models/organ/__init__.py +38 -0
  166. endoreg_db/models/other/__init__.py +19 -1
  167. endoreg_db/models/other/distribution/__init__.py +44 -0
  168. endoreg_db/models/other/distribution/base_value_distribution.py +20 -0
  169. endoreg_db/models/other/distribution/date_value_distribution.py +91 -0
  170. endoreg_db/models/other/distribution/multiple_categorical_value_distribution.py +32 -0
  171. endoreg_db/models/other/distribution/numeric_value_distribution.py +97 -0
  172. endoreg_db/models/other/distribution/single_categorical_value_distribution.py +22 -0
  173. endoreg_db/models/other/distribution.py +1 -211
  174. endoreg_db/models/other/material.py +4 -0
  175. endoreg_db/models/other/transport_route.py +2 -1
  176. endoreg_db/models/patient/__init__.py +24 -0
  177. endoreg_db/models/patient/patient_examination.py +182 -0
  178. endoreg_db/models/patient/patient_finding.py +143 -0
  179. endoreg_db/models/patient/patient_finding_intervention.py +26 -0
  180. endoreg_db/models/patient/patient_finding_location.py +120 -0
  181. endoreg_db/models/patient/patient_finding_morphology.py +166 -0
  182. endoreg_db/models/persons/__init__.py +29 -2
  183. endoreg_db/models/persons/examiner/examiner.py +48 -4
  184. endoreg_db/models/persons/patient/__init__.py +1 -1
  185. endoreg_db/models/persons/patient/patient.py +227 -54
  186. endoreg_db/models/persons/patient/patient_disease.py +6 -0
  187. endoreg_db/models/persons/patient/patient_event.py +31 -1
  188. endoreg_db/models/persons/patient/patient_examination_indication.py +32 -0
  189. endoreg_db/models/persons/patient/patient_lab_sample.py +4 -2
  190. endoreg_db/models/persons/patient/patient_lab_value.py +37 -16
  191. endoreg_db/models/persons/patient/patient_medication.py +27 -12
  192. endoreg_db/models/persons/patient/patient_medication_schedule.py +62 -2
  193. endoreg_db/models/prediction/__init__.py +7 -1
  194. endoreg_db/models/prediction/image_classification.py +20 -6
  195. endoreg_db/models/prediction/video_prediction_meta.py +151 -89
  196. endoreg_db/models/product/__init__.py +10 -1
  197. endoreg_db/models/product/product.py +15 -2
  198. endoreg_db/models/product/product_group.py +8 -0
  199. endoreg_db/models/product/product_material.py +4 -0
  200. endoreg_db/models/product/product_weight.py +12 -0
  201. endoreg_db/models/product/reference_product.py +19 -3
  202. endoreg_db/models/quiz/__init__.py +8 -1
  203. endoreg_db/models/report_reader/__init__.py +6 -1
  204. endoreg_db/serializers/__init__.py +1 -1
  205. endoreg_db/serializers/annotation.py +2 -5
  206. endoreg_db/serializers/frame.py +1 -5
  207. endoreg_db/serializers/patient.py +26 -3
  208. endoreg_db/serializers/prediction.py +2 -7
  209. endoreg_db/serializers/raw_video_meta_validation.py +13 -0
  210. endoreg_db/serializers/video.py +6 -13
  211. endoreg_db/serializers/video_segmentation.py +492 -0
  212. endoreg_db/templates/admin/patient_finding_intervention.html +253 -0
  213. endoreg_db/templates/admin/start_examination.html +12 -0
  214. endoreg_db/templates/timeline.html +176 -0
  215. endoreg_db/urls.py +173 -0
  216. endoreg_db/utils/__init__.py +36 -1
  217. endoreg_db/utils/dataloader.py +45 -19
  218. endoreg_db/utils/dates.py +39 -0
  219. endoreg_db/utils/hashs.py +122 -4
  220. endoreg_db/utils/names.py +74 -0
  221. endoreg_db/utils/parse_and_generate_yaml.py +46 -0
  222. endoreg_db/utils/pydantic_models/__init__.py +6 -0
  223. endoreg_db/utils/pydantic_models/db_config.py +57 -0
  224. endoreg_db/utils/validate_endo_roi.py +19 -0
  225. endoreg_db/utils/validate_subcategory_dict.py +91 -0
  226. endoreg_db/utils/video/__init__.py +13 -0
  227. endoreg_db/utils/video/extract_frames.py +121 -0
  228. endoreg_db/utils/video/transcode_videofile.py +111 -0
  229. endoreg_db/views/__init__.py +2 -0
  230. endoreg_db/views/csrf.py +7 -0
  231. endoreg_db/views/patient_views.py +90 -0
  232. endoreg_db/views/raw_video_meta_validation_views.py +38 -0
  233. endoreg_db/views/report_views.py +96 -0
  234. endoreg_db/views/video_segmentation_views.py +149 -0
  235. endoreg_db/views/views_for_timeline.py +46 -0
  236. endoreg_db/views.py +0 -3
  237. endoreg_db-0.6.1.dist-info/METADATA +151 -0
  238. endoreg_db-0.6.1.dist-info/RECORD +420 -0
  239. {endoreg_db-0.5.3.dist-info → endoreg_db-0.6.1.dist-info}/WHEEL +1 -1
  240. endoreg_db/data/active_model/data.yaml +0 -3
  241. endoreg_db/data/label/label-set/data.yaml +0 -18
  242. endoreg_db/management/commands/delete_legacy_images.py +0 -19
  243. endoreg_db/management/commands/delete_legacy_videos.py +0 -17
  244. endoreg_db/management/commands/extract_legacy_video_frames.py +0 -18
  245. endoreg_db/management/commands/import_legacy_images.py +0 -94
  246. endoreg_db/management/commands/import_legacy_videos.py +0 -76
  247. endoreg_db/management/commands/load_label_data.py +0 -67
  248. endoreg_db/migrations/0002_anonymizedimagelabel_anonymousimageannotation_and_more.py +0 -55
  249. endoreg_db/migrations/0003_anonymousimageannotation_original_image_url_and_more.py +0 -39
  250. endoreg_db/migrations/0004_alter_rawpdffile_file.py +0 -20
  251. endoreg_db/migrations/0005_uploadedfile_alter_rawpdffile_file_anonymizedfile.py +0 -40
  252. endoreg_db/migrations/0006_alter_rawpdffile_file.py +0 -20
  253. endoreg_db/migrations/0007_networkdevicelogentry_datetime_and_more.py +0 -43
  254. endoreg_db/migrations/0008_networkdevicelogentry_aglnet_ip_and_more.py +0 -28
  255. endoreg_db/migrations/0009_alter_networkdevicelogentry_vpn_service_status.py +0 -18
  256. endoreg_db/migrations/0010_remove_networkdevicelogentry_hostname.py +0 -17
  257. endoreg_db/models/legacy_data/__init__.py +0 -3
  258. endoreg_db/models/legacy_data/image.py +0 -34
  259. endoreg_db/models/patient_examination/__init__.py +0 -35
  260. endoreg_db/utils/video_metadata.py +0 -87
  261. endoreg_db-0.5.3.dist-info/METADATA +0 -28
  262. endoreg_db-0.5.3.dist-info/RECORD +0 -319
  263. /endoreg_db/{models/persons/patient/case → case_generator}/__init__.py +0 -0
  264. /endoreg_db/data/{label → ai_model_label}/label-type/data.yaml +0 -0
  265. /endoreg_db/data/{model_type → ai_model_type}/data.yaml +0 -0
  266. /endoreg_db/{data/distribution/numeric/.init → management/__init__.py} +0 -0
  267. /endoreg_db/management/commands/{load_report_reader_flag.py → load_report_reader_flag_data.py} +0 -0
  268. {endoreg_db-0.5.3.dist-info → endoreg_db-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,13 +1,15 @@
1
1
  from django.core.management import BaseCommand, call_command
2
+ from io import StringIO
3
+
2
4
 
3
5
  class Command(BaseCommand):
4
- help = 'Run all data loading commands in the correct order'
6
+ help = "Run all data loading commands in the correct order"
5
7
 
6
8
  def add_arguments(self, parser):
7
9
  parser.add_argument(
8
- '--verbose',
9
- action='store_true',
10
- help='Display verbose output for all commands',
10
+ "--verbose",
11
+ action="store_true",
12
+ help="Display verbose output for all commands",
11
13
  )
12
14
 
13
15
  def handle(self, *args, **options):
@@ -16,121 +18,161 @@ class Command(BaseCommand):
16
18
 
17
19
  self.stdout.write(self.style.SUCCESS("Populating base db models with data..."))
18
20
 
21
+ out = self.stdout
22
+
23
+ # Load Center Data
24
+ call_command("load_center_data", stdout=out, verbose=verbose)
25
+ call_command("load_endoscope_data", stdout=out, verbose=verbose)
26
+ call_command("load_distribution_data", stdout=out, verbose=verbose)
27
+
28
+ call_command("load_gender_data", stdout=out, verbose=verbose)
29
+ call_command("load_report_reader_flag_data", stdout=out, verbose=verbose)
30
+ call_command("load_pdf_type_data", stdout=out, verbose=verbose)
31
+ call_command("load_unit_data", stdout=out, verbose=verbose)
32
+ call_command("load_disease_data", stdout=out, verbose=verbose)
33
+ call_command("load_event_data", stdout=out, verbose=verbose)
34
+ call_command("load_organ_data", stdout=out, verbose=verbose)
35
+ call_command("load_contraindication_data", stdout=out, verbose=verbose)
36
+ call_command("load_examination_data", stdout=out, verbose=verbose)
37
+ call_command("load_examination_indication_data", stdout=out, verbose=verbose)
38
+ call_command("load_lab_value_data", stdout=out, verbose=verbose)
39
+ call_command("load_finding_data", stdout=out, verbose=verbose)
40
+ call_command("load_medication_data", stdout=out, verbose=verbose)
41
+
42
+ # Load AI Model Data
43
+ call_command("load_ai_model_label_data", stdout=out, verbose=verbose)
44
+ call_command("load_ai_model_data", stdout=out, verbose=verbose)
45
+
46
+ self.stdout.write(
47
+ self.style.SUCCESS( # pylint: disable=no-member
48
+ "All data loading commands executed successfully."
49
+ )
50
+ )
51
+
52
+ # # Run the load_network_data command
53
+ # self.stdout.write(self.style.SUCCESS("Running load_network_data..."))
54
+ # call_command('load_network_data', verbose=verbose)
19
55
  # Run the load_network_data command
20
- self.stdout.write(self.style.SUCCESS("Running load_network_data..."))
21
- call_command('load_network_data', verbose=verbose)
56
+ # self.stdout.write(self.style.SUCCESS("Running load_network_data..."))
57
+ # call_command("load_network_data", verbose=verbose)
22
58
 
23
- # Run the load_logging_data command
24
- self.stdout.write(self.style.SUCCESS("Running load_logging_data..."))
25
- call_command('load_logging_data', verbose=verbose)
59
+ # # Run the load_logging_data command
60
+ # self.stdout.write(self.style.SUCCESS("Running load_logging_data..."))
61
+ # call_command("load_logging_data", verbose=verbose)
26
62
 
27
- # Run the load_profession_data command
28
- self.stdout.write(self.style.SUCCESS("Running load_profession_data..."))
29
- call_command('load_profession_data', verbose=verbose)
63
+ # # Run the load_profession_data command
64
+ # self.stdout.write(self.style.SUCCESS("Running load_profession_data..."))
65
+ # call_command("load_profession_data", verbose=verbose)
30
66
 
31
- # run the load_gender_data command
32
- self.stdout.write(self.style.SUCCESS("Running load_gender_data..."))
33
- call_command('load_gender_data', verbose=verbose)
34
-
35
- # Run the load_disease data command
36
- self.stdout.write(self.style.SUCCESS("Running load_disease_data..."))
37
- call_command('load_disease_data', verbose=verbose)
38
-
39
- # Run the load_disease_classification data command
40
- self.stdout.write(self.style.SUCCESS("Running load_disease_classification_data..."))
41
- call_command('load_disease_classification_data', verbose=verbose)
42
-
43
- # Run the load_disease_classification_choices data command
44
- self.stdout.write(self.style.SUCCESS("Running load_disease_classification_choices_data..."))
45
- call_command('load_disease_classification_choices_data', verbose=verbose)
46
-
47
- # rund the load_user_groups command
48
- self.stdout.write(self.style.SUCCESS("Running load_user_groups..."))
49
- call_command('load_user_groups', verbose=verbose)
50
-
51
- # run the load_report_reader_flag command
52
- self.stdout.write(self.style.SUCCESS("Running load_report_reader_flag..."))
53
- call_command('load_report_reader_flag', verbose=verbose)
54
-
55
- # Run the load_pdf_type_data command
56
- self.stdout.write(self.style.SUCCESS("Running load_pdf_type_data..."))
57
- call_command('load_pdf_type_data', verbose=verbose)
58
-
59
- # Run the load_endoscopy_processor_data command
60
- self.stdout.write(self.style.SUCCESS("Running load_endoscopy_processor_data..."))
61
- call_command('load_endoscopy_processor_data', verbose=verbose)
62
-
63
- # Run the load_endoscope_type_data command
64
- self.stdout.write(self.style.SUCCESS("Running load_endoscope_type_data..."))
65
- call_command('load_endoscope_type_data', verbose=verbose)
66
-
67
- # Run the load_unit_data command
68
- self.stdout.write(self.style.SUCCESS("Running load_unit_data..."))
69
- call_command('load_unit_data', verbose=verbose)
70
-
71
- # Run the load_lab_value_data command
72
- self.stdout.write(self.style.SUCCESS("Running load_lab_value_data..."))
73
- call_command("load_lab_value_data", verbose=verbose)
74
-
75
- # Run the load_information_source command
76
- self.stdout.write(self.style.SUCCESS("Running load_information_source..."))
77
- call_command('load_information_source', verbose=verbose)
78
-
79
- # Run the load_center_data command
80
- self.stdout.write(self.style.SUCCESS("Running load_center_data..."))
81
- call_command('load_center_data', verbose=verbose)
82
-
83
- # Run the load_examination_data command
84
- self.stdout.write(self.style.SUCCESS("Running load_examination_data..."))
85
- call_command('load_examination_data', verbose=verbose)
86
-
87
- # Run the load_label_data command
88
- self.stdout.write(self.style.SUCCESS("Running load_label_data..."))
89
- call_command('load_label_data', verbose=verbose)
90
-
91
- # Run the load_ai_model_data command
92
- self.stdout.write(self.style.SUCCESS("Running load_ai_model_data..."))
93
- call_command('load_ai_model_data', verbose=verbose)
94
-
95
- # Run the load_event_data command
96
- self.stdout.write(self.style.SUCCESS("Running load_event_data..."))
97
- call_command('load_event_data', verbose=verbose)
98
-
99
- # run the load_medication_data command
100
- self.stdout.write(self.style.SUCCESS("Running load_medication_data..."))
101
- call_command('load_medication_data', verbose=verbose)
102
-
103
- # Run the load_medication_indication_type_data command
104
- self.stdout.write(self.style.SUCCESS("Running load_medication_indication_type_data..."))
105
- call_command('load_medication_indication_type_data', verbose=verbose)
106
-
107
- # Run the load_medication_intake_time_data command
108
- self.stdout.write(self.style.SUCCESS("Running load_medication_intake_time_data..."))
109
- call_command('load_medication_intake_time_data', verbose=verbose)
110
-
111
- # Run the load_medication_schedule_data command
112
- self.stdout.write(self.style.SUCCESS("Running load_medication_schedule_data..."))
113
- call_command('load_medication_schedule_data', verbose=verbose)
114
-
115
- # Run the load_medication_indication_data command
116
- self.stdout.write(self.style.SUCCESS("Running load_medication_indication_data..."))
117
- call_command('load_medication_indication_data', verbose=verbose)
118
-
119
- # Run the load_green_endoscopy_wuerzburg_data command
120
- self.stdout.write(self.style.SUCCESS("Running load_green_endoscopy_wuerzburg_data..."))
121
- call_command('load_green_endoscopy_wuerzburg_data', verbose=verbose)
122
-
123
- # Load G-Play Data
124
- # run the load_distribution_data command
125
- self.stdout.write(self.style.SUCCESS("Running load_distribution_data..."))
126
- call_command('load_distribution_data', verbose=verbose)
127
- # Run the load_g_play_data command
128
- self.stdout.write(self.style.SUCCESS("Running load_g_play_data..."))
129
- call_command('load_g_play_data', verbose=verbose)
130
-
131
- # Necessary? Migrate? FIXME
132
- # # Run the load_active_model_data command
133
- # self.stdout.write(self.style.SUCCESS("Running load_active_model_data..."))
134
- # call_command('load_active_model_data', verbose=verbose)
135
-
136
- self.stdout.write(self.style.SUCCESS("All data loading commands executed successfully."))
67
+ # # run the load_gender_data command
68
+ # self.stdout.write(self.style.SUCCESS("Running load_gender_data..."))
69
+ # call_command("load_gender_data", verbose=verbose)
70
+
71
+ # # Run the load_examination_data command
72
+ # self.stdout.write(self.style.SUCCESS("Running load_examination_data..."))
73
+ # call_command("load_examination_data", verbose=verbose)
74
+
75
+ # # run the load_finding_data command
76
+ # self.stdout.write(self.style.SUCCESS("Running load_finding_data..."))
77
+ # call_command("load_finding_data", verbose=verbose)
78
+
79
+ # # Run the load_disease data command
80
+ # self.stdout.write(self.style.SUCCESS("Running load_disease_data..."))
81
+ # call_command("load_disease_data", verbose=verbose)
82
+
83
+ # # # Run the load_disease_classification data command
84
+ # # self.stdout.write(self.style.SUCCESS("Running load_disease_classification_data..."))
85
+ # # call_command('load_disease_classification_data', verbose=verbose)
86
+
87
+ # # # Run the load_disease_classification_choices data command
88
+ # # self.stdout.write(self.style.SUCCESS("Running load_disease_classification_choices_data..."))
89
+ # # call_command('load_disease_classification_choices_data', verbose=verbose)
90
+
91
+ # # rund the load_user_groups command
92
+ # self.stdout.write(self.style.SUCCESS("Running load_user_groups..."))
93
+ # call_command("load_user_groups", verbose=verbose)
94
+
95
+ # # run the load_report_reader_flag command
96
+ # self.stdout.write(self.style.SUCCESS("Running load_report_reader_flag..."))
97
+ # call_command("load_report_reader_flag", verbose=verbose)
98
+
99
+ # # Run the load_pdf_type_data command
100
+ # self.stdout.write(self.style.SUCCESS("Running load_pdf_type_data..."))
101
+ # call_command("load_pdf_type_data", verbose=verbose)
102
+
103
+ # # Run the load_endoscopy_processor_data command
104
+ # self.stdout.write(
105
+ # self.style.SUCCESS("Running load_endoscopy_processor_data...")
106
+ # )
107
+ # call_command("load_endoscopy_processor_data", verbose=verbose)
108
+
109
+ # # Run the load_endoscope_type_data command
110
+ # self.stdout.write(self.style.SUCCESS("Running load_endoscope_type_data..."))
111
+ # call_command("load_endoscope_type_data", verbose=verbose)
112
+
113
+ # # Run the load_unit_data command
114
+ # self.stdout.write(self.style.SUCCESS("Running load_unit_data..."))
115
+ # call_command("load_unit_data", verbose=verbose)
116
+
117
+ # # Run the load_lab_value_data command
118
+ # self.stdout.write(self.style.SUCCESS("Running load_lab_value_data..."))
119
+ # call_command("load_lab_value_data", verbose=verbose)
120
+
121
+ # # Run the load_information_source command
122
+ # self.stdout.write(self.style.SUCCESS("Running load_information_source..."))
123
+ # call_command("load_information_source", verbose=verbose)
124
+
125
+ # # Run the load_center_data command
126
+ # self.stdout.write(self.style.SUCCESS("Running load_center_data..."))
127
+ # call_command("load_center_data", verbose=verbose)
128
+
129
+ # # Run the load_label_data command
130
+ # self.stdout.write(self.style.SUCCESS("Running load_label_data..."))
131
+ # call_command("load_label_data", verbose=verbose)
132
+
133
+ # # Run the load_ai_model_data command
134
+ # self.stdout.write(self.style.SUCCESS("Running load_ai_model_data..."))
135
+ # call_command("load_ai_model_data", verbose=verbose)
136
+
137
+ # # Run the load_event_data command
138
+ # self.stdout.write(self.style.SUCCESS("Running load_event_data..."))
139
+ # call_command("load_event_data", verbose=verbose)
140
+
141
+ # # run the load_medication_data command
142
+ # self.stdout.write(self.style.SUCCESS("Running load_medication_data..."))
143
+ # call_command("load_medication_data", verbose=verbose)
144
+
145
+ # # # Run the load_medication_indication_type_data command
146
+ # # self.stdout.write(self.style.SUCCESS("Running load_medication_indication_type_data..."))
147
+ # # call_command('load_medication_indication_type_data', verbose=verbose)
148
+
149
+ # # # Run the load_medication_intake_time_data command
150
+ # # self.stdout.write(self.style.SUCCESS("Running load_medication_intake_time_data..."))
151
+ # # call_command('load_medication_intake_time_data', verbose=verbose)
152
+
153
+ # # # Run the load_medication_schedule_data command
154
+ # # self.stdout.write(self.style.SUCCESS("Running load_medication_schedule_data..."))
155
+ # # call_command('load_medication_schedule_data', verbose=verbose)
156
+
157
+ # # # Run the load_medication_indication_data command
158
+ # # self.stdout.write(self.style.SUCCESS("Running load_medication_indication_data..."))
159
+ # # call_command('load_medication_indication_data', verbose=verbose)
160
+
161
+ # # Run the load_green_endoscopy_wuerzburg_data command
162
+ # self.stdout.write(
163
+ # self.style.SUCCESS("Running load_green_endoscopy_wuerzburg_data...")
164
+ # )
165
+ # call_command("load_green_endoscopy_wuerzburg_data", verbose=verbose)
166
+
167
+ # # Load G-Play Data
168
+ # # run the load_distribution_data command
169
+ # self.stdout.write(self.style.SUCCESS("Running load_distribution_data..."))
170
+ # call_command("load_distribution_data", verbose=verbose)
171
+ # # Run the load_g_play_data command
172
+ # self.stdout.write(self.style.SUCCESS("Running load_g_play_data..."))
173
+ # call_command("load_g_play_data", verbose=verbose)
174
+
175
+ # # Necessary? Migrate? FIXME
176
+ # # # Run the load_active_model_data command
177
+ # # self.stdout.write(self.style.SUCCESS("Running load_active_model_data..."))
178
+ # # call_command('load_active_model_data', verbose=verbose)
@@ -1,13 +1,9 @@
1
- from django.conf import settings
2
- import os
3
1
  from django.core.management.base import BaseCommand
4
- from ...models import EndoscopeType
2
+ from endoreg_db.models import Contraindication
5
3
  from ...utils import load_model_data_from_yaml
6
- from ...data import ENDOSCOPE_TYPE_DATA_DIR
4
+ from ...data import CONTRAINDICATION_DATA_DIR as SOURCE_DIR
7
5
 
8
- SOURCE_DIR = ENDOSCOPE_TYPE_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
9
-
10
- MODEL_0 = EndoscopeType
6
+ MODEL_0 = Contraindication
11
7
 
12
8
  IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
13
9
  MODEL_0.__name__,
@@ -1,20 +1,42 @@
1
1
  from django.core.management.base import BaseCommand
2
- from endoreg_db.models import Disease as MODEL_0
2
+ from endoreg_db.models import (
3
+ Disease,
4
+ DiseaseClassification,
5
+ DiseaseClassificationChoice,
6
+ )
3
7
  from ...utils import load_model_data_from_yaml
4
- from ...data import DISEASE_DATA_DIR as SOURCE_DIR
8
+ from ...data import (
9
+ DISEASE_DATA_DIR,
10
+ DISEASE_CLASSIFICATION_DATA_DIR,
11
+ DISEASE_CLASSIFICATION_CHOICE_DATA_DIR,
12
+ )
5
13
 
6
14
 
7
15
  IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
8
- MODEL_0.__name__,
16
+ Disease.__name__,
17
+ DiseaseClassification.__name__,
18
+ DiseaseClassificationChoice.__name__,
9
19
  ]
10
20
 
11
21
  IMPORT_METADATA = {
12
- MODEL_0.__name__: {
13
- "dir": SOURCE_DIR, # e.g. "interventions"
14
- "model": MODEL_0, # e.g. Intervention
22
+ Disease.__name__: {
23
+ "dir": DISEASE_DATA_DIR, # e.g. "interventions"
24
+ "model": Disease, # e.g. Intervention
15
25
  "foreign_keys": [], # e.g. ["intervention_types"]
16
26
  "foreign_key_models": [] # e.g. [InterventionType]
17
- }
27
+ },
28
+ DiseaseClassification.__name__: {
29
+ "dir": DISEASE_CLASSIFICATION_DATA_DIR, # e.g. "interventions"
30
+ "model": DiseaseClassification, # e.g. Intervention
31
+ "foreign_keys": ["disease"], # e.g. ["intervention_types"]
32
+ "foreign_key_models": [Disease] # e.g. [InterventionType]
33
+ },
34
+ DiseaseClassificationChoice.__name__: {
35
+ "dir": DISEASE_CLASSIFICATION_CHOICE_DATA_DIR, # e.g. "interventions"
36
+ "model": DiseaseClassificationChoice, # e.g. Intervention
37
+ "foreign_keys": ["disease_classification"], # e.g. ["intervention_types"]
38
+ "foreign_key_models": [DiseaseClassification] # e.g. [InterventionType]
39
+ },
18
40
  }
19
41
 
20
42
  class Command(BaseCommand):
@@ -0,0 +1,68 @@
1
+ from django.conf import settings
2
+ import os
3
+ from django.core.management.base import BaseCommand
4
+ from ...models import (
5
+ EndoscopeType,
6
+ Endoscope,
7
+ EndoscopyProcessor,
8
+ Center
9
+ )
10
+ from ...utils import load_model_data_from_yaml
11
+ from ...data import (
12
+ ENDOSCOPE_TYPE_DATA_DIR,
13
+ ENDOSCOPY_PROCESSOR_DATA_DIR,
14
+ ENDOSCOPE_DATA_DIR,
15
+ )
16
+
17
+ SOURCE_DIR = ENDOSCOPE_TYPE_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
18
+
19
+ MODEL_0 = EndoscopeType
20
+
21
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
22
+ EndoscopeType.__name__,
23
+ EndoscopyProcessor.__name__,
24
+ Endoscope.__name__,
25
+ ]
26
+
27
+ IMPORT_METADATA = {
28
+ EndoscopeType.__name__: {
29
+ "dir": ENDOSCOPE_TYPE_DATA_DIR, # e.g. "interventions"
30
+ "model": EndoscopeType, # e.g. Intervention
31
+ "foreign_keys": [], # e.g. ["intervention_types"]
32
+ "foreign_key_models": [] # e.g. [InterventionType]
33
+ },
34
+ EndoscopyProcessor.__name__: {
35
+ "dir": ENDOSCOPY_PROCESSOR_DATA_DIR,
36
+ "model": EndoscopyProcessor,
37
+ "foreign_keys": [],
38
+ "foreign_key_models": []
39
+ },
40
+ Endoscope.__name__: {
41
+ "dir": ENDOSCOPE_DATA_DIR,
42
+ "model": Endoscope,
43
+ "foreign_keys": ["center", "endoscope_type"],
44
+ "foreign_key_models": [Center, EndoscopeType]
45
+ },
46
+ }
47
+
48
+ class Command(BaseCommand):
49
+ help = """Load all .yaml files in the data/intervention directory
50
+ into the Intervention and InterventionType model"""
51
+
52
+ def add_arguments(self, parser):
53
+ parser.add_argument(
54
+ '--verbose',
55
+ action='store_true',
56
+ help='Display verbose output',
57
+ )
58
+
59
+ def handle(self, *args, **options):
60
+ verbose = options['verbose']
61
+ for model_name in IMPORT_MODELS:
62
+ _metadata = IMPORT_METADATA[model_name]
63
+ load_model_data_from_yaml(
64
+ self,
65
+ model_name,
66
+ _metadata,
67
+ verbose
68
+ )
@@ -0,0 +1,65 @@
1
+ from django.conf import settings
2
+ from django.core.management.base import BaseCommand
3
+ from ...models import (
4
+ ExaminationIndicationClassification,
5
+ ExaminationIndication, # Replace 'your_app_name' with the actual app name
6
+ ExaminationIndicationClassificationChoice,
7
+ Examination,
8
+ )
9
+ import os
10
+ from ...utils import load_model_data_from_yaml
11
+ from ...data import (
12
+ EXAMINATION_INDICATION_CLASSIFICATION_CHOICE_DATA_DIR,
13
+ EXAMINATION_INDICATION_CLASSIFICATION_DATA_DIR,
14
+ EXAMINATION_INDICATION_DATA_DIR,
15
+ )
16
+
17
+
18
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
19
+ ExaminationIndicationClassification.__name__,
20
+ ExaminationIndication.__name__,
21
+ ExaminationIndicationClassificationChoice.__name__,
22
+ ]
23
+
24
+ IMPORT_METADATA = {
25
+ ExaminationIndicationClassification.__name__: {
26
+ "dir": EXAMINATION_INDICATION_CLASSIFICATION_DATA_DIR, # e.g. "interventions"
27
+ "model": ExaminationIndicationClassification, # e.g. Intervention
28
+ "foreign_keys": [], # e.g. ["intervention_types"]
29
+ "foreign_key_models": [] # e.g. [InterventionType]
30
+ },
31
+ ExaminationIndication.__name__: {
32
+ "dir": EXAMINATION_INDICATION_DATA_DIR, # e.g. "interventions"
33
+ "model": ExaminationIndication, # e.g. Intervention
34
+ "foreign_keys": ["classification", "examination"], # e.g. ["intervention_types"]
35
+ "foreign_key_models": [ExaminationIndicationClassification, Examination] # e.g. [InterventionType]
36
+ },
37
+ ExaminationIndicationClassificationChoice.__name__: {
38
+ "dir": EXAMINATION_INDICATION_CLASSIFICATION_CHOICE_DATA_DIR, # e.g. "interventions"
39
+ "model": ExaminationIndicationClassificationChoice, # e.g. Intervention
40
+ "foreign_keys": ["classification"], # e.g. ["intervention_types"]
41
+ "foreign_key_models": [ExaminationIndicationClassification] # e.g. [InterventionType]
42
+ },
43
+ }
44
+
45
+ class Command(BaseCommand):
46
+ help = """Load all .yaml files in the data/intervention directory
47
+ into the Intervention and InterventionType model"""
48
+
49
+ def add_arguments(self, parser):
50
+ parser.add_argument(
51
+ '--verbose',
52
+ action='store_true',
53
+ help='Display verbose output',
54
+ )
55
+
56
+ def handle(self, *args, **options):
57
+ verbose = options['verbose']
58
+ for model_name in IMPORT_MODELS:
59
+ _metadata = IMPORT_METADATA[model_name]
60
+ load_model_data_from_yaml(
61
+ self,
62
+ model_name,
63
+ _metadata,
64
+ verbose
65
+ )