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
@@ -0,0 +1,50 @@
1
+ from django.core.management.base import BaseCommand
2
+ from endoreg_db.models import LabValue as MODEL_0
3
+ from endoreg_db.models import PatientLabSampleType
4
+ from ...utils import load_model_data_from_yaml
5
+ from ...data import LAB_VALUE_DATA_DIR as SOURCE_DIR
6
+ from ...data import PATIENT_LAB_SAMPLE_TYPE_DATA_DIR
7
+
8
+ from endoreg_db.models import Unit
9
+
10
+ IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
11
+ MODEL_0.__name__,
12
+ PatientLabSampleType.__name__
13
+ ]
14
+
15
+ IMPORT_METADATA = {
16
+ MODEL_0.__name__: {
17
+ "dir": SOURCE_DIR, # e.g. "interventions"
18
+ "model": MODEL_0, # e.g. Intervention
19
+ "foreign_keys": ["default_unit"], # e.g. ["intervention_types"]
20
+ "foreign_key_models": [Unit] # e.g. [InterventionType]
21
+ },
22
+ PatientLabSampleType.__name__: {
23
+ "dir": PATIENT_LAB_SAMPLE_TYPE_DATA_DIR,
24
+ "model": PatientLabSampleType,
25
+ "foreign_keys": [],
26
+ "foreign_key_models": []
27
+ }
28
+ }
29
+
30
+ class Command(BaseCommand):
31
+ help = """Load all .yaml files in the data/intervention directory
32
+ into the Intervention and InterventionType model"""
33
+
34
+ def add_arguments(self, parser):
35
+ parser.add_argument(
36
+ '--verbose',
37
+ action='store_true',
38
+ help='Display verbose output',
39
+ )
40
+
41
+ def handle(self, *args, **options):
42
+ verbose = options['verbose']
43
+ for model_name in IMPORT_MODELS:
44
+ _metadata = IMPORT_METADATA[model_name]
45
+ load_model_data_from_yaml(
46
+ self,
47
+ model_name,
48
+ _metadata,
49
+ verbose
50
+ )
@@ -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,59 @@
1
+ # Generated by Django 4.2.11 on 2024-04-02 16:03
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', '0022_alter_pdftype_endoscope_info_line'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.CreateModel(
15
+ name='TtoQuestionnaire',
16
+ fields=[
17
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+ ('patient_name', models.CharField(max_length=255, verbose_name='Identifikation des Patienten (Name)')),
19
+ ('birth_date', models.DateField(verbose_name='Geburtsdatum')),
20
+ ('emergency_patient', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Notfallpatient/kürzlich untersuchter Patient (Verzicht auf Team-Time-Out möglich)')),
21
+ ('consent_signed', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Einverständniserklärung unterschrieben (Arzt, Patient)')),
22
+ ('documents_present', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Alle Dokumente liegen vor (Labor, Befunde, etc.)')),
23
+ ('communication_possible', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Kommunikation mit Patient möglich')),
24
+ ('pregnancy', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Schwangerschaft')),
25
+ ('asa_classification_checked', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='ASA-Klassifikation/Komorbidität geprüft')),
26
+ ('previous_anesthesia_complications', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Komplikationen bei bisherigen Narkosen?')),
27
+ ('last_meal_over_6_hours_ago', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Zeitpunkt letzte Mahlzeit > 6 Stunden')),
28
+ ('allergies', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Allergien, welche?')),
29
+ ('outpatient_accompaniment_post_sedation', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Nur bei ambulanter Vorstellung: Begleitung nach Sedierung?')),
30
+ ('work_incapacity_certificate', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Arbeitsunfähigkeitsbescheinigung')),
31
+ ('dental_prosthesis', models.BooleanField(default=False, verbose_name='Zahnprothese')),
32
+ ('glasses', models.BooleanField(default=False, verbose_name='Brille')),
33
+ ('implants', models.BooleanField(default=False, verbose_name='Implantate')),
34
+ ('hearing_aids', models.BooleanField(default=False, verbose_name='Hörgeräte')),
35
+ ('infections', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Infektionen')),
36
+ ('anticoagulants_ass', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Antikoagulation, ASS')),
37
+ ('blood_pressure_medication', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Blutdruckmedikamente')),
38
+ ('metal_implants', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Metallimplantate')),
39
+ ('pacemaker_icd', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Herzschrittmacher/ICD')),
40
+ ('copd', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='COPD')),
41
+ ('liver_cirrhosis', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Leberzirrhose')),
42
+ ('ibd', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='CED (Chronisch entzündliche Darmerkrankungen)')),
43
+ ('radiation', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Bestrahlung')),
44
+ ('glaucoma', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Glaukom')),
45
+ ('surgeries', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='OP´s')),
46
+ ('team_introduction', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Teamvorstellung mit Name und Aufgabe')),
47
+ ('instruments_available', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Notwendige Instrumente vorhanden?')),
48
+ ('monitoring_medications_equipment_checked', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Monitoring, Medikamente, Equipment zum Atemwegsmanagement zur Verfügung und überprüft?')),
49
+ ('complete_documentation_inclusive_care_notes', models.TextField(verbose_name='Vollständige Dokumentation inklusive Hinweise für Nachsorge')),
50
+ ('specimens_secured', models.BooleanField(default=False, verbose_name='Präparate versorgt')),
51
+ ('patient_condition_documented', models.TextField(verbose_name='Patientenzustand dokumentiert (je nach Ausgangszustand)')),
52
+ ],
53
+ ),
54
+ migrations.AlterField(
55
+ model_name='pdftype',
56
+ name='endoscope_info_line',
57
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_endoscopy_info_line', to='endoreg_db.reportreaderflag'),
58
+ ),
59
+ ]
@@ -0,0 +1,27 @@
1
+ # Generated by Django 4.2.11 on 2024-04-02 16:36
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('endoreg_db', '0023_ttoquestionnaire_alter_pdftype_endoscope_info_line'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.RemoveField(
14
+ model_name='ttoquestionnaire',
15
+ name='infections',
16
+ ),
17
+ migrations.AddField(
18
+ model_name='ttoquestionnaire',
19
+ name='notes',
20
+ field=models.TextField(default='Keine Bemerkungen', verbose_name='Bemerkungen'),
21
+ ),
22
+ migrations.AlterField(
23
+ model_name='ttoquestionnaire',
24
+ name='specimens_secured',
25
+ field=models.BooleanField(default=False, verbose_name='Histologische Proben gesichert'),
26
+ ),
27
+ ]
@@ -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
+ ]