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
@@ -0,0 +1,171 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ Finding, FindingType, Examination,
4
+ FindingLocationClassification, FindingLocationClassificationChoice,
5
+ Organ,
6
+ FindingMorphologyClassificationType, FindingMorphologyClassification,
7
+ FindingMorphologyClassificationChoice,
8
+ FindingIntervention, FindingInterventionType, LabValue, Contraindication
9
+
10
+ )
11
+ from ...utils import load_model_data_from_yaml
12
+ from ...data import (
13
+ FINDING_DATA_DIR, FINDING_TYPE_DATA_DIR,
14
+ FINDING_LOCATION_CLASSIFICATION_DATA_DIR,
15
+ FINDING_LOCATION_CLASSIFICATION_CHOICE_DATA_DIR,
16
+ FINDING_MORPHOLOGY_CLASSIFICATION_CHOICE_DATA_DIR,
17
+ FINDING_MORPHOLOGY_CLASSIFICATION_DATA_DIR,
18
+ FINDING_MORPGOLOGY_CLASSIFICATION_TYPE_DATA_DIR,
19
+ FINDING_INTERVETION_DATA_DIR,
20
+ FINIDNG_INTERVENTION_TYPE_DATA_DIR
21
+ )
22
+
23
+ MODEL_0 = FindingType
24
+ MODEL_1 = Finding
25
+ MODEL_2 = FindingLocationClassificationChoice
26
+ MODEL_3 = FindingLocationClassification
27
+ MODEL_4 = FindingMorphologyClassificationType
28
+ MODEL_5 = FindingMorphologyClassification
29
+ MODEL_6 = FindingMorphologyClassificationChoice
30
+ MODEL_7 = FindingInterventionType
31
+ MODEL_8 = FindingIntervention
32
+
33
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
34
+ MODEL_7.__name__,
35
+ MODEL_8.__name__,
36
+ MODEL_0.__name__,
37
+ MODEL_1.__name__,
38
+ MODEL_2.__name__,
39
+ MODEL_3.__name__,
40
+ MODEL_4.__name__,
41
+ MODEL_5.__name__,
42
+ MODEL_6.__name__,
43
+ ]
44
+
45
+ IMPORT_METADATA = {
46
+ MODEL_0.__name__: {
47
+ "dir": FINDING_TYPE_DATA_DIR, # e.g. "interventions"
48
+ "model": MODEL_0, # e.g. Intervention
49
+ "foreign_keys": [], # e.g. ["intervention_types"]
50
+ "foreign_key_models": [] # e.g. [InterventionType]
51
+ },
52
+ Finding.__name__: {
53
+ "dir": FINDING_DATA_DIR, # e.g. "interventions"
54
+ "model": MODEL_1, # e.g. Intervention
55
+ "foreign_keys": [
56
+ "finding_types",
57
+ "examinations",
58
+ "finding_interventions",
59
+ "causing_finding_interventions",
60
+ "opt_causing_finding_interventions",
61
+ ], # e.g. ["intervention_types"]
62
+ "foreign_key_models": [
63
+ FindingType,
64
+ Examination,
65
+ FindingIntervention,
66
+ FindingIntervention,
67
+ FindingIntervention,
68
+ ] # e.g. [InterventionType]
69
+ },
70
+ MODEL_2.__name__: {
71
+ "dir": FINDING_LOCATION_CLASSIFICATION_CHOICE_DATA_DIR, # e.g. "interventions"
72
+ "model": MODEL_2, # e.g. Intervention
73
+ "foreign_keys": [
74
+ "organs"
75
+ ], # e.g. ["intervention_types"]
76
+ "foreign_key_models": [
77
+ Organ
78
+ ] # e.g. [InterventionType]
79
+ },
80
+ MODEL_3.__name__: {
81
+ "dir": FINDING_LOCATION_CLASSIFICATION_DATA_DIR, # e.g. "interventions"
82
+ "model": MODEL_3, # e.g. Intervention
83
+ "foreign_keys": [
84
+ "examinations",
85
+ "finding_types",
86
+ "findings",
87
+ "choices"
88
+ ], # e.g. ["intervention_types"]
89
+ "foreign_key_models": [
90
+ Examination,
91
+ FindingType,
92
+ Finding,
93
+ FindingLocationClassificationChoice
94
+ ] # e.g. [InterventionType]
95
+ },
96
+ MODEL_4.__name__: {
97
+ "dir": FINDING_MORPGOLOGY_CLASSIFICATION_TYPE_DATA_DIR, # e.g. "interventions"
98
+ "model": MODEL_4, # e.g. Intervention
99
+ "foreign_keys": [
100
+ "required_by_findings",
101
+ "optional_for_findings"
102
+ ], # e.g. ["intervention_types"]
103
+ "foreign_key_models": [
104
+ Finding,
105
+ Finding
106
+ ] # e.g. [InterventionType]
107
+ },
108
+
109
+ MODEL_5.__name__: {
110
+ "dir": FINDING_MORPHOLOGY_CLASSIFICATION_DATA_DIR, # e.g. "interventions"
111
+ "model": MODEL_5, # e.g. Intervention
112
+ "foreign_keys": [
113
+ "classification_type",
114
+ ],
115
+ "foreign_key_models": [
116
+ FindingMorphologyClassificationType,
117
+ ]
118
+ },
119
+ MODEL_6.__name__: {
120
+ "dir": FINDING_MORPHOLOGY_CLASSIFICATION_CHOICE_DATA_DIR, # e.g. "interventions"
121
+ "model": MODEL_6, # e.g. Intervention
122
+ "foreign_keys": [
123
+ "classification",
124
+ ],
125
+ "foreign_key_models": [
126
+ FindingMorphologyClassification,
127
+ ]
128
+ },
129
+ FindingInterventionType.__name__: {
130
+ "dir": FINIDNG_INTERVENTION_TYPE_DATA_DIR, # e.g. "interventions"
131
+ "model": FindingInterventionType, # e.g. Intervention
132
+ "foreign_keys": [], # e.g. ["intervention_types"]
133
+ "foreign_key_models": [] # e.g. [InterventionType]
134
+ },
135
+ FindingIntervention.__name__: {
136
+ "dir": FINDING_INTERVETION_DATA_DIR, # e.g. "interventions"
137
+ "model": FindingIntervention, # e.g. Intervention
138
+ "foreign_keys": [
139
+ "intervention_types",
140
+ "required_lab_values",
141
+ "contraindications"
142
+ ], # e.g. ["intervention_types"]
143
+ "foreign_key_models": [
144
+ FindingInterventionType,
145
+ LabValue,
146
+ Contraindication
147
+ ] # e.g. [InterventionType]
148
+ },
149
+ }
150
+
151
+ class Command(BaseCommand):
152
+ help = """Load all .yaml files in the data/intervention directory
153
+ into the Intervention and InterventionType model"""
154
+
155
+ def add_arguments(self, parser):
156
+ parser.add_argument(
157
+ '--verbose',
158
+ action='store_true',
159
+ help='Display verbose output',
160
+ )
161
+
162
+ def handle(self, *args, **options):
163
+ verbose = options['verbose']
164
+ for model_name in IMPORT_MODELS:
165
+ _metadata = IMPORT_METADATA[model_name]
166
+ load_model_data_from_yaml(
167
+ self,
168
+ model_name,
169
+ _metadata,
170
+ verbose
171
+ )
@@ -1,6 +1,6 @@
1
1
  from django.core.management.base import BaseCommand
2
2
  from endoreg_db.models import LabValue as MODEL_0
3
- from endoreg_db.models import PatientLabSampleType
3
+ from endoreg_db.models import PatientLabSampleType, NumericValueDistribution
4
4
  from ...utils import load_model_data_from_yaml
5
5
  from ...data import LAB_VALUE_DATA_DIR as SOURCE_DIR
6
6
  from ...data import PATIENT_LAB_SAMPLE_TYPE_DATA_DIR
@@ -16,8 +16,8 @@ IMPORT_METADATA = {
16
16
  MODEL_0.__name__: {
17
17
  "dir": SOURCE_DIR, # e.g. "interventions"
18
18
  "model": MODEL_0, # e.g. Intervention
19
- "foreign_keys": ["default_unit"], # e.g. ["intervention_types"]
20
- "foreign_key_models": [Unit] # e.g. [InterventionType]
19
+ "foreign_keys": ["default_unit","default_numerical_value_distribution"], # e.g. ["intervention_types"]
20
+ "foreign_key_models": [Unit, NumericValueDistribution] # e.g. [InterventionType]
21
21
  },
22
22
  PatientLabSampleType.__name__: {
23
23
  "dir": PATIENT_LAB_SAMPLE_TYPE_DATA_DIR,
@@ -0,0 +1,64 @@
1
+ # Management command to load LuxNix Model Data
2
+
3
+ from django.core.management.base import BaseCommand
4
+
5
+ from endoreg_db.models import (
6
+ LxClientType, LxClientTag, LxPermission
7
+ )
8
+
9
+ from ...utils import load_model_data_from_yaml
10
+
11
+ from ...data import (
12
+ LX_CLIENT_TYPE_DATA_DIR,
13
+ LX_CLIENT_TAG_DATA_DIR,
14
+ LX_PERMISSION_DATA_DIR
15
+ )
16
+
17
+ IMPORT_MODELS = [
18
+ LxPermission.__name__,
19
+ LxClientType.__name__,
20
+ LxClientTag.__name__, # M2M relationship with LxPermission ("permissions")
21
+ ]
22
+
23
+ IMPORT_METADATA = {
24
+ LxPermission.__name__: {
25
+ "dir": LX_PERMISSION_DATA_DIR,
26
+ "model": LxPermission,
27
+ "foreign_keys": [],
28
+ "foreign_key_models": []
29
+ },
30
+ LxClientType.__name__: {
31
+ "dir": LX_CLIENT_TYPE_DATA_DIR,
32
+ "model": LxClientType,
33
+ "foreign_keys": [],
34
+ "foreign_key_models": []
35
+ },
36
+ LxClientTag.__name__: {
37
+ "dir": LX_CLIENT_TAG_DATA_DIR,
38
+ "model": LxClientTag,
39
+ "foreign_keys": ["permissions"],
40
+ "foreign_key_models": [LxPermission]
41
+ },
42
+ }
43
+
44
+ class Command(BaseCommand):
45
+ help = """Load all .yaml files in the data/intervention directory
46
+ into the Intervention and InterventionType model"""
47
+
48
+ def add_arguments(self, parser):
49
+ parser.add_argument(
50
+ '--verbose',
51
+ action='store_true',
52
+ help='Display verbose output',
53
+ )
54
+
55
+ def handle(self, *args, **options):
56
+ verbose = options['verbose']
57
+ for model_name in IMPORT_MODELS:
58
+ _metadata = IMPORT_METADATA[model_name]
59
+ load_model_data_from_yaml(
60
+ self,
61
+ model_name,
62
+ _metadata,
63
+ verbose
64
+ )
@@ -1,41 +1,103 @@
1
1
  from django.core.management.base import BaseCommand
2
- from endoreg_db.models import Medication, Unit
2
+ from endoreg_db.models import (
3
+ Medication,
4
+ MedicationIndication,
5
+ MedicationIndicationType,
6
+ MedicationIntakeTime,
7
+ MedicationSchedule,
8
+ Unit,
9
+ Disease,
10
+ Event,
11
+ InformationSource,
12
+ DiseaseClassificationChoice,
13
+ )
3
14
  from ...utils import load_model_data_from_yaml
4
- from ...data import MEDICATION_DATA_DIR as SOURCE_DIR
15
+ from ...data import (
16
+ MEDICATION_DATA_DIR,
17
+ MEDICATION_INDICATION_TYPE_DATA_DIR,
18
+ MEDICATION_INTAKE_TIME_DATA_DIR,
19
+ MEDICATION_SCHEDULE_DATA_DIR,
20
+ MEDICATION_INDICATION_DATA_DIR,
21
+ )
5
22
 
6
- MODEL_0 = Medication
7
23
 
8
- IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
9
- MODEL_0.__name__,
24
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
25
+ Medication.__name__,
26
+ MedicationIndicationType.__name__,
27
+ MedicationIntakeTime.__name__,
28
+ MedicationSchedule.__name__,
29
+ MedicationIndication.__name__,
10
30
  ]
11
31
 
12
32
  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
- }
33
+ Medication.__name__: {
34
+ "dir": MEDICATION_DATA_DIR, # e.g. "interventions"
35
+ "model": Medication, # e.g. Intervention
36
+ "foreign_keys": ["default_unit"], # e.g. ["intervention_types"]
37
+ "foreign_key_models": [Unit], # e.g. [InterventionType]
38
+ },
39
+ MedicationIndicationType.__name__: {
40
+ "dir": MEDICATION_INDICATION_TYPE_DATA_DIR, # e.g. "interventions"
41
+ "model": MedicationIndicationType, # e.g. Intervention
42
+ "foreign_keys": [], # e.g. ["intervention_types"]
43
+ "foreign_key_models": [], # e.g. [InterventionType]
44
+ },
45
+ MedicationIntakeTime.__name__: {
46
+ "dir": MEDICATION_INTAKE_TIME_DATA_DIR, # e.g. "interventions"
47
+ "model": MedicationIntakeTime, # e.g. Intervention
48
+ "foreign_keys": [], # e.g. ["intervention_types"]
49
+ "foreign_key_models": [], # e.g. [InterventionType]
50
+ },
51
+ MedicationSchedule.__name__: {
52
+ "dir": MEDICATION_SCHEDULE_DATA_DIR, # e.g. "interventions"
53
+ "model": MedicationSchedule, # e.g. Intervention
54
+ "foreign_keys": [
55
+ "medication",
56
+ "intake_times",
57
+ "unit",
58
+ ], # e.g. ["intervention_types"]
59
+ "foreign_key_models": [
60
+ Medication,
61
+ MedicationIntakeTime,
62
+ Unit,
63
+ ], # e.g. [InterventionType]
64
+ },
65
+ MedicationIndication.__name__: {
66
+ "dir": MEDICATION_INDICATION_DATA_DIR, # e.g. "interventions"
67
+ "model": MedicationIndication, # e.g. Intervention
68
+ "foreign_keys": [
69
+ "indication_type",
70
+ "medication_schedules",
71
+ "diseases",
72
+ "events",
73
+ "disease_classification_choices",
74
+ "sources",
75
+ ], # e.g. ["intervention_types"]
76
+ "foreign_key_models": [
77
+ MedicationIndicationType,
78
+ MedicationSchedule,
79
+ Disease,
80
+ Event,
81
+ DiseaseClassificationChoice,
82
+ InformationSource,
83
+ ], # e.g. [InterventionType]
84
+ },
19
85
  }
20
86
 
87
+
21
88
  class Command(BaseCommand):
22
89
  help = """Load all .yaml files in the data/intervention directory
23
90
  into the Intervention and InterventionType model"""
24
91
 
25
92
  def add_arguments(self, parser):
26
93
  parser.add_argument(
27
- '--verbose',
28
- action='store_true',
29
- help='Display verbose output',
94
+ "--verbose",
95
+ action="store_true",
96
+ help="Display verbose output",
30
97
  )
31
98
 
32
99
  def handle(self, *args, **options):
33
- verbose = options['verbose']
100
+ verbose = options["verbose"]
34
101
  for model_name in IMPORT_MODELS:
35
102
  _metadata = IMPORT_METADATA[model_name]
36
- load_model_data_from_yaml(
37
- self,
38
- model_name,
39
- _metadata,
40
- verbose
41
- )
103
+ load_model_data_from_yaml(self, model_name, _metadata, verbose)
@@ -0,0 +1,37 @@
1
+ # endoreg_db/management/commands/generate_names.py
2
+
3
+ import os
4
+ from django.core.management.base import BaseCommand
5
+ from endoreg_db.utils import collect_center_names # Import your function here
6
+ from pathlib import Path
7
+
8
+ class Command(BaseCommand):
9
+ help = "Generate first_names.yaml and last_names.yaml from center data"
10
+
11
+ def add_arguments(self, parser):
12
+ # Adding an argument for the input file path
13
+ # parser.add_argument(
14
+ # '--input_file_path',
15
+ # type=str,
16
+ # required=False,
17
+ # help="Path to the input YAML file containing center data",
18
+ # default="data/center/data.yaml",
19
+ # )
20
+ # parser.add_argument(
21
+ # '--output-dir',
22
+ # type=str,
23
+ # default=os.getcwd(),
24
+ # help="Directory where the output files will be saved (default: current directory)",
25
+ # )
26
+ pass
27
+
28
+ def handle(self, *args, **options):
29
+
30
+ # Run the function with the provided arguments
31
+ try:
32
+ collect_center_names()
33
+ self.stdout.write(self.style.SUCCESS("Successfully generated YAML files."))
34
+ except Exception as e:
35
+ self.stderr.write(self.style.ERROR(f"An error occurred: {e}"))
36
+
37
+ self.stderr.write(self.style.ERROR(f"PWD: {os.getcwd()}"))
@@ -1,21 +1,19 @@
1
- from django.conf import settings
2
- import os
3
1
  from django.core.management.base import BaseCommand
4
- from ...models import EndoscopyProcessor
2
+ from endoreg_db.models import Organ
5
3
  from ...utils import load_model_data_from_yaml
6
- from ...data import ENDOSCOPY_PROCESSOR_DATA_DIR
4
+ from ...data import (
5
+ ORGAN_DATA_DIR
6
+ )
7
7
 
8
- SOURCE_DIR = ENDOSCOPY_PROCESSOR_DATA_DIR # e.g. settings.DATA_DIR_INTERVENTION
9
-
10
- MODEL_0 = EndoscopyProcessor
8
+ MODEL_0 = Organ
11
9
 
12
10
  IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
13
- MODEL_0.__name__,
11
+ MODEL_0.__name__,#
14
12
  ]
15
13
 
16
14
  IMPORT_METADATA = {
17
15
  MODEL_0.__name__: {
18
- "dir": SOURCE_DIR, # e.g. "interventions"
16
+ "dir": ORGAN_DATA_DIR, # e.g. "interventions"
19
17
  "model": MODEL_0, # e.g. Intervention
20
18
  "foreign_keys": [], # e.g. ["intervention_types"]
21
19
  "foreign_key_models": [] # e.g. [InterventionType]