endoreg-db 0.5.2__py3-none-any.whl → 0.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (320) hide show
  1. endoreg_db/admin.py +90 -1
  2. endoreg_db/urls.py +173 -0
  3. endoreg_db/views.py +0 -3
  4. endoreg_db-0.6.0.dist-info/METADATA +151 -0
  5. endoreg_db-0.6.0.dist-info/RECORD +11 -0
  6. {endoreg_db-0.5.2.dist-info → endoreg_db-0.6.0.dist-info}/WHEEL +2 -1
  7. endoreg_db-0.6.0.dist-info/top_level.txt +1 -0
  8. endoreg_db/data/__init__.py +0 -72
  9. endoreg_db/data/active_model/data.yaml +0 -3
  10. endoreg_db/data/agl_service/data.yaml +0 -19
  11. endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml +0 -167
  12. endoreg_db/data/case_template/rule/01_patient-set-age.yaml +0 -8
  13. endoreg_db/data/case_template/rule/01_patient-set-gender.yaml +0 -9
  14. endoreg_db/data/case_template/rule/11_create_patient_lab_sample.yaml +0 -23
  15. endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.yaml +0 -19
  16. endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml +0 -19
  17. endoreg_db/data/case_template/rule/19_create_patient.yaml +0 -17
  18. endoreg_db/data/case_template/rule_type/base_types.yaml +0 -35
  19. endoreg_db/data/case_template/rule_value/.init +0 -0
  20. endoreg_db/data/case_template/rule_value_type/base_types.yaml +0 -59
  21. endoreg_db/data/case_template/template/base.yaml +0 -8
  22. endoreg_db/data/case_template/template_type/pre_endoscopy.yaml +0 -3
  23. endoreg_db/data/case_template/tmp/_rule_value +0 -13
  24. endoreg_db/data/case_template/tmp/rule/01_atrial_fibrillation.yaml +0 -21
  25. endoreg_db/data/case_template/tmp/rule/02_create_object.yaml +0 -10
  26. endoreg_db/data/case_template/tmp/template/atrial_fibrillation_low_risk.yaml +0 -7
  27. endoreg_db/data/center/data.yaml +0 -60
  28. endoreg_db/data/center_resource/green_endoscopy_dashboard_CenterResource.yaml +0 -144
  29. endoreg_db/data/center_waste/green_endoscopy_dashboard_CenterWaste.yaml +0 -48
  30. endoreg_db/data/disease/cardiovascular.yaml +0 -37
  31. endoreg_db/data/disease/hepatology.yaml +0 -5
  32. endoreg_db/data/disease/misc.yaml +0 -6
  33. endoreg_db/data/disease/renal.yaml +0 -5
  34. endoreg_db/data/disease_classification/chronic_kidney_disease.yaml +0 -6
  35. endoreg_db/data/disease_classification/coronary_vessel_disease.yaml +0 -6
  36. endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml +0 -41
  37. endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml +0 -20
  38. endoreg_db/data/distribution/date/patient.yaml +0 -7
  39. endoreg_db/data/distribution/multiple_categorical/.init +0 -0
  40. endoreg_db/data/distribution/numeric/.init +0 -0
  41. endoreg_db/data/distribution/single_categorical/patient.yaml +0 -7
  42. endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml +0 -132
  43. endoreg_db/data/endoscope_type/data.yaml +0 -11
  44. endoreg_db/data/endoscopy_processor/data.yaml +0 -47
  45. endoreg_db/data/event/cardiology.yaml +0 -28
  46. endoreg_db/data/event/neurology.yaml +0 -14
  47. endoreg_db/data/event/surgery.yaml +0 -13
  48. endoreg_db/data/event/thrombembolism.yaml +0 -20
  49. endoreg_db/data/examination/examinations/data.yaml +0 -66
  50. endoreg_db/data/examination/time/data.yaml +0 -48
  51. endoreg_db/data/examination/time-type/data.yaml +0 -8
  52. endoreg_db/data/examination/type/data.yaml +0 -5
  53. endoreg_db/data/gender/data.yaml +0 -18
  54. endoreg_db/data/information_source/data.yaml +0 -30
  55. endoreg_db/data/information_source/medication.yaml +0 -6
  56. endoreg_db/data/lab_value/cardiac_enzymes.yaml +0 -31
  57. endoreg_db/data/lab_value/coagulation.yaml +0 -49
  58. endoreg_db/data/lab_value/electrolytes.yaml +0 -190
  59. endoreg_db/data/lab_value/gastrointestinal_function.yaml +0 -121
  60. endoreg_db/data/lab_value/hematology.yaml +0 -169
  61. endoreg_db/data/lab_value/hormones.yaml +0 -53
  62. endoreg_db/data/lab_value/lipids.yaml +0 -44
  63. endoreg_db/data/lab_value/misc.yaml +0 -30
  64. endoreg_db/data/lab_value/renal_function.yaml +0 -11
  65. endoreg_db/data/label/label/data.yaml +0 -62
  66. endoreg_db/data/label/label-set/data.yaml +0 -18
  67. endoreg_db/data/label/label-type/data.yaml +0 -7
  68. endoreg_db/data/log_type/data.yaml +0 -57
  69. endoreg_db/data/material/material.yaml +0 -91
  70. endoreg_db/data/medication/anticoagulation.yaml +0 -65
  71. endoreg_db/data/medication/tah.yaml +0 -70
  72. endoreg_db/data/medication_indication/anticoagulation.yaml +0 -120
  73. endoreg_db/data/medication_indication_type/data.yaml +0 -11
  74. endoreg_db/data/medication_indication_type/thrombembolism.yaml +0 -41
  75. endoreg_db/data/medication_intake_time/base.yaml +0 -31
  76. endoreg_db/data/medication_schedule/apixaban.yaml +0 -95
  77. endoreg_db/data/medication_schedule/ass.yaml +0 -12
  78. endoreg_db/data/medication_schedule/enoxaparin.yaml +0 -26
  79. endoreg_db/data/model_type/data.yaml +0 -7
  80. endoreg_db/data/network_device/data.yaml +0 -29
  81. endoreg_db/data/network_device_type/data.yaml +0 -12
  82. endoreg_db/data/patient_lab_sample_type/generic.yaml +0 -6
  83. endoreg_db/data/pdf_type/data.yaml +0 -28
  84. endoreg_db/data/product/green_endoscopy_dashboard_Product.yaml +0 -66
  85. endoreg_db/data/product_group/green_endoscopy_dashboard_ProductGroup.yaml +0 -33
  86. endoreg_db/data/product_material/green_endoscopy_dashboard_ProductMaterial.yaml +0 -308
  87. endoreg_db/data/product_weight/green_endoscopy_dashboard_ProductWeight.yaml +0 -88
  88. endoreg_db/data/profession/data.yaml +0 -70
  89. endoreg_db/data/reference_product/green_endoscopy_dashboard_ReferenceProduct.yaml +0 -55
  90. endoreg_db/data/report_reader_flag/ukw-examination-generic.yaml +0 -26
  91. endoreg_db/data/report_reader_flag/ukw-histology-generic.yaml +0 -19
  92. endoreg_db/data/resource/green_endoscopy_dashboard_Resource.yaml +0 -15
  93. endoreg_db/data/tmp/chronic_kidney_disease.yaml +0 -0
  94. endoreg_db/data/tmp/congestive_heart_failure.yaml +0 -0
  95. endoreg_db/data/transport_route/green_endoscopy_dashboard_TransportRoute.yaml +0 -12
  96. endoreg_db/data/unit/concentration.yaml +0 -92
  97. endoreg_db/data/unit/data.yaml +0 -17
  98. endoreg_db/data/unit/length.yaml +0 -31
  99. endoreg_db/data/unit/misc.yaml +0 -20
  100. endoreg_db/data/unit/rate.yaml +0 -6
  101. endoreg_db/data/unit/time.yaml +0 -13
  102. endoreg_db/data/unit/volume.yaml +0 -35
  103. endoreg_db/data/unit/weight.yaml +0 -38
  104. endoreg_db/data/waste/data.yaml +0 -12
  105. endoreg_db/forms/__init__.py +0 -3
  106. endoreg_db/forms/questionnaires/__init__.py +0 -1
  107. endoreg_db/forms/questionnaires/tto_questionnaire.py +0 -23
  108. endoreg_db/forms/settings/__init__.py +0 -8
  109. endoreg_db/forms/unit.py +0 -6
  110. endoreg_db/management/commands/_load_model_template.py +0 -41
  111. endoreg_db/management/commands/delete_all.py +0 -18
  112. endoreg_db/management/commands/delete_legacy_images.py +0 -19
  113. endoreg_db/management/commands/delete_legacy_videos.py +0 -17
  114. endoreg_db/management/commands/extract_legacy_video_frames.py +0 -18
  115. endoreg_db/management/commands/fetch_legacy_image_dataset.py +0 -32
  116. endoreg_db/management/commands/fix_auth_permission.py +0 -20
  117. endoreg_db/management/commands/import_legacy_images.py +0 -94
  118. endoreg_db/management/commands/import_legacy_videos.py +0 -76
  119. endoreg_db/management/commands/load_active_model_data.py +0 -45
  120. endoreg_db/management/commands/load_ai_model_data.py +0 -45
  121. endoreg_db/management/commands/load_base_db_data.py +0 -136
  122. endoreg_db/management/commands/load_center_data.py +0 -43
  123. endoreg_db/management/commands/load_disease_classification_choices_data.py +0 -41
  124. endoreg_db/management/commands/load_disease_classification_data.py +0 -41
  125. endoreg_db/management/commands/load_disease_data.py +0 -40
  126. endoreg_db/management/commands/load_distribution_data.py +0 -66
  127. endoreg_db/management/commands/load_endoscope_type_data.py +0 -45
  128. endoreg_db/management/commands/load_endoscopy_processor_data.py +0 -45
  129. endoreg_db/management/commands/load_event_data.py +0 -41
  130. endoreg_db/management/commands/load_examination_data.py +0 -75
  131. endoreg_db/management/commands/load_g_play_data.py +0 -113
  132. endoreg_db/management/commands/load_gender_data.py +0 -44
  133. endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py +0 -133
  134. endoreg_db/management/commands/load_information_source.py +0 -45
  135. endoreg_db/management/commands/load_lab_value_data.py +0 -50
  136. endoreg_db/management/commands/load_label_data.py +0 -67
  137. endoreg_db/management/commands/load_logging_data.py +0 -39
  138. endoreg_db/management/commands/load_medication_data.py +0 -41
  139. endoreg_db/management/commands/load_medication_indication_data.py +0 -63
  140. endoreg_db/management/commands/load_medication_indication_type_data.py +0 -41
  141. endoreg_db/management/commands/load_medication_intake_time_data.py +0 -41
  142. endoreg_db/management/commands/load_medication_schedule_data.py +0 -55
  143. endoreg_db/management/commands/load_network_data.py +0 -57
  144. endoreg_db/management/commands/load_pdf_type_data.py +0 -61
  145. endoreg_db/management/commands/load_profession_data.py +0 -44
  146. endoreg_db/management/commands/load_report_reader_flag.py +0 -46
  147. endoreg_db/management/commands/load_unit_data.py +0 -46
  148. endoreg_db/management/commands/load_user_groups.py +0 -28
  149. endoreg_db/management/commands/register_ai_model.py +0 -64
  150. endoreg_db/management/commands/reset_celery_schedule.py +0 -9
  151. endoreg_db/migrations/0001_initial.py +0 -1567
  152. endoreg_db/migrations/0002_anonymizedimagelabel_anonymousimageannotation_and_more.py +0 -55
  153. endoreg_db/migrations/0003_anonymousimageannotation_original_image_url_and_more.py +0 -39
  154. endoreg_db/migrations/0004_alter_rawpdffile_file.py +0 -20
  155. endoreg_db/migrations/0005_uploadedfile_alter_rawpdffile_file_anonymizedfile.py +0 -40
  156. endoreg_db/migrations/0006_alter_rawpdffile_file.py +0 -20
  157. endoreg_db/migrations/0007_networkdevicelogentry_datetime_and_more.py +0 -43
  158. endoreg_db/migrations/0008_networkdevicelogentry_aglnet_ip_and_more.py +0 -28
  159. endoreg_db/migrations/0009_alter_networkdevicelogentry_vpn_service_status.py +0 -18
  160. endoreg_db/migrations/0010_remove_networkdevicelogentry_hostname.py +0 -17
  161. endoreg_db/migrations/__init__.py +0 -0
  162. endoreg_db/models/__init__.py +0 -73
  163. endoreg_db/models/ai_model/__init__.py +0 -3
  164. endoreg_db/models/ai_model/active_model.py +0 -9
  165. endoreg_db/models/ai_model/model_meta.py +0 -24
  166. endoreg_db/models/ai_model/model_type.py +0 -26
  167. endoreg_db/models/ai_model/utils.py +0 -8
  168. endoreg_db/models/annotation/__init__.py +0 -3
  169. endoreg_db/models/annotation/anonymized_image_annotation.py +0 -60
  170. endoreg_db/models/annotation/binary_classification_annotation_task.py +0 -80
  171. endoreg_db/models/annotation/image_classification.py +0 -27
  172. endoreg_db/models/case_template/__init__.py +0 -6
  173. endoreg_db/models/case_template/case_template.py +0 -81
  174. endoreg_db/models/case_template/case_template_rule.py +0 -276
  175. endoreg_db/models/case_template/case_template_rule_value.py +0 -73
  176. endoreg_db/models/case_template/case_template_type.py +0 -28
  177. endoreg_db/models/center/__init__.py +0 -4
  178. endoreg_db/models/center/center.py +0 -25
  179. endoreg_db/models/center/center_product.py +0 -34
  180. endoreg_db/models/center/center_resource.py +0 -19
  181. endoreg_db/models/center/center_waste.py +0 -11
  182. endoreg_db/models/data_file/__init__.py +0 -6
  183. endoreg_db/models/data_file/base_classes/__init__.py +0 -2
  184. endoreg_db/models/data_file/base_classes/abstract_frame.py +0 -51
  185. endoreg_db/models/data_file/base_classes/abstract_video.py +0 -201
  186. endoreg_db/models/data_file/frame.py +0 -45
  187. endoreg_db/models/data_file/import_classes/__init__.py +0 -32
  188. endoreg_db/models/data_file/import_classes/processing_functions/__init__.py +0 -35
  189. endoreg_db/models/data_file/import_classes/processing_functions/pdf.py +0 -28
  190. endoreg_db/models/data_file/import_classes/processing_functions/video.py +0 -260
  191. endoreg_db/models/data_file/import_classes/raw_pdf.py +0 -188
  192. endoreg_db/models/data_file/import_classes/raw_video.py +0 -343
  193. endoreg_db/models/data_file/metadata/__init__.py +0 -3
  194. endoreg_db/models/data_file/metadata/pdf_meta.py +0 -70
  195. endoreg_db/models/data_file/metadata/sensitive_meta.py +0 -31
  196. endoreg_db/models/data_file/metadata/video_meta.py +0 -133
  197. endoreg_db/models/data_file/report_file.py +0 -89
  198. endoreg_db/models/data_file/video/__init__.py +0 -7
  199. endoreg_db/models/data_file/video/import_meta.py +0 -25
  200. endoreg_db/models/data_file/video/video.py +0 -25
  201. endoreg_db/models/data_file/video_segment.py +0 -107
  202. endoreg_db/models/disease.py +0 -56
  203. endoreg_db/models/emission/__init__.py +0 -1
  204. endoreg_db/models/emission/emission_factor.py +0 -20
  205. endoreg_db/models/event.py +0 -22
  206. endoreg_db/models/examination/__init__.py +0 -4
  207. endoreg_db/models/examination/examination.py +0 -26
  208. endoreg_db/models/examination/examination_time.py +0 -27
  209. endoreg_db/models/examination/examination_time_type.py +0 -24
  210. endoreg_db/models/examination/examination_type.py +0 -18
  211. endoreg_db/models/hardware/__init__.py +0 -2
  212. endoreg_db/models/hardware/endoscope.py +0 -44
  213. endoreg_db/models/hardware/endoscopy_processor.py +0 -143
  214. endoreg_db/models/information_source.py +0 -29
  215. endoreg_db/models/label/__init__.py +0 -1
  216. endoreg_db/models/label/label.py +0 -84
  217. endoreg_db/models/laboratory/__init__.py +0 -1
  218. endoreg_db/models/laboratory/lab_value.py +0 -102
  219. endoreg_db/models/legacy_data/__init__.py +0 -3
  220. endoreg_db/models/legacy_data/image.py +0 -34
  221. endoreg_db/models/logging/__init__.py +0 -4
  222. endoreg_db/models/logging/agl_service.py +0 -19
  223. endoreg_db/models/logging/base.py +0 -22
  224. endoreg_db/models/logging/log_type.py +0 -23
  225. endoreg_db/models/logging/network_device.py +0 -27
  226. endoreg_db/models/medication/__init__.py +0 -1
  227. endoreg_db/models/medication/medication.py +0 -148
  228. endoreg_db/models/network/__init__.py +0 -3
  229. endoreg_db/models/network/agl_service.py +0 -38
  230. endoreg_db/models/network/network_device.py +0 -53
  231. endoreg_db/models/network/network_device_type.py +0 -23
  232. endoreg_db/models/other/__init__.py +0 -5
  233. endoreg_db/models/other/distribution.py +0 -215
  234. endoreg_db/models/other/material.py +0 -16
  235. endoreg_db/models/other/resource.py +0 -18
  236. endoreg_db/models/other/transport_route.py +0 -21
  237. endoreg_db/models/other/waste.py +0 -20
  238. endoreg_db/models/patient_examination/__init__.py +0 -35
  239. endoreg_db/models/permissions/__init__.py +0 -44
  240. endoreg_db/models/persons/__init__.py +0 -7
  241. endoreg_db/models/persons/examiner/__init__.py +0 -2
  242. endoreg_db/models/persons/examiner/examiner.py +0 -16
  243. endoreg_db/models/persons/examiner/examiner_type.py +0 -2
  244. endoreg_db/models/persons/first_name.py +0 -18
  245. endoreg_db/models/persons/gender.py +0 -22
  246. endoreg_db/models/persons/last_name.py +0 -20
  247. endoreg_db/models/persons/patient/__init__.py +0 -8
  248. endoreg_db/models/persons/patient/case/__init__.py +0 -0
  249. endoreg_db/models/persons/patient/case/case.py +0 -30
  250. endoreg_db/models/persons/patient/patient.py +0 -216
  251. endoreg_db/models/persons/patient/patient_disease.py +0 -16
  252. endoreg_db/models/persons/patient/patient_event.py +0 -22
  253. endoreg_db/models/persons/patient/patient_lab_sample.py +0 -106
  254. endoreg_db/models/persons/patient/patient_lab_value.py +0 -176
  255. endoreg_db/models/persons/patient/patient_medication.py +0 -44
  256. endoreg_db/models/persons/patient/patient_medication_schedule.py +0 -28
  257. endoreg_db/models/persons/person.py +0 -31
  258. endoreg_db/models/persons/portal_user_information.py +0 -27
  259. endoreg_db/models/prediction/__init__.py +0 -2
  260. endoreg_db/models/prediction/image_classification.py +0 -37
  261. endoreg_db/models/prediction/video_prediction_meta.py +0 -244
  262. endoreg_db/models/product/__init__.py +0 -5
  263. endoreg_db/models/product/product.py +0 -97
  264. endoreg_db/models/product/product_group.py +0 -19
  265. endoreg_db/models/product/product_material.py +0 -24
  266. endoreg_db/models/product/product_weight.py +0 -26
  267. endoreg_db/models/product/reference_product.py +0 -99
  268. endoreg_db/models/questionnaires/__init__.py +0 -114
  269. endoreg_db/models/quiz/__init__.py +0 -2
  270. endoreg_db/models/quiz/quiz_answer.py +0 -41
  271. endoreg_db/models/quiz/quiz_question.py +0 -54
  272. endoreg_db/models/report_reader/__init__.py +0 -2
  273. endoreg_db/models/report_reader/report_reader_config.py +0 -53
  274. endoreg_db/models/report_reader/report_reader_flag.py +0 -20
  275. endoreg_db/models/rules/__init__.py +0 -5
  276. endoreg_db/models/rules/rule.py +0 -24
  277. endoreg_db/models/rules/rule_applicator.py +0 -224
  278. endoreg_db/models/rules/rule_attribute_dtype.py +0 -19
  279. endoreg_db/models/rules/rule_type.py +0 -22
  280. endoreg_db/models/rules/ruleset.py +0 -19
  281. endoreg_db/models/unit.py +0 -22
  282. endoreg_db/queries/__init__.py +0 -5
  283. endoreg_db/queries/annotations/__init__.py +0 -3
  284. endoreg_db/queries/annotations/legacy.py +0 -158
  285. endoreg_db/queries/get/__init__.py +0 -6
  286. endoreg_db/queries/get/annotation.py +0 -0
  287. endoreg_db/queries/get/center.py +0 -42
  288. endoreg_db/queries/get/model.py +0 -13
  289. endoreg_db/queries/get/patient.py +0 -14
  290. endoreg_db/queries/get/patient_examination.py +0 -20
  291. endoreg_db/queries/get/prediction.py +0 -0
  292. endoreg_db/queries/get/report_file.py +0 -33
  293. endoreg_db/queries/get/video.py +0 -31
  294. endoreg_db/queries/get/video_import_meta.py +0 -0
  295. endoreg_db/queries/get/video_prediction_meta.py +0 -0
  296. endoreg_db/queries/sanity/__init_.py +0 -0
  297. endoreg_db/serializers/__init__.py +0 -10
  298. endoreg_db/serializers/ai_model.py +0 -19
  299. endoreg_db/serializers/annotation.py +0 -17
  300. endoreg_db/serializers/center.py +0 -11
  301. endoreg_db/serializers/examination.py +0 -33
  302. endoreg_db/serializers/frame.py +0 -13
  303. endoreg_db/serializers/hardware.py +0 -21
  304. endoreg_db/serializers/label.py +0 -22
  305. endoreg_db/serializers/patient.py +0 -10
  306. endoreg_db/serializers/prediction.py +0 -15
  307. endoreg_db/serializers/report_file.py +0 -7
  308. endoreg_db/serializers/video.py +0 -27
  309. endoreg_db/utils/__init__.py +0 -1
  310. endoreg_db/utils/cropping.py +0 -29
  311. endoreg_db/utils/dataloader.py +0 -92
  312. endoreg_db/utils/file_operations.py +0 -30
  313. endoreg_db/utils/hashs.py +0 -34
  314. endoreg_db/utils/legacy_ocr.py +0 -201
  315. endoreg_db/utils/ocr.py +0 -190
  316. endoreg_db/utils/uuid.py +0 -4
  317. endoreg_db/utils/video_metadata.py +0 -87
  318. endoreg_db-0.5.2.dist-info/METADATA +0 -27
  319. endoreg_db-0.5.2.dist-info/RECORD +0 -319
  320. {endoreg_db-0.5.2.dist-info/licenses → endoreg_db-0.6.0.dist-info}/LICENSE +0 -0
@@ -1,1567 +0,0 @@
1
- # Generated by Django 4.2.15 on 2024-08-25 12:09
2
-
3
- from django.conf import settings
4
- import django.core.files.storage
5
- import django.core.validators
6
- from django.db import migrations, models
7
- import django.db.models.deletion
8
-
9
-
10
- class Migration(migrations.Migration):
11
-
12
- initial = True
13
-
14
- dependencies = [
15
- migrations.swappable_dependency(settings.AUTH_USER_MODEL),
16
- ]
17
-
18
- operations = [
19
- migrations.CreateModel(
20
- name='AglService',
21
- fields=[
22
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
23
- ('name', models.CharField(max_length=255)),
24
- ('description', models.CharField(max_length=255)),
25
- ('online', models.BooleanField(default=False)),
26
- ('created', models.DateTimeField(auto_now_add=True)),
27
- ('updated', models.DateTimeField(auto_now=True)),
28
- ('port', models.IntegerField(blank=True, null=True)),
29
- ('protocol', models.CharField(blank=True, max_length=255, null=True)),
30
- ('url', models.URLField(blank=True, null=True)),
31
- ],
32
- options={
33
- 'ordering': ['name'],
34
- },
35
- ),
36
- migrations.CreateModel(
37
- name='CaseTemplateRuleType',
38
- fields=[
39
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
40
- ('name', models.CharField(max_length=255)),
41
- ('name_de', models.CharField(max_length=255, null=True)),
42
- ('name_en', models.CharField(max_length=255, null=True)),
43
- ('description', models.TextField(blank=True, null=True)),
44
- ],
45
- ),
46
- migrations.CreateModel(
47
- name='CaseTemplateRuleValue',
48
- fields=[
49
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
50
- ('name', models.CharField(max_length=255)),
51
- ('description', models.TextField(blank=True, null=True)),
52
- ('fk_value', models.CharField(blank=True, max_length=255, null=True)),
53
- ('numeric_value', models.FloatField(blank=True, null=True)),
54
- ('text_value', models.CharField(blank=True, max_length=255, null=True)),
55
- ],
56
- ),
57
- migrations.CreateModel(
58
- name='CaseTemplateRuleValueType',
59
- fields=[
60
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
61
- ('name', models.CharField(max_length=255)),
62
- ('name_de', models.CharField(max_length=255, null=True)),
63
- ('name_en', models.CharField(max_length=255, null=True)),
64
- ('description', models.TextField(blank=True, null=True)),
65
- ('distribution_type', models.CharField(choices=[('single_categorical', 'single_categorical'), ('multiple_categorical', 'multiple_categorical'), ('numeric', 'numeric')], max_length=255)),
66
- ],
67
- ),
68
- migrations.CreateModel(
69
- name='CaseTemplateType',
70
- fields=[
71
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
72
- ('name', models.CharField(max_length=255)),
73
- ('name_de', models.CharField(max_length=255, null=True)),
74
- ('name_en', models.CharField(max_length=255, null=True)),
75
- ('description', models.TextField(blank=True, null=True)),
76
- ],
77
- ),
78
- migrations.CreateModel(
79
- name='Center',
80
- fields=[
81
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
82
- ('name', models.CharField(max_length=255)),
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='DateValueDistribution',
89
- fields=[
90
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
91
- ('name', models.CharField(max_length=100)),
92
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
93
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
94
- ('description', models.TextField(blank=True, null=True)),
95
- ('distribution_type', models.CharField(choices=[('uniform', 'Uniform'), ('normal', 'Normal')], max_length=20)),
96
- ('mode', models.CharField(choices=[('date', 'Date'), ('timedelta', 'Timedelta')], max_length=20)),
97
- ('date_min', models.DateField(blank=True, null=True)),
98
- ('date_max', models.DateField(blank=True, null=True)),
99
- ('date_mean', models.DateField(blank=True, null=True)),
100
- ('date_std_dev', models.IntegerField(blank=True, null=True)),
101
- ('timedelta_days_min', models.IntegerField(blank=True, null=True)),
102
- ('timedelta_days_max', models.IntegerField(blank=True, null=True)),
103
- ('timedelta_days_mean', models.IntegerField(blank=True, null=True)),
104
- ('timedelta_days_std_dev', models.IntegerField(blank=True, null=True)),
105
- ],
106
- options={
107
- 'abstract': False,
108
- },
109
- ),
110
- migrations.CreateModel(
111
- name='Disease',
112
- fields=[
113
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
114
- ('name', models.CharField(max_length=255, unique=True)),
115
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
116
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
117
- ],
118
- ),
119
- migrations.CreateModel(
120
- name='DiseaseClassification',
121
- fields=[
122
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
123
- ('name', models.CharField(max_length=255, unique=True)),
124
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
125
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
126
- ('disease', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.disease')),
127
- ],
128
- ),
129
- migrations.CreateModel(
130
- name='DiseaseClassificationChoice',
131
- fields=[
132
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
133
- ('name', models.CharField(max_length=255, unique=True)),
134
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
135
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
136
- ('disease_classification', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.diseaseclassification')),
137
- ],
138
- ),
139
- migrations.CreateModel(
140
- name='EmissionFactor',
141
- fields=[
142
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
143
- ('name', models.CharField(max_length=255)),
144
- ('name_de', models.CharField(max_length=255, null=True)),
145
- ('name_en', models.CharField(max_length=255, null=True)),
146
- ('value', models.FloatField()),
147
- ],
148
- ),
149
- migrations.CreateModel(
150
- name='Endoscope',
151
- fields=[
152
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
153
- ('name', models.CharField(max_length=255)),
154
- ('sn', models.CharField(max_length=255)),
155
- ],
156
- options={
157
- 'verbose_name': 'Endoscope',
158
- 'verbose_name_plural': 'Endoscopes',
159
- 'ordering': ['name'],
160
- },
161
- ),
162
- migrations.CreateModel(
163
- name='EndoscopeType',
164
- fields=[
165
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
166
- ('name', models.CharField(max_length=255)),
167
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
168
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
169
- ],
170
- options={
171
- 'verbose_name': 'Endoscope Type',
172
- 'verbose_name_plural': 'Endoscope Types',
173
- 'ordering': ['name'],
174
- },
175
- ),
176
- migrations.CreateModel(
177
- name='EndoscopyProcessor',
178
- fields=[
179
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
180
- ('name', models.CharField(max_length=255)),
181
- ('image_width', models.IntegerField()),
182
- ('image_height', models.IntegerField()),
183
- ('endoscope_image_x', models.IntegerField()),
184
- ('endoscope_image_y', models.IntegerField()),
185
- ('endoscope_image_width', models.IntegerField()),
186
- ('endoscope_image_height', models.IntegerField()),
187
- ('examination_date_x', models.IntegerField()),
188
- ('examination_date_y', models.IntegerField()),
189
- ('examination_date_width', models.IntegerField()),
190
- ('examination_date_height', models.IntegerField()),
191
- ('examination_time_x', models.IntegerField(blank=True, null=True)),
192
- ('examination_time_y', models.IntegerField(blank=True, null=True)),
193
- ('examination_time_width', models.IntegerField(blank=True, null=True)),
194
- ('examination_time_height', models.IntegerField(blank=True, null=True)),
195
- ('patient_first_name_x', models.IntegerField()),
196
- ('patient_first_name_y', models.IntegerField()),
197
- ('patient_first_name_width', models.IntegerField()),
198
- ('patient_first_name_height', models.IntegerField()),
199
- ('patient_last_name_x', models.IntegerField()),
200
- ('patient_last_name_y', models.IntegerField()),
201
- ('patient_last_name_width', models.IntegerField()),
202
- ('patient_last_name_height', models.IntegerField()),
203
- ('patient_dob_x', models.IntegerField()),
204
- ('patient_dob_y', models.IntegerField()),
205
- ('patient_dob_width', models.IntegerField()),
206
- ('patient_dob_height', models.IntegerField()),
207
- ('endoscope_type_x', models.IntegerField(blank=True, null=True)),
208
- ('endoscope_type_y', models.IntegerField(blank=True, null=True)),
209
- ('endoscope_type_width', models.IntegerField(blank=True, null=True)),
210
- ('endoscope_type_height', models.IntegerField(blank=True, null=True)),
211
- ('endoscope_sn_x', models.IntegerField(blank=True, null=True)),
212
- ('endoscope_sn_y', models.IntegerField(blank=True, null=True)),
213
- ('endoscope_sn_width', models.IntegerField(blank=True, null=True)),
214
- ('endoscope_sn_height', models.IntegerField(blank=True, null=True)),
215
- ],
216
- ),
217
- migrations.CreateModel(
218
- name='Event',
219
- fields=[
220
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
221
- ('name', models.CharField(max_length=100, unique=True)),
222
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
223
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
224
- ('description', models.TextField(blank=True, null=True)),
225
- ],
226
- ),
227
- migrations.CreateModel(
228
- name='Examination',
229
- fields=[
230
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
231
- ('name', models.CharField(max_length=100, unique=True)),
232
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
233
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
234
- ('date', models.DateField(blank=True, null=True)),
235
- ('time', models.TimeField(blank=True, null=True)),
236
- ],
237
- options={
238
- 'verbose_name': 'Examination',
239
- 'verbose_name_plural': 'Examinations',
240
- 'ordering': ['name'],
241
- },
242
- ),
243
- migrations.CreateModel(
244
- name='ExaminationType',
245
- fields=[
246
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
247
- ('name', models.CharField(max_length=100, unique=True)),
248
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
249
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
250
- ],
251
- ),
252
- migrations.CreateModel(
253
- name='Examiner',
254
- fields=[
255
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
256
- ('first_name', models.CharField(max_length=255)),
257
- ('last_name', models.CharField(max_length=255)),
258
- ('dob', models.DateField(blank=True, null=True, verbose_name='Date of Birth')),
259
- ('email', models.EmailField(blank=True, max_length=255, null=True)),
260
- ('phone', models.CharField(blank=True, max_length=255, null=True)),
261
- ('is_real_person', models.BooleanField(default=True)),
262
- ('center', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
263
- ],
264
- options={
265
- 'abstract': False,
266
- },
267
- ),
268
- migrations.CreateModel(
269
- name='FFMpegMeta',
270
- fields=[
271
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
272
- ('duration', models.FloatField(blank=True, null=True)),
273
- ('width', models.IntegerField(blank=True, null=True)),
274
- ('height', models.IntegerField(blank=True, null=True)),
275
- ('frame_rate', models.FloatField(blank=True, null=True)),
276
- ('video_codec', models.CharField(blank=True, max_length=50, null=True)),
277
- ('audio_codec', models.CharField(blank=True, max_length=50, null=True)),
278
- ('audio_channels', models.IntegerField(blank=True, null=True)),
279
- ('audio_sample_rate', models.IntegerField(blank=True, null=True)),
280
- ],
281
- ),
282
- migrations.CreateModel(
283
- name='FirstName',
284
- fields=[
285
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
286
- ('name', models.CharField(max_length=255, unique=True)),
287
- ],
288
- ),
289
- migrations.CreateModel(
290
- name='Frame',
291
- fields=[
292
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
293
- ('frame_number', models.IntegerField()),
294
- ('image', models.ImageField(upload_to='frames')),
295
- ('suffix', models.CharField(max_length=255)),
296
- ],
297
- options={
298
- 'abstract': False,
299
- },
300
- ),
301
- migrations.CreateModel(
302
- name='Gender',
303
- fields=[
304
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
305
- ('name', models.CharField(max_length=255)),
306
- ('name_de', models.CharField(max_length=255, null=True)),
307
- ('name_en', models.CharField(max_length=255, null=True)),
308
- ('abbreviation', models.CharField(max_length=255, null=True)),
309
- ('description', models.TextField(blank=True, null=True)),
310
- ],
311
- ),
312
- migrations.CreateModel(
313
- name='InformationSource',
314
- fields=[
315
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
316
- ('name', models.CharField(max_length=100)),
317
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
318
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
319
- ('url', models.URLField(blank=True, null=True)),
320
- ('description', models.TextField(blank=True, null=True)),
321
- ('date', models.DateField(blank=True, null=True)),
322
- ],
323
- ),
324
- migrations.CreateModel(
325
- name='Label',
326
- fields=[
327
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
328
- ('name', models.CharField(max_length=255)),
329
- ('description', models.TextField(blank=True, null=True)),
330
- ],
331
- ),
332
- migrations.CreateModel(
333
- name='LabelSet',
334
- fields=[
335
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
336
- ('name', models.CharField(max_length=255)),
337
- ('description', models.TextField(blank=True, null=True)),
338
- ('version', models.IntegerField()),
339
- ('labels', models.ManyToManyField(related_name='labels', to='endoreg_db.label')),
340
- ],
341
- ),
342
- migrations.CreateModel(
343
- name='LabelType',
344
- fields=[
345
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
346
- ('name', models.CharField(max_length=255)),
347
- ('description', models.TextField(blank=True, null=True)),
348
- ],
349
- ),
350
- migrations.CreateModel(
351
- name='LabValue',
352
- fields=[
353
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
354
- ('name', models.CharField(max_length=255, unique=True)),
355
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
356
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
357
- ('abbreviation', models.CharField(blank=True, max_length=10, null=True)),
358
- ('numeric_precision', models.IntegerField(default=3)),
359
- ('default_normal_range', models.JSONField(blank=True, null=True)),
360
- ('normal_range_age_dependent', models.BooleanField(default=False)),
361
- ('normal_range_gender_dependent', models.BooleanField(default=False)),
362
- ('normal_range_special_case', models.BooleanField(default=False)),
363
- ('default_date_value_distribution', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='default_date_value_distribution', to='endoreg_db.datevaluedistribution')),
364
- ],
365
- ),
366
- migrations.CreateModel(
367
- name='LastName',
368
- fields=[
369
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
370
- ('name', models.CharField(max_length=255, unique=True)),
371
- ],
372
- ),
373
- migrations.CreateModel(
374
- name='LegacyImage',
375
- fields=[
376
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
377
- ('image', models.ImageField(upload_to='legacy_images')),
378
- ('suffix', models.CharField(max_length=255)),
379
- ],
380
- ),
381
- migrations.CreateModel(
382
- name='LegacyVideo',
383
- fields=[
384
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
385
- ('video_hash', models.CharField(max_length=255, unique=True)),
386
- ('date', models.DateField(blank=True, null=True)),
387
- ('suffix', models.CharField(max_length=255)),
388
- ('fps', models.FloatField()),
389
- ('duration', models.FloatField()),
390
- ('width', models.IntegerField()),
391
- ('height', models.IntegerField()),
392
- ('endoscope_image_x', models.IntegerField(blank=True, null=True)),
393
- ('endoscope_image_y', models.IntegerField(blank=True, null=True)),
394
- ('endoscope_image_width', models.IntegerField(blank=True, null=True)),
395
- ('endoscope_image_height', models.IntegerField(blank=True, null=True)),
396
- ('frames_extracted', models.BooleanField(default=False)),
397
- ('meta', models.JSONField(blank=True, null=True)),
398
- ('file', models.FileField(blank=True, null=True, upload_to='legacy_videos')),
399
- ('center', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
400
- ('endoscopy_processor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.endoscopyprocessor')),
401
- ],
402
- options={
403
- 'abstract': False,
404
- },
405
- ),
406
- migrations.CreateModel(
407
- name='LogType',
408
- fields=[
409
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
410
- ('name', models.CharField(max_length=255)),
411
- ('description', models.CharField(max_length=255)),
412
- ('created', models.DateTimeField(auto_now_add=True)),
413
- ('updated', models.DateTimeField(auto_now=True)),
414
- ],
415
- options={
416
- 'ordering': ['name'],
417
- },
418
- ),
419
- migrations.CreateModel(
420
- name='Material',
421
- fields=[
422
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
423
- ('name', models.CharField(max_length=255)),
424
- ('name_de', models.CharField(max_length=255, null=True)),
425
- ('name_en', models.CharField(max_length=255, null=True)),
426
- ('emission_factor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.emissionfactor')),
427
- ],
428
- ),
429
- migrations.CreateModel(
430
- name='Medication',
431
- fields=[
432
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
433
- ('name', models.CharField(max_length=255, unique=True)),
434
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
435
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
436
- ('adapt_to_renal_function', models.BooleanField(default=False)),
437
- ('adapt_to_hepatic_function', models.BooleanField(default=False)),
438
- ('adapt_to_indication', models.BooleanField(default=False)),
439
- ('adapt_to_age', models.BooleanField(default=False)),
440
- ('adapt_to_weight', models.BooleanField(default=False)),
441
- ('adapt_to_risk', models.BooleanField(default=False)),
442
- ],
443
- ),
444
- migrations.CreateModel(
445
- name='MedicationIndication',
446
- fields=[
447
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
448
- ('name', models.CharField(max_length=255, unique=True)),
449
- ('classification_choices', models.ManyToManyField(to='endoreg_db.diseaseclassificationchoice')),
450
- ('diseases', models.ManyToManyField(to='endoreg_db.disease')),
451
- ('events', models.ManyToManyField(to='endoreg_db.event')),
452
- ],
453
- ),
454
- migrations.CreateModel(
455
- name='MedicationIndicationType',
456
- fields=[
457
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
458
- ('name', models.CharField(max_length=255, unique=True)),
459
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
460
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
461
- ],
462
- ),
463
- migrations.CreateModel(
464
- name='MedicationIntakeTime',
465
- fields=[
466
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
467
- ('name', models.CharField(max_length=255)),
468
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
469
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
470
- ('repeats', models.CharField(default='daily', max_length=20)),
471
- ('time', models.TimeField()),
472
- ],
473
- ),
474
- migrations.CreateModel(
475
- name='MedicationSchedule',
476
- fields=[
477
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
478
- ('name', models.CharField(max_length=255)),
479
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
480
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
481
- ('description', models.TextField(blank=True, null=True)),
482
- ('therapy_duration_d', models.FloatField(blank=True, null=True)),
483
- ('dose', models.FloatField()),
484
- ('intake_times', models.ManyToManyField(to='endoreg_db.medicationintaketime')),
485
- ('medication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.medication')),
486
- ],
487
- ),
488
- migrations.CreateModel(
489
- name='ModelMeta',
490
- fields=[
491
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
492
- ('name', models.CharField(max_length=255)),
493
- ('version', models.CharField(max_length=255)),
494
- ('weights', models.FileField(upload_to='weights/')),
495
- ('description', models.TextField(blank=True, null=True)),
496
- ('date_created', models.DateTimeField(auto_now_add=True)),
497
- ('labelset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='models', to='endoreg_db.labelset')),
498
- ],
499
- ),
500
- migrations.CreateModel(
501
- name='ModelType',
502
- fields=[
503
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
504
- ('name', models.CharField(max_length=255)),
505
- ('description', models.TextField(blank=True, null=True)),
506
- ],
507
- ),
508
- migrations.CreateModel(
509
- name='MultipleCategoricalValueDistribution',
510
- fields=[
511
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
512
- ('name', models.CharField(max_length=100)),
513
- ('categories', models.JSONField()),
514
- ('min_count', models.IntegerField()),
515
- ('max_count', models.IntegerField()),
516
- ('count_distribution_type', models.CharField(choices=[('uniform', 'Uniform'), ('normal', 'Normal')], max_length=20)),
517
- ('count_mean', models.FloatField(blank=True, null=True)),
518
- ('count_std_dev', models.FloatField(blank=True, null=True)),
519
- ],
520
- options={
521
- 'abstract': False,
522
- },
523
- ),
524
- migrations.CreateModel(
525
- name='NetworkDevice',
526
- fields=[
527
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
528
- ('name', models.CharField(max_length=255)),
529
- ('ip', models.GenericIPAddressField(blank=True, null=True)),
530
- ('description', models.CharField(max_length=255)),
531
- ('online', models.BooleanField(default=False)),
532
- ('created', models.DateTimeField(auto_now_add=True)),
533
- ('updated', models.DateTimeField(auto_now=True)),
534
- ],
535
- options={
536
- 'db_table': 'network_devices',
537
- 'ordering': ['name'],
538
- },
539
- ),
540
- migrations.CreateModel(
541
- name='NetworkDeviceType',
542
- fields=[
543
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
544
- ('name', models.CharField(max_length=255)),
545
- ('description', models.CharField(max_length=255)),
546
- ('created', models.DateTimeField(auto_now_add=True)),
547
- ('updated', models.DateTimeField(auto_now=True)),
548
- ],
549
- options={
550
- 'db_table': 'network_device_types',
551
- 'ordering': ['name'],
552
- },
553
- ),
554
- migrations.CreateModel(
555
- name='NumericValueDistribution',
556
- fields=[
557
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
558
- ('name', models.CharField(max_length=100)),
559
- ('distribution_type', models.CharField(choices=[('uniform', 'Uniform'), ('normal', 'Normal'), ('skewed_normal', 'Skewed Normal')], max_length=20)),
560
- ('min_value', models.FloatField()),
561
- ('max_value', models.FloatField()),
562
- ('mean', models.FloatField(blank=True, null=True)),
563
- ('std_dev', models.FloatField(blank=True, null=True)),
564
- ('skewness', models.FloatField(blank=True, null=True)),
565
- ],
566
- options={
567
- 'abstract': False,
568
- },
569
- ),
570
- migrations.CreateModel(
571
- name='Patient',
572
- fields=[
573
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
574
- ('first_name', models.CharField(max_length=255)),
575
- ('last_name', models.CharField(max_length=255)),
576
- ('dob', models.DateField(blank=True, null=True, verbose_name='Date of Birth')),
577
- ('email', models.EmailField(blank=True, max_length=255, null=True)),
578
- ('phone', models.CharField(blank=True, max_length=255, null=True)),
579
- ('is_real_person', models.BooleanField(default=True)),
580
- ('center', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
581
- ('gender', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.gender')),
582
- ],
583
- options={
584
- 'abstract': False,
585
- },
586
- ),
587
- migrations.CreateModel(
588
- name='PatientLabSample',
589
- fields=[
590
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
591
- ('date', models.DateTimeField()),
592
- ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lab_samples', to='endoreg_db.patient')),
593
- ],
594
- ),
595
- migrations.CreateModel(
596
- name='PatientLabSampleType',
597
- fields=[
598
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
599
- ('name', models.CharField(max_length=255)),
600
- ('name_de', models.CharField(max_length=255, null=True)),
601
- ('name_en', models.CharField(max_length=255, null=True)),
602
- ('description', models.TextField(blank=True, null=True)),
603
- ],
604
- ),
605
- migrations.CreateModel(
606
- name='PatientMedication',
607
- fields=[
608
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
609
- ('dosage', models.JSONField()),
610
- ('active', models.BooleanField(default=True)),
611
- ('medication_indication', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='patient_medications', to='endoreg_db.medicationindication')),
612
- ('medication_schedules', models.ManyToManyField(to='endoreg_db.medicationschedule')),
613
- ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
614
- ],
615
- options={
616
- 'verbose_name': 'Patient Medication',
617
- 'verbose_name_plural': 'Patient Medications',
618
- },
619
- ),
620
- migrations.CreateModel(
621
- name='PdfType',
622
- fields=[
623
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
624
- ('name', models.CharField(max_length=255)),
625
- ],
626
- ),
627
- migrations.CreateModel(
628
- name='Product',
629
- fields=[
630
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
631
- ('name', models.CharField(max_length=255)),
632
- ('name_de', models.CharField(max_length=255, null=True)),
633
- ('name_en', models.CharField(max_length=255, null=True)),
634
- ],
635
- ),
636
- migrations.CreateModel(
637
- name='ProductGroup',
638
- fields=[
639
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
640
- ('name', models.CharField(max_length=255)),
641
- ('name_de', models.CharField(max_length=255, null=True)),
642
- ('name_en', models.CharField(max_length=255, null=True)),
643
- ],
644
- ),
645
- migrations.CreateModel(
646
- name='Profession',
647
- fields=[
648
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
649
- ('name', models.CharField(max_length=100)),
650
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
651
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
652
- ('description', models.TextField(blank=True, null=True)),
653
- ],
654
- ),
655
- migrations.CreateModel(
656
- name='QuizAnswerType',
657
- fields=[
658
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
659
- ('name', models.CharField(max_length=255)),
660
- ('description', models.TextField(blank=True, null=True)),
661
- ],
662
- ),
663
- migrations.CreateModel(
664
- name='QuizQuestionType',
665
- fields=[
666
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
667
- ('name', models.CharField(max_length=255)),
668
- ('description', models.TextField(blank=True, null=True)),
669
- ],
670
- ),
671
- migrations.CreateModel(
672
- name='ReportReaderFlag',
673
- fields=[
674
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
675
- ('name', models.CharField(max_length=255, unique=True)),
676
- ('value', models.CharField(max_length=255)),
677
- ],
678
- ),
679
- migrations.CreateModel(
680
- name='Resource',
681
- fields=[
682
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
683
- ('name', models.CharField(max_length=255)),
684
- ('name_de', models.CharField(max_length=255, null=True)),
685
- ('name_en', models.CharField(max_length=255, null=True)),
686
- ],
687
- ),
688
- migrations.CreateModel(
689
- name='Rule',
690
- fields=[
691
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
692
- ('name', models.CharField(max_length=255, unique=True)),
693
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
694
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
695
- ('description', models.TextField(blank=True, null=True)),
696
- ('attribute_key', models.CharField(max_length=255)),
697
- ],
698
- options={
699
- 'verbose_name': 'Rule',
700
- 'verbose_name_plural': 'Rules',
701
- },
702
- ),
703
- migrations.CreateModel(
704
- name='RuleAttributeDType',
705
- fields=[
706
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
707
- ('name', models.CharField(max_length=255, unique=True)),
708
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
709
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
710
- ],
711
- ),
712
- migrations.CreateModel(
713
- name='RuleType',
714
- fields=[
715
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
716
- ('name', models.CharField(max_length=255, unique=True)),
717
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
718
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
719
- ],
720
- options={
721
- 'verbose_name': 'Rule Type',
722
- 'verbose_name_plural': 'Rule Types',
723
- },
724
- ),
725
- migrations.CreateModel(
726
- name='SensitiveMeta',
727
- fields=[
728
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
729
- ('examination_date', models.DateField(blank=True, null=True)),
730
- ('patient_first_name', models.CharField(blank=True, max_length=255, null=True)),
731
- ('patient_last_name', models.CharField(blank=True, max_length=255, null=True)),
732
- ('patient_dob', models.DateField(blank=True, null=True)),
733
- ('endoscope_type', models.CharField(blank=True, max_length=255, null=True)),
734
- ('endoscope_sn', models.CharField(blank=True, max_length=255, null=True)),
735
- ],
736
- ),
737
- migrations.CreateModel(
738
- name='SingleCategoricalValueDistribution',
739
- fields=[
740
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
741
- ('name', models.CharField(max_length=100)),
742
- ('categories', models.JSONField()),
743
- ],
744
- options={
745
- 'abstract': False,
746
- },
747
- ),
748
- migrations.CreateModel(
749
- name='TtoQuestionnaire',
750
- fields=[
751
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
752
- ('patient_name', models.CharField(max_length=255, verbose_name='Identifikation des Patienten (Name)')),
753
- ('birth_date', models.DateField(verbose_name='Geburtsdatum')),
754
- ('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)')),
755
- ('consent_signed', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Einverständniserklärung unterschrieben (Arzt, Patient)')),
756
- ('documents_present', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Alle Dokumente liegen vor (Labor, Befunde, etc.)')),
757
- ('communication_possible', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Kommunikation mit Patient möglich')),
758
- ('work_incapacity_certificate', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Arbeitsunfähigkeitsbescheinigung')),
759
- ('pregnancy', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Schwangerschaft')),
760
- ('asa_classification_checked', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='ASA-Klassifikation/Komorbidität geprüft')),
761
- ('previous_anesthesia_complications', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Komplikationen bei bisherigen Narkosen?')),
762
- ('last_meal_over_6_hours_ago', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Zeitpunkt letzte Mahlzeit > 6 Stunden')),
763
- ('allergies', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Allergien, welche?')),
764
- ('outpatient_accompaniment_post_sedation', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Nur bei ambulanter Vorstellung: Begleitung nach Sedierung?')),
765
- ('dental_prosthesis', models.BooleanField(default=False, verbose_name='Zahnprothese')),
766
- ('glasses', models.BooleanField(default=False, verbose_name='Brille')),
767
- ('implants', models.BooleanField(default=False, verbose_name='Implantate')),
768
- ('hearing_aids', models.BooleanField(default=False, verbose_name='Hörgeräte')),
769
- ('anticoagulants_ass', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Antikoagulation, ASS')),
770
- ('blood_pressure_medication', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Blutdruckmedikamente')),
771
- ('glaucoma', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Glaukom')),
772
- ('metal_implants', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Metallimplantate')),
773
- ('pacemaker_icd', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Herzschrittmacher/ICD')),
774
- ('copd', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='COPD')),
775
- ('liver_cirrhosis', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Leberzirrhose')),
776
- ('ibd', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='CED (Chronisch entzündliche Darmerkrankungen)')),
777
- ('radiation', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Bestrahlung')),
778
- ('surgeries', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='OP´s')),
779
- ('team_introduction', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Teamvorstellung mit Name und Aufgabe')),
780
- ('instruments_available', models.CharField(choices=[('yes', 'Ja'), ('no', 'Nein')], max_length=3, verbose_name='Notwendige Instrumente vorhanden?')),
781
- ('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?')),
782
- ('complete_documentation_inclusive_care_notes', models.TextField(verbose_name='Vollständige Dokumentation inklusive Hinweise für Nachsorge')),
783
- ('notes', models.TextField(default='Keine Bemerkungen', verbose_name='Bemerkungen')),
784
- ('specimens_secured', models.BooleanField(default=False, verbose_name='Histologische Proben gesichert')),
785
- ('patient_condition_documented', models.TextField(verbose_name='Patientenzustand dokumentiert (je nach Ausgangszustand)')),
786
- ],
787
- ),
788
- migrations.CreateModel(
789
- name='Unit',
790
- fields=[
791
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
792
- ('name', models.CharField(max_length=100)),
793
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
794
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
795
- ('description', models.CharField(blank=True, max_length=100, null=True)),
796
- ('abbreviation', models.CharField(blank=True, max_length=25, null=True)),
797
- ],
798
- ),
799
- migrations.CreateModel(
800
- name='Video',
801
- fields=[
802
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
803
- ('file', models.FileField(blank=True, null=True, upload_to='raw_videos')),
804
- ('video_hash', models.CharField(max_length=255, unique=True)),
805
- ('date', models.DateField(blank=True, null=True)),
806
- ('suffix', models.CharField(max_length=255)),
807
- ('fps', models.FloatField()),
808
- ('duration', models.FloatField()),
809
- ('width', models.IntegerField()),
810
- ('height', models.IntegerField()),
811
- ('endoscope_image_x', models.IntegerField(blank=True, null=True)),
812
- ('endoscope_image_y', models.IntegerField(blank=True, null=True)),
813
- ('endoscope_image_width', models.IntegerField(blank=True, null=True)),
814
- ('endoscope_image_height', models.IntegerField(blank=True, null=True)),
815
- ('frames_extracted', models.BooleanField(default=False)),
816
- ('meta', models.JSONField(blank=True, null=True)),
817
- ('center', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
818
- ('endoscopy_processor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.endoscopyprocessor')),
819
- ],
820
- options={
821
- 'abstract': False,
822
- },
823
- ),
824
- migrations.CreateModel(
825
- name='VideoImportMeta',
826
- fields=[
827
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
828
- ('video_anonymized', models.BooleanField(default=False)),
829
- ('video_patient_data_detected', models.BooleanField(default=False)),
830
- ('outside_detected', models.BooleanField(default=False)),
831
- ('patient_data_removed', models.BooleanField(default=False)),
832
- ('outside_removed', models.BooleanField(default=False)),
833
- ],
834
- ),
835
- migrations.CreateModel(
836
- name='Waste',
837
- fields=[
838
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
839
- ('name', models.CharField(max_length=255)),
840
- ('name_de', models.CharField(max_length=255, null=True)),
841
- ('name_en', models.CharField(max_length=255, null=True)),
842
- ],
843
- ),
844
- migrations.CreateModel(
845
- name='VideoPredictionMeta',
846
- fields=[
847
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
848
- ('date_created', models.DateTimeField(auto_now_add=True)),
849
- ('date_modified', models.DateTimeField(auto_now=True)),
850
- ('prediction_array', models.BinaryField(blank=True, null=True)),
851
- ('model_meta', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.modelmeta')),
852
- ('video', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='video_prediction_meta', to='endoreg_db.video')),
853
- ],
854
- options={
855
- 'abstract': False,
856
- 'unique_together': {('model_meta', 'video')},
857
- },
858
- ),
859
- migrations.CreateModel(
860
- name='VideoMeta',
861
- fields=[
862
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
863
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
864
- ('endoscope', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.endoscope')),
865
- ('ffmpeg_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.ffmpegmeta')),
866
- ('import_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.videoimportmeta')),
867
- ('processor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.endoscopyprocessor')),
868
- ],
869
- ),
870
- migrations.AddField(
871
- model_name='video',
872
- name='import_meta',
873
- field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.videoimportmeta'),
874
- ),
875
- migrations.AddField(
876
- model_name='video',
877
- name='patient',
878
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient'),
879
- ),
880
- migrations.CreateModel(
881
- name='TransportRoute',
882
- fields=[
883
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
884
- ('distance', models.FloatField()),
885
- ('name', models.CharField(max_length=255)),
886
- ('name_de', models.CharField(max_length=255, null=True)),
887
- ('name_en', models.CharField(max_length=255, null=True)),
888
- ('emission_factor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.emissionfactor')),
889
- ('unit', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.unit')),
890
- ],
891
- ),
892
- migrations.CreateModel(
893
- name='Ruleset',
894
- fields=[
895
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
896
- ('name', models.CharField(max_length=255, unique=True)),
897
- ('name_de', models.CharField(blank=True, max_length=255, null=True)),
898
- ('name_en', models.CharField(blank=True, max_length=255, null=True)),
899
- ('rules', models.ManyToManyField(to='endoreg_db.rule')),
900
- ],
901
- ),
902
- migrations.AddField(
903
- model_name='rule',
904
- name='attribute_dtype',
905
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.ruleattributedtype'),
906
- ),
907
- migrations.AddField(
908
- model_name='rule',
909
- name='rule_type',
910
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.ruletype'),
911
- ),
912
- migrations.CreateModel(
913
- name='ReportReaderConfig',
914
- fields=[
915
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
916
- ('locale', models.CharField(default='de_DE', max_length=10)),
917
- ('text_date_format', models.CharField(default='%d.%m.%Y', max_length=10)),
918
- ('cut_off_above', models.ManyToManyField(related_name='report_reader_configs_cut_off_above', to='endoreg_db.reportreaderflag')),
919
- ('cut_off_below', models.ManyToManyField(related_name='report_reader_configs_cut_off_below', to='endoreg_db.reportreaderflag')),
920
- ('endoscope_info_line_flag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_reader_configs_endoscope_info_line', to='endoreg_db.reportreaderflag')),
921
- ('examiner_info_line_flag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_reader_configs_examiner_info_line', to='endoreg_db.reportreaderflag')),
922
- ('first_names', models.ManyToManyField(related_name='report_reader_configs', to='endoreg_db.firstname')),
923
- ('last_names', models.ManyToManyField(related_name='report_reader_configs', to='endoreg_db.lastname')),
924
- ('patient_info_line_flag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_reader_configs_patient_info_line', to='endoreg_db.reportreaderflag')),
925
- ],
926
- ),
927
- migrations.CreateModel(
928
- name='ReportFile',
929
- fields=[
930
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
931
- ('pdf', models.FileField(blank=True, null=True, upload_to='raw_report_pdfs')),
932
- ('pdf_hash', models.CharField(max_length=255, unique=True)),
933
- ('meta', models.JSONField(blank=True, null=True)),
934
- ('text', models.TextField(blank=True, null=True)),
935
- ('text_anonymized', models.TextField(blank=True, null=True)),
936
- ('date', models.DateField(blank=True, null=True)),
937
- ('time', models.TimeField(blank=True, null=True)),
938
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
939
- ('examiner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.examiner')),
940
- ('patient', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
941
- ],
942
- ),
943
- migrations.CreateModel(
944
- name='ReferenceProduct',
945
- fields=[
946
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
947
- ('name', models.CharField(max_length=255)),
948
- ('emission_factor_package', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reference_product_package', to='endoreg_db.emissionfactor')),
949
- ('emission_factor_product', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reference_product_product', to='endoreg_db.emissionfactor')),
950
- ('emission_factor_total', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.emissionfactor')),
951
- ('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.product')),
952
- ('product_group', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='reference_product', to='endoreg_db.productgroup')),
953
- ],
954
- ),
955
- migrations.CreateModel(
956
- name='RawVideoFile',
957
- fields=[
958
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
959
- ('uuid', models.UUIDField()),
960
- ('file', models.FileField(upload_to='raw_data/')),
961
- ('original_file_name', models.CharField(max_length=255)),
962
- ('video_hash', models.CharField(max_length=255, unique=True)),
963
- ('uploaded_at', models.DateTimeField(auto_now_add=True)),
964
- ('state_frames_required', models.BooleanField(default=True)),
965
- ('state_frames_extracted', models.BooleanField(default=False)),
966
- ('state_initial_prediction_required', models.BooleanField(default=True)),
967
- ('state_initial_prediction_completed', models.BooleanField(default=False)),
968
- ('state_initial_prediction_import_required', models.BooleanField(default=True)),
969
- ('state_initial_prediction_import_completed', models.BooleanField(default=False)),
970
- ('state_ocr_required', models.BooleanField(default=True)),
971
- ('state_ocr_completed', models.BooleanField(default=False)),
972
- ('state_outside_validated', models.BooleanField(default=False)),
973
- ('state_ocr_result_validated', models.BooleanField(default=False)),
974
- ('state_sensitive_data_retrieved', models.BooleanField(default=False)),
975
- ('state_histology_required', models.BooleanField(blank=True, null=True)),
976
- ('state_histology_available', models.BooleanField(default=False)),
977
- ('state_follow_up_intervention_required', models.BooleanField(blank=True, null=True)),
978
- ('state_follow_up_intervention_available', models.BooleanField(default=False)),
979
- ('state_dataset_complete', models.BooleanField(default=False)),
980
- ('state_anonym_video_required', models.BooleanField(default=True)),
981
- ('state_anonym_video_performed', models.BooleanField(default=False)),
982
- ('state_original_reports_deleted', models.BooleanField(default=False)),
983
- ('state_original_video_deleted', models.BooleanField(default=False)),
984
- ('state_finalized', models.BooleanField(default=False)),
985
- ('frame_dir', models.CharField(max_length=255)),
986
- ('prediction_dir', models.CharField(max_length=255)),
987
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
988
- ('processor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.endoscopyprocessor')),
989
- ('sensitive_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.sensitivemeta')),
990
- ('video_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.videometa')),
991
- ],
992
- ),
993
- migrations.CreateModel(
994
- name='RawPdfFile',
995
- fields=[
996
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
997
- ('file', models.FileField(storage=django.core.files.storage.FileSystemStorage(location='/home/agl-admin/agl-monitor/agl_monitor/agl_monitor/erc_data/raw_pdf'), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])])),
998
- ('pdf_hash', models.CharField(max_length=255, unique=True)),
999
- ('state_report_processing_required', models.BooleanField(default=True)),
1000
- ('state_report_processed', models.BooleanField(default=False)),
1001
- ('text', models.TextField(blank=True, null=True)),
1002
- ('anonymized_text', models.TextField(blank=True, null=True)),
1003
- ('raw_meta', models.JSONField(blank=True, null=True)),
1004
- ('created_at', models.DateTimeField(auto_now_add=True)),
1005
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
1006
- ('pdf_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.pdftype')),
1007
- ('sensitive_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='raw_pdf_file', to='endoreg_db.sensitivemeta')),
1008
- ],
1009
- ),
1010
- migrations.CreateModel(
1011
- name='QuizQuestion',
1012
- fields=[
1013
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1014
- ('text', models.TextField()),
1015
- ('description', models.TextField(blank=True, null=True)),
1016
- ('question_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.quizquestiontype')),
1017
- ],
1018
- ),
1019
- migrations.CreateModel(
1020
- name='QuizAnswer',
1021
- fields=[
1022
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1023
- ('text_value', models.CharField(blank=True, max_length=255, null=True)),
1024
- ('number_value', models.FloatField(blank=True, null=True)),
1025
- ('last_updated', models.DateTimeField(auto_now=True)),
1026
- ('answer_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.quizanswertype')),
1027
- ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.quizquestion')),
1028
- ],
1029
- ),
1030
- migrations.CreateModel(
1031
- name='ProductWeight',
1032
- fields=[
1033
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1034
- ('name', models.CharField(max_length=255, null=True)),
1035
- ('measured', models.FloatField(null=True)),
1036
- ('verified', models.FloatField(null=True)),
1037
- ('manufacturer', models.FloatField(null=True)),
1038
- ('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.product')),
1039
- ('unit', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.unit')),
1040
- ],
1041
- ),
1042
- migrations.CreateModel(
1043
- name='ProductMaterial',
1044
- fields=[
1045
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1046
- ('component', models.CharField(max_length=255)),
1047
- ('quantity', models.FloatField()),
1048
- ('material', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.material')),
1049
- ('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='product_materials', to='endoreg_db.product')),
1050
- ('unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
1051
- ],
1052
- ),
1053
- migrations.AddField(
1054
- model_name='product',
1055
- name='product_group',
1056
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.productgroup'),
1057
- ),
1058
- migrations.AddField(
1059
- model_name='product',
1060
- name='transport_route',
1061
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.transportroute'),
1062
- ),
1063
- migrations.CreateModel(
1064
- name='PortalUserInfo',
1065
- fields=[
1066
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1067
- ('works_in_endoscopy', models.BooleanField(blank=True, null=True)),
1068
- ('profession', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.profession')),
1069
- ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
1070
- ],
1071
- ),
1072
- migrations.AddField(
1073
- model_name='pdftype',
1074
- name='cut_off_above_lines',
1075
- field=models.ManyToManyField(related_name='pdf_type_cut_off_above_lines', to='endoreg_db.reportreaderflag'),
1076
- ),
1077
- migrations.AddField(
1078
- model_name='pdftype',
1079
- name='cut_off_below_lines',
1080
- field=models.ManyToManyField(related_name='pdf_type_cut_off_below_lines', to='endoreg_db.reportreaderflag'),
1081
- ),
1082
- migrations.AddField(
1083
- model_name='pdftype',
1084
- name='endoscope_info_line',
1085
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_endoscopy_info_line', to='endoreg_db.reportreaderflag'),
1086
- ),
1087
- migrations.AddField(
1088
- model_name='pdftype',
1089
- name='examiner_info_line',
1090
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_examiner_info_line', to='endoreg_db.reportreaderflag'),
1091
- ),
1092
- migrations.AddField(
1093
- model_name='pdftype',
1094
- name='patient_info_line',
1095
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pdf_type_patient_info_line', to='endoreg_db.reportreaderflag'),
1096
- ),
1097
- migrations.CreateModel(
1098
- name='PdfMeta',
1099
- fields=[
1100
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1101
- ('date', models.DateField()),
1102
- ('time', models.TimeField()),
1103
- ('pdf_hash', models.CharField(max_length=255, unique=True)),
1104
- ('pdf_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.pdftype')),
1105
- ],
1106
- ),
1107
- migrations.CreateModel(
1108
- name='PatientMedicationSchedule',
1109
- fields=[
1110
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1111
- ('created_at', models.DateTimeField(auto_now_add=True)),
1112
- ('updated_at', models.DateTimeField(auto_now=True)),
1113
- ('medication', models.ManyToManyField(related_name='patient_medication_schedules', to='endoreg_db.patientmedication')),
1114
- ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
1115
- ],
1116
- ),
1117
- migrations.AddField(
1118
- model_name='patientmedication',
1119
- name='unit',
1120
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit'),
1121
- ),
1122
- migrations.CreateModel(
1123
- name='PatientLabValue',
1124
- fields=[
1125
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1126
- ('value', models.FloatField(blank=True, null=True)),
1127
- ('value_str', models.CharField(blank=True, max_length=255, null=True)),
1128
- ('datetime', models.DateTimeField(auto_now_add=True)),
1129
- ('normal_range', models.JSONField(default=dict)),
1130
- ('lab_value', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.labvalue')),
1131
- ('patient', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lab_values', to='endoreg_db.patient')),
1132
- ('sample', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='values', to='endoreg_db.patientlabsample')),
1133
- ('unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit')),
1134
- ],
1135
- ),
1136
- migrations.AddField(
1137
- model_name='patientlabsample',
1138
- name='sample_type',
1139
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patientlabsampletype'),
1140
- ),
1141
- migrations.CreateModel(
1142
- name='PatientExamination',
1143
- fields=[
1144
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1145
- ('examination', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.examination')),
1146
- ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='patient_examinations', to='endoreg_db.patient')),
1147
- ('report_file', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='patient_examination', to='endoreg_db.reportfile')),
1148
- ('video', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='patient_examination', to='endoreg_db.video')),
1149
- ],
1150
- options={
1151
- 'verbose_name': 'Patient Examination',
1152
- 'verbose_name_plural': 'Patient Examinations',
1153
- 'ordering': ['patient', 'examination'],
1154
- },
1155
- ),
1156
- migrations.CreateModel(
1157
- name='PatientEvent',
1158
- fields=[
1159
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1160
- ('date_start', models.DateField()),
1161
- ('date_end', models.DateField(blank=True, null=True)),
1162
- ('description', models.TextField(blank=True, null=True)),
1163
- ('last_update', models.DateTimeField(auto_now=True)),
1164
- ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.event')),
1165
- ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
1166
- ],
1167
- ),
1168
- migrations.CreateModel(
1169
- name='PatientDisease',
1170
- fields=[
1171
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1172
- ('start_date', models.DateField(blank=True, null=True)),
1173
- ('end_date', models.DateField(blank=True, null=True)),
1174
- ('last_update', models.DateTimeField(auto_now=True)),
1175
- ('classification_choices', models.ManyToManyField(to='endoreg_db.diseaseclassificationchoice')),
1176
- ('disease', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.disease')),
1177
- ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient')),
1178
- ],
1179
- ),
1180
- migrations.CreateModel(
1181
- name='NetworkDeviceLogEntry',
1182
- fields=[
1183
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1184
- ('timestamp', models.DateTimeField(auto_now_add=True)),
1185
- ('ip_address', models.GenericIPAddressField(blank=True, null=True)),
1186
- ('user_agent', models.CharField(blank=True, max_length=256, null=True)),
1187
- ('message', models.TextField()),
1188
- ('json_content', models.JSONField(blank=True, null=True)),
1189
- ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.networkdevice')),
1190
- ('log_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.logtype')),
1191
- ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
1192
- ],
1193
- options={
1194
- 'verbose_name': 'Network Device Log Entry',
1195
- 'verbose_name_plural': 'Network Device Log Entries',
1196
- },
1197
- ),
1198
- migrations.AddField(
1199
- model_name='networkdevice',
1200
- name='device_type',
1201
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.networkdevicetype'),
1202
- ),
1203
- migrations.AddField(
1204
- model_name='modelmeta',
1205
- name='type',
1206
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='models', to='endoreg_db.modeltype'),
1207
- ),
1208
- migrations.AddField(
1209
- model_name='medicationschedule',
1210
- name='unit',
1211
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit'),
1212
- ),
1213
- migrations.AddField(
1214
- model_name='medicationindication',
1215
- name='indication_type',
1216
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='medication_indications', to='endoreg_db.medicationindicationtype'),
1217
- ),
1218
- migrations.AddField(
1219
- model_name='medicationindication',
1220
- name='medication_schedules',
1221
- field=models.ManyToManyField(to='endoreg_db.medicationschedule'),
1222
- ),
1223
- migrations.AddField(
1224
- model_name='medicationindication',
1225
- name='sources',
1226
- field=models.ManyToManyField(to='endoreg_db.informationsource'),
1227
- ),
1228
- migrations.AddField(
1229
- model_name='medication',
1230
- name='default_unit',
1231
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit'),
1232
- ),
1233
- migrations.CreateModel(
1234
- name='LegacyVideoPredictionMeta',
1235
- fields=[
1236
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1237
- ('date_created', models.DateTimeField(auto_now_add=True)),
1238
- ('date_modified', models.DateTimeField(auto_now=True)),
1239
- ('prediction_array', models.BinaryField(blank=True, null=True)),
1240
- ('model_meta', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.modelmeta')),
1241
- ('video', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='video_prediction_meta', to='endoreg_db.legacyvideo')),
1242
- ],
1243
- options={
1244
- 'abstract': False,
1245
- 'unique_together': {('model_meta', 'video')},
1246
- },
1247
- ),
1248
- migrations.AddField(
1249
- model_name='legacyvideo',
1250
- name='patient',
1251
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.patient'),
1252
- ),
1253
- migrations.CreateModel(
1254
- name='LegacyLabelVideoSegment',
1255
- fields=[
1256
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1257
- ('start_frame_number', models.IntegerField()),
1258
- ('end_frame_number', models.IntegerField()),
1259
- ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.label')),
1260
- ('prediction_meta', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='video_segments', to='endoreg_db.legacyvideopredictionmeta')),
1261
- ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.informationsource')),
1262
- ('video', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.legacyvideo')),
1263
- ],
1264
- options={
1265
- 'abstract': False,
1266
- },
1267
- ),
1268
- migrations.CreateModel(
1269
- name='LegacyFrame',
1270
- fields=[
1271
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1272
- ('frame_number', models.IntegerField()),
1273
- ('image', models.ImageField(blank=True, null=True, upload_to='legacy_frames')),
1274
- ('suffix', models.CharField(max_length=255)),
1275
- ('video', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='frames', to='endoreg_db.legacyvideo')),
1276
- ],
1277
- ),
1278
- migrations.CreateModel(
1279
- name='LegacyBinaryClassificationAnnotationTask',
1280
- fields=[
1281
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1282
- ('is_finished', models.BooleanField(default=False)),
1283
- ('date_created', models.DateTimeField(auto_now_add=True)),
1284
- ('date_finished', models.DateTimeField(blank=True, null=True)),
1285
- ('image_path', models.CharField(blank=True, max_length=255, null=True)),
1286
- ('labelstudio_project_id', models.IntegerField(blank=True, null=True)),
1287
- ('labelstudio_task_id', models.IntegerField(blank=True, null=True)),
1288
- ('image_type', models.CharField(default='legacy', max_length=255)),
1289
- ('frame', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='binary_classification_annotation_tasks', to='endoreg_db.legacyframe')),
1290
- ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.label')),
1291
- ],
1292
- options={
1293
- 'abstract': False,
1294
- },
1295
- ),
1296
- migrations.AddField(
1297
- model_name='labvalue',
1298
- name='default_multiple_categorical_value_distribution',
1299
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='default_multiple_categorical_value_distribution', to='endoreg_db.multiplecategoricalvaluedistribution'),
1300
- ),
1301
- migrations.AddField(
1302
- model_name='labvalue',
1303
- name='default_numerical_value_distribution',
1304
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='default_numerical_value_distribution', to='endoreg_db.numericvaluedistribution'),
1305
- ),
1306
- migrations.AddField(
1307
- model_name='labvalue',
1308
- name='default_single_categorical_value_distribution',
1309
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='default_single_categorical_value_distribution', to='endoreg_db.singlecategoricalvaluedistribution'),
1310
- ),
1311
- migrations.AddField(
1312
- model_name='labvalue',
1313
- name='default_unit',
1314
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.unit'),
1315
- ),
1316
- migrations.CreateModel(
1317
- name='LabelVideoSegment',
1318
- fields=[
1319
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1320
- ('start_frame_number', models.IntegerField()),
1321
- ('end_frame_number', models.IntegerField()),
1322
- ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.label')),
1323
- ('prediction_meta', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='video_segments', to='endoreg_db.videopredictionmeta')),
1324
- ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.informationsource')),
1325
- ('video', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.video')),
1326
- ],
1327
- options={
1328
- 'abstract': False,
1329
- },
1330
- ),
1331
- migrations.AddField(
1332
- model_name='label',
1333
- name='label_type',
1334
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='labels', to='endoreg_db.labeltype'),
1335
- ),
1336
- migrations.CreateModel(
1337
- name='ImageClassificationPrediction',
1338
- fields=[
1339
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1340
- ('value', models.BooleanField()),
1341
- ('confidence', models.FloatField()),
1342
- ('date_created', models.DateTimeField(auto_now_add=True)),
1343
- ('frame', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_predictions', to='endoreg_db.frame')),
1344
- ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_predictions', to='endoreg_db.label')),
1345
- ('legacy_frame', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_predictions', to='endoreg_db.legacyframe')),
1346
- ('legacy_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_predictions', to='endoreg_db.legacyimage')),
1347
- ('model_meta', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_predictions', to='endoreg_db.modelmeta')),
1348
- ],
1349
- ),
1350
- migrations.CreateModel(
1351
- name='ImageClassificationAnnotation',
1352
- fields=[
1353
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1354
- ('value', models.BooleanField()),
1355
- ('annotator', models.CharField(max_length=255)),
1356
- ('date_created', models.DateTimeField(auto_now_add=True)),
1357
- ('date_modified', models.DateTimeField(auto_now=True)),
1358
- ('frame', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_annotations', to='endoreg_db.frame')),
1359
- ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_annotations', to='endoreg_db.label')),
1360
- ('legacy_frame', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_annotations', to='endoreg_db.legacyframe')),
1361
- ('legacy_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='image_classification_annotations', to='endoreg_db.legacyimage')),
1362
- ],
1363
- ),
1364
- migrations.AddField(
1365
- model_name='frame',
1366
- name='video',
1367
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='frames', to='endoreg_db.video'),
1368
- ),
1369
- migrations.AddField(
1370
- model_name='examiner',
1371
- name='gender',
1372
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.gender'),
1373
- ),
1374
- migrations.CreateModel(
1375
- name='ExaminationTimeType',
1376
- fields=[
1377
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1378
- ('name', models.CharField(max_length=100, unique=True)),
1379
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
1380
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
1381
- ('examinations', models.ManyToManyField(blank=True, to='endoreg_db.examination')),
1382
- ],
1383
- options={
1384
- 'verbose_name': 'Examination Time Type',
1385
- 'verbose_name_plural': 'Examination Time Types',
1386
- 'ordering': ['name'],
1387
- },
1388
- ),
1389
- migrations.CreateModel(
1390
- name='ExaminationTime',
1391
- fields=[
1392
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1393
- ('name', models.CharField(max_length=100, unique=True)),
1394
- ('name_de', models.CharField(blank=True, max_length=100, null=True)),
1395
- ('name_en', models.CharField(blank=True, max_length=100, null=True)),
1396
- ('start_time', models.TimeField(blank=True, null=True)),
1397
- ('end_time', models.TimeField(blank=True, null=True)),
1398
- ('time_types', models.ManyToManyField(blank=True, to='endoreg_db.examinationtimetype')),
1399
- ],
1400
- options={
1401
- 'verbose_name': 'Examination Time',
1402
- 'verbose_name_plural': 'Examination Times',
1403
- 'ordering': ['name'],
1404
- },
1405
- ),
1406
- migrations.AddField(
1407
- model_name='examination',
1408
- name='examination_types',
1409
- field=models.ManyToManyField(blank=True, to='endoreg_db.examinationtype'),
1410
- ),
1411
- migrations.AddField(
1412
- model_name='emissionfactor',
1413
- name='unit',
1414
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.unit'),
1415
- ),
1416
- migrations.CreateModel(
1417
- name='CenterWaste',
1418
- fields=[
1419
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1420
- ('year', models.IntegerField()),
1421
- ('quantity', models.FloatField()),
1422
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
1423
- ('emission_factor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.emissionfactor')),
1424
- ('unit', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.unit')),
1425
- ('waste', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.waste')),
1426
- ],
1427
- ),
1428
- migrations.CreateModel(
1429
- name='CenterResource',
1430
- fields=[
1431
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1432
- ('name', models.CharField(max_length=255, null=True)),
1433
- ('name_de', models.CharField(max_length=255, null=True)),
1434
- ('name_en', models.CharField(max_length=255, null=True)),
1435
- ('quantity', models.FloatField()),
1436
- ('year', models.IntegerField()),
1437
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
1438
- ('resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.resource')),
1439
- ('transport_emission_factor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='center_resource_transport_emission_factor', to='endoreg_db.emissionfactor')),
1440
- ('unit', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.unit')),
1441
- ('use_emission_factor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='center_resource_use_emission_factor', to='endoreg_db.emissionfactor')),
1442
- ],
1443
- ),
1444
- migrations.CreateModel(
1445
- name='CenterProduct',
1446
- fields=[
1447
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1448
- ('date_used', models.DateField()),
1449
- ('center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.center')),
1450
- ('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.product')),
1451
- ],
1452
- ),
1453
- migrations.AddField(
1454
- model_name='center',
1455
- name='first_names',
1456
- field=models.ManyToManyField(related_name='centers', to='endoreg_db.firstname'),
1457
- ),
1458
- migrations.AddField(
1459
- model_name='center',
1460
- name='last_names',
1461
- field=models.ManyToManyField(related_name='centers', to='endoreg_db.lastname'),
1462
- ),
1463
- migrations.CreateModel(
1464
- name='CaseTemplateRule',
1465
- fields=[
1466
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1467
- ('name', models.CharField(max_length=255)),
1468
- ('name_de', models.CharField(max_length=255, null=True)),
1469
- ('name_en', models.CharField(max_length=255, null=True)),
1470
- ('description', models.TextField(blank=True, null=True)),
1471
- ('parent_model', models.CharField(blank=True, max_length=255, null=True)),
1472
- ('parent_field', models.CharField(blank=True, max_length=255, null=True)),
1473
- ('target_field', models.CharField(blank=True, max_length=255, null=True)),
1474
- ('target_model', models.CharField(blank=True, max_length=255, null=True)),
1475
- ('rule_values', models.JSONField(blank=True, null=True)),
1476
- ('extra_parameters', models.JSONField(blank=True, null=True)),
1477
- ('chained_rules', models.ManyToManyField(related_name='calling_rules', to='endoreg_db.casetemplaterule')),
1478
- ('date_value_distribution', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.datevaluedistribution')),
1479
- ('multiple_categorical_value_distribution', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.multiplecategoricalvaluedistribution')),
1480
- ('numerical_value_distribution', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.numericvaluedistribution')),
1481
- ('rule_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.casetemplateruletype')),
1482
- ('single_categorical_value_distribution', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.singlecategoricalvaluedistribution')),
1483
- ('value_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.casetemplaterulevaluetype')),
1484
- ],
1485
- ),
1486
- migrations.CreateModel(
1487
- name='CaseTemplate',
1488
- fields=[
1489
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1490
- ('name', models.CharField(max_length=255, unique=True)),
1491
- ('description', models.TextField(blank=True, null=True)),
1492
- ('rules', models.ManyToManyField(to='endoreg_db.casetemplaterule')),
1493
- ('secondary_rules', models.ManyToManyField(related_name='secondary_rules', to='endoreg_db.casetemplaterule')),
1494
- ('template_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='case_templates', to='endoreg_db.casetemplatetype')),
1495
- ],
1496
- ),
1497
- migrations.CreateModel(
1498
- name='BinaryClassificationAnnotationTask',
1499
- fields=[
1500
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1501
- ('is_finished', models.BooleanField(default=False)),
1502
- ('date_created', models.DateTimeField(auto_now_add=True)),
1503
- ('date_finished', models.DateTimeField(blank=True, null=True)),
1504
- ('image_path', models.CharField(blank=True, max_length=255, null=True)),
1505
- ('labelstudio_project_id', models.IntegerField(blank=True, null=True)),
1506
- ('labelstudio_task_id', models.IntegerField(blank=True, null=True)),
1507
- ('image_type', models.CharField(default='frame', max_length=255)),
1508
- ('frame', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='binary_classification_annotation_tasks', to='endoreg_db.frame')),
1509
- ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.label')),
1510
- ],
1511
- options={
1512
- 'abstract': False,
1513
- },
1514
- ),
1515
- migrations.CreateModel(
1516
- name='AglServiceLogEntry',
1517
- fields=[
1518
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1519
- ('timestamp', models.DateTimeField(auto_now_add=True)),
1520
- ('ip_address', models.GenericIPAddressField(blank=True, null=True)),
1521
- ('user_agent', models.CharField(blank=True, max_length=256, null=True)),
1522
- ('message', models.TextField()),
1523
- ('json_content', models.JSONField(blank=True, null=True)),
1524
- ('device', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.networkdevice')),
1525
- ('log_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.logtype')),
1526
- ('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.aglservice')),
1527
- ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
1528
- ],
1529
- options={
1530
- 'verbose_name': 'AGL Service Log Entry',
1531
- 'verbose_name_plural': 'AGL Service Log Entries',
1532
- },
1533
- ),
1534
- migrations.AddField(
1535
- model_name='aglservice',
1536
- name='devices',
1537
- field=models.ManyToManyField(related_name='services', to='endoreg_db.networkdevice'),
1538
- ),
1539
- migrations.CreateModel(
1540
- name='ActiveModel',
1541
- fields=[
1542
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
1543
- ('name', models.CharField(max_length=255, unique=True)),
1544
- ('model_meta', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='endoreg_db.modelmeta')),
1545
- ],
1546
- ),
1547
- migrations.AddIndex(
1548
- model_name='legacyframe',
1549
- index=models.Index(fields=['video', 'frame_number'], name='endoreg_db__video_i_e10f1c_idx'),
1550
- ),
1551
- migrations.AlterUniqueTogether(
1552
- name='legacyframe',
1553
- unique_together={('video', 'frame_number')},
1554
- ),
1555
- migrations.AlterUniqueTogether(
1556
- name='imageclassificationprediction',
1557
- unique_together={('label', 'frame', 'model_meta')},
1558
- ),
1559
- migrations.AddIndex(
1560
- model_name='frame',
1561
- index=models.Index(fields=['video', 'frame_number'], name='endoreg_db__video_i_56cc44_idx'),
1562
- ),
1563
- migrations.AlterUniqueTogether(
1564
- name='frame',
1565
- unique_together={('video', 'frame_number')},
1566
- ),
1567
- ]