endoreg-db 0.3.4__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 (198) 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/management/commands/load_base_db_data.py +58 -1
  76. endoreg_db/management/commands/load_disease_classification_choices_data.py +41 -0
  77. endoreg_db/management/commands/load_disease_classification_data.py +41 -0
  78. endoreg_db/management/commands/load_disease_data.py +40 -0
  79. endoreg_db/management/commands/load_distribution_data.py +66 -0
  80. endoreg_db/management/commands/load_event_data.py +41 -0
  81. endoreg_db/management/commands/load_g_play_data.py +113 -0
  82. endoreg_db/management/commands/load_gender_data.py +44 -0
  83. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +133 -0
  84. endoreg_db/management/commands/load_lab_value_data.py +50 -0
  85. endoreg_db/management/commands/load_medication_data.py +41 -0
  86. endoreg_db/management/commands/load_medication_indication_data.py +63 -0
  87. endoreg_db/management/commands/load_medication_indication_type_data.py +41 -0
  88. endoreg_db/management/commands/load_medication_intake_time_data.py +41 -0
  89. endoreg_db/management/commands/load_medication_schedule_data.py +55 -0
  90. endoreg_db/migrations/0025_event_alter_rawpdffile_file_patientevent.py +42 -0
  91. endoreg_db/migrations/0026_disease_diseaseclassification_and_more.py +166 -0
  92. endoreg_db/migrations/0027_labvalue_abbreviation_labvalue_default_normal_range_and_more.py +38 -0
  93. endoreg_db/migrations/0028_alter_unit_abbreviation.py +18 -0
  94. endoreg_db/migrations/0029_medicationintaketime_and_more.py +75 -0
  95. endoreg_db/migrations/0030_medicationindicationtype_and_more.py +101 -0
  96. endoreg_db/migrations/0031_rename_adapt_to_liver_function_medication_adapt_to_age_and_more.py +38 -0
  97. endoreg_db/migrations/0032_alter_medicationschedule_therapy_duration_d.py +18 -0
  98. endoreg_db/migrations/0033_medicationindication_sources.py +18 -0
  99. endoreg_db/migrations/0034_alter_rawpdffile_file.py +20 -0
  100. endoreg_db/migrations/0035_alter_medicationindication_sources.py +18 -0
  101. endoreg_db/migrations/0036_alter_rawpdffile_file.py +20 -0
  102. endoreg_db/migrations/0037_alter_medicationindication_sources.py +18 -0
  103. endoreg_db/migrations/0038_emissionfactor_material_product_productgroup_and_more.py +164 -0
  104. endoreg_db/migrations/0039_referenceproduct_name.py +19 -0
  105. endoreg_db/migrations/0040_quizanswertype_quizquestiontype_quizquestion_and_more.py +50 -0
  106. endoreg_db/migrations/0041_gender_patientmedication_medication_indication_and_more.py +40 -0
  107. endoreg_db/migrations/0042_casetemplateruletype_casetemplaterulevalue_and_more.py +74 -0
  108. endoreg_db/migrations/0043_casetemplatetype_name_de_casetemplatetype_name_en.py +23 -0
  109. endoreg_db/migrations/0044_casetemplateruletype_name_de_and_more.py +23 -0
  110. endoreg_db/migrations/0045_casetemplaterulevalue_value_type.py +19 -0
  111. endoreg_db/migrations/0046_casetemplaterulevalue_target_field.py +18 -0
  112. endoreg_db/migrations/0047_casetemplaterule_target_model.py +18 -0
  113. endoreg_db/migrations/0048_remove_casetemplaterule_chained_rules_and_more.py +22 -0
  114. endoreg_db/migrations/0049_remove_casetemplaterule_rule_values.py +17 -0
  115. endoreg_db/migrations/0050_casetemplaterule_rule_values.py +18 -0
  116. endoreg_db/migrations/0051_remove_casetemplaterule_calling_rules_and_more.py +27 -0
  117. endoreg_db/migrations/0052_rename_case_template_type_casetemplate_template_type.py +18 -0
  118. endoreg_db/migrations/0053_patientlabsampletype_patientlabsample_and_more.py +38 -0
  119. endoreg_db/migrations/0054_multiplecategoricalvaluedistribution_and_more.py +69 -0
  120. endoreg_db/migrations/0055_remove_casetemplaterule_rule_values_and_more.py +59 -0
  121. endoreg_db/migrations/0056_datevaluedistribution_and_more.py +32 -0
  122. endoreg_db/migrations/0057_remove_datevaluedistribution_max_date_and_more.py +72 -0
  123. endoreg_db/migrations/0058_datevaluedistribution_description_and_more.py +28 -0
  124. endoreg_db/migrations/0059_casetemplaterule_rule_values.py +18 -0
  125. endoreg_db/migrations/0060_labvalue__default_date_value_distribution_and_more.py +44 -0
  126. endoreg_db/migrations/0061_remove_patientlabvalue_date_patientlabvalue_datetime.py +24 -0
  127. endoreg_db/migrations/0062_labvalue_numeric_precision.py +18 -0
  128. endoreg_db/migrations/0063_alter_labvalue_numeric_precision.py +18 -0
  129. endoreg_db/migrations/0064_casetemplaterule_extra_parameters_and_more.py +23 -0
  130. endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date_value_distribution_and_more.py +58 -0
  131. endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py +29 -0
  132. endoreg_db/migrations/0067_alter_medicationindication_indication_type.py +19 -0
  133. endoreg_db/models/__init__.py +28 -11
  134. endoreg_db/models/case_template/__init__.py +6 -0
  135. endoreg_db/models/case_template/case_template.py +81 -0
  136. endoreg_db/models/case_template/case_template_rule.py +276 -0
  137. endoreg_db/models/case_template/case_template_rule_value.py +73 -0
  138. endoreg_db/models/case_template/case_template_type.py +28 -0
  139. endoreg_db/models/center/__init__.py +4 -0
  140. endoreg_db/models/center/center_product.py +34 -0
  141. endoreg_db/models/center/center_resource.py +19 -0
  142. endoreg_db/models/center/center_waste.py +11 -0
  143. endoreg_db/models/data_file/import_classes/raw_pdf.py +4 -1
  144. endoreg_db/models/data_file/metadata/video_meta.py +4 -3
  145. endoreg_db/models/disease.py +56 -0
  146. endoreg_db/models/emission/__init__.py +1 -0
  147. endoreg_db/models/emission/emission_factor.py +20 -0
  148. endoreg_db/models/event.py +22 -0
  149. endoreg_db/models/information_source.py +7 -0
  150. endoreg_db/models/laboratory/__init__.py +1 -0
  151. endoreg_db/models/laboratory/lab_value.py +102 -0
  152. endoreg_db/models/medication/__init__.py +1 -0
  153. endoreg_db/models/medication/medication.py +148 -0
  154. endoreg_db/models/other/__init__.py +5 -0
  155. endoreg_db/models/other/distribution.py +215 -0
  156. endoreg_db/models/other/material.py +16 -0
  157. endoreg_db/models/other/resource.py +18 -0
  158. endoreg_db/models/other/transport_route.py +21 -0
  159. endoreg_db/models/other/waste.py +20 -0
  160. endoreg_db/models/persons/__init__.py +3 -2
  161. endoreg_db/models/persons/gender.py +22 -0
  162. endoreg_db/models/persons/patient/__init__.py +8 -0
  163. endoreg_db/models/persons/patient/case/__init__.py +0 -0
  164. endoreg_db/models/persons/patient/case/case.py +30 -0
  165. endoreg_db/models/persons/patient/patient.py +216 -0
  166. endoreg_db/models/persons/patient/patient_disease.py +16 -0
  167. endoreg_db/models/persons/patient/patient_event.py +22 -0
  168. endoreg_db/models/persons/patient/patient_lab_sample.py +106 -0
  169. endoreg_db/models/persons/patient/patient_lab_value.py +176 -0
  170. endoreg_db/models/persons/patient/patient_medication.py +44 -0
  171. endoreg_db/models/persons/patient/patient_medication_schedule.py +28 -0
  172. endoreg_db/models/persons/person.py +1 -4
  173. endoreg_db/models/persons/portal_user_information.py +0 -2
  174. endoreg_db/models/product/__init__.py +5 -0
  175. endoreg_db/models/product/product.py +97 -0
  176. endoreg_db/models/product/product_group.py +19 -0
  177. endoreg_db/models/product/product_material.py +24 -0
  178. endoreg_db/models/product/product_weight.py +26 -0
  179. endoreg_db/models/product/reference_product.py +99 -0
  180. endoreg_db/models/quiz/__init__.py +2 -0
  181. endoreg_db/models/quiz/quiz_answer.py +41 -0
  182. endoreg_db/models/quiz/quiz_question.py +54 -0
  183. endoreg_db/models/rules/__init__.py +5 -0
  184. endoreg_db/models/rules/rule.py +24 -0
  185. endoreg_db/models/rules/rule_applicator.py +224 -0
  186. endoreg_db/models/rules/rule_attribute_dtype.py +19 -0
  187. endoreg_db/models/rules/rule_type.py +22 -0
  188. endoreg_db/models/rules/ruleset.py +19 -0
  189. endoreg_db/models/unit.py +6 -4
  190. endoreg_db/utils/dataloader.py +13 -106
  191. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.5.dist-info}/METADATA +1 -1
  192. endoreg_db-0.3.5.dist-info/RECORD +357 -0
  193. endoreg_db/models/persons/patient.py +0 -58
  194. endoreg_db/models.py +0 -3
  195. endoreg_db-0.3.4.dist-info/RECORD +0 -185
  196. /endoreg_db/models/{center.py → center/center.py} +0 -0
  197. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.5.dist-info}/LICENSE +0 -0
  198. {endoreg_db-0.3.4.dist-info → endoreg_db-0.3.5.dist-info}/WHEEL +0 -0
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import Medication, Unit
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import MEDICATION_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = Medication
7
+
8
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
9
+ MODEL_0.__name__,
10
+ ]
11
+
12
+ IMPORT_METADATA = {
13
+ MODEL_0.__name__: {
14
+ "dir": SOURCE_DIR, # e.g. "interventions"
15
+ "model": MODEL_0, # e.g. Intervention
16
+ "foreign_keys": ["default_unit"], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [Unit] # e.g. [InterventionType]
18
+ }
19
+ }
20
+
21
+ class Command(BaseCommand):
22
+ help = """Load all .yaml files in the data/intervention directory
23
+ into the Intervention and InterventionType model"""
24
+
25
+ def add_arguments(self, parser):
26
+ parser.add_argument(
27
+ '--verbose',
28
+ action='store_true',
29
+ help='Display verbose output',
30
+ )
31
+
32
+ def handle(self, *args, **options):
33
+ verbose = options['verbose']
34
+ for model_name in IMPORT_MODELS:
35
+ _metadata = IMPORT_METADATA[model_name]
36
+ load_model_data_from_yaml(
37
+ self,
38
+ model_name,
39
+ _metadata,
40
+ verbose
41
+ )
@@ -0,0 +1,63 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ MedicationIndication,
4
+ MedicationIndicationType,
5
+ MedicationSchedule,
6
+ Disease,
7
+ Event,
8
+ DiseaseClassificationChoice,
9
+ InformationSource
10
+ )
11
+ from ...utils import load_model_data_from_yaml
12
+ from ...data import MEDICATION_INDICATION_DATA_DIR as SOURCE_DIR
13
+
14
+ MODEL_0 = MedicationIndication
15
+
16
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
17
+ MODEL_0.__name__,
18
+ ]
19
+
20
+ IMPORT_METADATA = {
21
+ MODEL_0.__name__: {
22
+ "dir": SOURCE_DIR, # e.g. "interventions"
23
+ "model": MODEL_0, # e.g. Intervention
24
+ "foreign_keys": [
25
+ "indication_type",
26
+ "medication_schedules",
27
+ "diseases",
28
+ "events",
29
+ "classification_choices",
30
+ "sources"
31
+ ], # e.g. ["intervention_types"]
32
+ "foreign_key_models": [
33
+ MedicationIndicationType,
34
+ MedicationSchedule,
35
+ Disease,
36
+ Event,
37
+ DiseaseClassificationChoice,
38
+ InformationSource
39
+ ] # e.g. [InterventionType]
40
+ }
41
+ }
42
+
43
+ class Command(BaseCommand):
44
+ help = """Load all .yaml files in the data/intervention directory
45
+ into the Intervention and InterventionType model"""
46
+
47
+ def add_arguments(self, parser):
48
+ parser.add_argument(
49
+ '--verbose',
50
+ action='store_true',
51
+ help='Display verbose output',
52
+ )
53
+
54
+ def handle(self, *args, **options):
55
+ verbose = options['verbose']
56
+ for model_name in IMPORT_MODELS:
57
+ _metadata = IMPORT_METADATA[model_name]
58
+ load_model_data_from_yaml(
59
+ self,
60
+ model_name,
61
+ _metadata,
62
+ verbose
63
+ )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import MedicationIndicationType
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import MEDICATION_INDICATION_TYPE_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = MedicationIndicationType
7
+
8
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
9
+ MODEL_0.__name__,
10
+ ]
11
+
12
+ IMPORT_METADATA = {
13
+ MODEL_0.__name__: {
14
+ "dir": SOURCE_DIR, # e.g. "interventions"
15
+ "model": MODEL_0, # e.g. Intervention
16
+ "foreign_keys": [], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [] # e.g. [InterventionType]
18
+ }
19
+ }
20
+
21
+ class Command(BaseCommand):
22
+ help = """Load all .yaml files in the data/intervention directory
23
+ into the Intervention and InterventionType model"""
24
+
25
+ def add_arguments(self, parser):
26
+ parser.add_argument(
27
+ '--verbose',
28
+ action='store_true',
29
+ help='Display verbose output',
30
+ )
31
+
32
+ def handle(self, *args, **options):
33
+ verbose = options['verbose']
34
+ for model_name in IMPORT_MODELS:
35
+ _metadata = IMPORT_METADATA[model_name]
36
+ load_model_data_from_yaml(
37
+ self,
38
+ model_name,
39
+ _metadata,
40
+ verbose
41
+ )
@@ -0,0 +1,41 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import MedicationIntakeTime
3
+ from ...utils import load_model_data_from_yaml
4
+ from ...data import MEDICATION_INTAKE_TIME_DATA_DIR as SOURCE_DIR
5
+
6
+ MODEL_0 = MedicationIntakeTime
7
+
8
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
9
+ MODEL_0.__name__,
10
+ ]
11
+
12
+ IMPORT_METADATA = {
13
+ MODEL_0.__name__: {
14
+ "dir": SOURCE_DIR, # e.g. "interventions"
15
+ "model": MODEL_0, # e.g. Intervention
16
+ "foreign_keys": [], # e.g. ["intervention_types"]
17
+ "foreign_key_models": [] # e.g. [InterventionType]
18
+ }
19
+ }
20
+
21
+ class Command(BaseCommand):
22
+ help = """Load all .yaml files in the data/intervention directory
23
+ into the Intervention and InterventionType model"""
24
+
25
+ def add_arguments(self, parser):
26
+ parser.add_argument(
27
+ '--verbose',
28
+ action='store_true',
29
+ help='Display verbose output',
30
+ )
31
+
32
+ def handle(self, *args, **options):
33
+ verbose = options['verbose']
34
+ for model_name in IMPORT_MODELS:
35
+ _metadata = IMPORT_METADATA[model_name]
36
+ load_model_data_from_yaml(
37
+ self,
38
+ model_name,
39
+ _metadata,
40
+ verbose
41
+ )
@@ -0,0 +1,55 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import (
3
+ MedicationSchedule,
4
+ Medication,
5
+ MedicationIntakeTime,
6
+ Unit,
7
+ InformationSource
8
+ )
9
+ from ...utils import load_model_data_from_yaml
10
+ from ...data import MEDICATION_SCHEDULE_DATA_DIR as SOURCE_DIR
11
+
12
+ MODEL_0 = MedicationSchedule
13
+
14
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
15
+ MODEL_0.__name__,
16
+ ]
17
+
18
+ IMPORT_METADATA = {
19
+ MODEL_0.__name__: {
20
+ "dir": SOURCE_DIR, # e.g. "interventions"
21
+ "model": MODEL_0, # e.g. Intervention
22
+ "foreign_keys": [
23
+ "medication",
24
+ "intake_times",
25
+ "unit",
26
+ ], # e.g. ["intervention_types"]
27
+ "foreign_key_models": [
28
+ Medication,
29
+ MedicationIntakeTime,
30
+ Unit,
31
+ ] # e.g. [InterventionType]
32
+ }
33
+ }
34
+
35
+ class Command(BaseCommand):
36
+ help = """Load all .yaml files in the data/intervention directory
37
+ into the Intervention and InterventionType model"""
38
+
39
+ def add_arguments(self, parser):
40
+ parser.add_argument(
41
+ '--verbose',
42
+ action='store_true',
43
+ help='Display verbose output',
44
+ )
45
+
46
+ def handle(self, *args, **options):
47
+ verbose = options['verbose']
48
+ for model_name in IMPORT_MODELS:
49
+ _metadata = IMPORT_METADATA[model_name]
50
+ load_model_data_from_yaml(
51
+ self,
52
+ model_name,
53
+ _metadata,
54
+ verbose
55
+ )
@@ -0,0 +1,42 @@
1
+ # Generated by Django 4.2.11 on 2024-04-25 21:31
2
+
3
+ import django.core.files.storage
4
+ import django.core.validators
5
+ from django.db import migrations, models
6
+ import django.db.models.deletion
7
+
8
+
9
+ class Migration(migrations.Migration):
10
+
11
+ dependencies = [
12
+ ('endoreg_db', '0024_remove_ttoquestionnaire_infections_and_more'),
13
+ ]
14
+
15
+ operations = [
16
+ migrations.CreateModel(
17
+ name='Event',
18
+ fields=[
19
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20
+ ('name', models.CharField(max_length=100, unique=True)),
21
+ ('name_de', models.CharField(blank=True, max_length=100, null=True)),
22
+ ('name_en', models.CharField(blank=True, max_length=100, null=True)),
23
+ ('description', models.TextField(blank=True, null=True)),
24
+ ],
25
+ ),
26
+ migrations.AlterField(
27
+ model_name='rawpdffile',
28
+ name='file',
29
+ field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location='/home/agl-admin/case-generator/agl_case_generator/erc_data/raw_pdf'), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])]),
30
+ ),
31
+ migrations.CreateModel(
32
+ name='PatientEvent',
33
+ fields=[
34
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
35
+ ('date_start', models.DateField()),
36
+ ('date_end', models.DateField(blank=True, null=True)),
37
+ ('description', models.TextField(blank=True, null=True)),
38
+ ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.event')),
39
+ ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
40
+ ],
41
+ ),
42
+ ]
@@ -0,0 +1,166 @@
1
+ # Generated by Django 4.2.11 on 2024-04-26 09:59
2
+
3
+ from django.db import migrations, models
4
+ import django.db.models.deletion
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('endoreg_db', '0025_event_alter_rawpdffile_file_patientevent'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.CreateModel(
15
+ name='Disease',
16
+ fields=[
17
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+ ('name', models.CharField(max_length=255, unique=True)),
19
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
20
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
21
+ ],
22
+ ),
23
+ migrations.CreateModel(
24
+ name='DiseaseClassification',
25
+ fields=[
26
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
27
+ ('name', models.CharField(max_length=255, unique=True)),
28
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
29
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
30
+ ('disease', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.disease')),
31
+ ],
32
+ ),
33
+ migrations.CreateModel(
34
+ name='DiseaseClassificationChoice',
35
+ fields=[
36
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
37
+ ('name', models.CharField(max_length=255, unique=True)),
38
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
39
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
40
+ ('disease_classification', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.diseaseclassification')),
41
+ ],
42
+ ),
43
+ migrations.CreateModel(
44
+ name='LabValue',
45
+ fields=[
46
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
47
+ ('name', models.CharField(max_length=255, unique=True)),
48
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
49
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
50
+ ('default_unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
51
+ ],
52
+ ),
53
+ migrations.CreateModel(
54
+ name='Medication',
55
+ fields=[
56
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
57
+ ('name', models.CharField(max_length=255, unique=True)),
58
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
59
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
60
+ ('default_unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
61
+ ],
62
+ ),
63
+ migrations.CreateModel(
64
+ name='Rule',
65
+ fields=[
66
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
67
+ ('name', models.CharField(max_length=255, unique=True)),
68
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
69
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
70
+ ('description', models.TextField(blank=True, null=True)),
71
+ ('attribute_key', models.CharField(max_length=255)),
72
+ ],
73
+ options={
74
+ 'verbose_name': 'Rule',
75
+ 'verbose_name_plural': 'Rules',
76
+ },
77
+ ),
78
+ migrations.CreateModel(
79
+ name='RuleAttributeDType',
80
+ fields=[
81
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
82
+ ('name', models.CharField(max_length=255, unique=True)),
83
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
84
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
85
+ ],
86
+ ),
87
+ migrations.CreateModel(
88
+ name='RuleType',
89
+ fields=[
90
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
91
+ ('name', models.CharField(max_length=255, unique=True)),
92
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
93
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
94
+ ],
95
+ options={
96
+ 'verbose_name': 'Rule Type',
97
+ 'verbose_name_plural': 'Rule Types',
98
+ },
99
+ ),
100
+ migrations.AddField(
101
+ model_name='patientevent',
102
+ name='last_update',
103
+ field=models.DateTimeField(auto_now=True),
104
+ ),
105
+ migrations.CreateModel(
106
+ name='Ruleset',
107
+ fields=[
108
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
109
+ ('name', models.CharField(max_length=255, unique=True)),
110
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
111
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
112
+ ('rules', models.ManyToManyField(to='endoreg_db.rule')),
113
+ ],
114
+ ),
115
+ migrations.AddField(
116
+ model_name='rule',
117
+ name='attribute_dtype',
118
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.ruleattributedtype'),
119
+ ),
120
+ migrations.AddField(
121
+ model_name='rule',
122
+ name='rule_type',
123
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.ruletype'),
124
+ ),
125
+ migrations.CreateModel(
126
+ name='PatientMedication',
127
+ fields=[
128
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
129
+ ('name', models.CharField(max_length=255, unique=True)),
130
+ ('name_de', models.CharField(blank=True, max_length=255, null=True)),
131
+ ('name_en', models.CharField(blank=True, max_length=255, null=True)),
132
+ ('dosage', models.JSONField()),
133
+ ('active', models.BooleanField(default=True)),
134
+ ('medication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.medication')),
135
+ ('unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
136
+ ],
137
+ options={
138
+ 'verbose_name': 'Patient Medication',
139
+ 'verbose_name_plural': 'Patient Medications',
140
+ },
141
+ ),
142
+ migrations.CreateModel(
143
+ name='PatientLabValue',
144
+ fields=[
145
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
146
+ ('value', models.FloatField(blank=True, null=True)),
147
+ ('value_str', models.CharField(blank=True, max_length=255, null=True)),
148
+ ('date', models.DateTimeField()),
149
+ ('lab_value', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.labvalue')),
150
+ ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
151
+ ('unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
152
+ ],
153
+ ),
154
+ migrations.CreateModel(
155
+ name='PatientDisease',
156
+ fields=[
157
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
158
+ ('start_date', models.DateField(blank=True, null=True)),
159
+ ('end_date', models.DateField(blank=True, null=True)),
160
+ ('last_update', models.DateTimeField(auto_now=True)),
161
+ ('classification_choices', models.ManyToManyField(to='endoreg_db.diseaseclassificationchoice')),
162
+ ('disease', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.disease')),
163
+ ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
164
+ ],
165
+ ),
166
+ ]
@@ -0,0 +1,38 @@
1
+ # Generated by Django 4.2.11 on 2024-04-27 07:35
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('endoreg_db', '0026_disease_diseaseclassification_and_more'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name='labvalue',
15
+ name='abbreviation',
16
+ field=models.CharField(blank=True, max_length=10, null=True),
17
+ ),
18
+ migrations.AddField(
19
+ model_name='labvalue',
20
+ name='default_normal_range',
21
+ field=models.JSONField(blank=True, null=True),
22
+ ),
23
+ migrations.AddField(
24
+ model_name='labvalue',
25
+ name='normal_range_age_dependent',
26
+ field=models.BooleanField(default=False),
27
+ ),
28
+ migrations.AddField(
29
+ model_name='labvalue',
30
+ name='normal_range_gender_dependent',
31
+ field=models.BooleanField(default=False),
32
+ ),
33
+ migrations.AddField(
34
+ model_name='labvalue',
35
+ name='normal_range_special_case',
36
+ field=models.BooleanField(default=False),
37
+ ),
38
+ ]
@@ -0,0 +1,18 @@
1
+ # Generated by Django 4.2.11 on 2024-04-27 08:29
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('endoreg_db', '0027_labvalue_abbreviation_labvalue_default_normal_range_and_more'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name='unit',
15
+ name='abbreviation',
16
+ field=models.CharField(blank=True, max_length=25, null=True),
17
+ ),
18
+ ]
@@ -0,0 +1,75 @@
1
+ # Generated by Django 4.2.11 on 2024-04-27 09:14
2
+
3
+ from django.db import migrations, models
4
+ import django.db.models.deletion
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('endoreg_db', '0028_alter_unit_abbreviation'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.CreateModel(
15
+ name='MedicationIntakeTime',
16
+ fields=[
17
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+ ('repeats', models.CharField(default='daily', max_length=20)),
19
+ ('time', models.TimeField()),
20
+ ('unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
21
+ ],
22
+ ),
23
+ migrations.RemoveField(
24
+ model_name='patientmedication',
25
+ name='medication',
26
+ ),
27
+ migrations.RemoveField(
28
+ model_name='patientmedication',
29
+ name='name',
30
+ ),
31
+ migrations.RemoveField(
32
+ model_name='patientmedication',
33
+ name='name_de',
34
+ ),
35
+ migrations.RemoveField(
36
+ model_name='patientmedication',
37
+ name='name_en',
38
+ ),
39
+ migrations.AddField(
40
+ model_name='medication',
41
+ name='adapt_to_liver_function',
42
+ field=models.BooleanField(default=False),
43
+ ),
44
+ migrations.AddField(
45
+ model_name='medication',
46
+ name='adapt_to_renal_function',
47
+ field=models.BooleanField(default=False),
48
+ ),
49
+ migrations.AddField(
50
+ model_name='patientlabvalue',
51
+ name='normal_range',
52
+ field=models.JSONField(default={}),
53
+ ),
54
+ migrations.AddField(
55
+ model_name='patientmedication',
56
+ name='patient',
57
+ field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient'),
58
+ preserve_default=False,
59
+ ),
60
+ migrations.CreateModel(
61
+ name='MedicationSchedule',
62
+ fields=[
63
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
64
+ ('name', models.CharField(max_length=255)),
65
+ ('intake_times', models.ManyToManyField(to='endoreg_db.medicationintaketime')),
66
+ ('medication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.medication')),
67
+ ('unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
68
+ ],
69
+ ),
70
+ migrations.AddField(
71
+ model_name='patientmedication',
72
+ name='medication_schedules',
73
+ field=models.ManyToManyField(to='endoreg_db.medicationschedule'),
74
+ ),
75
+ ]