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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. 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