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,3 @@
1
+ <%# We render this view when the message has been successfully sent.%>
2
+ <%= refresh(".flash-message", partial: "renalware/shared/flash_messages", locals: local_assigns) %>
3
+ $("#admissions-request-modal").foundation('reveal', 'close');
@@ -0,0 +1,3 @@
1
+ // Remove the just-deleted admissions request from the
2
+ <%= refresh(".flash-message", partial: "renalware/shared/flash_messages", locals: local_assigns) %>
3
+ $("#admissions_request_<%=request_id %>").fadeOut(300, function(){ $(this).remove();})
@@ -0,0 +1,4 @@
1
+ = render "form",
2
+ request: request,
3
+ reasons: reasons,
4
+ hospital_units: hospital_units
@@ -0,0 +1,4 @@
1
+ var modal = $("#admissions-request-modal")
2
+ $(modal).html("<%=
3
+ j(render 'form', request: request, reasons: reasons, hospital_units: hospital_units)
4
+ %>");
@@ -0,0 +1,3 @@
1
+ = within_admin_layout(title: "Admission Requests (TCI list)") do
2
+ = render "table", requests: requests
3
+ = paginate requests
@@ -0,0 +1,4 @@
1
+ = render "form",
2
+ request: request,
3
+ reasons: reasons,
4
+ hospital_units: hospital_units
@@ -0,0 +1,4 @@
1
+ var modal = $("#admissions-request-modal")
2
+ $(modal).html("<%=
3
+ j(render 'form', request: request, reasons: reasons, hospital_units: hospital_units)
4
+ %>");
@@ -0,0 +1,9 @@
1
+ <%# We render this view when the request has been successfully updated.%>
2
+ <%= refresh(".flash-message", partial: "renalware/shared/flash_messages", locals: local_assigns) %>
3
+ $("#admissions-request-modal").foundation('reveal', 'close');
4
+ // Refresh the just-updated admissions request
5
+ <%=
6
+ replace("#admissions_request_#{request.id}",
7
+ partial: "request",
8
+ locals: { request: request })
9
+ %>
@@ -5,7 +5,7 @@
5
5
  xml = builder
6
6
 
7
7
  xml.Allergies do
8
- patient.allergies.each do |allergy|
8
+ patient.allergies.includes(:updated_by).each do |allergy|
9
9
  xml.Allergy do
10
10
  xml.Allergy do
11
11
  xml.comment! "We don't have snomed code for allergies..?"
@@ -1,6 +1,5 @@
1
1
  xml = builder
2
2
 
3
-
4
3
  xml.ClinicalRelationships do
5
4
  xml.comment! "Not supplied in RW 2.0"
6
5
  end
@@ -1,6 +1,11 @@
1
1
  xml = builder
2
2
 
3
3
  xml.LabOrders(start: Time.zone.today.iso8601, stop: Time.zone.today.iso8601) do
4
- xml.comment! "Check what start and stop refer to here"
5
- xml.comment! "TODO"
4
+ xml.comment! "TODO: start and stop date"
5
+
6
+ render partial: "renalware/api/ukrdc/patients/lab_orders/lab_order",
7
+ collection: patient.observation_requests.includes(:description,
8
+ observations: {description: :measurement_unit}),
9
+ as: :request,
10
+ locals: { builder: builder }
6
11
  end
@@ -6,7 +6,7 @@ xml = builder
6
6
 
7
7
  xml.Observations(start: Time.zone.today.iso8601, stop: Time.zone.today.iso8601) do
8
8
  xml.comment! "Check what start and stop refer to here"
9
- patient.clinic_visits.each do |visit|
9
+ patient.clinic_visits.includes(:updated_by).each do |visit|
10
10
  render "clinic_visit_observation",
11
11
  visit: visit,
12
12
  method: :systolic_bp,
@@ -12,12 +12,14 @@ xml.Patient do
12
12
  xml.PatientNumber do
13
13
  xml.Number patient.nhs_number
14
14
  xml.Organization "NHS"
15
+ xml.NumberType "NI"
15
16
  end
16
17
  Renalware.config.patient_hospital_identifiers.values.each do |field|
17
18
  next if (number = patient.public_send(field)).blank?
18
19
  xml.PatientNumber do
19
20
  xml.Number number
20
21
  xml.Organization "LOCALHOSP"
22
+ xml.NumberType "MRN"
21
23
  end
22
24
  end
23
25
  end
@@ -1,7 +1,7 @@
1
1
  xml = builder
2
2
 
3
3
  xml.SendingFacility(
4
- channelName: "RenalwareV2",
4
+ channelName: "Renalware",
5
5
  channelId: "TODO",
6
6
  time: Time.zone.now.to_datetime) do
7
7
  end
@@ -0,0 +1,46 @@
1
+ # See HL7 spec http://pacs.hk/Doc/HL7/Hl7V231.pdf
2
+ #
3
+ xml = builder
4
+
5
+ xml.LabOrder do
6
+ xml.ReceivingLocation do
7
+ xml.code "TODO"
8
+ xml.Description # request.pathology_lab.name
9
+ end
10
+ xml.PlacerId request.requestor_order_number
11
+ xml.FillerId "??ORC:3 Labs Order Id"
12
+ xml.OrderedBy do
13
+ xml.Code "unknown"
14
+ xml.Description request.requestor_name
15
+ end
16
+ xml.OrderItem do
17
+ xml.Code "TODO: LOIN code for request? E.g. MB from 'OBR|1|^PCS|09B0099478^LA|FBC^FULL BLOOD COUNT^MB|..'"
18
+ end
19
+ xml.OrderCategory do
20
+ xml.Code request.description.code
21
+ end
22
+ xml.SpecimenCollectedTime "TODO"
23
+ xml.SpecimenReceivedTime "TODO"
24
+ xml.Priority do
25
+ xml.Code "TODO: Probably n/a"
26
+ end
27
+ xml.SpecimenSource request.description.bottle_type
28
+ xml.Duration "OBR:27.3 but no available in the example messages I have"
29
+
30
+ xml.ResultItems do
31
+ render partial: "renalware/api/ukrdc/patients/lab_orders/result_item",
32
+ collection: request.observations,
33
+ as: :observation,
34
+ locals: { builder: builder }
35
+ end
36
+
37
+ xml.PatientClass do
38
+ xml.CodingStandard "HL7_0004"
39
+ xml.Code "e.g. I for Inpatient"
40
+ xml.Description "e.g. Inpatient?"
41
+ end
42
+ xml.EnteredOn request.requested_at.iso8601
43
+ xml.EnteredAt do
44
+ xml.code "location code here"
45
+ end
46
+ end
@@ -0,0 +1,14 @@
1
+ xml = builder
2
+ observation = Renalware::Pathology::ObservationPresenter.new(observation)
3
+
4
+ xml.ResultItem do
5
+ xml.ResultType observation.description_name
6
+ xml.EnteredOn observation.updated_at&.iso8601
7
+ xml.ObservationTime observation.observed_at&.iso8601
8
+ xml.PrePost "?"
9
+ xml.ServiceId "?"
10
+ xml.SubId "?"
11
+ xml.ResultValue observation.result
12
+ xml.ResultValueUnits observation.measurement_unit_name
13
+ xml.ReferenceRange "?"
14
+ end
@@ -1,3 +1,4 @@
1
+ - require_dependency("renalware/renal")
1
2
  - patient = Renalware::Clinical.cast_patient(patient)
2
3
 
3
4
  .allergies
@@ -20,11 +20,15 @@
20
20
  - if dashboard.unread_messages_receipts.any?
21
21
  = render "renalware/messaging/shared/key"
22
22
  .unread-messages
23
- = render "renalware/messaging/receipts/table",
23
+ = render "renalware/messaging/internal/receipts/table",
24
24
  receipts: dashboard.unread_messages_receipts
25
25
  - else
26
26
  p.empty-section= t(".messages.none")
27
27
 
28
28
  section.electonic_ccs
29
29
  h2 Electronic CCs
30
- p.empty-section= t(".electronic_ccs.none")
30
+ - if dashboard.unread_electronic_ccs.any?
31
+ = render "renalware/letters/electronic_receipts/table",
32
+ receipts: dashboard.unread_electronic_ccs
33
+ - else
34
+ p.empty-section= t(".electronic_ccs.none")
@@ -1,17 +1,17 @@
1
1
  tr(class=letter.state.dasherize)
2
- td
3
- = link_to "Toggle", "#quick-preview-#{letter.id}", data: { behaviour: "toggler" }
4
- = pipe_separator
5
- = link_to letter.view_label, patient_letters_letter_path(letter.patient, letter)
6
- - if policy(letter).update?
7
- = pipe_separator
8
- = link_to "Edit", edit_patient_letters_letter_path(letter.patient, letter)
9
2
  td.state
10
3
  span= letter.state_description
11
4
  td= l letter.issued_on
12
5
  td= letter.author
13
6
  td= link_to letter.patient, patient_clinical_summary_path(letter.patient)
14
7
  td= letter.description
8
+ td.actions
9
+ = link_to "Toggle", "#quick-preview-#{letter.id}", data: { behaviour: "toggler" }
10
+ = pipe_separator
11
+ = link_to letter.view_label, patient_letters_letter_path(letter.patient, letter)
12
+ - if policy(letter).update?
13
+ = pipe_separator
14
+ = link_to "Edit", edit_patient_letters_letter_path(letter.patient, letter)
15
15
  = content_tag(:tr, id: "quick-preview-#{letter.id}", style: "display: none")
16
16
  td
17
17
  td(colspan=7)
@@ -1,12 +1,12 @@
1
1
  table.auto-layout.letters
2
2
  thead
3
3
  tr
4
- th.col-width-medium
5
- th.col-width-small State
4
+ th.col-width-tiny State
6
5
  th.col-width-date Date
7
6
  th.col-width-medium Author
8
7
  th.col-width-large Patient
9
8
  th Description
9
+ th.col-width-small
10
10
 
11
11
  tbody
12
12
  = render partial: "renalware/dashboard/letters/letter", collection: letters
@@ -0,0 +1,27 @@
1
+ <%= within_admin_layout(title: "Change your password") do %>
2
+
3
+ <%= simple_form_for(resource,
4
+ as: resource_name,
5
+ url: password_path(resource_name),
6
+ wrapper: :horizontal_form,
7
+ html: { autocomplete: "off", method: :put }) do |f| %>
8
+ <%= render "renalware/shared/errors", model: resource %>
9
+ <%= f.input :reset_password_token, as: :hidden %>
10
+ <%= f.full_error :reset_password_token %>
11
+ <%= f.input :password,
12
+ label: "New password",
13
+ required: true,
14
+ autofocus: true,
15
+ wrapper: :horizontal_small,
16
+ hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %>
17
+ <%= f.input :password_confirmation,
18
+ label: "Confirm your new password",
19
+ required: true,
20
+ wrapper: :horizontal_small %>
21
+
22
+ <%= f.button :submit, "Change my password" %>
23
+ <% end %>
24
+
25
+ <%= render "devise/shared/links" %>
26
+
27
+ <% end %>
@@ -0,0 +1,18 @@
1
+ <%= within_admin_layout(title: "Forgot your password?") do %>
2
+ <%= simple_form_for(resource,
3
+ as: resource_name,
4
+ url: password_path(resource_name),
5
+ html: { method: :post, autocomplete: "off" }) do |f| %>
6
+
7
+ <%= f.error_notification %>
8
+ <div class="row">
9
+ <div class="columns small-12 medium-6 last">
10
+ <%= f.input :email, required: true, autofocus: true %>
11
+
12
+ </div>
13
+ </div>
14
+
15
+ <%= f.button :submit, "Send me reset password instructions" %>
16
+ <% end %>
17
+ <%= render "devise/shared/links" %>
18
+ <% end %>
@@ -0,0 +1,25 @@
1
+ = within_admin_layout(title: "Register") do
2
+ = simple_form_for(resource,
3
+ as: resource_name,
4
+ url: registration_path(resource_name),
5
+ wrapper: :horizontal_form) do |f|
6
+
7
+ = custom_devise_error_messages!
8
+
9
+ = f.input :given_name, input_html: { autofocus: true }, wrapper: :horizontal_medium
10
+ = f.input :family_name, wrapper: :horizontal_medium
11
+ = f.input :username, wrapper: :horizontal_small
12
+ = f.input :email, wrapper: :horizontal_small
13
+ = f.input :password,
14
+ as: :password,
15
+ input_html: { autocomplete: "off" },
16
+ hint: "#{@minimum_password_length} characters minimum",
17
+ wrapper: :horizontal_small
18
+ = f.input :password_confirmation,
19
+ as: :password,
20
+ input_html: { autocomplete: "off" },
21
+ wrapper: :horizontal_small
22
+ = f.submit "Sign up", class: "button save"
23
+
24
+ = render "devise/shared/links"
25
+
@@ -0,0 +1,45 @@
1
+ table.letters.electronic-ccs.has-togglable-rows
2
+ thead
3
+ tr
4
+ th.col-width-date Date
5
+ th.col-width-medium Author
6
+ th.col-width-large Patient
7
+ th Description
8
+ th.col-width-small
9
+
10
+ tbody
11
+ - receipts.each do |receipt|
12
+ - letter = Renalware::Letters::LetterPresenter.new(receipt.letter)
13
+ tr(id=receipt.html_identifier)
14
+ td= l(letter.issued_on)
15
+ td= letter.author
16
+ td= link_to letter.patient, patient_clinical_summary_path(letter.patient)
17
+ td= letter.description
18
+ td.actions
19
+ = link_to "Toggle", "##{receipt.html_preview_identifier}", data: { behaviour: "toggler" }
20
+ = pipe_separator
21
+ = link_to letter.view_label,
22
+ patient_letters_letter_path(letter.patient, letter, back_url: request.fullpath)
23
+
24
+ = content_tag(:tr, id: receipt.html_preview_identifier, style: "display: none")
25
+ td
26
+ td(colspan=3)
27
+ .quick-preview
28
+ = simple_format letter.body
29
+
30
+ td.nowrap
31
+ - if policy(receipt).mark_as_read?
32
+ ul.actions
33
+ li= link_to "Keep as unread",
34
+ "##{receipt.html_preview_identifier}",
35
+ data: { behaviour: "toggler" },
36
+ class: "button secondary keep-as-unread"
37
+
38
+ li= link_to(mark_as_read_letters_letter_electronic_receipt_path(letter, receipt),
39
+ class: "button mark-as-read",
40
+ method: :patch,
41
+ remote: true) do
42
+ i.fa.fa-check
43
+ | Mark as read
44
+
45
+
@@ -0,0 +1,6 @@
1
+ <%#
2
+ Remove the receipt that has now been marked as read from the table (provided we are viewing a table
3
+ of receipts of course). We need to remove the real row and the (initially hidden) preview row also.
4
+ %>
5
+ $("#<%= receipt.html_identifier %>, #<%= receipt.html_preview_identifier %>")
6
+ .fadeOut(300, function(){ $(this).remove();});
@@ -0,0 +1,5 @@
1
+ = within_admin_layout(title: "Electronic CCs") do
2
+ = render "renalware/letters/shared/electronic_cc_type_tabs"
3
+ = render search_form
4
+ = render "table", receipts: receipts
5
+ = paginate receipts
@@ -0,0 +1,40 @@
1
+ = within_admin_layout(title: "Electronic CCs") do
2
+ = render "renalware/letters/shared/electronic_cc_type_tabs"
3
+ = render search_form
4
+
5
+ table.letters.electronic-ccs.sent.has-togglable-rows
6
+ thead
7
+ tr
8
+ th.col-width-date Date
9
+ th.col-width-medium Author
10
+ th.col-width-large Patient
11
+ th Description
12
+ th Recipient
13
+ th Read?
14
+ th
15
+
16
+ tbody
17
+ - receipts.each do |receipt|
18
+ - letter = Renalware::Letters::LetterPresenter.new(receipt.letter)
19
+ tr
20
+ td= l(letter.issued_on)
21
+ td= letter.author
22
+ td= link_to letter.patient, patient_clinical_summary_path(letter.patient)
23
+ td= letter.description
24
+ td= receipt.recipient
25
+ td= yes_no(receipt.read?)
26
+ td.actions
27
+ = link_to "Toggle", "##{receipt.html_preview_identifier}", data: { behaviour: "toggler" }
28
+ = pipe_separator
29
+ = link_to(\
30
+ letter.view_label,
31
+ patient_letters_letter_path(letter.patient, letter, back_url: request.fullpath))
32
+
33
+ = content_tag(:tr, id: receipt.html_preview_identifier, style: "display: none")
34
+ td
35
+ td(colspan=5)
36
+ .quick-preview
37
+ = simple_format letter.body
38
+ td
39
+
40
+ = paginate receipts
@@ -0,0 +1,5 @@
1
+ = within_admin_layout(title: "Electronic CCs") do
2
+ = render "renalware/letters/shared/electronic_cc_type_tabs"
3
+ = render search_form
4
+ = render "table", receipts: receipts
5
+ = paginate receipts
@@ -218,11 +218,17 @@ scss:
218
218
  }
219
219
  margin-bottom: 20px;
220
220
  }
221
-
222
221
  }
223
222
 
224
223
  .footer {
225
224
  .ccs {
225
+ .electronic {
226
+ list-style-type: none;
227
+ list-style-position: outside;
228
+ margin: 0;
229
+ padding: 0;
230
+ }
231
+
226
232
  h3 {
227
233
  font-size: 1em;
228
234
  margin-bottom: 20px;
@@ -292,6 +298,11 @@ scss:
292
298
  .ccs
293
299
  h3 cc:
294
300
 
301
+ ul.electronic
302
+ - letter.electronic_cc_recipients.each do |user|
303
+ li= user.professional_signature
304
+
305
+
295
306
  .private
296
307
  p Private and confidential
297
308