canvas 0.13.1__tar.gz → 0.13.3__tar.gz

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 canvas might be problematic. Click here for more details.

Files changed (280) hide show
  1. {canvas-0.13.1 → canvas-0.13.3}/PKG-INFO +1 -1
  2. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/allergy_intolerance.py +4 -2
  3. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/billing.py +4 -2
  4. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/command.py +4 -4
  5. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/condition.py +8 -4
  6. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/detected_issue.py +8 -5
  7. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/device.py +6 -4
  8. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/imaging.py +15 -13
  9. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/lab.py +19 -13
  10. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/medication.py +8 -4
  11. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/note.py +8 -6
  12. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/observation.py +11 -9
  13. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/practicelocation.py +2 -2
  14. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/protocol_override.py +3 -5
  15. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/questionnaire.py +15 -13
  16. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/staff.py +4 -4
  17. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/task.py +12 -8
  18. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/plugin_runner.py +0 -1
  19. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/plugin_synchronizer.py +3 -1
  20. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/test_plugin_runner.py +0 -14
  21. {canvas-0.13.1 → canvas-0.13.3}/pyproject.toml +1 -1
  22. {canvas-0.13.1 → canvas-0.13.3}/settings.py +2 -5
  23. {canvas-0.13.1 → canvas-0.13.3}/README.md +0 -0
  24. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/__init__.py +0 -0
  25. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/__init__.py +0 -0
  26. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/auth/__init__.py +0 -0
  27. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/auth/tests.py +0 -0
  28. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/auth/utils.py +0 -0
  29. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/__init__.py +0 -0
  30. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/emit.py +0 -0
  31. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ALLERGY_INTOLERANCE_CREATED.ndjson +0 -0
  32. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ALLERGY_INTOLERANCE_UPDATED.ndjson +0 -0
  33. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_CANCELED.ndjson +0 -0
  34. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_CHECKED_IN.ndjson +0 -0
  35. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_CREATED.ndjson +0 -0
  36. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_NO_SHOWED.ndjson +0 -0
  37. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_RESCHEDULED.ndjson +0 -0
  38. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_RESTORED.ndjson +0 -0
  39. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_UPDATED.ndjson +0 -0
  40. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__CONDITION_SELECTED.ndjson +0 -0
  41. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__POST_COMMIT.ndjson +0 -0
  42. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__POST_ORIGINATE.ndjson +0 -0
  43. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__POST_UPDATE.ndjson +0 -0
  44. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__PRE_COMMIT.ndjson +0 -0
  45. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  46. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__PRE_UPDATE.ndjson +0 -0
  47. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/BILLING_LINE_ITEM_CREATED.ndjson +0 -0
  48. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/BILLING_LINE_ITEM_UPDATED.ndjson +0 -0
  49. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/CONDITION_ASSESSED.ndjson +0 -0
  50. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/CONDITION_CREATED.ndjson +0 -0
  51. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/CONDITION_UPDATED.ndjson +0 -0
  52. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/CRON.ndjson +0 -0
  53. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ENCOUNTER_CREATED.ndjson +0 -0
  54. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/ENCOUNTER_UPDATED.ndjson +0 -0
  55. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_CREATED.ndjson +0 -0
  56. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_STATEMENT_CREATED.ndjson +0 -0
  57. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_STATEMENT_UPDATED.ndjson +0 -0
  58. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_UPDATED.ndjson +0 -0
  59. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/INTERVIEW_CREATED.ndjson +0 -0
  60. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/INTERVIEW_UPDATED.ndjson +0 -0
  61. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/LAB_ORDER_CREATED.ndjson +0 -0
  62. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/LAB_ORDER_UPDATED.ndjson +0 -0
  63. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_LIST_ITEM_CREATED.ndjson +0 -0
  64. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_LIST_ITEM_UPDATED.ndjson +0 -0
  65. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__POST_COMMIT.ndjson +0 -0
  66. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__POST_ORIGINATE.ndjson +0 -0
  67. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__POST_UPDATE.ndjson +0 -0
  68. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__PRE_COMMIT.ndjson +0 -0
  69. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  70. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__PRE_UPDATE.ndjson +0 -0
  71. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT__MEDICATION__POST_SEARCH.ndjson +0 -0
  72. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/PATIENT_CREATED.ndjson +0 -0
  73. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/PATIENT_UPDATED.ndjson +0 -0
  74. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/PLAN_COMMAND__POST_ORIGINATE.ndjson +0 -0
  75. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/PLAN_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  76. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__POST_COMMIT.ndjson +0 -0
  77. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__POST_ORIGINATE.ndjson +0 -0
  78. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__POST_UPDATE.ndjson +0 -0
  79. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__PRE_COMMIT.ndjson +0 -0
  80. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  81. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__PRE_UPDATE.ndjson +0 -0
  82. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE__QUESTIONNAIRE__POST_SEARCH.ndjson +0 -0
  83. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/TASK_COMMENT_CREATED.ndjson +0 -0
  84. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/TASK_CREATED.ndjson +0 -0
  85. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/TASK_UPDATED.ndjson +0 -0
  86. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/VITAL_SIGN_CREATED.ndjson +0 -0
  87. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/emit/event_fixtures/VITAL_SIGN_UPDATED.ndjson +0 -0
  88. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/logs/__init__.py +0 -0
  89. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/logs/logs.py +0 -0
  90. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/plugin/__init__.py +0 -0
  91. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/plugin/plugin.py +0 -0
  92. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/plugin/tests.py +0 -0
  93. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/run_plugins/__init__.py +0 -0
  94. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/apps/run_plugins/run_plugins.py +0 -0
  95. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/conftest.py +0 -0
  96. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/main.py +0 -0
  97. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/application/cookiecutter.json +0 -0
  98. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/CANVAS_MANIFEST.json +0 -0
  99. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/README.md +0 -0
  100. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/applications/__init__.py +0 -0
  101. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/applications/my_application.py +0 -0
  102. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/assets/python-logo.png +0 -0
  103. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/default/cookiecutter.json +0 -0
  104. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/CANVAS_MANIFEST.json +0 -0
  105. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/README.md +0 -0
  106. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/protocols/__init__.py +0 -0
  107. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/protocols/my_protocol.py +0 -0
  108. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/tests.py +0 -0
  109. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/__init__.py +0 -0
  110. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/context/__init__.py +0 -0
  111. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/context/context.py +0 -0
  112. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/context/tests.py +0 -0
  113. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/print/__init__.py +0 -0
  114. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/print/print.py +0 -0
  115. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/print/tests.py +0 -0
  116. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/urls/__init__.py +0 -0
  117. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/urls/tests.py +0 -0
  118. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/urls/urls.py +0 -0
  119. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/validators/__init__.py +0 -0
  120. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/validators/manifest_schema.py +0 -0
  121. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/validators/tests.py +0 -0
  122. {canvas-0.13.1 → canvas-0.13.3}/canvas_cli/utils/validators/validators.py +0 -0
  123. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/effects_pb2.py +0 -0
  124. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/effects_pb2.pyi +0 -0
  125. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/effects_pb2_grpc.py +0 -0
  126. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/events_pb2.py +0 -0
  127. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/events_pb2.pyi +0 -0
  128. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/events_pb2_grpc.py +0 -0
  129. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/plugins_pb2.py +0 -0
  130. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/plugins_pb2.pyi +0 -0
  131. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/messages/plugins_pb2_grpc.py +0 -0
  132. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/services/plugin_runner_pb2.py +0 -0
  133. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/services/plugin_runner_pb2.pyi +0 -0
  134. {canvas-0.13.1 → canvas-0.13.3}/canvas_generated/services/plugin_runner_pb2_grpc.py +0 -0
  135. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/__init__.py +0 -0
  136. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/base.py +0 -0
  137. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/__init__.py +0 -0
  138. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/base.py +0 -0
  139. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/allergy.py +0 -0
  140. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/assess.py +0 -0
  141. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/close_goal.py +0 -0
  142. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/diagnose.py +0 -0
  143. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/exam.py +0 -0
  144. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/family_history.py +0 -0
  145. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/goal.py +0 -0
  146. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/history_present_illness.py +0 -0
  147. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/instruct.py +0 -0
  148. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/lab_order.py +0 -0
  149. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/medical_history.py +0 -0
  150. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/medication_statement.py +0 -0
  151. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/past_surgical_history.py +0 -0
  152. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/perform.py +0 -0
  153. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/plan.py +0 -0
  154. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/prescribe.py +0 -0
  155. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/questionnaire.py +0 -0
  156. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/reason_for_visit.py +0 -0
  157. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/refill.py +0 -0
  158. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/remove_allergy.py +0 -0
  159. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/review_of_systems.py +0 -0
  160. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/stop_medication.py +0 -0
  161. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/structured_assessment.py +0 -0
  162. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/task.py +0 -0
  163. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/update_diagnosis.py +0 -0
  164. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/update_goal.py +0 -0
  165. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/commands/vitals.py +0 -0
  166. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/constants.py +0 -0
  167. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/protocol/__init__.py +0 -0
  168. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/protocol/tests.py +0 -0
  169. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/schema/__init__.py +0 -0
  170. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/schema/tests.py +0 -0
  171. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/test_utils.py +0 -0
  172. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/unit/__init__.py +0 -0
  173. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/commands/tests/unit/tests.py +0 -0
  174. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/__init__.py +0 -0
  175. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/banner_alert/__init__.py +0 -0
  176. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/banner_alert/add_banner_alert.py +0 -0
  177. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/banner_alert/remove_banner_alert.py +0 -0
  178. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/banner_alert/tests.py +0 -0
  179. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/base.py +0 -0
  180. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/launch_modal.py +0 -0
  181. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/patient_chart_summary_configuration.py +0 -0
  182. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/patient_portal/__init__.py +0 -0
  183. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/patient_portal/intake_form_results.py +0 -0
  184. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/patient_profile_configuration.py +0 -0
  185. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/protocol_card/__init__.py +0 -0
  186. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/protocol_card/protocol_card.py +0 -0
  187. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/protocol_card/tests.py +0 -0
  188. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/show_button.py +0 -0
  189. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/surescripts/surescripts_messages.py +0 -0
  190. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/effects/task/task.py +0 -0
  191. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/events/__init__.py +0 -0
  192. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/events/base.py +0 -0
  193. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/handlers/__init__.py +0 -0
  194. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/handlers/action_button.py +0 -0
  195. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/handlers/application.py +0 -0
  196. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/handlers/base.py +0 -0
  197. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/handlers/cron_task.py +0 -0
  198. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/models/__init__.py +0 -0
  199. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/protocols/__init__.py +0 -0
  200. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/protocols/base.py +0 -0
  201. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/protocols/clinical_quality_measure.py +0 -0
  202. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/protocols/timeframe.py +0 -0
  203. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/tests/__init__.py +0 -0
  204. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/utils/__init__.py +0 -0
  205. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/utils/db.py +0 -0
  206. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/utils/http.py +0 -0
  207. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/utils/stats.py +0 -0
  208. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/utils/tests.py +0 -0
  209. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/__init__.py +0 -0
  210. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/__init__.py +0 -0
  211. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/base.py +0 -0
  212. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/common.py +0 -0
  213. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/organization.py +0 -0
  214. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/patient.py +0 -0
  215. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/v1/data/user.py +0 -0
  216. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/__init__.py +0 -0
  217. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/custom.py +0 -0
  218. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/tests/test_value_sets.py +0 -0
  219. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/__init__.py +0 -0
  220. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/adverse_event.py +0 -0
  221. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/allergy.py +0 -0
  222. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/assessment.py +0 -0
  223. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/communication.py +0 -0
  224. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/condition.py +0 -0
  225. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/device.py +0 -0
  226. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/diagnostic_study.py +0 -0
  227. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/encounter.py +0 -0
  228. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/immunization.py +0 -0
  229. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/individual_characteristic.py +0 -0
  230. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/intervention.py +0 -0
  231. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/laboratory_test.py +0 -0
  232. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/medication.py +0 -0
  233. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/physical_exam.py +0 -0
  234. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/procedure.py +0 -0
  235. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/v2022/symptom.py +0 -0
  236. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/value_set/value_set.py +0 -0
  237. {canvas-0.13.1 → canvas-0.13.3}/canvas_sdk/views/__init__.py +0 -0
  238. {canvas-0.13.1 → canvas-0.13.3}/logger/__init__.py +0 -0
  239. {canvas-0.13.1 → canvas-0.13.3}/logger/logger.py +0 -0
  240. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/__init__.py +0 -0
  241. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/authentication.py +0 -0
  242. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/exceptions.py +0 -0
  243. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/plugin_installer.py +0 -0
  244. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/sandbox.py +0 -0
  245. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/__init__.py +0 -0
  246. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/data/plugins/.gitkeep +0 -0
  247. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/example_plugin/CANVAS_MANIFEST.json +0 -0
  248. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/example_plugin/README.md +0 -0
  249. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/example_plugin/__init__.py +0 -0
  250. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/example_plugin/protocols/__init__.py +0 -0
  251. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/example_plugin/protocols/my_protocol.py +0 -0
  252. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v1/CANVAS_MANIFEST.json +0 -0
  253. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v1/README.md +0 -0
  254. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v1/other_module/__init__.py +0 -0
  255. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v1/other_module/base.py +0 -0
  256. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v1/protocols/__init__.py +0 -0
  257. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v1/protocols/my_protocol.py +0 -0
  258. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v2/CANVAS_MANIFEST.json +0 -0
  259. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v2/README.md +0 -0
  260. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v2/other_module/__init__.py +0 -0
  261. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v2/other_module/base.py +0 -0
  262. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v2/protocols/__init__.py +0 -0
  263. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v2/protocols/my_protocol.py +0 -0
  264. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v3/CANVAS_MANIFEST.json +0 -0
  265. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v3/README.md +0 -0
  266. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v3/other_module/__init__.py +0 -0
  267. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v3/other_module/base.py +0 -0
  268. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v3/protocols/__init__.py +0 -0
  269. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_outside_plugin_v3/protocols/my_protocol.py +0 -0
  270. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_plugin/CANVAS_MANIFEST.json +0 -0
  271. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_plugin/README.md +0 -0
  272. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_plugin/other_module/__init__.py +0 -0
  273. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_plugin/other_module/base.py +0 -0
  274. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_plugin/protocols/__init__.py +0 -0
  275. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/fixtures/plugins/test_module_imports_plugin/protocols/my_protocol.py +0 -0
  276. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/test_application.py +0 -0
  277. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/test_plugin_installer.py +0 -0
  278. {canvas-0.13.1 → canvas-0.13.3}/plugin_runner/tests/test_sandbox.py +0 -0
  279. {canvas-0.13.1 → canvas-0.13.3}/pubsub/__init__.py +0 -0
  280. {canvas-0.13.1 → canvas-0.13.3}/pubsub/pubsub.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: canvas
3
- Version: 0.13.1
3
+ Version: 0.13.3
4
4
  Summary: SDK to customize event-driven actions in your Canvas instance
5
5
  License: MIT
6
6
  Author: Canvas Team
@@ -20,12 +20,13 @@ class AllergyIntolerance(models.Model):
20
20
  created = models.DateTimeField()
21
21
  modified = models.DateTimeField()
22
22
  deleted = models.BooleanField()
23
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
24
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
23
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
24
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
25
25
  patient = models.ForeignKey(
26
26
  Patient,
27
27
  on_delete=models.DO_NOTHING,
28
28
  related_name="allergy_intolerances",
29
+ null=True,
29
30
  )
30
31
  note_id = models.BigIntegerField()
31
32
  allergy_intolerance_type = models.CharField()
@@ -58,4 +59,5 @@ class AllergyIntoleranceCoding(models.Model):
58
59
  AllergyIntolerance,
59
60
  on_delete=models.DO_NOTHING,
60
61
  related_name="codings",
62
+ null=True,
61
63
  )
@@ -46,9 +46,11 @@ class BillingLineItem(models.Model):
46
46
  dbid = models.BigIntegerField(primary_key=True)
47
47
  created = models.DateTimeField()
48
48
  modified = models.DateTimeField()
49
- note = models.ForeignKey(Note, on_delete=models.DO_NOTHING, related_name="billing_line_items")
49
+ note = models.ForeignKey(
50
+ Note, on_delete=models.DO_NOTHING, related_name="billing_line_items", null=True
51
+ )
50
52
  patient = models.ForeignKey(
51
- Patient, on_delete=models.DO_NOTHING, related_name="billing_line_items"
53
+ Patient, on_delete=models.DO_NOTHING, related_name="billing_line_items", null=True
52
54
  )
53
55
  cpt = models.CharField()
54
56
  charge = models.DecimalField()
@@ -16,11 +16,11 @@ class Command(models.Model):
16
16
  dbid = models.BigIntegerField(primary_key=True)
17
17
  created = models.DateTimeField()
18
18
  modified = models.DateTimeField()
19
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
20
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
21
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
19
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
20
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
21
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
22
22
  state = models.CharField()
23
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING)
23
+ patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, null=True)
24
24
  note_id = models.BigIntegerField()
25
25
  schema_key = models.TextField()
26
26
  data = models.JSONField()
@@ -35,9 +35,11 @@ class Condition(models.Model):
35
35
  id = models.UUIDField()
36
36
  dbid = models.BigIntegerField(primary_key=True)
37
37
  deleted = models.BooleanField()
38
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
39
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
40
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="conditions")
38
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
39
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
40
+ patient = models.ForeignKey(
41
+ Patient, on_delete=models.DO_NOTHING, related_name="conditions", null=True
42
+ )
41
43
  onset_date = models.DateField()
42
44
  resolution_date = models.DateField()
43
45
  clinical_status = models.CharField(choices=ClinicalStatus.choices)
@@ -57,4 +59,6 @@ class ConditionCoding(models.Model):
57
59
  code = models.CharField()
58
60
  display = models.CharField()
59
61
  user_selected = models.BooleanField()
60
- condition = models.ForeignKey(Condition, on_delete=models.DO_NOTHING, related_name="codings")
62
+ condition = models.ForeignKey(
63
+ Condition, on_delete=models.DO_NOTHING, related_name="codings", null=True
64
+ )
@@ -18,11 +18,11 @@ class DetectedIssue(models.Model):
18
18
  modified = models.DateTimeField()
19
19
  identified = models.DateTimeField()
20
20
  deleted = models.BooleanField()
21
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
22
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
23
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
21
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
22
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
23
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
24
24
  patient = models.ForeignKey(
25
- Patient, on_delete=models.DO_NOTHING, related_name="detected_issues"
25
+ Patient, on_delete=models.DO_NOTHING, related_name="detected_issues", null=True
26
26
  )
27
27
  code = models.CharField()
28
28
  status = models.CharField()
@@ -48,5 +48,8 @@ class DetectedIssueEvidence(models.Model):
48
48
  display = models.CharField()
49
49
  user_selected = models.BooleanField()
50
50
  detected_issue = models.ForeignKey(
51
- DetectedIssue, on_delete=models.DO_NOTHING, related_name="evidence"
51
+ DetectedIssue,
52
+ on_delete=models.DO_NOTHING,
53
+ related_name="evidence",
54
+ null=True,
52
55
  )
@@ -16,10 +16,12 @@ class Device(models.Model):
16
16
  dbid = models.BigIntegerField(primary_key=True)
17
17
  created = models.DateTimeField()
18
18
  modified = models.DateTimeField()
19
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
20
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
21
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
22
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="devices")
19
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
20
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
21
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
22
+ patient = models.ForeignKey(
23
+ Patient, on_delete=models.DO_NOTHING, related_name="devices", null=True
24
+ )
23
25
  note_id = models.BigIntegerField()
24
26
  deleted = models.BooleanField()
25
27
  labeled_contains_NRL = models.BooleanField()
@@ -22,23 +22,25 @@ class ImagingOrder(models.Model):
22
22
  dbid = models.BigIntegerField(primary_key=True)
23
23
  created = models.DateTimeField()
24
24
  modified = models.DateTimeField()
25
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
25
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
26
26
  deleted = models.BooleanField()
27
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
27
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
28
28
  entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
29
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="imaging_orders")
29
+ patient = models.ForeignKey(
30
+ Patient, on_delete=models.DO_NOTHING, related_name="imaging_orders", null=True
31
+ )
30
32
  # TODO - uncomment when Note model is complete
31
- # note = models.ForeigneKey(Note, on_delete=models.DO_NOTHING, related_name="imaging_orders")
33
+ # note = models.ForeigneKey(Note, on_delete=models.DO_NOTHING, related_name="imaging_orders", null=True)
32
34
  imaging = models.CharField()
33
35
  # TODO - uncomment when ServiceProvider model is complete
34
- # imaging_center = models.ForeignKey(ServiceProvider, related_name="imaging_orders", null=True, on_delete=models.DO_NOTHING)
36
+ # imaging_center = models.ForeignKey(ServiceProvider, on_delete=models.DO_NOTHING, related_name="imaging_orders", null=True)
35
37
  note_to_radiologist = models.CharField()
36
38
  internal_comment = models.CharField()
37
39
  status = models.CharField(choices=OrderStatus)
38
40
  date_time_ordered = models.DateTimeField()
39
41
  priority = models.CharField()
40
42
  # TODO - uncomment when Staff model is complete
41
- # ordering_provider = models.ForeignKey(Staff, on_delete=models.CASCADE, related_name="imaging_orders", null=True)
43
+ # ordering_provider = models.ForeignKey(Staff, on_delete=models.DO_NOTHING, related_name="imaging_orders", null=True)
42
44
  delegated = models.BooleanField(default=False)
43
45
 
44
46
 
@@ -54,19 +56,19 @@ class ImagingReview(models.Model):
54
56
  dbid = models.BigIntegerField(primary_key=True)
55
57
  created = models.DateTimeField()
56
58
  modified = models.DateTimeField()
57
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
59
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
58
60
  deleted = models.BooleanField()
59
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
60
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
61
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
62
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
61
63
  patient_communication_method = models.CharField(choices=ReviewPatientCommunicationMethod)
62
64
  # TODO - uncomment when Note model is complete
63
- # note = models.ForeignKey(Note, on_delete=models.DO_NOTHING, related_name="imaging_reviews")
65
+ # note = models.ForeignKey(Note, on_delete=models.DO_NOTHING, related_name="imaging_reviews", null=True)
64
66
  internal_comment = models.CharField()
65
67
  message_to_patient = models.CharField()
66
68
  is_released_to_patient = models.BooleanField()
67
69
  status = models.CharField(choices=ReviewStatus)
68
70
  patient = models.ForeignKey(
69
- Patient, on_delete=models.DO_NOTHING, related_name="imaging_reviews"
71
+ Patient, on_delete=models.DO_NOTHING, related_name="imaging_reviews", null=True
70
72
  )
71
73
 
72
74
 
@@ -92,11 +94,11 @@ class ImagingReport(models.Model):
92
94
  requires_signature = models.BooleanField()
93
95
  assigned_date = models.DateTimeField()
94
96
  patient = models.ForeignKey(
95
- Patient, on_delete=models.DO_NOTHING, related_name="imaging_results"
97
+ Patient, on_delete=models.DO_NOTHING, related_name="imaging_results", null=True
96
98
  )
97
99
  order = models.ForeignKey(ImagingOrder, on_delete=models.DO_NOTHING, null=True)
98
100
  source = models.CharField(choices=ImagingReportSource)
99
101
  name = models.CharField()
100
102
  result_date = models.DateField()
101
103
  original_date = models.DateField()
102
- review = models.ForeignKey(ImagingReview, null=True, on_delete=models.DO_NOTHING)
104
+ review = models.ForeignKey(ImagingReview, on_delete=models.DO_NOTHING, null=True)
@@ -47,12 +47,12 @@ class LabReport(models.Model):
47
47
  version = models.IntegerField()
48
48
  requisition_number = models.CharField()
49
49
  review = models.ForeignKey(
50
- "LabReview", related_name="reports", on_delete=models.DO_NOTHING, null=True
50
+ "LabReview", on_delete=models.DO_NOTHING, related_name="reports", null=True
51
51
  )
52
52
  original_date = models.DateTimeField()
53
53
  date_performed = models.DateTimeField()
54
54
  custom_document_name = models.CharField()
55
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
55
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
56
56
  committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
57
57
  entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
58
58
  deleted = models.BooleanField()
@@ -72,14 +72,16 @@ class LabReview(models.Model):
72
72
  dbid = models.BigIntegerField(primary_key=True)
73
73
  created = models.DateTimeField()
74
74
  modified = models.DateTimeField()
75
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
75
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
76
76
  deleted = models.BooleanField()
77
77
  committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
78
78
  entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
79
79
  internal_comment = models.TextField()
80
80
  message_to_patient = models.CharField()
81
81
  status = models.CharField()
82
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="lab_reviews")
82
+ patient = models.ForeignKey(
83
+ Patient, on_delete=models.DO_NOTHING, related_name="lab_reviews", null=True
84
+ )
83
85
  patient_communication_method = models.CharField()
84
86
 
85
87
 
@@ -113,7 +115,7 @@ class LabValue(models.Model):
113
115
  created = models.DateTimeField()
114
116
  modified = models.DateTimeField()
115
117
  report = models.ForeignKey(
116
- "LabReport", related_name="values", on_delete=models.DO_NOTHING, null=True
118
+ "LabReport", on_delete=models.DO_NOTHING, related_name="values", null=True
117
119
  )
118
120
  value = models.TextField()
119
121
  units = models.CharField()
@@ -178,14 +180,16 @@ class LabOrder(models.Model):
178
180
  dbid = models.BigIntegerField(primary_key=True)
179
181
  created = models.DateTimeField()
180
182
  modified = models.DateTimeField()
181
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
183
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
182
184
  deleted = models.BooleanField()
183
185
  committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
184
186
  entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
185
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="lab_orders")
187
+ patient = models.ForeignKey(
188
+ Patient, on_delete=models.DO_NOTHING, related_name="lab_orders", null=True
189
+ )
186
190
  ontology_lab_partner = models.CharField()
187
191
  # TODO - uncomment when the Note model is finished
188
- # note = models.ForeignKey("Note", on_delete=models.DO_NOTHING)
192
+ # note = models.ForeignKey("Note", on_delete=models.DO_NOTHING, null=True)
189
193
  comment = models.CharField()
190
194
  requisition_number = models.CharField()
191
195
  is_patient_bill = models.BooleanField(null=True)
@@ -224,11 +228,13 @@ class LabOrderReason(models.Model):
224
228
  dbid = models.BigIntegerField(primary_key=True)
225
229
  created = models.DateTimeField()
226
230
  modified = models.DateTimeField()
227
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
231
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
228
232
  deleted = models.BooleanField()
229
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
230
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
231
- order = models.ForeignKey(LabOrder, on_delete=models.DO_NOTHING, related_name="reasons")
233
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
234
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
235
+ order = models.ForeignKey(
236
+ LabOrder, on_delete=models.DO_NOTHING, related_name="reasons", null=True
237
+ )
232
238
  mode = models.CharField(max_length=30, choices=LabReasonMode)
233
239
 
234
240
 
@@ -281,7 +287,7 @@ class LabTest(models.Model):
281
287
  ontology_test_code = models.CharField(max_length=512, blank=True, default="")
282
288
  status = models.CharField(max_length=30, choices=LabTestOrderStatus)
283
289
  report = models.ForeignKey(
284
- LabReport, on_delete=models.DO_NOTHING, null=True, related_name="tests"
290
+ LabReport, on_delete=models.DO_NOTHING, related_name="tests", null=True
285
291
  )
286
292
  aoe_code = models.CharField(max_length=10, default="")
287
293
  procedure_class = models.CharField(max_length=10, default="")
@@ -31,10 +31,12 @@ class Medication(models.Model):
31
31
 
32
32
  id = models.UUIDField()
33
33
  dbid = models.BigIntegerField(primary_key=True)
34
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="medications")
34
+ patient = models.ForeignKey(
35
+ Patient, on_delete=models.DO_NOTHING, related_name="medications", null=True
36
+ )
35
37
  deleted = models.BooleanField()
36
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
37
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
38
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
39
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
38
40
  status = models.CharField(choices=Status.choices)
39
41
  start_date = models.DateTimeField()
40
42
  end_date = models.DateTimeField()
@@ -59,4 +61,6 @@ class MedicationCoding(models.Model):
59
61
  code = models.CharField()
60
62
  display = models.CharField()
61
63
  user_selected = models.BooleanField()
62
- medication = models.ForeignKey(Medication, on_delete=models.DO_NOTHING, related_name="codings")
64
+ medication = models.ForeignKey(
65
+ Medication, on_delete=models.DO_NOTHING, related_name="codings", null=True
66
+ )
@@ -140,21 +140,23 @@ class Note(models.Model):
140
140
  dbid = models.BigIntegerField(db_column="dbid", primary_key=True)
141
141
  created = models.DateTimeField()
142
142
  modified = models.DateTimeField()
143
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING)
144
- provider = models.ForeignKey("Staff", on_delete=models.DO_NOTHING, related_name="notes")
143
+ patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, null=True)
144
+ provider = models.ForeignKey(
145
+ "Staff", on_delete=models.DO_NOTHING, related_name="notes", null=True
146
+ )
145
147
  note_type = models.CharField(choices=NoteTypes.choices, null=True)
146
148
  note_type_version = models.ForeignKey(
147
- "NoteType", on_delete=models.DO_NOTHING, related_name="notes"
149
+ "NoteType", on_delete=models.DO_NOTHING, related_name="notes", null=True
148
150
  )
149
151
  title = models.TextField()
150
152
  body = models.JSONField()
151
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
153
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
152
154
  last_modified_by_staff = models.ForeignKey("Staff", on_delete=models.DO_NOTHING, null=True)
153
155
  checksum = models.CharField()
154
156
  billing_note = models.TextField()
155
157
  # TODO -implement InpatientStay model
156
- # inpatient_stay = models.ForeignKey("InpatientStay", on_delete=models.DO_NOTHING)
158
+ # inpatient_stay = models.ForeignKey("InpatientStay", on_delete=models.DO_NOTHING, null=True)
157
159
  related_data = models.JSONField()
158
- location = models.ForeignKey("PracticeLocation", on_delete=models.DO_NOTHING)
160
+ location = models.ForeignKey("PracticeLocation", on_delete=models.DO_NOTHING, null=True)
159
161
  datetime_of_service = models.DateTimeField()
160
162
  place_of_service = models.CharField()
@@ -25,13 +25,15 @@ class Observation(models.Model):
25
25
  dbid = models.BigIntegerField(primary_key=True)
26
26
  created = models.DateTimeField()
27
27
  modified = models.DateTimeField()
28
- originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
29
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
30
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
28
+ originator = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
29
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
30
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
31
31
  deleted = models.BooleanField()
32
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="observations")
32
+ patient = models.ForeignKey(
33
+ Patient, on_delete=models.DO_NOTHING, related_name="observations", null=True
34
+ )
33
35
  is_member_of = models.ForeignKey(
34
- "self", on_delete=models.DO_NOTHING, null=True, related_name="members"
36
+ "self", on_delete=models.DO_NOTHING, related_name="members", null=True
35
37
  )
36
38
  category = models.CharField()
37
39
  units = models.TextField()
@@ -56,7 +58,7 @@ class ObservationCoding(models.Model):
56
58
  display = models.CharField()
57
59
  user_selected = models.BooleanField()
58
60
  observation = models.ForeignKey(
59
- Observation, on_delete=models.DO_NOTHING, related_name="codings"
61
+ Observation, on_delete=models.DO_NOTHING, related_name="codings", null=True
60
62
  )
61
63
 
62
64
 
@@ -72,7 +74,7 @@ class ObservationComponent(models.Model):
72
74
  created = models.DateTimeField()
73
75
  modified = models.DateTimeField()
74
76
  observation = models.ForeignKey(
75
- Observation, on_delete=models.DO_NOTHING, related_name="components"
77
+ Observation, on_delete=models.DO_NOTHING, related_name="components", null=True
76
78
  )
77
79
  value_quantity = models.TextField()
78
80
  value_quantity_unit = models.TextField()
@@ -94,7 +96,7 @@ class ObservationComponentCoding(models.Model):
94
96
  display = models.CharField()
95
97
  user_selected = models.BooleanField()
96
98
  observation_component = models.ForeignKey(
97
- ObservationComponent, on_delete=models.DO_NOTHING, related_name="codings"
99
+ ObservationComponent, on_delete=models.DO_NOTHING, related_name="codings", null=True
98
100
  )
99
101
 
100
102
 
@@ -113,5 +115,5 @@ class ObservationValueCoding(models.Model):
113
115
  display = models.CharField()
114
116
  user_selected = models.BooleanField()
115
117
  observation = models.ForeignKey(
116
- Observation, on_delete=models.DO_NOTHING, related_name="value_codings"
118
+ Observation, on_delete=models.DO_NOTHING, related_name="value_codings", null=True
117
119
  )
@@ -65,7 +65,7 @@ class PracticeLocation(models.Model):
65
65
  created = models.DateTimeField()
66
66
  modified = models.DateTimeField()
67
67
  organization = models.ForeignKey(
68
- "Organization", on_delete=models.DO_NOTHING, related_name="practice_locations"
68
+ "Organization", on_delete=models.DO_NOTHING, related_name="practice_locations", null=True
69
69
  )
70
70
  place_of_service_code = models.CharField(choices=PracticeLocationPOS.choices)
71
71
  full_name = models.CharField()
@@ -96,7 +96,7 @@ class PracticeLocationSetting(models.Model):
96
96
 
97
97
  dbid = models.BigIntegerField(primary_key=True)
98
98
  practice_location = models.ForeignKey(
99
- PracticeLocation, on_delete=models.DO_NOTHING, related_name="settings"
99
+ PracticeLocation, on_delete=models.DO_NOTHING, related_name="settings", null=True
100
100
  )
101
101
  name = models.CharField()
102
102
  value = models.JSONField()
@@ -35,12 +35,10 @@ class ProtocolOverride(models.Model):
35
35
  created = models.DateTimeField()
36
36
  modified = models.DateTimeField()
37
37
  deleted = models.BooleanField()
38
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
39
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
38
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
39
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
40
40
  patient = models.ForeignKey(
41
- Patient,
42
- on_delete=models.DO_NOTHING,
43
- related_name="protocol_overrides",
41
+ Patient, on_delete=models.DO_NOTHING, related_name="protocol_overrides", null=True
44
42
  )
45
43
  protocol_key = models.CharField()
46
44
  is_adjustment = models.BooleanField()
@@ -47,7 +47,7 @@ class ResponseOption(models.Model):
47
47
  code_description = models.CharField()
48
48
  value = models.CharField()
49
49
  response_option_set = models.ForeignKey(
50
- ResponseOptionSet, on_delete=models.DO_NOTHING, related_name="options"
50
+ ResponseOptionSet, on_delete=models.DO_NOTHING, related_name="options", null=True
51
51
  )
52
52
  ordering = models.IntegerField()
53
53
 
@@ -67,7 +67,7 @@ class Question(models.Model):
67
67
  status = models.CharField()
68
68
  name = models.CharField()
69
69
  response_option_set = models.ForeignKey(
70
- ResponseOptionSet, on_delete=models.DO_NOTHING, related_name="questions"
70
+ ResponseOptionSet, on_delete=models.DO_NOTHING, related_name="questions", null=True
71
71
  )
72
72
  acknowledge_only = models.BooleanField()
73
73
  show_prologue = models.BooleanField()
@@ -126,8 +126,8 @@ class QuestionnaireQuestionMap(models.Model):
126
126
  created = models.DateTimeField()
127
127
  modified = models.DateTimeField()
128
128
  status = models.CharField()
129
- questionnaire = models.ForeignKey(Questionnaire, on_delete=models.DO_NOTHING)
130
- question = models.ForeignKey(Question, on_delete=models.DO_NOTHING)
129
+ questionnaire = models.ForeignKey(Questionnaire, on_delete=models.DO_NOTHING, null=True)
130
+ question = models.ForeignKey(Question, on_delete=models.DO_NOTHING, null=True)
131
131
 
132
132
 
133
133
  class Interview(models.Model):
@@ -143,13 +143,15 @@ class Interview(models.Model):
143
143
  id = models.UUIDField()
144
144
  dbid = models.BigIntegerField(primary_key=True)
145
145
  deleted = models.BooleanField()
146
- committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
147
- entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
146
+ committer = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
147
+ entered_in_error = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
148
148
  status = models.CharField()
149
149
  name = models.CharField()
150
150
  language_id = models.BigIntegerField()
151
151
  use_case_in_charting = models.CharField()
152
- patient = models.ForeignKey(Patient, on_delete=models.DO_NOTHING, related_name="interviews")
152
+ patient = models.ForeignKey(
153
+ Patient, on_delete=models.DO_NOTHING, related_name="interviews", null=True
154
+ )
153
155
  note_id = models.BigIntegerField()
154
156
  appointment_id = models.BigIntegerField()
155
157
  questionnaires = models.ManyToManyField( # type: ignore[var-annotated]
@@ -173,8 +175,8 @@ class InterviewQuestionnaireMap(models.Model):
173
175
  created = models.DateTimeField()
174
176
  modified = models.DateTimeField()
175
177
  status = models.CharField()
176
- interview = models.ForeignKey(Interview, on_delete=models.DO_NOTHING)
177
- questionnaire = models.ForeignKey(Questionnaire, on_delete=models.CASCADE)
178
+ interview = models.ForeignKey(Interview, on_delete=models.DO_NOTHING, null=True)
179
+ questionnaire = models.ForeignKey(Questionnaire, on_delete=models.DO_NOTHING, null=True)
178
180
 
179
181
 
180
182
  class InterviewQuestionResponse(models.Model):
@@ -190,16 +192,16 @@ class InterviewQuestionResponse(models.Model):
190
192
  modified = models.DateTimeField()
191
193
  status = models.CharField()
192
194
  interview = models.ForeignKey(
193
- Interview, on_delete=models.DO_NOTHING, related_name="interview_responses"
195
+ Interview, on_delete=models.DO_NOTHING, related_name="interview_responses", null=True
194
196
  )
195
197
  questionnaire = models.ForeignKey(
196
- Questionnaire, on_delete=models.DO_NOTHING, related_name="interview_responses"
198
+ Questionnaire, on_delete=models.DO_NOTHING, related_name="interview_responses", null=True
197
199
  )
198
200
  question = models.ForeignKey(
199
- Question, on_delete=models.DO_NOTHING, related_name="interview_responses"
201
+ Question, on_delete=models.DO_NOTHING, related_name="interview_responses", null=True
200
202
  )
201
203
  response_option = models.ForeignKey(
202
- ResponseOption, on_delete=models.DO_NOTHING, related_name="interview_responses"
204
+ ResponseOption, on_delete=models.DO_NOTHING, related_name="interview_responses", null=True
203
205
  )
204
206
  response_option_value = models.TextField()
205
207
  questionnaire_state = models.TextField()
@@ -54,12 +54,12 @@ class Staff(models.Model):
54
54
  tax_id_type = models.CharField(choices=TaxIDType.choices)
55
55
  spi_number = models.CharField()
56
56
  # TODO - uncomment when Language is developed
57
- # language = models.ForeignKey(Language, on_delete=models.DO_NOTHING, related_name="staff_speakers")
58
- # language_secondary = models.ForeignKey(Language, on_delete=models.DO_NOTHING, related_name="staff_secondary_speakers")
57
+ # language = models.ForeignKey(Language, on_delete=models.DO_NOTHING, related_name="staff_speakers", null=True)
58
+ # language_secondary = models.ForeignKey(Language, on_delete=models.DO_NOTHING, related_name="staff_secondary_speakers", null=True)
59
59
  personal_meeting_room_link = models.URLField(null=True)
60
60
  state = models.JSONField()
61
- user = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING)
61
+ user = models.ForeignKey(CanvasUser, on_delete=models.DO_NOTHING, null=True)
62
62
  schedule_column_ordering = models.IntegerField()
63
63
  default_supervising_provider = models.ForeignKey(
64
- "Staff", on_delete=models.DO_NOTHING, null=True, related_name="supervising_team"
64
+ "Staff", on_delete=models.DO_NOTHING, related_name="supervising_team", null=True
65
65
  )
@@ -46,14 +46,16 @@ class Task(models.Model):
46
46
  dbid = models.BigIntegerField(primary_key=True)
47
47
  created = models.DateTimeField()
48
48
  modified = models.DateTimeField()
49
- creator = models.ForeignKey(Staff, related_name="creator_tasks", on_delete=models.DO_NOTHING)
49
+ creator = models.ForeignKey(
50
+ Staff, on_delete=models.DO_NOTHING, related_name="creator_tasks", null=True
51
+ )
50
52
  assignee = models.ForeignKey(
51
- Staff, related_name="assignee_tasks", null=True, on_delete=models.DO_NOTHING
53
+ Staff, on_delete=models.DO_NOTHING, related_name="assignee_tasks", null=True
52
54
  )
53
55
  # TODO - uncomment when Team model is created
54
- # team = models.ForeignKey(Team, related_name="tasks", null=True, on_delete=models.DO_NOTHING)
56
+ # team = models.ForeignKey(Team, on_delete=models.DO_NOTHING, related_name="tasks", null=True)
55
57
  patient = models.ForeignKey(
56
- Patient, blank=True, null=True, on_delete=models.DO_NOTHING, related_name="tasks"
58
+ Patient, on_delete=models.DO_NOTHING, blank=True, related_name="tasks", null=True
57
59
  )
58
60
  task_type = models.CharField(choices=TaskType.choices)
59
61
  tag = models.CharField()
@@ -75,8 +77,10 @@ class TaskComment(models.Model):
75
77
  dbid = models.BigIntegerField(primary_key=True)
76
78
  created = models.DateTimeField()
77
79
  modified = models.DateTimeField()
78
- creator = models.ForeignKey(Staff, related_name="comments", on_delete=models.DO_NOTHING)
79
- task = models.ForeignKey(Task, on_delete=models.DO_NOTHING, related_name="comments")
80
+ creator = models.ForeignKey(
81
+ Staff, on_delete=models.DO_NOTHING, related_name="comments", null=True
82
+ )
83
+ task = models.ForeignKey(Task, on_delete=models.DO_NOTHING, related_name="comments", null=True)
80
84
  body = models.TextField()
81
85
 
82
86
 
@@ -108,5 +112,5 @@ class TaskTaskLabel(models.Model):
108
112
  db_table = "canvas_sdk_data_api_tasktasklabel_001"
109
113
 
110
114
  dbid = models.BigIntegerField(primary_key=True)
111
- task_label = models.ForeignKey(TaskLabel, on_delete=models.DO_NOTHING)
112
- task = models.ForeignKey(Task, on_delete=models.DO_NOTHING)
115
+ task_label = models.ForeignKey(TaskLabel, on_delete=models.DO_NOTHING, null=True)
116
+ task = models.ForeignKey(Task, on_delete=models.DO_NOTHING, null=True)
@@ -193,7 +193,6 @@ class PluginRunner(PluginRunnerServicer):
193
193
  ) -> AsyncGenerator[ReloadPluginsResponse, None]:
194
194
  """This is invoked when we need to reload plugins."""
195
195
  try:
196
- load_plugins()
197
196
  publish_message({"action": "restart"})
198
197
  except ImportError:
199
198
  yield ReloadPluginsResponse(success=False)
@@ -48,6 +48,8 @@ def main() -> None:
48
48
  try:
49
49
  print("plugin-synchronizer: installing plugins after web container start")
50
50
  install_plugins()
51
+ print("plugin-synchronizer: sending SIGHUP to plugin-runner")
52
+ check_output(["circusctl", "signal", "plugin-runner", "1"], cwd="/app", stderr=STDOUT)
51
53
  except CalledProcessError as e:
52
54
  print("plugin-synchronizer: `install_plugins` failed:", e)
53
55
 
@@ -67,7 +69,7 @@ def main() -> None:
67
69
  data = pickle.loads(message.get("data", pickle.dumps({})))
68
70
 
69
71
  if "action" not in data or "client_id" not in data:
70
- return
72
+ continue
71
73
 
72
74
  if data["action"] == "restart":
73
75
  # Run the plugin installer process
@@ -191,17 +191,3 @@ async def test_reload_plugins_event_handler_successfully_loads_plugins(
191
191
  assert len(result) == 1
192
192
  assert result[0].success is True
193
193
  assert "example_plugin:example_plugin.protocols.my_protocol:Protocol" in LOADED_PLUGINS
194
-
195
-
196
- @pytest.mark.asyncio
197
- async def test_reload_plugins_import_error(plugin_runner: PluginRunner) -> None:
198
- """Test ReloadPlugins response when an ImportError occurs."""
199
- request = ReloadPluginsRequest()
200
-
201
- with patch("plugin_runner.plugin_runner.load_plugins", side_effect=ImportError):
202
- responses = []
203
- async for response in plugin_runner.ReloadPlugins(request, None):
204
- responses.append(response)
205
-
206
- assert len(responses) == 1
207
- assert responses[0].success is False
@@ -47,7 +47,7 @@ packages = [
47
47
  {include = "settings.py"}
48
48
  ]
49
49
  readme = "README.md"
50
- version = "0.13.1"
50
+ version = "0.13.3"
51
51
 
52
52
  [tool.poetry.dependencies]
53
53
  boto3 = "^1.35.88"