renalware-core 2.0.0.pre.beta7 → 2.0.0.pre.beta8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/renalware/searchables.js +3 -0
  3. data/app/assets/javascripts/renalware/select2-ajax-search.js +86 -0
  4. data/app/assets/javascripts/renalware/sortable.js +12 -1
  5. data/app/assets/stylesheets/renalware/base/_variables.scss +7 -1
  6. data/app/assets/stylesheets/renalware/modules/_admissions.scss +39 -0
  7. data/app/assets/stylesheets/renalware/modules/_letters.scss +12 -0
  8. data/app/assets/stylesheets/renalware/modules/_messaging.scss +0 -4
  9. data/app/assets/stylesheets/renalware/partials/_animations.scss +12 -0
  10. data/app/assets/stylesheets/renalware/partials/_modal_window.scss +44 -0
  11. data/app/assets/stylesheets/renalware/partials/_tables.scss +6 -0
  12. data/app/controllers/renalware/admissions/requests_controller.rb +100 -0
  13. data/app/controllers/renalware/devise/passwords_controller.rb +6 -0
  14. data/app/controllers/renalware/letters/electronic_receipts_controller.rb +81 -0
  15. data/app/controllers/renalware/letters/letters_controller.rb +18 -3
  16. data/app/controllers/renalware/messaging/internal/messages_controller.rb +75 -0
  17. data/app/controllers/renalware/messaging/internal/receipts_controller.rb +74 -0
  18. data/app/controllers/renalware/patients/patients_controller.rb +11 -1
  19. data/app/controllers/renalware/session_timeout_controller.rb +1 -1
  20. data/app/documents/renalware/hd/profile_document.rb +1 -1
  21. data/app/helpers/renalware/application_helper.rb +5 -0
  22. data/app/helpers/renalware/xhr_helper.rb +7 -0
  23. data/app/models/concerns/renalware/deviseable.rb +1 -1
  24. data/app/models/renalware/admissions.rb +7 -0
  25. data/app/models/renalware/admissions/request.rb +23 -0
  26. data/app/models/renalware/admissions/request_reason.rb +11 -0
  27. data/app/models/renalware/feeds/message_processor.rb +2 -2
  28. data/app/models/renalware/feeds/persist_message.rb +2 -0
  29. data/app/models/renalware/hd/sessions/auditable_session.rb +4 -0
  30. data/app/models/renalware/hd/sessions/auditable_session_collection.rb +5 -0
  31. data/app/models/renalware/hd/update_rolling_patient_statistics.rb +2 -2
  32. data/app/models/renalware/letters/electronic_receipt.rb +35 -0
  33. data/app/models/renalware/letters/electronic_recipient_options.rb +78 -0
  34. data/app/models/renalware/letters/letter.rb +4 -0
  35. data/app/models/renalware/letters/letter_factory.rb +21 -1
  36. data/app/models/renalware/messaging.rb +21 -5
  37. data/app/models/renalware/messaging/internal/author.rb +11 -0
  38. data/app/models/renalware/messaging/internal/message.rb +15 -0
  39. data/app/models/renalware/messaging/internal/message_factory.rb +20 -0
  40. data/app/models/renalware/messaging/internal/message_form.rb +36 -0
  41. data/app/models/renalware/messaging/internal/message_form_builder.rb +52 -0
  42. data/app/models/renalware/messaging/internal/receipt.rb +26 -0
  43. data/app/models/renalware/messaging/internal/recipient.rb +12 -0
  44. data/app/models/renalware/messaging/internal/recipient_options.rb +87 -0
  45. data/app/models/renalware/messaging/internal/send_message.rb +24 -0
  46. data/app/models/renalware/messaging/message.rb +4 -3
  47. data/app/models/renalware/pathology.rb +1 -1
  48. data/app/models/renalware/pathology/message_param_parser.rb +2 -0
  49. data/app/models/renalware/patients/search_filter.rb +32 -0
  50. data/app/models/renalware/patients/search_form.rb +17 -0
  51. data/app/models/renalware/patients/search_query.rb +20 -21
  52. data/app/models/renalware/patients/summary.rb +1 -1
  53. data/app/models/renalware/user.rb +18 -2
  54. data/app/policies/renalware/admissions/request_policy.rb +8 -0
  55. data/app/policies/renalware/letters/electronic_receipt_policy.rb +23 -0
  56. data/app/policies/renalware/messaging/{message_policy.rb → internal/message_policy.rb} +2 -3
  57. data/app/policies/renalware/messaging/internal/receipt_policy.rb +25 -0
  58. data/app/presenters/renalware/dashboard/dashboard_presenter.rb +9 -2
  59. data/app/presenters/renalware/hd/station_presenter.rb +0 -1
  60. data/app/presenters/renalware/letters/electronic_receipt_presenter.rb +15 -0
  61. data/app/presenters/renalware/letters/letter_presenter.rb +5 -0
  62. data/app/presenters/renalware/mdm_presenter.rb +2 -0
  63. data/app/presenters/renalware/messaging/internal/message_presenter.rb +21 -0
  64. data/app/presenters/renalware/messaging/internal/receipt_presenter.rb +13 -0
  65. data/app/presenters/renalware/pathology/observation_presenter.rb +4 -0
  66. data/app/presenters/renalware/ukrdc/patient_presenter.rb +5 -0
  67. data/app/views/renalware/admissions/requests/_create_request_link.html.slim +10 -0
  68. data/app/views/renalware/admissions/requests/_form.html.slim +31 -0
  69. data/app/views/renalware/admissions/requests/_modal_dialog_placeholder.html.slim +2 -0
  70. data/app/views/renalware/admissions/requests/_request.html.slim +34 -0
  71. data/app/views/renalware/admissions/requests/_table.html.slim +19 -0
  72. data/app/views/renalware/admissions/requests/create.js.erb +3 -0
  73. data/app/views/renalware/admissions/requests/destroy.js.erb +3 -0
  74. data/app/views/renalware/admissions/requests/edit.html.slim +4 -0
  75. data/app/views/renalware/admissions/requests/edit.js.erb +4 -0
  76. data/app/views/renalware/admissions/requests/index.html.slim +3 -0
  77. data/app/views/renalware/admissions/requests/new.html.slim +4 -0
  78. data/app/views/renalware/admissions/requests/new.js.erb +4 -0
  79. data/app/views/renalware/admissions/requests/update.js.erb +9 -0
  80. data/app/views/renalware/api/ukrdc/patients/_allergies.xml.builder +1 -1
  81. data/app/views/renalware/api/ukrdc/patients/_clinical_relationships.xml.builder +0 -1
  82. data/app/views/renalware/api/ukrdc/patients/_lab_orders.xml.builder +7 -2
  83. data/app/views/renalware/api/ukrdc/patients/_observations.xml.builder +1 -1
  84. data/app/views/renalware/api/ukrdc/patients/_patient.xml.builder +2 -0
  85. data/app/views/renalware/api/ukrdc/patients/_sending_facility.xml.builder +1 -1
  86. data/app/views/renalware/api/ukrdc/patients/lab_orders/_lab_order.xml.builder +46 -0
  87. data/app/views/renalware/api/ukrdc/patients/lab_orders/_result_item.xml.builder +14 -0
  88. data/app/views/renalware/clinical/allergies/_mini.html.slim +1 -0
  89. data/app/views/renalware/dashboard/dashboards/_content.html.slim +6 -2
  90. data/app/views/renalware/dashboard/letters/_letter.html.slim +7 -7
  91. data/app/views/renalware/dashboard/letters/_table.html.slim +2 -2
  92. data/app/views/renalware/devise/passwords/edit.html.erb +27 -0
  93. data/app/views/renalware/devise/passwords/new.html.erb +18 -0
  94. data/app/views/renalware/devise/registrations/new.html.slim +25 -0
  95. data/app/views/renalware/letters/electronic_receipts/_table.html.slim +45 -0
  96. data/app/views/renalware/letters/electronic_receipts/mark_as_read.js.erb +6 -0
  97. data/app/views/renalware/letters/electronic_receipts/read.html.slim +5 -0
  98. data/app/views/renalware/letters/electronic_receipts/sent.html.slim +40 -0
  99. data/app/views/renalware/letters/electronic_receipts/unread.html.slim +5 -0
  100. data/app/views/renalware/letters/formatted_letters/_letter.html.slim +12 -1
  101. data/app/views/renalware/letters/letters/_actions.html.slim +1 -1
  102. data/app/views/renalware/letters/letters/_electronic_ccs.html.slim +16 -0
  103. data/app/views/renalware/letters/letters/_form.html.slim +8 -3
  104. data/app/views/renalware/letters/letters/edit.html.slim +7 -1
  105. data/app/views/renalware/letters/letters/new.html.slim +6 -1
  106. data/app/views/renalware/letters/shared/_electronic_cc_type_tabs.html.slim +7 -0
  107. data/app/views/renalware/messaging/{messages → internal/messages}/_form.html.slim +2 -1
  108. data/app/views/renalware/messaging/{messages → internal/messages}/_modal_dialog_placeholder.html.slim +0 -0
  109. data/app/views/renalware/messaging/{messages → internal/messages}/_send_message_link.html.slim +1 -1
  110. data/app/views/renalware/messaging/{messages → internal/messages}/_send_reply_link.html.slim +3 -3
  111. data/app/views/renalware/messaging/{messages → internal/messages}/create.js.erb +0 -0
  112. data/app/views/renalware/messaging/{messages → internal/messages}/new.html.slim +0 -0
  113. data/app/views/renalware/messaging/{messages → internal/messages}/new.js.erb +0 -0
  114. data/app/views/renalware/messaging/{receipts → internal/receipts}/_receipt.html.slim +2 -2
  115. data/app/views/renalware/messaging/{messages/_message.html.slim → internal/receipts/_sent_receipt.html.slim} +2 -1
  116. data/app/views/renalware/messaging/internal/receipts/_sent_table.html.slim +12 -0
  117. data/app/views/renalware/messaging/{receipts → internal/receipts}/_table.html.slim +2 -2
  118. data/app/views/renalware/messaging/{receipts → internal/receipts}/mark_as_read.js.erb +0 -0
  119. data/app/views/renalware/messaging/{receipts → internal/receipts}/read.html.slim +2 -1
  120. data/app/views/renalware/messaging/internal/receipts/sent.html.slim +7 -0
  121. data/app/views/renalware/messaging/{receipts → internal/receipts}/unread.html.slim +2 -1
  122. data/app/views/renalware/messaging/shared/_messages_type_tabs.html.slim +3 -3
  123. data/app/views/renalware/navigation/_main.html.slim +1 -1
  124. data/app/views/renalware/navigation/_patients_admin.html.slim +2 -0
  125. data/app/views/renalware/navigation/_user.html.slim +2 -1
  126. data/app/views/renalware/patients/_search_form.html.slim +12 -0
  127. data/app/views/renalware/patients/side_menu/_actions.html.slim +6 -2
  128. data/app/views/renalware/renal/profiles/_form.html.slim +0 -1
  129. data/app/views/renalware/renal/profiles/_mini.html.slim +1 -0
  130. data/app/views/renalware/{snippets/snippets → shared}/_modal_close_link.html.slim +0 -0
  131. data/app/views/renalware/snippets/snippets/_list.html.slim +1 -1
  132. data/app/views/renalware/transplants/donations/_form.html.slim +17 -16
  133. data/config/initializers/simple_form_foundation.rb +0 -1
  134. data/config/locales/renalware/admissions/requests.en.yml +12 -0
  135. data/config/locales/renalware/letters/contact.en.yml +3 -0
  136. data/config/locales/renalware/messaging/internal/messages.en.yml +33 -0
  137. data/config/locales/renalware/patients/search_form.en.yml +5 -0
  138. data/config/locales/renalware/patients/side_menu.en.yml +1 -0
  139. data/config/routes.rb +32 -10
  140. data/db/migrate/20170908155011_add_shortfall_column_to_hd_patient_statistics.rb +7 -0
  141. data/db/migrate/20170908160250_update_hd_overall_audit_to_version4.rb +8 -0
  142. data/db/migrate/20170911133224_add_type_to_messaging_messages.rb +16 -0
  143. data/db/migrate/20170912092135_create_letters_electronic_receipts.rb +11 -0
  144. data/db/migrate/20170920113628_create_admissions_requests.rb +31 -0
  145. data/db/seeds/default/reporting/audits.yml +1 -0
  146. data/db/views/reporting_hd_overall_audit_v04.sql +13 -0
  147. data/lib/renalware/version.rb +1 -1
  148. data/lib/subscription_registry.rb +1 -1
  149. data/spec/factories/accesses/plans.rb +2 -3
  150. data/spec/factories/accesses/profiles.rb +1 -2
  151. data/spec/factories/admissions/request_reasons.rb +8 -0
  152. data/spec/factories/admissions/requests.rb +9 -0
  153. data/spec/factories/clinical/body_compositions.rb +2 -5
  154. data/spec/factories/clinical/dry_weights.rb +2 -3
  155. data/spec/factories/clinics/clinic_visits.rb +2 -3
  156. data/spec/factories/directory/people.rb +1 -2
  157. data/spec/factories/events/events.rb +1 -2
  158. data/spec/factories/hd/preference_sets.rb +1 -2
  159. data/spec/factories/hd/profiles.rb +2 -3
  160. data/spec/factories/hd/sessions.rb +4 -3
  161. data/spec/factories/letters/electronic_receipts.rb +6 -0
  162. data/spec/factories/letters/letters.rb +3 -3
  163. data/spec/factories/medications/prescription.rb +1 -2
  164. data/spec/factories/medications/prescription_terminations.rb +1 -2
  165. data/spec/factories/messaging/internal/authors.rb +5 -0
  166. data/spec/factories/messaging/{message.rb → internal/messages.rb} +1 -1
  167. data/spec/factories/messaging/internal/receipts.rb +7 -0
  168. data/spec/factories/messaging/internal/recipients.rb +5 -0
  169. data/spec/factories/modalities/modalities.rb +1 -3
  170. data/spec/factories/pathology/requests/request.rb +1 -3
  171. data/spec/factories/patients/alerts.rb +1 -2
  172. data/spec/factories/patients/patients.rb +5 -3
  173. data/spec/factories/pd/assessments.rb +1 -2
  174. data/spec/factories/pd/fluid_descriptions.rb +0 -1
  175. data/spec/factories/pd/training_sessions.rb +1 -2
  176. data/spec/factories/problems/problems.rb +1 -2
  177. data/spec/factories/shared/accountable.rb +35 -0
  178. data/spec/factories/system/roles.rb +2 -4
  179. data/spec/factories/system/users.rb +30 -15
  180. data/spec/factories/transplants/donor_stage.rb +1 -2
  181. data/spec/factories/transplants/registration_statuses.rb +2 -4
  182. data/spec/support/login_macros.rb +1 -1
  183. metadata +108 -40
  184. data/app/controllers/renalware/messaging/messages_controller.rb +0 -73
  185. data/app/controllers/renalware/messaging/receipts_controller.rb +0 -55
  186. data/app/controllers/renalware/messaging/sent_messages_controller.rb +0 -22
  187. data/app/models/renalware/messaging/author.rb +0 -9
  188. data/app/models/renalware/messaging/message_factory.rb +0 -18
  189. data/app/models/renalware/messaging/message_form.rb +0 -34
  190. data/app/models/renalware/messaging/message_form_builder.rb +0 -50
  191. data/app/models/renalware/messaging/receipt.rb +0 -19
  192. data/app/models/renalware/messaging/recipient.rb +0 -10
  193. data/app/models/renalware/messaging/recipient_options.rb +0 -85
  194. data/app/models/renalware/messaging/send_message.rb +0 -22
  195. data/app/policies/renalware/messaging/receipt_policy.rb +0 -19
  196. data/app/presenters/renalware/messaging/internal_message_presenter.rb +0 -19
  197. data/app/presenters/renalware/messaging/receipt_presenter.rb +0 -11
  198. data/app/views/renalware/devise/registrations/new.html.erb +0 -46
  199. data/app/views/renalware/messaging/messages/_table.html.slim +0 -13
  200. data/app/views/renalware/messaging/messages/sent.html.slim +0 -4
  201. data/config/locales/renalware/messaging/messages.en.yml +0 -29
  202. data/spec/factories/messaging/authors.rb +0 -5
  203. data/spec/factories/messaging/receipt.rb +0 -7
  204. data/spec/factories/messaging/recipients.rb +0 -5
@@ -0,0 +1,7 @@
1
+ class AddShortfallColumnToHDPatientStatistics < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :hd_patient_statistics,
4
+ :number_of_sessions_with_dialysis_minutes_shortfall_gt_5_pct,
5
+ :integer
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ class UpdateHDOverallAuditToVersion4 < ActiveRecord::Migration[5.1]
2
+ def change
3
+ update_view :reporting_hd_overall_audit,
4
+ materialized: true,
5
+ version: 4,
6
+ revert_to_version: 2
7
+ end
8
+ end
@@ -0,0 +1,16 @@
1
+ class AddTypeToMessagingMessages < ActiveRecord::Migration[5.1]
2
+
3
+ def up
4
+ add_column :messaging_messages, :type, :string, null: true
5
+ add_index :messaging_messages, :type
6
+ ActiveRecord::Base.connection.execute(
7
+ "update messaging_messages set type = 'Renalware::Messaging::Internal::Message' where type is null;"
8
+ )
9
+ change_column_null(:messaging_messages, :type, false)
10
+ end
11
+
12
+ def down
13
+ remove_index :messaging_messages, :type
14
+ remove_column :messaging_messages, :type
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ class CreateLettersElectronicReceipts < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :letter_electronic_receipts do |t|
4
+ t.references :letter, index: true, null: false, foreign_key: { to_table: :letter_letters }
5
+ t.references :recipient, index: true, null: false, foreign_key: { to_table: :users }
6
+ t.datetime :read_at, null: true, index: true
7
+
8
+ t.timestamps null: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,31 @@
1
+ class CreateAdmissionsRequests < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :admission_request_reasons do |t|
4
+ t.string :description, null: false
5
+ t.datetime :deleted_at, index: true
6
+ t.timestamps null: false
7
+ end
8
+
9
+ create_table :admission_requests do |t|
10
+ t.references :patient, null: false, foreign_key: true
11
+ t.integer :reason_id, null: false, index: true
12
+ t.references :hospital_unit, foreign_key: true, index: true
13
+ t.text :notes
14
+ t.string :priority, null: false
15
+ t.integer :position, null: false, default: 0, index: true
16
+ t.datetime :deleted_at, index: true
17
+ t.integer :updated_by_id, null: false, index: true
18
+ t.integer :created_by_id, null: false, index: true
19
+
20
+ t.timestamps null: false
21
+ end
22
+
23
+ # We only allow on patient with a current (deleted_at = NULL) row.
24
+ # Indexing on [:patient_id, :deleted_at] does the trick because deleted_at is not used
25
+ # in the if its NULL.
26
+ add_index :admission_requests, [:patient_id, :deleted_at], unique: true
27
+ add_foreign_key :admission_requests, :users, column: :created_by_id
28
+ add_foreign_key :admission_requests, :users, column: :updated_by_id
29
+ add_foreign_key :admission_requests, :admission_request_reasons, column: :reason_id
30
+ end
31
+ end
@@ -39,4 +39,5 @@
39
39
  { "title": "% Phosphate < 1.8", "targets": 4, width: "200" },
40
40
  { "title": "% w/fistula or graft", "targets": 5, width: "200" },
41
41
  { "title": "Avg. missed HD time", "targets": 6, width: "200" }
42
+ { "title": "% missing >5% HD time", "targets": 7, width: "200" }
42
43
  ]}
@@ -0,0 +1,13 @@
1
+ SELECT
2
+ units.name,
3
+ count(stats.id) AS patient_count,
4
+ 0 as percentage_hb_gt_100,
5
+ 0 as percentage_urr_gt_65,
6
+ 0 as percentage_phosphate_lt_1_8,
7
+ 0 as percentage_access_fistula_or_graft,
8
+ 0 as avg_missed_hd_time,
9
+ ROUND(100*SUM(number_of_sessions_with_dialysis_minutes_shortfall_gt_5_pct)/COUNT(stats.id),1)
10
+ as pct_shortfall_gt_5_pct
11
+ FROM (hd_patient_statistics stats
12
+ JOIN hospital_units units ON ((units.id = stats.hospital_unit_id)))
13
+ GROUP BY units.name;
@@ -1,3 +1,3 @@
1
1
  module Renalware
2
- VERSION = "2.0.0.pre.beta7".freeze
2
+ VERSION = "2.0.0.pre.beta8".freeze
3
3
  end
@@ -24,7 +24,7 @@ require "set"
24
24
  #
25
25
  # SubscriptionRegistry.instance.register(OtherModule::Broadcaster, Listener)
26
26
  #
27
- # Then in the other module, subscribe listeners registred above to the broadcaster.
27
+ # Then in the other module, subscribe listeners registered above to the broadcaster.
28
28
  #
29
29
  # broadcaster = SubscriptionRegistry.instance.subscribe_listeners_to(Broadcaster.new)
30
30
  #
@@ -1,11 +1,10 @@
1
1
  FactoryGirl.define do
2
2
  factory :access_plan, class: Renalware::Accesses::Plan do
3
+ accountable
3
4
  association :patient, factory: :accesses_patient
4
5
  association :plan_type, factory: :access_plan_type
5
6
  notes "Lorem ipsum dolor sit amet.."
6
- created_by { Renalware::User.first || create(:user) }
7
- updated_by { Renalware::User.first || create(:user) }
8
- decided_by { Renalware::User.first || create(:user) }
7
+ decided_by { accountable_actor }
9
8
  terminated_at nil
10
9
  end
11
10
  end
@@ -1,11 +1,10 @@
1
1
  FactoryGirl.define do
2
2
  factory :access_profile, class: Renalware::Accesses::Profile do
3
+ accountable
3
4
  patient
4
5
  type { create(:access_type) }
5
6
  side :right
6
7
  formed_on { Time.zone.today }
7
- association :created_by, factory: :user
8
- association :updated_by, factory: :user
9
8
 
10
9
  trait :current do
11
10
  started_on { 1.day.ago }
@@ -0,0 +1,8 @@
1
+ FactoryGirl.define do
2
+ factory :admissions_request_reason, class: "Renalware::Admissions::RequestReason" do
3
+ initialize_with do
4
+ Renalware::Admissions::RequestReason.find_or_create_by!(description: description)
5
+ end
6
+ description "AKI"
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+
2
+ FactoryGirl.define do
3
+ factory :admissions_request, class: "Renalware::Admissions::Request" do
4
+ accountable
5
+ association :reason, factory: :admissions_request_reason
6
+ patient { create(:patient, by: accountable_actor) }
7
+ priority :low
8
+ end
9
+ end
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :body_composition, class: "Renalware::Clinical::BodyComposition" do
3
+ accountable
3
4
  patient
4
-
5
5
  assessed_on 1.week.ago
6
6
  overhydration "19.1"
7
7
  volume_of_distribution "52.1"
@@ -15,9 +15,6 @@ FactoryGirl.define do
15
15
  adipose_tissue_mass "15.1"
16
16
  body_cell_mass "53.1"
17
17
  quality_of_reading "65.123"
18
-
19
- association :assessor, factory: :user
20
- association :created_by, factory: :user
21
- association :updated_by, factory: :user
18
+ assessor { accountable_actor }
22
19
  end
23
20
  end
@@ -1,11 +1,10 @@
1
1
  FactoryGirl.define do
2
2
  factory :dry_weight, class: "Renalware::Clinical::DryWeight" do
3
+ accountable
3
4
  patient
4
5
 
5
6
  assessed_on 1.week.ago
6
7
  weight 156.1
7
- association :assessor, factory: :user
8
- association :created_by, factory: :user
9
- association :updated_by, factory: :user
8
+ assessor { accountable_actor }
10
9
  end
11
10
  end
@@ -1,5 +1,6 @@
1
1
  FactoryGirl.define do
2
2
  factory :clinic_visit, class: "Renalware::Clinics::ClinicVisit" do
3
+ accountable
3
4
  patient
4
5
  date Time.zone.today
5
6
  time Time.zone.now
@@ -9,8 +10,6 @@ FactoryGirl.define do
9
10
  pulse 100
10
11
  systolic_bp 112
11
12
  diastolic_bp 71
12
- clinic
13
- association :created_by, factory: :user
14
- association :updated_by, factory: :user
13
+ clinic { create(:clinic, consultant: accountable_actor) }
15
14
  end
16
15
  end
@@ -1,9 +1,8 @@
1
1
  FactoryGirl.define do
2
2
  factory :directory_person, class: "Renalware::Directory::Person" do
3
+ accountable
3
4
  given_name { Faker::Name.first_name }
4
5
  family_name { Faker::Name.last_name }
5
6
  title { Faker::Name.prefix }
6
- association :created_by, factory: :user
7
- association :updated_by, factory: :user
8
7
  end
9
8
  end
@@ -1,12 +1,11 @@
1
1
  FactoryGirl.define do
2
2
  factory :event, class: "Renalware::Events::Event" do
3
+ accountable
3
4
  patient
4
5
  event_type factory: :events_type
5
6
  date_time Time.zone.now
6
7
  description "Needs blood sample taken."
7
8
  notes "Would like son to accompany them on clinic visit."
8
- association :created_by, factory: :user
9
- association :updated_by, factory: :user
10
9
 
11
10
  factory :simple_event, class: "Renalware::Events::Simple" do
12
11
 
@@ -1,10 +1,9 @@
1
1
  FactoryGirl.define do
2
2
  factory :hd_preference_set, class: "Renalware::HD::PreferenceSet" do
3
+ accountable
3
4
  patient
4
5
  association :hospital_unit, factory: :hospital_unit
5
6
  schedule :mon_wed_fri_pm
6
7
  other_schedule ""
7
- association :created_by, factory: :user
8
- association :updated_by, factory: :user
9
8
  end
10
9
  end
@@ -1,11 +1,10 @@
1
1
  FactoryGirl.define do
2
2
  factory :hd_profile, class: "Renalware::HD::Profile" do
3
+ accountable
3
4
  patient
4
5
  active true
5
6
  association :hospital_unit, factory: :hospital_unit
6
- association :prescriber, factory: :user
7
- association :created_by, factory: :user
8
- association :updated_by, factory: :user
7
+ prescriber { accountable_actor }
9
8
 
10
9
  document {
11
10
  {
@@ -1,9 +1,10 @@
1
1
  FactoryGirl.define do
2
2
  factory :hd_session, class: "Renalware::HD::Session::Open" do
3
+ accountable
3
4
  association :patient, factory: :hd_patient
4
5
  association :hospital_unit, factory: :hospital_unit
5
- association :signed_on_by, factory: :user
6
- association :created_by, factory: :user
6
+
7
+ signed_on_by { accountable_actor }
7
8
 
8
9
  performed_on 1.week.ago
9
10
  notes "Some notes"
@@ -24,7 +25,7 @@ FactoryGirl.define do
24
25
  start_time "11:00"
25
26
  end_time "16:00"
26
27
  signed_off_at { 1.day.ago }
27
- association :signed_off_by, factory: :user
28
+ signed_off_by { accountable_actor }
28
29
 
29
30
  after(:build) do |session|
30
31
  session.document = build(:hd_session_document).marshal_dump
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :letter_electronic_receipt, class: "Renalware::Letters::ElectronicReceipt" do
3
+ association :letter, factory: :letter
4
+ association :recipient, factory: :user
5
+ end
6
+ end
@@ -1,14 +1,14 @@
1
1
  FactoryGirl.define do
2
2
  factory :letter, class: "Renalware::Letters::Letter" do
3
+ accountable
4
+
3
5
  issued_on Time.zone.today
4
6
  description "This is a custom description"
5
7
  body "I am pleased to report a marked improvement in her condition."
6
8
 
7
- association :author, factory: [:user, :author]
8
9
  association :letterhead, factory: [:letter_letterhead]
9
10
 
10
- association :created_by, factory: :user
11
- association :updated_by, factory: :user
11
+ author { accountable_actor }
12
12
 
13
13
  factory :draft_letter, class: "Renalware::Letters::Letter::Draft" do
14
14
  end
@@ -1,5 +1,6 @@
1
1
  FactoryGirl.define do
2
2
  factory :prescription, class: "Renalware::Medications::Prescription" do
3
+ accountable
3
4
  patient
4
5
  drug
5
6
  dose_amount "20"
@@ -9,8 +10,6 @@ FactoryGirl.define do
9
10
  notes "with food"
10
11
  provider 0
11
12
  prescribed_on 2.weeks.ago
12
- association :created_by, factory: :user
13
- association :updated_by, factory: :user
14
13
 
15
14
  before(:create) { |prescription| prescription.treatable ||= prescription.patient }
16
15
  end
@@ -1,7 +1,6 @@
1
1
  FactoryGirl.define do
2
2
  factory :prescription_termination, class: "Renalware::Medications::PrescriptionTermination" do
3
+ accountable
3
4
  terminated_on "2016-07-26"
4
- association :created_by, factory: :user
5
- association :updated_by, factory: :user
6
5
  end
7
6
  end
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :internal_author,
3
+ class: "Renalware::Messaging::Internal::Author",
4
+ parent: :user
5
+ end
@@ -1,5 +1,5 @@
1
1
  FactoryGirl.define do
2
- factory :internal_message, class: "Renalware::Messaging::Message" do
2
+ factory :internal_message, class: "Renalware::Messaging::Internal::Message" do
3
3
  body "The body"
4
4
  subject "The subject"
5
5
  urgent false
@@ -0,0 +1,7 @@
1
+ FactoryGirl.define do
2
+ factory :internal_receipt, class: "Renalware::Messaging::Internal::Receipt" do
3
+ association :recipient, factory: :internal_recipient
4
+ read_at nil
5
+ association :message, factory: :internal_message
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :internal_recipient,
3
+ class: "Renalware::Messaging::Internal::Recipient",
4
+ parent: :user
5
+ end
@@ -1,13 +1,11 @@
1
1
  FactoryGirl.define do
2
2
  factory :modality, class: "Renalware::Modalities::Modality" do
3
+ accountable
3
4
  patient
4
5
  association :description, factory: :modality_description
5
6
  association :reason, factory: :modality_reason
6
7
  started_on Date.parse("2015-04-01")
7
8
 
8
- association :created_by, factory: :user
9
- association :updated_by, factory: :user
10
-
11
9
  trait :terminated do
12
10
  state "terminated"
13
11
  end
@@ -1,10 +1,8 @@
1
1
  FactoryGirl.define do
2
2
  factory :pathology_requests_request, class: "Renalware::Pathology::Requests::Request" do
3
+ accountable
3
4
  telephone Faker::PhoneNumber.phone_number
4
5
  template Renalware::Pathology::Requests::Request::TEMPLATES.sample
5
6
  high_risk [true, false].sample
6
-
7
- association :created_by, factory: :user
8
- association :updated_by, factory: :user
9
7
  end
10
8
  end
@@ -1,8 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :patient_alert, class: "Renalware::Patients::Alert" do
3
+ accountable
3
4
  notes Faker::Lorem.sentence
4
5
  urgent true
5
- association :created_by, factory: :user
6
- association :updated_by, factory: :user
7
6
  end
8
7
  end
@@ -8,6 +8,7 @@ FactoryGirl.define do
8
8
  end
9
9
 
10
10
  factory :patient, class: "Renalware::Patient" do
11
+ accountable
11
12
  nhs_number
12
13
  secure_id { SecureRandom.base58(24) }
13
14
  local_patient_id
@@ -16,11 +17,8 @@ FactoryGirl.define do
16
17
  born_on "01/01/1988"
17
18
  paediatric_patient_indicator "0"
18
19
  sex "M"
19
- ethnicity
20
20
  died_on nil
21
21
  first_cause_id nil
22
- association :created_by, factory: :user
23
- association :updated_by, factory: :user
24
22
 
25
23
  # ensures addressable_type and addressable_id work is assigned, using
26
24
  # FactoryGirl's simple assoc method does not work
@@ -28,5 +26,9 @@ FactoryGirl.define do
28
26
  before(:create) do |patient|
29
27
  patient.build_current_address(attributes_for(:address))
30
28
  end
29
+
30
+ trait :with_ethnicity do
31
+ ethnicity factory: :ethnicity
32
+ end
31
33
  end
32
34
  end