endoreg-db 0.3.3__py3-none-any.whl → 0.3.5__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 (204) hide show
  1. endoreg_db/data/__init__.py +50 -1
  2. endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +167 -0
  3. endoreg_db/data/case_template/rule/01_patient-set-age.yaml +8 -0
  4. endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +9 -0
  5. endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +23 -0
  6. endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +19 -0
  7. endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +19 -0
  8. endoreg_db/data/case_template/rule/19_create_patient.yaml +17 -0
  9. endoreg_db/data/case_template/rule_type/base_types.yaml +35 -0
  10. endoreg_db/data/case_template/rule_value_type/base_types.yaml +59 -0
  11. endoreg_db/data/case_template/template/base.yaml +8 -0
  12. endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +3 -0
  13. endoreg_db/data/case_template/tmp/_rule_value +13 -0
  14. endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +21 -0
  15. endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +10 -0
  16. endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +7 -0
  17. endoreg_db/data/center/data.yaml +8 -0
  18. endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +144 -0
  19. endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +48 -0
  20. endoreg_db/data/disease/cardiovascular.yaml +37 -0
  21. endoreg_db/data/disease/hepatology.yaml +5 -0
  22. endoreg_db/data/disease/misc.yaml +6 -0
  23. endoreg_db/data/disease/renal.yaml +5 -0
  24. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +6 -0
  25. endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +6 -0
  26. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +41 -0
  27. endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +20 -0
  28. endoreg_db/data/distribution/date/patient.yaml +7 -0
  29. endoreg_db/data/distribution/single_categorical/patient.yaml +7 -0
  30. endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +132 -0
  31. endoreg_db/data/event/cardiology.yaml +28 -0
  32. endoreg_db/data/event/neurology.yaml +14 -0
  33. endoreg_db/data/event/surgery.yaml +13 -0
  34. endoreg_db/data/event/thrombembolism.yaml +20 -0
  35. endoreg_db/data/examination/examinations/data.yaml +49 -0
  36. endoreg_db/data/gender/data.yaml +18 -0
  37. endoreg_db/data/information_source/medication.yaml +6 -0
  38. endoreg_db/data/lab_value/cardiac_enzymes.yaml +31 -0
  39. endoreg_db/data/lab_value/coagulation.yaml +49 -0
  40. endoreg_db/data/lab_value/electrolytes.yaml +190 -0
  41. endoreg_db/data/lab_value/gastrointestinal_function.yaml +121 -0
  42. endoreg_db/data/lab_value/hematology.yaml +169 -0
  43. endoreg_db/data/lab_value/hormones.yaml +53 -0
  44. endoreg_db/data/lab_value/lipids.yaml +44 -0
  45. endoreg_db/data/lab_value/misc.yaml +30 -0
  46. endoreg_db/data/lab_value/renal_function.yaml +11 -0
  47. endoreg_db/data/material/material.yaml +91 -0
  48. endoreg_db/data/medication/anticoagulation.yaml +65 -0
  49. endoreg_db/data/medication/tah.yaml +70 -0
  50. endoreg_db/data/medication_indication/anticoagulation.yaml +120 -0
  51. endoreg_db/data/medication_indication_type/data.yaml +11 -0
  52. endoreg_db/data/medication_indication_type/thrombembolism.yaml +41 -0
  53. endoreg_db/data/medication_intake_time/base.yaml +31 -0
  54. endoreg_db/data/medication_schedule/apixaban.yaml +95 -0
  55. endoreg_db/data/medication_schedule/ass.yaml +12 -0
  56. endoreg_db/data/medication_schedule/enoxaparin.yaml +26 -0
  57. endoreg_db/data/patient_lab_sample_type/generic.yaml +6 -0
  58. endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +66 -0
  59. endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +33 -0
  60. endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +308 -0
  61. endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +88 -0
  62. endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +55 -0
  63. endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +15 -0
  64. endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
  65. endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
  66. endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +12 -0
  67. endoreg_db/data/unit/concentration.yaml +92 -0
  68. endoreg_db/data/unit/length.yaml +4 -4
  69. endoreg_db/data/unit/misc.yaml +20 -0
  70. endoreg_db/data/unit/rate.yaml +6 -0
  71. endoreg_db/data/unit/time.yaml +13 -0
  72. endoreg_db/data/unit/volume.yaml +13 -4
  73. endoreg_db/data/unit/weight.yaml +11 -4
  74. endoreg_db/data/waste/data.yaml +12 -0
  75. endoreg_db/forms/__init__.py +2 -1
  76. endoreg_db/forms/questionnaires/__init__.py +1 -0
  77. endoreg_db/forms/questionnaires/tto_questionnaire.py +23 -0
  78. endoreg_db/management/commands/load_base_db_data.py +58 -1
  79. endoreg_db/management/commands/load_disease_classification_choices_data.py +41 -0
  80. endoreg_db/management/commands/load_disease_classification_data.py +41 -0
  81. endoreg_db/management/commands/load_disease_data.py +40 -0
  82. endoreg_db/management/commands/load_distribution_data.py +66 -0
  83. endoreg_db/management/commands/load_event_data.py +41 -0
  84. endoreg_db/management/commands/load_g_play_data.py +113 -0
  85. endoreg_db/management/commands/load_gender_data.py +44 -0
  86. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +133 -0
  87. endoreg_db/management/commands/load_lab_value_data.py +50 -0
  88. endoreg_db/management/commands/load_medication_data.py +41 -0
  89. endoreg_db/management/commands/load_medication_indication_data.py +63 -0
  90. endoreg_db/management/commands/load_medication_indication_type_data.py +41 -0
  91. endoreg_db/management/commands/load_medication_intake_time_data.py +41 -0
  92. endoreg_db/management/commands/load_medication_schedule_data.py +55 -0
  93. endoreg_db/migrations/0023_ttoquestionnaire_alter_pdftype_endoscope_info_line.py +59 -0
  94. endoreg_db/migrations/0024_remove_ttoquestionnaire_infections_and_more.py +27 -0
  95. endoreg_db/migrations/0025_event_alter_rawpdffile_file_patientevent.py +42 -0
  96. endoreg_db/migrations/0026_disease_diseaseclassification_and_more.py +166 -0
  97. endoreg_db/migrations/0027_labvalue_abbreviation_labvalue_default_normal_range_and_more.py +38 -0
  98. endoreg_db/migrations/0028_alter_unit_abbreviation.py +18 -0
  99. endoreg_db/migrations/0029_medicationintaketime_and_more.py +75 -0
  100. endoreg_db/migrations/0030_medicationindicationtype_and_more.py +101 -0
  101. endoreg_db/migrations/0031_rename_adapt_to_liver_function_medication_adapt_to_age_and_more.py +38 -0
  102. endoreg_db/migrations/0032_alter_medicationschedule_therapy_duration_d.py +18 -0
  103. endoreg_db/migrations/0033_medicationindication_sources.py +18 -0
  104. endoreg_db/migrations/0034_alter_rawpdffile_file.py +20 -0
  105. endoreg_db/migrations/0035_alter_medicationindication_sources.py +18 -0
  106. endoreg_db/migrations/0036_alter_rawpdffile_file.py +20 -0
  107. endoreg_db/migrations/0037_alter_medicationindication_sources.py +18 -0
  108. endoreg_db/migrations/0038_emissionfactor_material_product_productgroup_and_more.py +164 -0
  109. endoreg_db/migrations/0039_referenceproduct_name.py +19 -0
  110. endoreg_db/migrations/0040_quizanswertype_quizquestiontype_quizquestion_and_more.py +50 -0
  111. endoreg_db/migrations/0041_gender_patientmedication_medication_indication_and_more.py +40 -0
  112. endoreg_db/migrations/0042_casetemplateruletype_casetemplaterulevalue_and_more.py +74 -0
  113. endoreg_db/migrations/0043_casetemplatetype_name_de_casetemplatetype_name_en.py +23 -0
  114. endoreg_db/migrations/0044_casetemplateruletype_name_de_and_more.py +23 -0
  115. endoreg_db/migrations/0045_casetemplaterulevalue_value_type.py +19 -0
  116. endoreg_db/migrations/0046_casetemplaterulevalue_target_field.py +18 -0
  117. endoreg_db/migrations/0047_casetemplaterule_target_model.py +18 -0
  118. endoreg_db/migrations/0048_remove_casetemplaterule_chained_rules_and_more.py +22 -0
  119. endoreg_db/migrations/0049_remove_casetemplaterule_rule_values.py +17 -0
  120. endoreg_db/migrations/0050_casetemplaterule_rule_values.py +18 -0
  121. endoreg_db/migrations/0051_remove_casetemplaterule_calling_rules_and_more.py +27 -0
  122. endoreg_db/migrations/0052_rename_case_template_type_casetemplate_template_type.py +18 -0
  123. endoreg_db/migrations/0053_patientlabsampletype_patientlabsample_and_more.py +38 -0
  124. endoreg_db/migrations/0054_multiplecategoricalvaluedistribution_and_more.py +69 -0
  125. endoreg_db/migrations/0055_remove_casetemplaterule_rule_values_and_more.py +59 -0
  126. endoreg_db/migrations/0056_datevaluedistribution_and_more.py +32 -0
  127. endoreg_db/migrations/0057_remove_datevaluedistribution_max_date_and_more.py +72 -0
  128. endoreg_db/migrations/0058_datevaluedistribution_description_and_more.py +28 -0
  129. endoreg_db/migrations/0059_casetemplaterule_rule_values.py +18 -0
  130. endoreg_db/migrations/0060_labvalue__default_date_value_distribution_and_more.py +44 -0
  131. endoreg_db/migrations/0061_remove_patientlabvalue_date_patientlabvalue_datetime.py +24 -0
  132. endoreg_db/migrations/0062_labvalue_numeric_precision.py +18 -0
  133. endoreg_db/migrations/0063_alter_labvalue_numeric_precision.py +18 -0
  134. endoreg_db/migrations/0064_casetemplaterule_extra_parameters_and_more.py +23 -0
  135. endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date_value_distribution_and_more.py +58 -0
  136. endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py +29 -0
  137. endoreg_db/migrations/0067_alter_medicationindication_indication_type.py +19 -0
  138. endoreg_db/models/__init__.py +30 -11
  139. endoreg_db/models/case_template/__init__.py +6 -0
  140. endoreg_db/models/case_template/case_template.py +81 -0
  141. endoreg_db/models/case_template/case_template_rule.py +276 -0
  142. endoreg_db/models/case_template/case_template_rule_value.py +73 -0
  143. endoreg_db/models/case_template/case_template_type.py +28 -0
  144. endoreg_db/models/center/__init__.py +4 -0
  145. endoreg_db/models/center/center_product.py +34 -0
  146. endoreg_db/models/center/center_resource.py +19 -0
  147. endoreg_db/models/center/center_waste.py +11 -0
  148. endoreg_db/models/data_file/import_classes/raw_pdf.py +4 -1
  149. endoreg_db/models/data_file/metadata/video_meta.py +4 -3
  150. endoreg_db/models/disease.py +56 -0
  151. endoreg_db/models/emission/__init__.py +1 -0
  152. endoreg_db/models/emission/emission_factor.py +20 -0
  153. endoreg_db/models/event.py +22 -0
  154. endoreg_db/models/information_source.py +7 -0
  155. endoreg_db/models/laboratory/__init__.py +1 -0
  156. endoreg_db/models/laboratory/lab_value.py +102 -0
  157. endoreg_db/models/medication/__init__.py +1 -0
  158. endoreg_db/models/medication/medication.py +148 -0
  159. endoreg_db/models/other/__init__.py +5 -0
  160. endoreg_db/models/other/distribution.py +215 -0
  161. endoreg_db/models/other/material.py +16 -0
  162. endoreg_db/models/other/resource.py +18 -0
  163. endoreg_db/models/other/transport_route.py +21 -0
  164. endoreg_db/models/other/waste.py +20 -0
  165. endoreg_db/models/persons/__init__.py +3 -2
  166. endoreg_db/models/persons/gender.py +22 -0
  167. endoreg_db/models/persons/patient/__init__.py +8 -0
  168. endoreg_db/models/persons/patient/case/__init__.py +0 -0
  169. endoreg_db/models/persons/patient/case/case.py +30 -0
  170. endoreg_db/models/persons/patient/patient.py +216 -0
  171. endoreg_db/models/persons/patient/patient_disease.py +16 -0
  172. endoreg_db/models/persons/patient/patient_event.py +22 -0
  173. endoreg_db/models/persons/patient/patient_lab_sample.py +106 -0
  174. endoreg_db/models/persons/patient/patient_lab_value.py +176 -0
  175. endoreg_db/models/persons/patient/patient_medication.py +44 -0
  176. endoreg_db/models/persons/patient/patient_medication_schedule.py +28 -0
  177. endoreg_db/models/persons/person.py +1 -4
  178. endoreg_db/models/persons/portal_user_information.py +0 -2
  179. endoreg_db/models/product/__init__.py +5 -0
  180. endoreg_db/models/product/product.py +97 -0
  181. endoreg_db/models/product/product_group.py +19 -0
  182. endoreg_db/models/product/product_material.py +24 -0
  183. endoreg_db/models/product/product_weight.py +26 -0
  184. endoreg_db/models/product/reference_product.py +99 -0
  185. endoreg_db/models/questionnaires/__init__.py +114 -0
  186. endoreg_db/models/quiz/__init__.py +2 -0
  187. endoreg_db/models/quiz/quiz_answer.py +41 -0
  188. endoreg_db/models/quiz/quiz_question.py +54 -0
  189. endoreg_db/models/rules/__init__.py +5 -0
  190. endoreg_db/models/rules/rule.py +24 -0
  191. endoreg_db/models/rules/rule_applicator.py +224 -0
  192. endoreg_db/models/rules/rule_attribute_dtype.py +19 -0
  193. endoreg_db/models/rules/rule_type.py +22 -0
  194. endoreg_db/models/rules/ruleset.py +19 -0
  195. endoreg_db/models/unit.py +6 -4
  196. endoreg_db/utils/dataloader.py +13 -106
  197. {endoreg_db-0.3.3.dist-info → endoreg_db-0.3.5.dist-info}/METADATA +1 -1
  198. endoreg_db-0.3.5.dist-info/RECORD +357 -0
  199. {endoreg_db-0.3.3.dist-info → endoreg_db-0.3.5.dist-info}/WHEEL +1 -1
  200. endoreg_db/models/persons/patient.py +0 -58
  201. endoreg_db/models.py +0 -3
  202. endoreg_db-0.3.3.dist-info/RECORD +0 -180
  203. /endoreg_db/models/{center.py → center/center.py} +0 -0
  204. {endoreg_db-0.3.3.dist-info → endoreg_db-0.3.5.dist-info}/LICENSE +0 -0
@@ -1,2 +1,3 @@
1
1
  from .unit import Unit
2
- from .settings import ActiveModelForm
2
+ from .settings import ActiveModelForm
3
+ from .questionnaires import *
@@ -0,0 +1 @@
1
+ from .tto_questionnaire import TtoQuestionnaireForm, TtoQuestionnaireCreate
@@ -0,0 +1,23 @@
1
+ # Path: endoreg_db/forms/questionnaires/tto_questionnaire.py
2
+ from endoreg_db.models import TtoQuestionnaire
3
+ from django import forms
4
+
5
+ class TtoQuestionnaireForm(forms.ModelForm):
6
+ class Meta:
7
+ model = TtoQuestionnaire
8
+ fields = '__all__'
9
+ widgets = {
10
+ # Specify Bootstrap classes for other fields as needed
11
+ 'patient_name': forms.TextInput(attrs={'class': 'form-control'}),
12
+ 'birth_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
13
+ # You can continue to specify widgets for other fields
14
+ }
15
+
16
+
17
+ from django.views.generic.edit import CreateView
18
+ from django.urls import reverse_lazy
19
+
20
+ class TtoQuestionnaireCreate(CreateView):
21
+ model = TtoQuestionnaire
22
+ form_class = TtoQuestionnaireForm
23
+ success_url = reverse_lazy('questionnaire_success') # Redirect to a success page after submission
@@ -11,7 +11,8 @@ class Command(BaseCommand):
11
11
  )
12
12
 
13
13
  def handle(self, *args, **options):
14
- verbose = options['verbose']
14
+ # verbose = options['verbose']
15
+ verbose = True
15
16
 
16
17
  self.stdout.write(self.style.SUCCESS("Populating base db models with data..."))
17
18
 
@@ -19,6 +20,22 @@ class Command(BaseCommand):
19
20
  self.stdout.write(self.style.SUCCESS("Running load_profession_data..."))
20
21
  call_command('load_profession_data', verbose=verbose)
21
22
 
23
+ # run the load_gender_data command
24
+ self.stdout.write(self.style.SUCCESS("Running load_gender_data..."))
25
+ call_command('load_gender_data', verbose=verbose)
26
+
27
+ # Run the load_disease data command
28
+ self.stdout.write(self.style.SUCCESS("Running load_disease_data..."))
29
+ call_command('load_disease_data', verbose=verbose)
30
+
31
+ # Run the load_disease_classification data command
32
+ self.stdout.write(self.style.SUCCESS("Running load_disease_classification_data..."))
33
+ call_command('load_disease_classification_data', verbose=verbose)
34
+
35
+ # Run the load_disease_classification_choices data command
36
+ self.stdout.write(self.style.SUCCESS("Running load_disease_classification_choices_data..."))
37
+ call_command('load_disease_classification_choices_data', verbose=verbose)
38
+
22
39
  # rund the load_user_groups command
23
40
  self.stdout.write(self.style.SUCCESS("Running load_user_groups..."))
24
41
  call_command('load_user_groups', verbose=verbose)
@@ -43,6 +60,10 @@ class Command(BaseCommand):
43
60
  self.stdout.write(self.style.SUCCESS("Running load_unit_data..."))
44
61
  call_command('load_unit_data', verbose=verbose)
45
62
 
63
+ # Run the load_lab_value_data command
64
+ self.stdout.write(self.style.SUCCESS("Running load_lab_value_data..."))
65
+ call_command("load_lab_value_data", verbose=verbose)
66
+
46
67
  # Run the load_information_source command
47
68
  self.stdout.write(self.style.SUCCESS("Running load_information_source..."))
48
69
  call_command('load_information_source', verbose=verbose)
@@ -63,6 +84,42 @@ class Command(BaseCommand):
63
84
  self.stdout.write(self.style.SUCCESS("Running load_ai_model_data..."))
64
85
  call_command('load_ai_model_data', verbose=verbose)
65
86
 
87
+ # Run the load_event_data command
88
+ self.stdout.write(self.style.SUCCESS("Running load_event_data..."))
89
+ call_command('load_event_data', verbose=verbose)
90
+
91
+ # run the load_medication_data command
92
+ self.stdout.write(self.style.SUCCESS("Running load_medication_data..."))
93
+ call_command('load_medication_data', verbose=verbose)
94
+
95
+ # Run the load_medication_indication_type_data command
96
+ self.stdout.write(self.style.SUCCESS("Running load_medication_indication_type_data..."))
97
+ call_command('load_medication_indication_type_data', verbose=verbose)
98
+
99
+ # Run the load_medication_intake_time_data command
100
+ self.stdout.write(self.style.SUCCESS("Running load_medication_intake_time_data..."))
101
+ call_command('load_medication_intake_time_data', verbose=verbose)
102
+
103
+ # Run the load_medication_schedule_data command
104
+ self.stdout.write(self.style.SUCCESS("Running load_medication_schedule_data..."))
105
+ call_command('load_medication_schedule_data', verbose=verbose)
106
+
107
+ # Run the load_medication_indication_data command
108
+ self.stdout.write(self.style.SUCCESS("Running load_medication_indication_data..."))
109
+ call_command('load_medication_indication_data', verbose=verbose)
110
+
111
+ # Run the load_green_endoscopy_wuerzburg_data command
112
+ self.stdout.write(self.style.SUCCESS("Running load_green_endoscopy_wuerzburg_data..."))
113
+ call_command('load_green_endoscopy_wuerzburg_data', verbose=verbose)
114
+
115
+ # Load G-Play Data
116
+ # run the load_distribution_data command
117
+ self.stdout.write(self.style.SUCCESS("Running load_distribution_data..."))
118
+ call_command('load_distribution_data', verbose=verbose)
119
+ # Run the load_g_play_data command
120
+ self.stdout.write(self.style.SUCCESS("Running load_g_play_data..."))
121
+ call_command('load_g_play_data', verbose=verbose)
122
+
66
123
  # Necessary? Migrate? FIXME
67
124
  # # Run the load_active_model_data command
68
125
  # self.stdout.write(self.style.SUCCESS("Running load_active_model_data..."))
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import DiseaseClassificationChoice as MODEL_0
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import DISEASE_CLASSIFICATION_CHOICE_DATA_DIR as SOURCE_DIR
5
+
6
+ from endoreg_db.models import DiseaseClassification
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": ["disease_classification"], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [DiseaseClassification] # 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 DiseaseClassification as MODEL_0
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import DISEASE_CLASSIFICATION_DATA_DIR as SOURCE_DIR
5
+
6
+ from endoreg_db.models import Disease
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": ["disease"], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [Disease] # 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,40 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import Disease as MODEL_0
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import DISEASE_DATA_DIR as SOURCE_DIR
5
+
6
+
7
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
8
+ MODEL_0.__name__,
9
+ ]
10
+
11
+ IMPORT_METADATA = {
12
+ MODEL_0.__name__: {
13
+ "dir": SOURCE_DIR, # e.g. "interventions"
14
+ "model": MODEL_0, # e.g. Intervention
15
+ "foreign_keys": [], # e.g. ["intervention_types"]
16
+ "foreign_key_models": [] # e.g. [InterventionType]
17
+ }
18
+ }
19
+
20
+ class Command(BaseCommand):
21
+ help = """Load all .yaml files in the data/intervention directory
22
+ into the Intervention and InterventionType model"""
23
+
24
+ def add_arguments(self, parser):
25
+ parser.add_argument(
26
+ '--verbose',
27
+ action='store_true',
28
+ help='Display verbose output',
29
+ )
30
+
31
+ def handle(self, *args, **options):
32
+ verbose = options['verbose']
33
+ for model_name in IMPORT_MODELS:
34
+ _metadata = IMPORT_METADATA[model_name]
35
+ load_model_data_from_yaml(
36
+ self,
37
+ model_name,
38
+ _metadata,
39
+ verbose
40
+ )
@@ -0,0 +1,66 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ NumericValueDistribution,
4
+ SingleCategoricalValueDistribution,
5
+ MultipleCategoricalValueDistribution,
6
+ DateValueDistribution
7
+
8
+ )
9
+ from collections import OrderedDict
10
+
11
+ from ...utils import load_model_data_from_yaml
12
+ from ...data import (
13
+ DISTRIBUTION_NUMERIC_DATA_DIR,
14
+ DISTRIBUTION_SINGLE_CATEGORICAL_DATA_DIR,
15
+ DISTRIBUTION_MULTIPLE_CATEGORICAL_DATA_DIR,
16
+ DISTRIBUTION_DATE_DATA_DIR,
17
+ )
18
+
19
+ IMPORT_METADATA = OrderedDict({
20
+ NumericValueDistribution.__name__: {
21
+ "dir": DISTRIBUTION_NUMERIC_DATA_DIR,
22
+ "model": NumericValueDistribution,
23
+ "foreign_keys": [],
24
+ "foreign_key_models": []
25
+ },
26
+ SingleCategoricalValueDistribution.__name__: {
27
+ "dir": DISTRIBUTION_SINGLE_CATEGORICAL_DATA_DIR,
28
+ "model": SingleCategoricalValueDistribution,
29
+ "foreign_keys": [],
30
+ "foreign_key_models": []
31
+ },
32
+ MultipleCategoricalValueDistribution.__name__: {
33
+ "dir": DISTRIBUTION_MULTIPLE_CATEGORICAL_DATA_DIR,
34
+ "model": MultipleCategoricalValueDistribution,
35
+ "foreign_keys": [],
36
+ "foreign_key_models": []
37
+ },
38
+ DateValueDistribution.__name__: {
39
+ "dir": DISTRIBUTION_DATE_DATA_DIR,
40
+ "model": DateValueDistribution,
41
+ "foreign_keys": [],
42
+ "foreign_key_models": []
43
+ },
44
+ })
45
+
46
+ class Command(BaseCommand):
47
+ help = """Load all .yaml files in the data/intervention directory
48
+ into the Intervention and InterventionType model"""
49
+
50
+ def add_arguments(self, parser):
51
+ parser.add_argument(
52
+ '--verbose',
53
+ action='store_true',
54
+ help='Display verbose output',
55
+ )
56
+
57
+ def handle(self, *args, **options):
58
+ verbose = options['verbose']
59
+ for model_name in IMPORT_METADATA.keys():
60
+ _metadata = IMPORT_METADATA[model_name]
61
+ load_model_data_from_yaml(
62
+ self,
63
+ model_name,
64
+ _metadata,
65
+ verbose
66
+ )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import Event
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import EVENT_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = Event
7
+
8
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
9
+ MODEL_0.__name__,
10
+ ]
11
+
12
+ IMPORT_METADATA = {
13
+ MODEL_0.__name__: {
14
+ "dir": SOURCE_DIR, # e.g. "interventions"
15
+ "model": MODEL_0, # e.g. Intervention
16
+ "foreign_keys": [], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [] # e.g. [InterventionType]
18
+ }
19
+ }
20
+
21
+ class Command(BaseCommand):
22
+ help = """Load all .yaml files in the data/intervention directory
23
+ into the Intervention and InterventionType model"""
24
+
25
+ def add_arguments(self, parser):
26
+ parser.add_argument(
27
+ '--verbose',
28
+ action='store_true',
29
+ help='Display verbose output',
30
+ )
31
+
32
+ def handle(self, *args, **options):
33
+ verbose = options['verbose']
34
+ for model_name in IMPORT_MODELS:
35
+ _metadata = IMPORT_METADATA[model_name]
36
+ load_model_data_from_yaml(
37
+ self,
38
+ model_name,
39
+ _metadata,
40
+ verbose
41
+ )
@@ -0,0 +1,113 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ CaseTemplateRuleType,
4
+ CaseTemplateRuleValueType,
5
+ CaseTemplateRuleValue,
6
+ CaseTemplateRule,
7
+ CaseTemplateType,
8
+ CaseTemplate,
9
+ SingleCategoricalValueDistribution,
10
+ NumericValueDistribution,
11
+ MultipleCategoricalValueDistribution,
12
+ DateValueDistribution,
13
+
14
+ QuizQuestionType,
15
+ QuizAnswerType,
16
+ QuizQuestion,
17
+ QuizAnswer,
18
+
19
+ # Other models for ForeignKeys
20
+ Unit, Center
21
+ )
22
+ from collections import OrderedDict
23
+
24
+ from ...utils import load_model_data_from_yaml
25
+ from ...data import (
26
+ CASE_TEMPLATE_RULE_TYPE_DATA_DIR,
27
+ CASE_TEMPLATE_RULE_DATA_DIR,
28
+ CASE_TEMPLATE_RULE_VALUE_TYPE_DATA_DIR,
29
+ CASE_TEMPLATE_RULE_VALUE_DATA_DIR,
30
+ CASE_TEMPLATE_TYPE_DATA_DIR,
31
+ CASE_TEMPLATE_DATA_DIR,
32
+ )
33
+
34
+ IMPORT_METADATA = OrderedDict({
35
+ CaseTemplateRuleType.__name__: {
36
+ "dir": CASE_TEMPLATE_RULE_TYPE_DATA_DIR,
37
+ "model": CaseTemplateRuleType,
38
+ "foreign_keys": [],
39
+ "foreign_key_models": []
40
+ },
41
+ CaseTemplateRuleValueType.__name__: {
42
+ "dir": CASE_TEMPLATE_RULE_VALUE_TYPE_DATA_DIR,
43
+ "model": CaseTemplateRuleValueType,
44
+ "foreign_keys": [],
45
+ "foreign_key_models": []
46
+ },
47
+ CaseTemplateRuleValue.__name__: {
48
+ "dir": CASE_TEMPLATE_RULE_VALUE_DATA_DIR,
49
+ "model": CaseTemplateRuleValue,
50
+ "foreign_keys": ["value_type"],
51
+ "foreign_key_models": [CaseTemplateRuleValueType]
52
+ },
53
+ CaseTemplateRule.__name__: {
54
+ "dir": CASE_TEMPLATE_RULE_DATA_DIR,
55
+ "model": CaseTemplateRule,
56
+ "foreign_keys": [
57
+ "rule_type",
58
+ # "rule_values",
59
+ "chained_rules",
60
+ "value_type",
61
+ "single_categorical_value_distribution",
62
+ "numerical_value_distribution",
63
+ "multiple_categorical_value_distribution",
64
+ "date_value_distribution"
65
+ ],
66
+ "foreign_key_models": [
67
+ CaseTemplateRuleType,
68
+ # CaseTemplateRuleValue,
69
+ CaseTemplateRule,
70
+ CaseTemplateRuleValueType,
71
+ SingleCategoricalValueDistribution,
72
+ NumericValueDistribution,
73
+ MultipleCategoricalValueDistribution,
74
+ DateValueDistribution
75
+
76
+ ]
77
+ },
78
+ CaseTemplateType.__name__: {
79
+ "dir": CASE_TEMPLATE_TYPE_DATA_DIR,
80
+ "model": CaseTemplateType,
81
+ "foreign_keys": [],
82
+ "foreign_key_models": []
83
+ },
84
+ CaseTemplate.__name__: {
85
+ "dir": CASE_TEMPLATE_DATA_DIR,
86
+ "model": CaseTemplate,
87
+ "foreign_keys": ["template_type", "rules"],
88
+ "foreign_key_models": [CaseTemplateType, CaseTemplateRule]
89
+ },
90
+
91
+ })
92
+
93
+ class Command(BaseCommand):
94
+ help = """Load all .yaml files in the data/intervention directory
95
+ into the Intervention and InterventionType model"""
96
+
97
+ def add_arguments(self, parser):
98
+ parser.add_argument(
99
+ '--verbose',
100
+ action='store_true',
101
+ help='Display verbose output',
102
+ )
103
+
104
+ def handle(self, *args, **options):
105
+ verbose = options['verbose']
106
+ for model_name in IMPORT_METADATA.keys():
107
+ _metadata = IMPORT_METADATA[model_name]
108
+ load_model_data_from_yaml(
109
+ self,
110
+ model_name,
111
+ _metadata,
112
+ verbose
113
+ )
@@ -0,0 +1,44 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ Gender,
4
+
5
+ # Other models for ForeignKeys
6
+ Unit, Center
7
+ )
8
+ from collections import OrderedDict
9
+
10
+ from ...utils import load_model_data_from_yaml
11
+ from ...data import (
12
+ GENDER_DATA_DIR,
13
+ )
14
+
15
+ IMPORT_METADATA = OrderedDict({
16
+ Gender.__name__: {
17
+ "dir": GENDER_DATA_DIR,
18
+ "model": Gender,
19
+ "foreign_keys": [],
20
+ "foreign_key_models": []
21
+ },
22
+ })
23
+
24
+ class Command(BaseCommand):
25
+ help = """Load all .yaml files in the data/intervention directory
26
+ into the Intervention and InterventionType model"""
27
+
28
+ def add_arguments(self, parser):
29
+ parser.add_argument(
30
+ '--verbose',
31
+ action='store_true',
32
+ help='Display verbose output',
33
+ )
34
+
35
+ def handle(self, *args, **options):
36
+ verbose = options['verbose']
37
+ for model_name in IMPORT_METADATA.keys():
38
+ _metadata = IMPORT_METADATA[model_name]
39
+ load_model_data_from_yaml(
40
+ self,
41
+ model_name,
42
+ _metadata,
43
+ verbose
44
+ )
@@ -0,0 +1,133 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ EmissionFactor,
4
+ Resource,
5
+ Waste,
6
+ Material,
7
+ Product,
8
+ ProductGroup,
9
+ ReferenceProduct,
10
+ ProductGroup,
11
+ TransportRoute,
12
+ CenterWaste,
13
+ CenterResource,
14
+ ProductMaterial,
15
+ ProductWeight,
16
+
17
+ # Other models for ForeignKeys
18
+ Unit, Center
19
+ )
20
+ from collections import OrderedDict
21
+
22
+ from ...utils import load_model_data_from_yaml
23
+ from ...data import (
24
+ EMISSION_FACTOR_DATA_DIR,
25
+ RESOURCE_DATA_DIR,
26
+ WASTE_DATA_DIR,
27
+ MATERIAL_DATA_DIR,
28
+ PRODUCT_DATA_DIR,
29
+ PRODUCT_GROUP_DATA_DIR,
30
+ REFERENCE_PRODUCT_DATA_DIR,
31
+ TRANSPORT_ROUTE_DATA_DIR,
32
+ CENTER_WASTE_DATA_DIR,
33
+ CENTER_RESOURCE_DATA_DIR,
34
+ PRODUCT_MATERIAL_DATA_DIR,
35
+ PRODUCT_WEIGHT_DATA_DIR,
36
+ )
37
+
38
+ IMPORT_METADATA = OrderedDict({
39
+ EmissionFactor.__name__: {
40
+ "dir": EMISSION_FACTOR_DATA_DIR,
41
+ "model": EmissionFactor,
42
+ "foreign_keys": ["unit"],
43
+ "foreign_key_models": [Unit]
44
+ },
45
+ Resource.__name__: {
46
+ "dir": RESOURCE_DATA_DIR,
47
+ "model": Resource,
48
+ "foreign_keys": [],
49
+ "foreign_key_models": []
50
+ },
51
+ Waste.__name__: {
52
+ "dir": WASTE_DATA_DIR,
53
+ "model": Waste,
54
+ "foreign_keys": [],
55
+ "foreign_key_models": []
56
+ },
57
+ Material.__name__: {
58
+ "dir": MATERIAL_DATA_DIR,
59
+ "model": Material,
60
+ "foreign_keys": ["emission_factor"],
61
+ "foreign_key_models": [EmissionFactor]
62
+ },
63
+ ProductGroup.__name__: {
64
+ "dir": PRODUCT_GROUP_DATA_DIR,
65
+ "model": ProductGroup,
66
+ "foreign_keys": [],
67
+ "foreign_key_models": []
68
+ },
69
+ TransportRoute.__name__: {
70
+ "dir": TRANSPORT_ROUTE_DATA_DIR,
71
+ "model": TransportRoute,
72
+ "foreign_keys": ["emission_factor", "unit"],
73
+ "foreign_key_models": [EmissionFactor, Unit]
74
+ },
75
+ Product.__name__: {
76
+ "dir": PRODUCT_DATA_DIR,
77
+ "model": Product,
78
+ "foreign_keys": ["product_group", "transport_route"],
79
+ "foreign_key_models": [ProductGroup, TransportRoute]
80
+ },
81
+ ReferenceProduct.__name__: {
82
+ "dir": REFERENCE_PRODUCT_DATA_DIR,
83
+ "model": ReferenceProduct,
84
+ "foreign_keys": ["product","product_group"],
85
+ "foreign_key_models": [Product,ProductGroup]
86
+ },
87
+ CenterWaste.__name__: {
88
+ "dir": CENTER_WASTE_DATA_DIR,
89
+ "model": CenterWaste,
90
+ "foreign_keys": ["waste", "center", "unit", "emission_factor"],
91
+ "foreign_key_models": [Waste, Center, Unit, EmissionFactor]
92
+ },
93
+ CenterResource.__name__: {
94
+ "dir": CENTER_RESOURCE_DATA_DIR,
95
+ "model": CenterResource,
96
+ "foreign_keys": ["center","resource", "unit", "transport_emission_factor", "use_emission_factor"],
97
+ "foreign_key_models": [Center,Resource, Unit, EmissionFactor, EmissionFactor]
98
+ },
99
+ ProductMaterial.__name__: {
100
+ "dir": PRODUCT_MATERIAL_DATA_DIR,
101
+ "model": ProductMaterial,
102
+ "foreign_keys": ["product", "material", "unit"],
103
+ "foreign_key_models": [Product, Material, Unit]
104
+ },
105
+ ProductWeight.__name__: {
106
+ "dir": PRODUCT_WEIGHT_DATA_DIR,
107
+ "model": ProductWeight,
108
+ "foreign_keys": ["product", "unit"],
109
+ "foreign_key_models": [Product, Unit]
110
+ }
111
+ })
112
+
113
+ class Command(BaseCommand):
114
+ help = """Load all .yaml files in the data/intervention directory
115
+ into the Intervention and InterventionType model"""
116
+
117
+ def add_arguments(self, parser):
118
+ parser.add_argument(
119
+ '--verbose',
120
+ action='store_true',
121
+ help='Display verbose output',
122
+ )
123
+
124
+ def handle(self, *args, **options):
125
+ verbose = options['verbose']
126
+ for model_name in IMPORT_METADATA.keys():
127
+ _metadata = IMPORT_METADATA[model_name]
128
+ load_model_data_from_yaml(
129
+ self,
130
+ model_name,
131
+ _metadata,
132
+ verbose
133
+ )